// 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 v20210712

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"
)

// Predefined struct for user
type CreateLibraryRequestParams struct {
	// Media library name. up to 50 characters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Specifies the remark, up to 250 characters.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Specifies the full name of the bucket, which cannot be changed after creation. the current version no longer supports specified buckets.
	BucketName *string `json:"BucketName,omitnil,omitempty" name:"BucketName"`

	// Bucket location cannot be changed after creation. the current version no longer supports specifying bucket location.
	BucketRegion *string `json:"BucketRegion,omitnil,omitempty" name:"BucketRegion"`

	// Media library configuration item. some parameters cannot be changed after creation.
	LibraryExtension *LibraryExtension `json:"LibraryExtension,omitnil,omitempty" name:"LibraryExtension"`
}

type CreateLibraryRequest struct {
	*tchttp.BaseRequest
	
	// Media library name. up to 50 characters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Specifies the remark, up to 250 characters.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Specifies the full name of the bucket, which cannot be changed after creation. the current version no longer supports specified buckets.
	BucketName *string `json:"BucketName,omitnil,omitempty" name:"BucketName"`

	// Bucket location cannot be changed after creation. the current version no longer supports specifying bucket location.
	BucketRegion *string `json:"BucketRegion,omitnil,omitempty" name:"BucketRegion"`

	// Media library configuration item. some parameters cannot be changed after creation.
	LibraryExtension *LibraryExtension `json:"LibraryExtension,omitnil,omitempty" name:"LibraryExtension"`
}

func (r *CreateLibraryRequest) 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 *CreateLibraryRequest) 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, "Remark")
	delete(f, "BucketName")
	delete(f, "BucketRegion")
	delete(f, "LibraryExtension")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateLibraryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateLibraryResponseParams struct {
	// Media library ID.
	LibraryId *string `json:"LibraryId,omitnil,omitempty" name:"LibraryId"`

	// 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 CreateLibraryResponse struct {
	*tchttp.BaseResponse
	Response *CreateLibraryResponseParams `json:"Response"`
}

func (r *CreateLibraryResponse) 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 *CreateLibraryResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteLibraryRequestParams struct {
	// Media library ID.
	LibraryId *string `json:"LibraryId,omitnil,omitempty" name:"LibraryId"`
}

type DeleteLibraryRequest struct {
	*tchttp.BaseRequest
	
	// Media library ID.
	LibraryId *string `json:"LibraryId,omitnil,omitempty" name:"LibraryId"`
}

func (r *DeleteLibraryRequest) 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 *DeleteLibraryRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "LibraryId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteLibraryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteLibraryResponseParams 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 DeleteLibraryResponse struct {
	*tchttp.BaseResponse
	Response *DeleteLibraryResponseParams `json:"Response"`
}

func (r *DeleteLibraryResponse) 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 *DeleteLibraryResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeLibrariesRequestParams struct {
	// Specifies one or more media library ids for querying, with a maximum of 100 per request.
	LibraryIds []*string `json:"LibraryIds,omitnil,omitempty" name:"LibraryIds"`

	// Page number, int, used in conjunction with PageSize. default value is 1.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// Number of items per page, integer, used in conjunction with PageNumber. default value is 20. maximum value is 100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

type DescribeLibrariesRequest struct {
	*tchttp.BaseRequest
	
	// Specifies one or more media library ids for querying, with a maximum of 100 per request.
	LibraryIds []*string `json:"LibraryIds,omitnil,omitempty" name:"LibraryIds"`

	// Page number, int, used in conjunction with PageSize. default value is 1.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// Number of items per page, integer, used in conjunction with PageNumber. default value is 20. maximum value is 100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

func (r *DescribeLibrariesRequest) 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 *DescribeLibrariesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "LibraryIds")
	delete(f, "PageNumber")
	delete(f, "PageSize")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeLibrariesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeLibrariesResponseParams struct {
	// Library list.
	List []*Library `json:"List,omitnil,omitempty" name:"List"`

	// Total number.
	TotalCount *uint64 `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 DescribeLibrariesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeLibrariesResponseParams `json:"Response"`
}

func (r *DescribeLibrariesResponse) 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 *DescribeLibrariesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeLibrarySecretRequestParams struct {
	// Media library ID.
	LibraryId *string `json:"LibraryId,omitnil,omitempty" name:"LibraryId"`
}

type DescribeLibrarySecretRequest struct {
	*tchttp.BaseRequest
	
	// Media library ID.
	LibraryId *string `json:"LibraryId,omitnil,omitempty" name:"LibraryId"`
}

func (r *DescribeLibrarySecretRequest) 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 *DescribeLibrarySecretRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "LibraryId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeLibrarySecretRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeLibrarySecretResponseParams struct {
	// Specifies the media library ID to query.
	LibraryId *string `json:"LibraryId,omitnil,omitempty" name:"LibraryId"`

	// Queried media library key.
	LibrarySecret *string `json:"LibrarySecret,omitnil,omitempty" name:"LibrarySecret"`

	// 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 DescribeLibrarySecretResponse struct {
	*tchttp.BaseResponse
	Response *DescribeLibrarySecretResponseParams `json:"Response"`
}

func (r *DescribeLibrarySecretResponse) 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 *DescribeLibrarySecretResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeOfficialInstancesRequestParams struct {
	// Specifies whether to query the super admin account bound to the instance. default value is false.
	SuperAdminAccount *bool `json:"SuperAdminAccount,omitnil,omitempty" name:"SuperAdminAccount"`

	// Specifies one or more instance ids for querying, with a maximum of 100 per request.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Page number, int, used in conjunction with PageSize. default value is 1.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// Number of items per page, integer, used in conjunction with PageNumber. default value is 20. maximum value is 100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Specifies the column to sort.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`

	// Specifies the filter type for renewal management.
	AutoRenew *uint64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// Specifies whether the super admin account is bound to a mobile number.
	BindPhone *bool `json:"BindPhone,omitnil,omitempty" name:"BindPhone"`
}

type DescribeOfficialInstancesRequest struct {
	*tchttp.BaseRequest
	
	// Specifies whether to query the super admin account bound to the instance. default value is false.
	SuperAdminAccount *bool `json:"SuperAdminAccount,omitnil,omitempty" name:"SuperAdminAccount"`

	// Specifies one or more instance ids for querying, with a maximum of 100 per request.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Page number, int, used in conjunction with PageSize. default value is 1.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// Number of items per page, integer, used in conjunction with PageNumber. default value is 20. maximum value is 100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Specifies the column to sort.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`

	// Specifies the filter type for renewal management.
	AutoRenew *uint64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// Specifies whether the super admin account is bound to a mobile number.
	BindPhone *bool `json:"BindPhone,omitnil,omitempty" name:"BindPhone"`
}

func (r *DescribeOfficialInstancesRequest) 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 *DescribeOfficialInstancesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SuperAdminAccount")
	delete(f, "InstanceIds")
	delete(f, "PageNumber")
	delete(f, "PageSize")
	delete(f, "OrderBy")
	delete(f, "OrderByType")
	delete(f, "AutoRenew")
	delete(f, "BindPhone")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeOfficialInstancesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeOfficialInstancesResponseParams struct {
	// Instance list
	List []*Instance `json:"List,omitnil,omitempty" name:"List"`

	// Total number.
	TotalCount *uint64 `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 DescribeOfficialInstancesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeOfficialInstancesResponseParams `json:"Response"`
}

func (r *DescribeOfficialInstancesResponse) 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 *DescribeOfficialInstancesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeOfficialOverviewRequestParams struct {

}

type DescribeOfficialOverviewRequest struct {
	*tchttp.BaseRequest
	
}

func (r *DescribeOfficialOverviewRequest) 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 *DescribeOfficialOverviewRequest) 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", "DescribeOfficialOverviewRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeOfficialOverviewResponseParams struct {
	// Specifies the instance count of cloud disks.
	Quantity *uint64 `json:"Quantity,omitnil,omitempty" name:"Quantity"`

	// Indicates the total storage already used in Bytes. since the number type has precision limitations, this field is a String type.
	Storage *string `json:"Storage,omitnil,omitempty" name:"Storage"`

	// Total number of users already allocated and used.
	UserCount *uint64 `json:"UserCount,omitnil,omitempty" name:"UserCount"`

	// Public network downstream traffic this month in Bytes. since the number type has precision limitations, this field is a String type.
	InternetTraffic *string `json:"InternetTraffic,omitnil,omitempty" name:"InternetTraffic"`

	// 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 DescribeOfficialOverviewResponse struct {
	*tchttp.BaseResponse
	Response *DescribeOfficialOverviewResponseParams `json:"Response"`
}

func (r *DescribeOfficialOverviewResponse) 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 *DescribeOfficialOverviewResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTrafficPackagesRequestParams struct {
	// Specifies one or more resource ids for querying, with a maximum of 100 per request.
	ResourceIds []*string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`

	// Page number, int, used in conjunction with PageSize. default value is 1.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// Number of items per page, integer, used in conjunction with PageNumber. default value is 20. maximum value is 100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Specifies the column to sort.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`

	// Specifies the source type filter criteria.
	Type *uint64 `json:"Type,omitnil,omitempty" name:"Type"`
}

type DescribeTrafficPackagesRequest struct {
	*tchttp.BaseRequest
	
	// Specifies one or more resource ids for querying, with a maximum of 100 per request.
	ResourceIds []*string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`

	// Page number, int, used in conjunction with PageSize. default value is 1.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// Number of items per page, integer, used in conjunction with PageNumber. default value is 20. maximum value is 100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Specifies the column to sort.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`

	// Specifies the source type filter criteria.
	Type *uint64 `json:"Type,omitnil,omitempty" name:"Type"`
}

func (r *DescribeTrafficPackagesRequest) 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 *DescribeTrafficPackagesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ResourceIds")
	delete(f, "PageNumber")
	delete(f, "PageSize")
	delete(f, "OrderBy")
	delete(f, "OrderByType")
	delete(f, "Type")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTrafficPackagesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTrafficPackagesResponseParams struct {
	// Package list.
	List []*TrafficPackage `json:"List,omitnil,omitempty" name:"List"`

	// Total number.
	TotalCount *uint64 `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 DescribeTrafficPackagesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTrafficPackagesResponseParams `json:"Response"`
}

func (r *DescribeTrafficPackagesResponse) 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 *DescribeTrafficPackagesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type Instance struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Dedicated domain name. if the instance has no dedicated domain name, this attribute is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`

	// Effective time.
	EffectiveTime *string `json:"EffectiveTime,omitnil,omitempty" name:"EffectiveTime"`

	// Expiration time. if the instance is pay-as-you-go or permanently valid, this attribute is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Number of users. if the instance uses pay-as-you-go billing or has unlimited users, this attribute is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserLimit *uint64 `json:"UserLimit,omitnil,omitempty" name:"UserLimit"`

	// Storage capacity in Bytes. this field is of String type due to precision limitations of numeric types. this property is null for pay-as-you-go instances or instances with unlimited storage capacity.
	// Note: This field may return null, indicating that no valid values can be obtained.
	StorageLimit *string `json:"StorageLimit,omitnil,omitempty" name:"StorageLimit"`

	// Storage capacity in GB. if the instance uses pay-as-you-go billing or has unlimited storage capacity, this attribute is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	StorageLimitGB *uint64 `json:"StorageLimitGB,omitnil,omitempty" name:"StorageLimitGB"`

	// Is expired isolation.
	Isolated *bool `json:"Isolated,omitnil,omitempty" name:"Isolated"`

	// Renewal flag. 0: manual renewal; 1: automatic renewal; 2: non-renewal upon expiration.
	AutoRenew *uint64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// Specifies the super administrator account. if no selection query is made for the instance-bound super administrator account or the current instance is not bound to a super administrator account, this attribute is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SuperAdminAccount *string `json:"SuperAdminAccount,omitnil,omitempty" name:"SuperAdminAccount"`

	// In selected bucket mode, shows bucket usage.
	Bucket *string `json:"Bucket,omitnil,omitempty" name:"Bucket"`

	// Specifies the log bucket usage in selected mode.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LogBucket *string `json:"LogBucket,omitnil,omitempty" name:"LogBucket"`
}

type Library struct {
	// Media library ID.
	LibraryId *string `json:"LibraryId,omitnil,omitempty" name:"LibraryId"`

	// Specifies the friendly name of the media library.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

	// Specifies the COS storage bucket bound to the media library.
	BucketName *string `json:"BucketName,omitnil,omitempty" name:"BucketName"`

	// Specifies the region where the COS bucket bound to the media library is located.
	BucketRegion *string `json:"BucketRegion,omitnil,omitempty" name:"BucketRegion"`

	// Specifies the access domain of the business API for the media library.
	AccessDomain *string `json:"AccessDomain,omitnil,omitempty" name:"AccessDomain"`

	// Creation time of the media library.
	CreationTime *string `json:"CreationTime,omitnil,omitempty" name:"CreationTime"`

	// Media library configuration item.
	LibraryExtension *LibraryExtension `json:"LibraryExtension,omitnil,omitempty" name:"LibraryExtension"`

	// Media library amount in Bytes. since the number type has precision limitations, this field is a String type.
	Size *string `json:"Size,omitnil,omitempty" name:"Size"`

	// Number of media library directories. since the String type is used due to precision limitations of the number type, this field is of String type.
	DirNum *string `json:"DirNum,omitnil,omitempty" name:"DirNum"`

	// Number of files in the media library. since the String type is used due to precision limitations of the number type, this field is of String type.
	FileNum *string `json:"FileNum,omitnil,omitempty" name:"FileNum"`
}

type LibraryExtension struct {
	// Specifies whether it is a file type media library that can store any type of file (true) or a media type media library that can only store images and playable video types (false). defaults to false. cannot be modified once created.
	IsFileLibrary *bool `json:"IsFileLibrary,omitnil,omitempty" name:"IsFileLibrary"`

	// true indicates a multi-tenant space media library, allowing the creation of multiple tenant spaces. false indicates a single-tenant space media library, where tenant spaces cannot be created and only the default single tenant space can be used. defaults to false. cannot be modified after the media library is created.
	IsMultiSpace *bool `json:"IsMultiSpace,omitnil,omitempty" name:"IsMultiSpace"`

	// Specifies the storage type for files saved to cloud object storage. valid values: STANDARD, STANDARD_IA, INTELLIGENT_TIERING, MAZ_STANDARD, MAZ_STANDARD_IA, and MAZ_INTELLIGENT_TIERING. defaults to STANDARD. when using a multi-AZ bucket, MAZ_ prefixed storage types for multi-AZ are automatically used, otherwise non-MAZ_ prefixed storage types for non-multi-AZ are used. when specifying INTELLIGENT TIERING storage INTELLIGENT_TIERING or MAZ_INTELLIGENT_TIERING, the bucket must have INTELLIGENT TIERING storage enabled beforehand, otherwise failure will be returned. cannot be modified after the media library is created.
	CosStorageClass *string `json:"CosStorageClass,omitnil,omitempty" name:"CosStorageClass"`

	// Specifies whether the recycle bin feature is enabled. defaults to false.
	UseRecycleBin *bool `json:"UseRecycleBin,omitnil,omitempty" name:"UseRecycleBin"`

	// Specifies the number of days to automatically delete items in the recycle bin when enabled, must not exceed 1095 (3 years). a value of 0 indicates no automatic deletion, defaults to 0. this property is null when the recycle bin is not enabled.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AutoRemoveRecycledDays *uint64 `json:"AutoRemoveRecycledDays,omitnil,omitempty" name:"AutoRemoveRecycledDays"`

	// Whether to enable the file path search feature. is false by default.
	EnableSearch *bool `json:"EnableSearch,omitnil,omitempty" name:"EnableSearch"`

	// Specifies whether to deny the configuration request when setting the space quota for a media library or tenant and the quota is less than the used storage capacity. is false by default.
	DenyOnQuotaLessThanUsage *bool `json:"DenyOnQuotaLessThanUsage,omitnil,omitempty" name:"DenyOnQuotaLessThanUsage"`

	// Specifies whether the earlier version is enabled. defaults to false.
	EnableFileHistory *bool `json:"EnableFileHistory,omitnil,omitempty" name:"EnableFileHistory"`

	// Specifies the maximum number of historical versions to retain for a single file when versioning is enabled, with a value range of 1 to 999. this property may be null when versioning is not enabled.
	// Note: This field may return null, indicating that no valid values can be obtained.
	FileHistoryCount *uint64 `json:"FileHistoryCount,omitnil,omitempty" name:"FileHistoryCount"`

	// Specifies the maximum days to retain earlier versions when versioning is enabled, with a value range of 0 to 999. when set to 0, it represents permanent retention. this property may be null when versioning is not enabled.
	// Note: This field may return null, indicating that no valid values can be obtained.
	FileHistoryExpireDay *uint64 `json:"FileHistoryExpireDay,omitnil,omitempty" name:"FileHistoryExpireDay"`

	// The maximum length of a directory or file name must not exceed 255, with a default value of 255. modifying this parameter will not affect existing directories or file names. if the value of this field is decreased, the length of existing directories or file names exceeding the target value does not change.
	MaxDirFileNameLength *uint64 `json:"MaxDirFileNameLength,omitnil,omitempty" name:"MaxDirFileNameLength"`

	// Whether public read is enabled. once enabled, read operations require no access token. it is false by default. this property is supported only in single-tenant space media libraries. otherwise, it is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsPublicRead *bool `json:"IsPublicRead,omitnil,omitempty" name:"IsPublicRead"`

	// Specifies whether the multi-album feature is enabled for the media type media library. once enabled, first-level directories (albums) can be created, and media files can only be saved in these albums. unless enabled, albums cannot be created, and media files can only be saved in the root directory. defaults to false. this property is only supported for single-tenant space media type media libraries, otherwise it is null. cannot be modified after the media library is created.
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsMultiAlbum *bool `json:"IsMultiAlbum,omitnil,omitempty" name:"IsMultiAlbum"`

	// Specifies whether the media library of the media type allows image uploads, set to true by default. this property is supported only for the media library of the media type in a single tenant space, otherwise it is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AllowPhoto *bool `json:"AllowPhoto,omitnil,omitempty" name:"AllowPhoto"`

	// Specifies the allowed extensions when the media type media library allows photo uploads. empty array by default. at this point, it will automatically determine based on the MIME type corresponding to the file extension. this property is supported only for single-tenant space media type media libraries. otherwise, the property is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AllowPhotoExtName []*string `json:"AllowPhotoExtName,omitnil,omitempty" name:"AllowPhotoExtName"`

	// Media type media library specifies whether video upload is allowed, set to true by default. this property is supported only in single tenant space media type media library, otherwise the property is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AllowVideo *bool `json:"AllowVideo,omitnil,omitempty" name:"AllowVideo"`

	// Specifies the allowed extensions when the media type media library permits video uploads. the default is an empty array, at which point it will automatically determine based on the MIME type corresponding to the file extension. this property is supported only for single-tenant space media type media libraries, otherwise it is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AllowVideoExtName []*string `json:"AllowVideoExtName,omitnil,omitempty" name:"AllowVideoExtName"`

	// Specifies the file extensions allowed in the file type media library, empty by default. at this point, all types of files are upload allowed. this property is supported only for the file type media library in a single tenant space, otherwise it is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AllowFileExtName []*string `json:"AllowFileExtName,omitnil,omitempty" name:"AllowFileExtName"`

	// Specifies whether to perform sensitive content identification during image upload. the value is false by default. this property is supported only in the single-tenant space media library, otherwise it is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	RecognizeSensitiveContent *bool `json:"RecognizeSensitiveContent,omitnil,omitempty" name:"RecognizeSensitiveContent"`
}

// Predefined struct for user
type ModifyLibraryRequestParams struct {
	// Media library ID.
	LibraryId *string `json:"LibraryId,omitnil,omitempty" name:"LibraryId"`

	// Media library name. up to 50 characters. leave empty to keep the current value.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Specifies the remark, up to 250 characters. leave it empty to keep the original value.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Media library configuration item. some parameters cannot be changed after creation and only modify passed parameters. if this parameter is not passed, no configuration item will be modified.
	LibraryExtension *LibraryExtension `json:"LibraryExtension,omitnil,omitempty" name:"LibraryExtension"`
}

type ModifyLibraryRequest struct {
	*tchttp.BaseRequest
	
	// Media library ID.
	LibraryId *string `json:"LibraryId,omitnil,omitempty" name:"LibraryId"`

	// Media library name. up to 50 characters. leave empty to keep the current value.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Specifies the remark, up to 250 characters. leave it empty to keep the original value.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Media library configuration item. some parameters cannot be changed after creation and only modify passed parameters. if this parameter is not passed, no configuration item will be modified.
	LibraryExtension *LibraryExtension `json:"LibraryExtension,omitnil,omitempty" name:"LibraryExtension"`
}

func (r *ModifyLibraryRequest) 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 *ModifyLibraryRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "LibraryId")
	delete(f, "Name")
	delete(f, "Remark")
	delete(f, "LibraryExtension")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyLibraryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyLibraryResponseParams 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 ModifyLibraryResponse struct {
	*tchttp.BaseResponse
	Response *ModifyLibraryResponseParams `json:"Response"`
}

func (r *ModifyLibraryResponse) 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 *ModifyLibraryResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendSmsCodeRequestParams struct {
	// Captcha target, currently supported: rebind super administrator account, BindSuperAdmin; trial version business upgrade, ChannelUpdateVerify.
	Purpose *string `json:"Purpose,omitnil,omitempty" name:"Purpose"`

	// Specifies the mobile number as the super admin account.
	PhoneNumber *string `json:"PhoneNumber,omitnil,omitempty" name:"PhoneNumber"`

	// Official cloud disk instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Specifies the country code of the mobile number that serves as the super administrator account. defaults to +86.
	CountryCode *string `json:"CountryCode,omitnil,omitempty" name:"CountryCode"`
}

type SendSmsCodeRequest struct {
	*tchttp.BaseRequest
	
	// Captcha target, currently supported: rebind super administrator account, BindSuperAdmin; trial version business upgrade, ChannelUpdateVerify.
	Purpose *string `json:"Purpose,omitnil,omitempty" name:"Purpose"`

	// Specifies the mobile number as the super admin account.
	PhoneNumber *string `json:"PhoneNumber,omitnil,omitempty" name:"PhoneNumber"`

	// Official cloud disk instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Specifies the country code of the mobile number that serves as the super administrator account. defaults to +86.
	CountryCode *string `json:"CountryCode,omitnil,omitempty" name:"CountryCode"`
}

func (r *SendSmsCodeRequest) 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 *SendSmsCodeRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Purpose")
	delete(f, "PhoneNumber")
	delete(f, "InstanceId")
	delete(f, "CountryCode")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SendSmsCodeRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendSmsCodeResponseParams 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 SendSmsCodeResponse struct {
	*tchttp.BaseResponse
	Response *SendSmsCodeResponseParams `json:"Response"`
}

func (r *SendSmsCodeResponse) 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 *SendSmsCodeResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type TrafficPackage struct {
	// Specifies the instance ID offset by the traffic package.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Dedicated domain name. if the instance has no dedicated domain name, this attribute is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`

	// Source type of the traffic package. valid values: 0 (purchase), 1 (complimentary).
	Type *uint64 `json:"Type,omitnil,omitempty" name:"Type"`

	// Total traffic in Bytes. since the number type has precision limitations, this field is a String type.
	Size *string `json:"Size,omitnil,omitempty" name:"Size"`

	// Total traffic in GB.
	SizeGB *uint64 `json:"SizeGB,omitnil,omitempty" name:"SizeGB"`

	// Remaining traffic in Bytes. this field is of String type due to precision limitations of numeric data types.
	Remain *string `json:"Remain,omitnil,omitempty" name:"Remain"`

	// Used traffic in Bytes. since the number type has precision limitations, this field is a String type.
	Used *string `json:"Used,omitnil,omitempty" name:"Used"`

	// Usage percentage. since the String type is used due to precision limitations of the number type, this field is of String type.
	UsedPercentage *string `json:"UsedPercentage,omitnil,omitempty" name:"UsedPercentage"`

	// Effective time, the order time of the traffic package.
	EffectiveTime *string `json:"EffectiveTime,omitnil,omitempty" name:"EffectiveTime"`

	// Expiration time, which is the expiration time of the offset instance. if the traffic package offsets a pay-as-you-go or permanently valid instance, this attribute is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`
}

// Predefined struct for user
type VerifySmsCodeRequestParams struct {
	// Captcha target, currently supported: rebind super administrator account, BindSuperAdmin; trial version business upgrade verification, ChannelUpdateVerify.
	Purpose *string `json:"Purpose,omitnil,omitempty" name:"Purpose"`

	// Specifies the mobile number as the super admin account.
	PhoneNumber *string `json:"PhoneNumber,omitnil,omitempty" name:"PhoneNumber"`

	// Specifies the sms verification code.
	Code *string `json:"Code,omitnil,omitempty" name:"Code"`

	// Official cloud disk instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Specifies the country code of the mobile number that serves as the super administrator account. defaults to +86.
	CountryCode *string `json:"CountryCode,omitnil,omitempty" name:"CountryCode"`
}

type VerifySmsCodeRequest struct {
	*tchttp.BaseRequest
	
	// Captcha target, currently supported: rebind super administrator account, BindSuperAdmin; trial version business upgrade verification, ChannelUpdateVerify.
	Purpose *string `json:"Purpose,omitnil,omitempty" name:"Purpose"`

	// Specifies the mobile number as the super admin account.
	PhoneNumber *string `json:"PhoneNumber,omitnil,omitempty" name:"PhoneNumber"`

	// Specifies the sms verification code.
	Code *string `json:"Code,omitnil,omitempty" name:"Code"`

	// Official cloud disk instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Specifies the country code of the mobile number that serves as the super administrator account. defaults to +86.
	CountryCode *string `json:"CountryCode,omitnil,omitempty" name:"CountryCode"`
}

func (r *VerifySmsCodeRequest) 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 *VerifySmsCodeRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Purpose")
	delete(f, "PhoneNumber")
	delete(f, "Code")
	delete(f, "InstanceId")
	delete(f, "CountryCode")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "VerifySmsCodeRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type VerifySmsCodeResponseParams 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 VerifySmsCodeResponse struct {
	*tchttp.BaseResponse
	Response *VerifySmsCodeResponseParams `json:"Response"`
}

func (r *VerifySmsCodeResponse) 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 *VerifySmsCodeResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}