// Copyright (c) 2017-2025 Tencent. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package v20260322

import (
    tcerr "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/errors"
    tchttp "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/http"
    "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/json"
)

type ApiKeyDetail struct {
	// API Key ID.
	ApiKeyId *string `json:"ApiKeyId,omitnil,omitempty" name:"ApiKeyId"`

	// Name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// API key value. The API response contains the masking value.
	ApiKey *string `json:"ApiKey,omitnil,omitempty" name:"ApiKey"`

	// Remarks.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Platform type. Currently supported values: maas.
	Platform *string `json:"Platform,omitnil,omitempty" name:"Platform"`

	// Root account.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Sub-account.
	SubUin *string `json:"SubUin,omitnil,omitempty" name:"SubUin"`

	// Status. Valid values: enable, disable.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Binding type. Value: all (all models and services), model_all_endpoint_custom (all models + custom service), model_custom_endpoint_all (custom model + all services), model_custom_endpoint_custom (custom model + custom service).
	BindType *string `json:"BindType,omitnil,omitempty" name:"BindType"`

	// Creation time. Format: YYYY-MM-DD HH:mm:ss.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Last update time. Format: YYYY-MM-DD HH:mm:ss.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// App ID.
	AppId *string `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Whether it is editable. true means editable, false means non-editable.
	Editable *bool `json:"Editable,omitnil,omitempty" name:"Editable"`

	// List of bound resources, case-sensitive for endpoint and model kind.
	BindingItems []*BindingItem `json:"BindingItems,omitnil,omitempty" name:"BindingItems"`

	// IP allowlist. Supports IPv4 and CIDR format. Empty array indicates no restriction.
	IpWhitelist []*string `json:"IpWhitelist,omitnil,omitempty" name:"IpWhitelist"`

	// This field is empty when Platform is maas.
	Creator *string `json:"Creator,omitnil,omitempty" name:"Creator"`

	// Multi-dimensional list of Token quota information. This field is not returned when unconfigured.
	QuotaSet []*QuotaInfo `json:"QuotaSet,omitnil,omitempty" name:"QuotaSet"`

	// Token quota status. An empty string means no configuration. active means configured with current availability. inactive means configured but quota exhausted.
	QuotaStatus *string `json:"QuotaStatus,omitnil,omitempty" name:"QuotaStatus"`
}

type BindingItem struct {
	// Resource ID (model ID or service ID).
	ResourceId *string `json:"ResourceId,omitnil,omitempty" name:"ResourceId"`

	// Resource type. Value: endpoint (service), model (model).
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Resource status
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`
}

// Predefined struct for user
type CreateApiKeyRequestParams struct {

}

type CreateApiKeyRequest struct {
	*tchttp.BaseRequest
	
}

func (r *CreateApiKeyRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateApiKeyRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateApiKeyRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateApiKeyResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateApiKeyResponse struct {
	*tchttp.BaseResponse
	Response *CreateApiKeyResponseParams `json:"Response"`
}

func (r *CreateApiKeyResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateApiKeyResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateGlossaryEntriesRequestParams struct {
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Terminology entry list. At a time 100.
	Entries []*GlossaryEntryInput `json:"Entries,omitnil,omitempty" name:"Entries"`
}

type CreateGlossaryEntriesRequest struct {
	*tchttp.BaseRequest
	
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Terminology entry list. At a time 100.
	Entries []*GlossaryEntryInput `json:"Entries,omitnil,omitempty" name:"Entries"`
}

func (r *CreateGlossaryEntriesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateGlossaryEntriesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "GlossaryId")
	delete(f, "Entries")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateGlossaryEntriesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateGlossaryEntriesResponseParams struct {
	// List of successfully created terminology entries.
	Entries []*GlossaryEntryItem `json:"Entries,omitnil,omitempty" name:"Entries"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateGlossaryEntriesResponse struct {
	*tchttp.BaseResponse
	Response *CreateGlossaryEntriesResponseParams `json:"Response"`
}

func (r *CreateGlossaryEntriesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateGlossaryEntriesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateGlossaryRequestParams struct {
	// Terminology library name. Maximum 50 characters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Source language code. Maximum 16 characters, such as zh (Chinese), en (English).
	Source *string `json:"Source,omitnil,omitempty" name:"Source"`

	// Target language code. Maximum 16 characters, such as zh (Chinese), en (English).
	Target *string `json:"Target,omitnil,omitempty" name:"Target"`

	// Termbase description. Maximum 255 characters.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`
}

type CreateGlossaryRequest struct {
	*tchttp.BaseRequest
	
	// Terminology library name. Maximum 50 characters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Source language code. Maximum 16 characters, such as zh (Chinese), en (English).
	Source *string `json:"Source,omitnil,omitempty" name:"Source"`

	// Target language code. Maximum 16 characters, such as zh (Chinese), en (English).
	Target *string `json:"Target,omitnil,omitempty" name:"Target"`

	// Termbase description. Maximum 255 characters.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`
}

func (r *CreateGlossaryRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateGlossaryRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Name")
	delete(f, "Source")
	delete(f, "Target")
	delete(f, "Description")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateGlossaryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateGlossaryResponseParams struct {
	// Termbase ID.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Terminology repository name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Creation time. Unix timestamp (ms).
	CreatedAt *int64 `json:"CreatedAt,omitnil,omitempty" name:"CreatedAt"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateGlossaryResponse struct {
	*tchttp.BaseResponse
	Response *CreateGlossaryResponseParams `json:"Response"`
}

func (r *CreateGlossaryResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateGlossaryResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteApiKeyRequestParams struct {

}

type DeleteApiKeyRequest struct {
	*tchttp.BaseRequest
	
}

func (r *DeleteApiKeyRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteApiKeyRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteApiKeyRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteApiKeyResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteApiKeyResponse struct {
	*tchttp.BaseResponse
	Response *DeleteApiKeyResponseParams `json:"Response"`
}

func (r *DeleteApiKeyResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteApiKeyResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteGlossaryEntriesRequestParams struct {
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Terminology entry list to be deleted. At a time 200.
	Entries []*DeleteGlossaryEntryInput `json:"Entries,omitnil,omitempty" name:"Entries"`
}

type DeleteGlossaryEntriesRequest struct {
	*tchttp.BaseRequest
	
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Terminology entry list to be deleted. At a time 200.
	Entries []*DeleteGlossaryEntryInput `json:"Entries,omitnil,omitempty" name:"Entries"`
}

func (r *DeleteGlossaryEntriesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteGlossaryEntriesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "GlossaryId")
	delete(f, "Entries")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteGlossaryEntriesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteGlossaryEntriesResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteGlossaryEntriesResponse struct {
	*tchttp.BaseResponse
	Response *DeleteGlossaryEntriesResponseParams `json:"Response"`
}

func (r *DeleteGlossaryEntriesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteGlossaryEntriesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type DeleteGlossaryEntryInput struct {
	// Terminology entry ID. Obtain through the API DescribeGlossaryEntries.
	EntryId *string `json:"EntryId,omitnil,omitempty" name:"EntryId"`
}

// Predefined struct for user
type DeleteGlossaryRequestParams struct {
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`
}

type DeleteGlossaryRequest struct {
	*tchttp.BaseRequest
	
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`
}

func (r *DeleteGlossaryRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteGlossaryRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "GlossaryId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteGlossaryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteGlossaryResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteGlossaryResponse struct {
	*tchttp.BaseResponse
	Response *DeleteGlossaryResponseParams `json:"Response"`
}

func (r *DeleteGlossaryResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteGlossaryResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeApiKeyListRequestParams struct {
	// Platform type. Currently supported values: maas.
	Platform *string `json:"Platform,omitnil,omitempty" name:"Platform"`

	// Number of returned results, defaults to 20, maximum value 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter condition list. Supported filter fields: apikeyId (API Key ID), apiKeyName (name), platform (platform type), status (status), bindType (binding type).
	Filters []*RequestFilter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorting condition list. Supported sorting field: apiKeyName
	Sorts []*RequestSort `json:"Sorts,omitnil,omitempty" name:"Sorts"`
}

type DescribeApiKeyListRequest struct {
	*tchttp.BaseRequest
	
	// Platform type. Currently supported values: maas.
	Platform *string `json:"Platform,omitnil,omitempty" name:"Platform"`

	// Number of returned results, defaults to 20, maximum value 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter condition list. Supported filter fields: apikeyId (API Key ID), apiKeyName (name), platform (platform type), status (status), bindType (binding type).
	Filters []*RequestFilter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorting condition list. Supported sorting field: apiKeyName
	Sorts []*RequestSort `json:"Sorts,omitnil,omitempty" name:"Sorts"`
}

func (r *DescribeApiKeyListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeApiKeyListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Platform")
	delete(f, "Limit")
	delete(f, "Offset")
	delete(f, "Filters")
	delete(f, "Sorts")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApiKeyListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeApiKeyListResponseParams struct {
	// API Key List.
	ApiKeySet []*ApiKeyDetail `json:"ApiKeySet,omitnil,omitempty" name:"ApiKeySet"`

	// Total number of eligible API keys.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeApiKeyListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeApiKeyListResponseParams `json:"Response"`
}

func (r *DescribeApiKeyListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeApiKeyListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeApiKeyRequestParams struct {
	// Platform type. Currently supported values: maas.
	Platform *string `json:"Platform,omitnil,omitempty" name:"Platform"`

	// API Key ID. At least one of this or ApiKey is required. Prioritize ApiKeyId.
	ApiKeyId *string `json:"ApiKeyId,omitnil,omitempty" name:"ApiKeyId"`

	// API key plaintext. At least one of it and ApiKeyId must be imported.
	ApiKey *string `json:"ApiKey,omitnil,omitempty" name:"ApiKey"`
}

type DescribeApiKeyRequest struct {
	*tchttp.BaseRequest
	
	// Platform type. Currently supported values: maas.
	Platform *string `json:"Platform,omitnil,omitempty" name:"Platform"`

	// API Key ID. At least one of this or ApiKey is required. Prioritize ApiKeyId.
	ApiKeyId *string `json:"ApiKeyId,omitnil,omitempty" name:"ApiKeyId"`

	// API key plaintext. At least one of it and ApiKeyId must be imported.
	ApiKey *string `json:"ApiKey,omitnil,omitempty" name:"ApiKey"`
}

func (r *DescribeApiKeyRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeApiKeyRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Platform")
	delete(f, "ApiKeyId")
	delete(f, "ApiKey")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeApiKeyRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeApiKeyResponseParams struct {
	// API Key ID.
	ApiKeyId *string `json:"ApiKeyId,omitnil,omitempty" name:"ApiKeyId"`

	// Name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// API Key value (plaintext).
	ApiKey *string `json:"ApiKey,omitnil,omitempty" name:"ApiKey"`

	// Remarks.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Platform type. Enumerate: maas.
	Platform *string `json:"Platform,omitnil,omitempty" name:"Platform"`

	// Root account.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Sub-account.
	SubUin *string `json:"SubUin,omitnil,omitempty" name:"SubUin"`

	// Status. Valid values: enable, disable.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Binding type. Value: all (all models and access points), model_all_endpoint_custom (all models + custom access point), model_custom_endpoint_all (custom model + all access points), model_custom_endpoint_custom (custom model + custom access point).
	BindType *string `json:"BindType,omitnil,omitempty" name:"BindType"`

	// Creation time. Format: YYYY-MM-DD HH:mm:ss.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Last update time. Format: YYYY-MM-DD HH:mm:ss.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// App ID.
	AppId *string `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Whether it is editable. true means editable, false means non-editable.
	Editable *bool `json:"Editable,omitnil,omitempty" name:"Editable"`

	// List of bound resources, case-sensitive for endpoint and model kind.
	BindingItems []*BindingItem `json:"BindingItems,omitnil,omitempty" name:"BindingItems"`

	// IP allowlist. Supports IPv4 and CIDR format. Empty array indicates no restriction.
	IpWhitelist []*string `json:"IpWhitelist,omitnil,omitempty" name:"IpWhitelist"`

	// This field is empty when Platform is maas.
	Creator *string `json:"Creator,omitnil,omitempty" name:"Creator"`

	// Multi-dimensional information of Token quota. This field is not returned when unconfigured.
	QuotaSet []*QuotaInfo `json:"QuotaSet,omitnil,omitempty" name:"QuotaSet"`

	// Token quota status. An empty string means no configuration. active means configured with current availability. inactive means configured but quota exhausted.
	QuotaStatus *string `json:"QuotaStatus,omitnil,omitempty" name:"QuotaStatus"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeApiKeyResponse struct {
	*tchttp.BaseResponse
	Response *DescribeApiKeyResponseParams `json:"Response"`
}

func (r *DescribeApiKeyResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeApiKeyResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeGlossariesRequestParams struct {
	// Number of returned results. Defaults to 20, maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter condition list. Supported filter fields: GlossaryId (Termbase ID), Name, Source (source language code), Target (target language code).
	Filters []*RequestFilter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorting condition list. Supported sorting fields: CreatedTime (creation time), UpdatedTime (last update time).
	Sorts []*RequestSort `json:"Sorts,omitnil,omitempty" name:"Sorts"`
}

type DescribeGlossariesRequest struct {
	*tchttp.BaseRequest
	
	// Number of returned results. Defaults to 20, maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter condition list. Supported filter fields: GlossaryId (Termbase ID), Name, Source (source language code), Target (target language code).
	Filters []*RequestFilter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorting condition list. Supported sorting fields: CreatedTime (creation time), UpdatedTime (last update time).
	Sorts []*RequestSort `json:"Sorts,omitnil,omitempty" name:"Sorts"`
}

func (r *DescribeGlossariesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeGlossariesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Limit")
	delete(f, "Offset")
	delete(f, "Filters")
	delete(f, "Sorts")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGlossariesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeGlossariesResponseParams struct {
	// Terminology repository list.
	Items []*GlossaryItem `json:"Items,omitnil,omitempty" name:"Items"`

	// Total number of eligible terminology repositories.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Current page.
	Current *int64 `json:"Current,omitnil,omitempty" name:"Current"`

	// Size per page
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeGlossariesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeGlossariesResponseParams `json:"Response"`
}

func (r *DescribeGlossariesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeGlossariesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeGlossaryEntriesRequestParams struct {
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Page number. Default is 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`

	// Size per page. The default value is 20, and the maximum value is 200.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

type DescribeGlossaryEntriesRequest struct {
	*tchttp.BaseRequest
	
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Page number. Default is 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`

	// Size per page. The default value is 20, and the maximum value is 200.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

func (r *DescribeGlossaryEntriesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeGlossaryEntriesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "GlossaryId")
	delete(f, "Page")
	delete(f, "PageSize")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGlossaryEntriesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeGlossaryEntriesResponseParams struct {
	// Terminology entry list.
	Entries []*GlossaryEntryItem `json:"Entries,omitnil,omitempty" name:"Entries"`

	// Total number of eligible terminology entries.
	Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`

	// Current page.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`

	// Size per page
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeGlossaryEntriesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeGlossaryEntriesResponseParams `json:"Response"`
}

func (r *DescribeGlossaryEntriesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeGlossaryEntriesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type GlossaryEntryInput struct {
	// Source language terminology. Maximum 1000 characters.
	SourceTerm *string `json:"SourceTerm,omitnil,omitempty" name:"SourceTerm"`

	// Target language terminology. Maximum 1000 characters.
	TargetTerm *string `json:"TargetTerm,omitnil,omitempty" name:"TargetTerm"`
}

type GlossaryEntryItem struct {
	// Terminology entry ID.
	EntryId *string `json:"EntryId,omitnil,omitempty" name:"EntryId"`

	// Source language terminology.
	SourceTerm *string `json:"SourceTerm,omitnil,omitempty" name:"SourceTerm"`

	// Target language terminology.
	TargetTerm *string `json:"TargetTerm,omitnil,omitempty" name:"TargetTerm"`

	// Last update time. Unix timestamp (ms).
	UpdatedAt *int64 `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`
}

type GlossaryItem struct {
	// Termbase ID.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Terminology repository name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Repository description.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Source language code.
	Source *string `json:"Source,omitnil,omitempty" name:"Source"`

	// Target language code.
	Target *string `json:"Target,omitnil,omitempty" name:"Target"`

	// Creation time.
	CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Update time.
	UpdatedTime *string `json:"UpdatedTime,omitnil,omitempty" name:"UpdatedTime"`
}

// Predefined struct for user
type ModifyApiKeyInfoRequestParams struct {

}

type ModifyApiKeyInfoRequest struct {
	*tchttp.BaseRequest
	
}

func (r *ModifyApiKeyInfoRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyApiKeyInfoRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyApiKeyInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyApiKeyInfoResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyApiKeyInfoResponse struct {
	*tchttp.BaseResponse
	Response *ModifyApiKeyInfoResponseParams `json:"Response"`
}

func (r *ModifyApiKeyInfoResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyApiKeyInfoResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyApiKeyStatusRequestParams struct {

}

type ModifyApiKeyStatusRequest struct {
	*tchttp.BaseRequest
	
}

func (r *ModifyApiKeyStatusRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyApiKeyStatusRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyApiKeyStatusRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyApiKeyStatusResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyApiKeyStatusResponse struct {
	*tchttp.BaseResponse
	Response *ModifyApiKeyStatusResponseParams `json:"Response"`
}

func (r *ModifyApiKeyStatusResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyApiKeyStatusResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyGlossaryEntriesRequestParams struct {
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Terminology entry list. At a time 200.
	Entries []*ModifyGlossaryEntryInput `json:"Entries,omitnil,omitempty" name:"Entries"`
}

type ModifyGlossaryEntriesRequest struct {
	*tchttp.BaseRequest
	
	// Termbase ID. Obtain through the API DescribeGlossaries.
	GlossaryId *string `json:"GlossaryId,omitnil,omitempty" name:"GlossaryId"`

	// Terminology entry list. At a time 200.
	Entries []*ModifyGlossaryEntryInput `json:"Entries,omitnil,omitempty" name:"Entries"`
}

func (r *ModifyGlossaryEntriesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyGlossaryEntriesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "GlossaryId")
	delete(f, "Entries")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyGlossaryEntriesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyGlossaryEntriesResponseParams struct {
	// Terminology entry list after modification.
	Entries []*GlossaryEntryItem `json:"Entries,omitnil,omitempty" name:"Entries"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyGlossaryEntriesResponse struct {
	*tchttp.BaseResponse
	Response *ModifyGlossaryEntriesResponseParams `json:"Response"`
}

func (r *ModifyGlossaryEntriesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyGlossaryEntriesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type ModifyGlossaryEntryInput struct {
	// Terminology entry ID. Obtain through the API DescribeGlossaryEntries.
	EntryId *string `json:"EntryId,omitnil,omitempty" name:"EntryId"`

	// Source language terminology. Maximum 1000 characters. If not passed, remain unchanged.
	SourceTerm *string `json:"SourceTerm,omitnil,omitempty" name:"SourceTerm"`

	// Target language terminology. Maximum 1000 characters. Remain unchanged if not passed.
	TargetTerm *string `json:"TargetTerm,omitnil,omitempty" name:"TargetTerm"`
}

type QuotaInfo struct {
	// Quota package ID.
	PkgId *string `json:"PkgId,omitnil,omitempty" name:"PkgId"`

	// Package status. Value: 1 (normal), 3 (exhausted), 4 (terminated).
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Quota period. Value: d (by day), m (monthly), lifetime (total quota, no reset).
	CycleUnit *string `json:"CycleUnit,omitnil,omitempty" name:"CycleUnit"`

	// Dimensional quota total amount (number of tokens). Use string to avoid precision loss.
	CycleCredits *string `json:"CycleCredits,omitnil,omitempty" name:"CycleCredits"`

	// Dimensional used amount (number of tokens). Use string literal to avoid precision loss.
	CycleUsed *string `json:"CycleUsed,omitnil,omitempty" name:"CycleUsed"`

	// Quota effective start time.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Quota expiration time.
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`
}

type RequestFilter struct {
	// Filter field name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Filter operator. Values: EXACT (exact match), FUZZY (fuzzy matching), NOT (exclusion).
	Op *string `json:"Op,omitnil,omitempty" name:"Op"`

	// Filter value list. Supports up to 10.
	Values []*string `json:"Values,omitnil,omitempty" name:"Values"`
}

type RequestSort struct {
	// Sorting field name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Sorting order. Value: ASC (ascending), DESC (descending).
	Order *string `json:"Order,omitnil,omitempty" name:"Order"`
}