diff --git a/CHANGELOG.md b/CHANGELOG.md index bee3e3e572..e3657641b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,298 @@ +# 0.1.127 2024-12-12 + +### HuaweiCloud SDK AOS + +- _API Version_ + - V1 +- _Features_ + - Support the following APIs: + - `ListPrivateModules` + - `CreatePrivateModule` + - `DeletePrivateModule` + - `ShowPrivateModuleMetadata` + - `UpdatePrivateModuleMetadata` + - `ListPrivateModuleVersions` + - `CreatePrivateModuleVersion` + - `ShowPrivateModuleVersionContent` + - `DeletePrivateModuleVersion` + - `ShowPrivateModuleVersionMetadata` +- _Bug Fix_ + - None +- _Change_ + - None + +### HuaweiCloud SDK CCE + +- _API Version_ + - V3 +- _Features_ + - None +- _Bug Fix_ + - None +- _Change_ + - Remove the API `SyncNodePool` + +### HuaweiCloud SDK CDN + +- _API Version_ + - V2 +- _Features_ + - None +- _Bug Fix_ + - None +- _Change_ + - **ShowDomainFullConfig** + - changes of response param + - `+ configs.cache_rules.force_cache` + - **UpdateDomainFullConfig** + - changes of request param + - `+ configs.cache_rules.force_cache` + +### HuaweiCloud SDK CSMS + +- _API Version_ + - V1 +- _Features_ + - None +- _Bug Fix_ + - None +- _Change_ + - **ListUsers** + - changes of request param + - `+ user_info` + - `- user_name` + +### HuaweiCloud SDK DAS + +- _API Version_ + - V3 +- _Features_ + - None +- _Bug Fix_ + - None +- _Change_ + - **ShowInstanceHealthReport** + - changes of response param + - `+ disk_stat.analyze_success` + - `+ disk_stat.error_message` + - `+ performance_stat.analyze_success` + - `+ performance_stat.error_message` + +### HuaweiCloud SDK DC + +- _API Version_ + - V3 +- _Features_ + - None +- _Bug Fix_ + - None +- _Change_ + - **UpdateVifPeer** + - changes of response param + - `+ request_id` + - **CreateVifPeer** + - changes of response param + - `+ request_id` + +### HuaweiCloud SDK DDS + +- _API Version_ + - V3 +- _Features_ + - None +- _Bug Fix_ + - None +- _Change_ + - **ResizeInstance** + - changes of request param + - `+ resize.target_ids` + +### HuaweiCloud SDK GaussDB + +- _API Version_ + - V3 +- _Features_ + - None +- _Bug Fix_ + - None +- _Change_ + - **CreateStarrocksInstance** + - changes of request param + - `+ pay_info` + - `+ region_code` + +### HuaweiCloud SDK LTS + +- _API Version_ + - V2 +- _Features_ + - Support the API `ListLogContext` +- _Bug Fix_ + - None +- _Change_ + - **CreateLogStreamIndex** + - changes of request param + - `+ fields.ltsSubFieldsInfoList` + - `+ fields.fieldType: enum value [json]` + - **ListAccessConfig** + - changes of response param + - `+ result.access_config_detail.repeat_collect` + - `+ result.access_config_detail.system_fields` + - `+ result.access_config_detail.custom_key_value` + - `+ result.access_config_detail.includeLabelsLogical` + - `+ result.access_config_detail.excludeLabelsLogical` + - `+ result.access_config_detail.includeK8sLabelsLogical` + - `+ result.access_config_detail.excludeK8sLabelsLogical` + - `+ result.access_config_detail.includeEnvsLogical` + - `+ result.access_config_detail.excludeEnvsLogical` + - **UpdateAccessConfig** + - changes of request param + - `+ access_config_detail.system_fields` + - `+ access_config_detail.custom_key_value` + - `+ access_config_detail.includeLabelsLogical` + - `+ access_config_detail.excludeLabelsLogical` + - `+ access_config_detail.includeK8sLabelsLogical` + - `+ access_config_detail.excludeK8sLabelsLogical` + - `+ access_config_detail.includeEnvsLogical` + - `+ access_config_detail.excludeEnvsLogical` + - changes of response param + - `+ access_config_detail.repeat_collect` + - `+ access_config_detail.system_fields` + - `+ access_config_detail.custom_key_value` + - `+ access_config_detail.includeLabelsLogical` + - `+ access_config_detail.excludeLabelsLogical` + - `+ access_config_detail.includeK8sLabelsLogical` + - `+ access_config_detail.excludeK8sLabelsLogical` + - `+ access_config_detail.includeEnvsLogical` + - `+ access_config_detail.excludeEnvsLogical` + - **CreateAccessConfig** + - changes of request param + - `+ access_config_detail.repeat_collect` + - `+ access_config_detail.system_fields` + - `+ access_config_detail.custom_key_value` + - `+ access_config_detail.includeLabelsLogical` + - `+ access_config_detail.excludeLabelsLogical` + - `+ access_config_detail.includeK8sLabelsLogical` + - `+ access_config_detail.excludeK8sLabelsLogical` + - `+ access_config_detail.includeEnvsLogical` + - `+ access_config_detail.excludeEnvsLogical` + - changes of response param + - `+ access_config_detail.repeat_collect` + - `+ access_config_detail.system_fields` + - `+ access_config_detail.custom_key_value` + - `+ access_config_detail.includeLabelsLogical` + - `+ access_config_detail.excludeLabelsLogical` + - `+ access_config_detail.includeK8sLabelsLogical` + - `+ access_config_detail.excludeK8sLabelsLogical` + - `+ access_config_detail.includeEnvsLogical` + - `+ access_config_detail.excludeEnvsLogical` + - **DeleteAccessConfig** + - changes of response param + - `+ result.access_config_detail.repeat_collect` + - `+ result.access_config_detail.system_fields` + - `+ result.access_config_detail.custom_key_value` + - `+ result.access_config_detail.includeLabelsLogical` + - `+ result.access_config_detail.excludeLabelsLogical` + - `+ result.access_config_detail.includeK8sLabelsLogical` + - `+ result.access_config_detail.excludeK8sLabelsLogical` + - `+ result.access_config_detail.includeEnvsLogical` + - `+ result.access_config_detail.excludeEnvsLogical` + +### HuaweiCloud SDK MetaStudio + +- _API Version_ + - V1 +- _Features_ + - None +- _Bug Fix_ + - None +- _Change_ + - **UpdateLivePlatform** + - changes of request param + - `* auth_config: object -> object` + - `* body: object -> object` + - **Show2dModelTrainingJob** + - changes of response param + - `+ operation_logs.error_code` + - **ListSmartChatRooms** + - changes of response param + - `+ smart_chat_rooms.voice_config_list` + - `+ smart_chat_rooms.default_language` + - **CreateSmartChatRoom** + - changes of request param + - `+ voice_config_list` + - `+ default_language` + - `+ video_config.is_end_at_first_frame` + - **ShowSmartChatRoom** + - changes of response param + - `+ default_language` + - `+ voice_config_list` + - `+ video_config.is_end_at_first_frame` + - **UpdateSmartChatRoom** + - changes of request param + - `+ voice_config_list` + - `+ default_language` + - `+ video_config.is_end_at_first_frame` + - changes of response param + - `+ default_language` + - `+ voice_config_list` + - `+ video_config.is_end_at_first_frame` + - **ShowVoiceTrainingJob** + - changes of response param + - `+ output_language` + - **ShowAsset** + - changes of response param + - `+ asset_extra_meta.image_meta.frame_rate` + - `+ asset_extra_meta.image_meta.duration` + - **UpdateDigitalAsset** + - changes of request param + - `+ asset_extra_meta.image_meta.frame_rate` + - `+ asset_extra_meta.image_meta.duration` + - changes of response param + - `+ asset_extra_meta.image_meta.frame_rate` + - `+ asset_extra_meta.image_meta.duration` + - **StartSmartLive** + - changes of request param + - `+ video_config.is_end_at_first_frame` + - **ListVoiceTrainingJob** + - changes of response param + - `+ output_language` + - `+ jobs.output_language` + - **CreateDigitalAsset** + - changes of request param + - `+ asset_extra_meta.image_meta.frame_rate` + - `+ asset_extra_meta.image_meta.duration` + - **ListAssets** + - changes of response param + - `+ assets.asset_extra_meta.image_meta.frame_rate` + - `+ assets.asset_extra_meta.image_meta.duration` + - **Create2DDigitalHumanVideo** + - changes of request param + - `+ video_config.is_end_at_first_frame` + - **Show2DDigitalHumanVideo** + - changes of response param + - `+ video_config.is_end_at_first_frame` + - **CreateSmartLiveRoom** + - changes of request param + - `+ video_config.is_end_at_first_frame` + - **ShowSmartLiveRoom** + - changes of response param + - `+ video_config.is_end_at_first_frame` + - **UpdateSmartLiveRoom** + - changes of request param + - `+ video_config.is_end_at_first_frame` + - changes of response param + - `+ video_config.is_end_at_first_frame` + - **CreateVideoScripts** + - changes of request param + - `+ video_config.is_end_at_first_frame` + - **ShowVideoScript** + - changes of response param + - `+ video_config.is_end_at_first_frame` + - **UpdateVideoScript** + - changes of request param + - `+ video_config.is_end_at_first_frame` + # 0.1.126 2024-12-10 ### HuaweiCloud SDK APIG diff --git a/CHANGELOG_CN.md b/CHANGELOG_CN.md index 050e38903c..cf5535eb8c 100644 --- a/CHANGELOG_CN.md +++ b/CHANGELOG_CN.md @@ -1,3 +1,298 @@ +# 0.1.127 2024-12-12 + +### HuaweiCloud SDK AOS + +- _接口版本_ + - V1 +- _新增特性_ + - 支持以下接口: + - `ListPrivateModules` + - `CreatePrivateModule` + - `DeletePrivateModule` + - `ShowPrivateModuleMetadata` + - `UpdatePrivateModuleMetadata` + - `ListPrivateModuleVersions` + - `CreatePrivateModuleVersion` + - `ShowPrivateModuleVersionContent` + - `DeletePrivateModuleVersion` + - `ShowPrivateModuleVersionMetadata` +- _解决问题_ + - 无 +- _特性变更_ + - 无 + +### HuaweiCloud SDK CCE + +- _接口版本_ + - V3 +- _新增特性_ + - 无 +- _解决问题_ + - 无 +- _特性变更_ + - 移除接口`SyncNodePool` + +### HuaweiCloud SDK CDN + +- _接口版本_ + - V2 +- _新增特性_ + - 无 +- _解决问题_ + - 无 +- _特性变更_ + - **ShowDomainFullConfig** + - 响应参数变更 + - `+ configs.cache_rules.force_cache` + - **UpdateDomainFullConfig** + - 请求参数变更 + - `+ configs.cache_rules.force_cache` + +### HuaweiCloud SDK CSMS + +- _接口版本_ + - V1 +- _新增特性_ + - 无 +- _解决问题_ + - 无 +- _特性变更_ + - **ListUsers** + - 请求参数变更 + - `+ user_info` + - `- user_name` + +### HuaweiCloud SDK DAS + +- _接口版本_ + - V3 +- _新增特性_ + - 无 +- _解决问题_ + - 无 +- _特性变更_ + - **ShowInstanceHealthReport** + - 响应参数变更 + - `+ disk_stat.analyze_success` + - `+ disk_stat.error_message` + - `+ performance_stat.analyze_success` + - `+ performance_stat.error_message` + +### HuaweiCloud SDK DC + +- _接口版本_ + - V3 +- _新增特性_ + - 无 +- _解决问题_ + - 无 +- _特性变更_ + - **UpdateVifPeer** + - 响应参数变更 + - `+ request_id` + - **CreateVifPeer** + - 响应参数变更 + - `+ request_id` + +### HuaweiCloud SDK DDS + +- _接口版本_ + - V3 +- _新增特性_ + - 无 +- _解决问题_ + - 无 +- _特性变更_ + - **ResizeInstance** + - 请求参数变更 + - `+ resize.target_ids` + +### HuaweiCloud SDK GaussDB + +- _接口版本_ + - V3 +- _新增特性_ + - 无 +- _解决问题_ + - 无 +- _特性变更_ + - **CreateStarrocksInstance** + - 请求参数变更 + - `+ pay_info` + - `+ region_code` + +### HuaweiCloud SDK LTS + +- _接口版本_ + - V2 +- _新增特性_ + - 支持接口`ListLogContext` +- _解决问题_ + - 无 +- _特性变更_ + - **CreateLogStreamIndex** + - 请求参数变更 + - `+ fields.ltsSubFieldsInfoList` + - `+ fields.fieldType: enum value [json]` + - **ListAccessConfig** + - 响应参数变更 + - `+ result.access_config_detail.repeat_collect` + - `+ result.access_config_detail.system_fields` + - `+ result.access_config_detail.custom_key_value` + - `+ result.access_config_detail.includeLabelsLogical` + - `+ result.access_config_detail.excludeLabelsLogical` + - `+ result.access_config_detail.includeK8sLabelsLogical` + - `+ result.access_config_detail.excludeK8sLabelsLogical` + - `+ result.access_config_detail.includeEnvsLogical` + - `+ result.access_config_detail.excludeEnvsLogical` + - **UpdateAccessConfig** + - 请求参数变更 + - `+ access_config_detail.system_fields` + - `+ access_config_detail.custom_key_value` + - `+ access_config_detail.includeLabelsLogical` + - `+ access_config_detail.excludeLabelsLogical` + - `+ access_config_detail.includeK8sLabelsLogical` + - `+ access_config_detail.excludeK8sLabelsLogical` + - `+ access_config_detail.includeEnvsLogical` + - `+ access_config_detail.excludeEnvsLogical` + - 响应参数变更 + - `+ access_config_detail.repeat_collect` + - `+ access_config_detail.system_fields` + - `+ access_config_detail.custom_key_value` + - `+ access_config_detail.includeLabelsLogical` + - `+ access_config_detail.excludeLabelsLogical` + - `+ access_config_detail.includeK8sLabelsLogical` + - `+ access_config_detail.excludeK8sLabelsLogical` + - `+ access_config_detail.includeEnvsLogical` + - `+ access_config_detail.excludeEnvsLogical` + - **CreateAccessConfig** + - 请求参数变更 + - `+ access_config_detail.repeat_collect` + - `+ access_config_detail.system_fields` + - `+ access_config_detail.custom_key_value` + - `+ access_config_detail.includeLabelsLogical` + - `+ access_config_detail.excludeLabelsLogical` + - `+ access_config_detail.includeK8sLabelsLogical` + - `+ access_config_detail.excludeK8sLabelsLogical` + - `+ access_config_detail.includeEnvsLogical` + - `+ access_config_detail.excludeEnvsLogical` + - 响应参数变更 + - `+ access_config_detail.repeat_collect` + - `+ access_config_detail.system_fields` + - `+ access_config_detail.custom_key_value` + - `+ access_config_detail.includeLabelsLogical` + - `+ access_config_detail.excludeLabelsLogical` + - `+ access_config_detail.includeK8sLabelsLogical` + - `+ access_config_detail.excludeK8sLabelsLogical` + - `+ access_config_detail.includeEnvsLogical` + - `+ access_config_detail.excludeEnvsLogical` + - **DeleteAccessConfig** + - 响应参数变更 + - `+ result.access_config_detail.repeat_collect` + - `+ result.access_config_detail.system_fields` + - `+ result.access_config_detail.custom_key_value` + - `+ result.access_config_detail.includeLabelsLogical` + - `+ result.access_config_detail.excludeLabelsLogical` + - `+ result.access_config_detail.includeK8sLabelsLogical` + - `+ result.access_config_detail.excludeK8sLabelsLogical` + - `+ result.access_config_detail.includeEnvsLogical` + - `+ result.access_config_detail.excludeEnvsLogical` + +### HuaweiCloud SDK MetaStudio + +- _接口版本_ + - V1 +- _新增特性_ + - 无 +- _解决问题_ + - 无 +- _特性变更_ + - **UpdateLivePlatform** + - 请求参数变更 + - `* auth_config: object -> object` + - `* body: object -> object` + - **Show2dModelTrainingJob** + - 响应参数变更 + - `+ operation_logs.error_code` + - **ListSmartChatRooms** + - 响应参数变更 + - `+ smart_chat_rooms.voice_config_list` + - `+ smart_chat_rooms.default_language` + - **CreateSmartChatRoom** + - 请求参数变更 + - `+ voice_config_list` + - `+ default_language` + - `+ video_config.is_end_at_first_frame` + - **ShowSmartChatRoom** + - 响应参数变更 + - `+ default_language` + - `+ voice_config_list` + - `+ video_config.is_end_at_first_frame` + - **UpdateSmartChatRoom** + - 请求参数变更 + - `+ voice_config_list` + - `+ default_language` + - `+ video_config.is_end_at_first_frame` + - 响应参数变更 + - `+ default_language` + - `+ voice_config_list` + - `+ video_config.is_end_at_first_frame` + - **ShowVoiceTrainingJob** + - 响应参数变更 + - `+ output_language` + - **ShowAsset** + - 响应参数变更 + - `+ asset_extra_meta.image_meta.frame_rate` + - `+ asset_extra_meta.image_meta.duration` + - **UpdateDigitalAsset** + - 请求参数变更 + - `+ asset_extra_meta.image_meta.frame_rate` + - `+ asset_extra_meta.image_meta.duration` + - 响应参数变更 + - `+ asset_extra_meta.image_meta.frame_rate` + - `+ asset_extra_meta.image_meta.duration` + - **StartSmartLive** + - 请求参数变更 + - `+ video_config.is_end_at_first_frame` + - **ListVoiceTrainingJob** + - 响应参数变更 + - `+ output_language` + - `+ jobs.output_language` + - **CreateDigitalAsset** + - 请求参数变更 + - `+ asset_extra_meta.image_meta.frame_rate` + - `+ asset_extra_meta.image_meta.duration` + - **ListAssets** + - 响应参数变更 + - `+ assets.asset_extra_meta.image_meta.frame_rate` + - `+ assets.asset_extra_meta.image_meta.duration` + - **Create2DDigitalHumanVideo** + - 请求参数变更 + - `+ video_config.is_end_at_first_frame` + - **Show2DDigitalHumanVideo** + - 响应参数变更 + - `+ video_config.is_end_at_first_frame` + - **CreateSmartLiveRoom** + - 请求参数变更 + - `+ video_config.is_end_at_first_frame` + - **ShowSmartLiveRoom** + - 响应参数变更 + - `+ video_config.is_end_at_first_frame` + - **UpdateSmartLiveRoom** + - 请求参数变更 + - `+ video_config.is_end_at_first_frame` + - 响应参数变更 + - `+ video_config.is_end_at_first_frame` + - **CreateVideoScripts** + - 请求参数变更 + - `+ video_config.is_end_at_first_frame` + - **ShowVideoScript** + - 响应参数变更 + - `+ video_config.is_end_at_first_frame` + - **UpdateVideoScript** + - 请求参数变更 + - `+ video_config.is_end_at_first_frame` + # 0.1.126 2024-12-10 ### HuaweiCloud SDK APIG diff --git a/VERSION b/VERSION index 9e7e837e95..74799d81f3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.126 +0.1.127 diff --git a/services/aos/v1/aos_client.go b/services/aos/v1/aos_client.go index fb0cc6da3b..da23c98049 100644 --- a/services/aos/v1/aos_client.go +++ b/services/aos/v1/aos_client.go @@ -696,6 +696,303 @@ func (c *AosClient) UpdatePrivateHookMetadataInvoker(request *model.UpdatePrivat return &UpdatePrivateHookMetadataInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} } +// CreatePrivateModule 创建私有模块 +// +// 创建私有模块(CreatePrivateModule) +// +// 创建一个私有的空模块。如果用户给予了module_version与module_uri,则在创建私有模块的同时,在私有模块下创建一个私有模块版本。 +// - 模块允许用户将可复用的代码编辑在一起供模块使用。 +// - 如果同名私有模块在当前账户中已经存在,则会返回失败。 +// - 版本号遵循语义化版本号(Semantic Version),为用户自定义。 +// - 资源编排服务只会对模块进行浅校验,如文件大小、是否可以解压、文件数量等。并不会深度校验,即不会做语法类校验。 +// +// 以HCL格式的模板为例,模板中引用私有模块的语法如下: +// ``` +// +// module \"my_hello_word_module\" { +// source = \"rf://rfs.{region_id}.myhuaweicloud.com/private/{domain_id}/{module_name}?version=={module_version}\" +// } +// +// ``` +// +// 以JSON格式的模板为例,模板中引用私有模块的语法如下: +// ``` +// +// { +// \"module\": { +// \"my_hello_word_module\": { +// \"source\": \"rf://rfs.{region_id}.myhuaweicloud.com/private/{domain_id}/{module_name}?version=={module_version}\" +// } +// } +// } +// +// ``` +// 对应上述两个例子中的模块链接(source字段的内容)可以调用ShowPrivateModuleVersionMetadata返回的module_source字段中获取 +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) CreatePrivateModule(request *model.CreatePrivateModuleRequest) (*model.CreatePrivateModuleResponse, error) { + requestDef := GenReqDefForCreatePrivateModule() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.CreatePrivateModuleResponse), nil + } +} + +// CreatePrivateModuleInvoker 创建私有模块 +func (c *AosClient) CreatePrivateModuleInvoker(request *model.CreatePrivateModuleRequest) *CreatePrivateModuleInvoker { + requestDef := GenReqDefForCreatePrivateModule() + return &CreatePrivateModuleInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// CreatePrivateModuleVersion 创建私有模块版本 +// +// 创建私有模块版本(CreatePrivateModuleVersion) +// +// 创建新的私有模块版本 +// +// - 模块的版本号需遵循语义化版本号(Semantic Version),为用户自定义。 +// - 如果module_name和module_id同时存在,则资源编排服务会检查是否两个匹配,如果不匹配则会返回400。 +// - 资源编排服务只会对模块进行浅校验,如文件大小、是否可以解压、文件数量等。并不会深度校验,即不会做语法类校验。 +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) CreatePrivateModuleVersion(request *model.CreatePrivateModuleVersionRequest) (*model.CreatePrivateModuleVersionResponse, error) { + requestDef := GenReqDefForCreatePrivateModuleVersion() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.CreatePrivateModuleVersionResponse), nil + } +} + +// CreatePrivateModuleVersionInvoker 创建私有模块版本 +func (c *AosClient) CreatePrivateModuleVersionInvoker(request *model.CreatePrivateModuleVersionRequest) *CreatePrivateModuleVersionInvoker { + requestDef := GenReqDefForCreatePrivateModuleVersion() + return &CreatePrivateModuleVersionInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// DeletePrivateModule 删除私有模块 +// +// 删除私有模块(DeletePrivateModule) +// +// 删除某个私有模块以及私有模块下的全部模块版本 +// +// - 如果module_name和module_id同时存在,则资源编排服务会检查是否两个匹配,如果不匹配则会返回400。 +// +// **请谨慎操作,删除私有模块将会删除该私有模块下的所有的模块版本。** +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) DeletePrivateModule(request *model.DeletePrivateModuleRequest) (*model.DeletePrivateModuleResponse, error) { + requestDef := GenReqDefForDeletePrivateModule() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.DeletePrivateModuleResponse), nil + } +} + +// DeletePrivateModuleInvoker 删除私有模块 +func (c *AosClient) DeletePrivateModuleInvoker(request *model.DeletePrivateModuleRequest) *DeletePrivateModuleInvoker { + requestDef := GenReqDefForDeletePrivateModule() + return &DeletePrivateModuleInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// DeletePrivateModuleVersion 删除私有模块版本 +// +// 删除私有模块版本(DeletePrivateModuleVersion) +// +// 删除某个私有模块版本 +// +// - 如果module_name和module_id同时存在,则资源编排服务会检查是否两个匹配,如果不匹配则会返回400。 +// +// **请谨慎操作** +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) DeletePrivateModuleVersion(request *model.DeletePrivateModuleVersionRequest) (*model.DeletePrivateModuleVersionResponse, error) { + requestDef := GenReqDefForDeletePrivateModuleVersion() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.DeletePrivateModuleVersionResponse), nil + } +} + +// DeletePrivateModuleVersionInvoker 删除私有模块版本 +func (c *AosClient) DeletePrivateModuleVersionInvoker(request *model.DeletePrivateModuleVersionRequest) *DeletePrivateModuleVersionInvoker { + requestDef := GenReqDefForDeletePrivateModuleVersion() + return &DeletePrivateModuleVersionInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// ListPrivateModuleVersions 列举私有模块版本 +// +// 列举私有模块版本(ListPrivateModuleVersions) +// +// 列举所选择的私有模块中所有的模块版本信息。 +// +// - 可以使用sort_key和sort_dir两个关键字对返回结果按创建时间(create_time)进行排序。给予的sort_key和sort_dir数量须一致,否则返回400。如果未给予sort_key和sort_dir,则默认按照创建时间降序排序。 +// - 如果module_name和module_id同时存在,则资源编排服务会检查是否两个匹配,如果不匹配则会返回400。 +// - 如果模块不存在则返回404。 +// +// # ListPrivateModuleVersions返回的只有摘要信息(具体摘要信息见ListPrivateModuleVersionsResponseBody),如果用户需要详细的模块版本元数据请调用ShowPrivateModuleVersionMetadata +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) ListPrivateModuleVersions(request *model.ListPrivateModuleVersionsRequest) (*model.ListPrivateModuleVersionsResponse, error) { + requestDef := GenReqDefForListPrivateModuleVersions() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.ListPrivateModuleVersionsResponse), nil + } +} + +// ListPrivateModuleVersionsInvoker 列举私有模块版本 +func (c *AosClient) ListPrivateModuleVersionsInvoker(request *model.ListPrivateModuleVersionsRequest) *ListPrivateModuleVersionsInvoker { + requestDef := GenReqDefForListPrivateModuleVersions() + return &ListPrivateModuleVersionsInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// ListPrivateModules 列举私有模块 +// +// 列举私有模块(ListPrivateModules) +// +// 列举当前局点下用户所有的私有模块。 +// +// - 可以使用sort_key和sort_dir两个关键字对返回结果按创建时间(create_time)进行排序。给予的sort_key和sort_dir数量须一致,否则返回400。如果未给予sort_key和sort_dir,则默认按照创建时间降序排序。 +// - 如果当前用户下没有任何私有模块,则返回空list。 +// - 如果需要某个模块的所有版本信息,可以调用ListModuleVersions。 +// +// # ListPrivateModules返回的只有摘要信息(具体摘要信息见ListPrivateModulesResponseBody),如果用户需要详细的模块元数据请调用ShowPrivateModuleMetadata +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) ListPrivateModules(request *model.ListPrivateModulesRequest) (*model.ListPrivateModulesResponse, error) { + requestDef := GenReqDefForListPrivateModules() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.ListPrivateModulesResponse), nil + } +} + +// ListPrivateModulesInvoker 列举私有模块 +func (c *AosClient) ListPrivateModulesInvoker(request *model.ListPrivateModulesRequest) *ListPrivateModulesInvoker { + requestDef := GenReqDefForListPrivateModules() + return &ListPrivateModulesInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// ShowPrivateModuleMetadata 获取私有模块元数据 +// +// 获取私有模块元数据(ShowPrivateModuleMetadata) +// +// 获取当前私有模块的元数据信息 +// +// - 具体返回的信息见ShowPrivateModuleMetadataResponseBody,如果想查看私有模块下全部模块版本,请调用ListPrivateModuleVersions。 +// - 如果module_name和module_id同时存在,则资源编排服务会检查是否两个匹配,如果不匹配则会返回400。 +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) ShowPrivateModuleMetadata(request *model.ShowPrivateModuleMetadataRequest) (*model.ShowPrivateModuleMetadataResponse, error) { + requestDef := GenReqDefForShowPrivateModuleMetadata() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.ShowPrivateModuleMetadataResponse), nil + } +} + +// ShowPrivateModuleMetadataInvoker 获取私有模块元数据 +func (c *AosClient) ShowPrivateModuleMetadataInvoker(request *model.ShowPrivateModuleMetadataRequest) *ShowPrivateModuleMetadataInvoker { + requestDef := GenReqDefForShowPrivateModuleMetadata() + return &ShowPrivateModuleMetadataInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// ShowPrivateModuleVersionContent 获取私有模块版本内容 +// +// 获取私有模块版本内容(ShowPrivateModuleVersionContent) +// +// 获取指定私有模块对应版本的内容。 +// +// - 如果获取成功,则以临时重定向形式返回模块下载链接(OBS Pre Signed地址,有效期为5分钟),大多数的客户端会进行自动重定向并下载模块; +// - 如果未进行自动重定向,请参考HTTP的重定向规则获取模块下载链接,手动下载模块。 +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) ShowPrivateModuleVersionContent(request *model.ShowPrivateModuleVersionContentRequest) (*model.ShowPrivateModuleVersionContentResponse, error) { + requestDef := GenReqDefForShowPrivateModuleVersionContent() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.ShowPrivateModuleVersionContentResponse), nil + } +} + +// ShowPrivateModuleVersionContentInvoker 获取私有模块版本内容 +func (c *AosClient) ShowPrivateModuleVersionContentInvoker(request *model.ShowPrivateModuleVersionContentRequest) *ShowPrivateModuleVersionContentInvoker { + requestDef := GenReqDefForShowPrivateModuleVersionContent() + return &ShowPrivateModuleVersionContentInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// ShowPrivateModuleVersionMetadata 获取私有模块版本元数据 +// +// 获取私有模块版本元数据(ShowPrivateModuleVersionMetadata) +// +// 获取当前私有模块对应的版本的元数据信息 +// +// - 具体返回的信息见ShowPrivateModuleVersionMetadataResponseBody。 +// - 如果module_name和module_id同时存在,则资源编排服务会检查是否两个匹配,如果不匹配则会返回400。 +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) ShowPrivateModuleVersionMetadata(request *model.ShowPrivateModuleVersionMetadataRequest) (*model.ShowPrivateModuleVersionMetadataResponse, error) { + requestDef := GenReqDefForShowPrivateModuleVersionMetadata() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.ShowPrivateModuleVersionMetadataResponse), nil + } +} + +// ShowPrivateModuleVersionMetadataInvoker 获取私有模块版本元数据 +func (c *AosClient) ShowPrivateModuleVersionMetadataInvoker(request *model.ShowPrivateModuleVersionMetadataRequest) *ShowPrivateModuleVersionMetadataInvoker { + requestDef := GenReqDefForShowPrivateModuleVersionMetadata() + return &ShowPrivateModuleVersionMetadataInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// UpdatePrivateModuleMetadata 更新私有模块元数据 +// +// 更新私有模块元数据(UpdatePrivateModuleMetadata) +// +// 更新当前私有模块的元数据信息 +// +// - 目前只支持更新私有模块的描述 +// - 如果需要创建新的版本,请调用CreatePrivateModuleVersion +// - 更新为增量更新,即如果某个参数不提供,则保持原始值 +// - 如果请求中没有需要被更新的参数,则返回400。注意:即使更新原始值和目标值一致也被认为是有效更新 +// - 更新后私有模块的更新时间(update_time)也会被更新 +// - 如果module_name和module_id同时存在,则资源编排服务会检查是否两个匹配,如果不匹配则会返回400。 +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *AosClient) UpdatePrivateModuleMetadata(request *model.UpdatePrivateModuleMetadataRequest) (*model.UpdatePrivateModuleMetadataResponse, error) { + requestDef := GenReqDefForUpdatePrivateModuleMetadata() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.UpdatePrivateModuleMetadataResponse), nil + } +} + +// UpdatePrivateModuleMetadataInvoker 更新私有模块元数据 +func (c *AosClient) UpdatePrivateModuleMetadataInvoker(request *model.UpdatePrivateModuleMetadataRequest) *UpdatePrivateModuleMetadataInvoker { + requestDef := GenReqDefForUpdatePrivateModuleMetadata() + return &UpdatePrivateModuleMetadataInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + // ContinueDeployStack 继续部署资源栈 // // 继续部署资源栈(ContinueDeployStack) diff --git a/services/aos/v1/aos_invoker.go b/services/aos/v1/aos_invoker.go index 28ab0da23c..1a2386aa56 100644 --- a/services/aos/v1/aos_invoker.go +++ b/services/aos/v1/aos_invoker.go @@ -293,6 +293,166 @@ func (i *UpdatePrivateHookMetadataInvoker) Invoke() (*model.UpdatePrivateHookMet } } +type CreatePrivateModuleInvoker struct { + *invoker.BaseInvoker +} + +func (i *CreatePrivateModuleInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *CreatePrivateModuleInvoker) Invoke() (*model.CreatePrivateModuleResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.CreatePrivateModuleResponse), nil + } +} + +type CreatePrivateModuleVersionInvoker struct { + *invoker.BaseInvoker +} + +func (i *CreatePrivateModuleVersionInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *CreatePrivateModuleVersionInvoker) Invoke() (*model.CreatePrivateModuleVersionResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.CreatePrivateModuleVersionResponse), nil + } +} + +type DeletePrivateModuleInvoker struct { + *invoker.BaseInvoker +} + +func (i *DeletePrivateModuleInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *DeletePrivateModuleInvoker) Invoke() (*model.DeletePrivateModuleResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.DeletePrivateModuleResponse), nil + } +} + +type DeletePrivateModuleVersionInvoker struct { + *invoker.BaseInvoker +} + +func (i *DeletePrivateModuleVersionInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *DeletePrivateModuleVersionInvoker) Invoke() (*model.DeletePrivateModuleVersionResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.DeletePrivateModuleVersionResponse), nil + } +} + +type ListPrivateModuleVersionsInvoker struct { + *invoker.BaseInvoker +} + +func (i *ListPrivateModuleVersionsInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *ListPrivateModuleVersionsInvoker) Invoke() (*model.ListPrivateModuleVersionsResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.ListPrivateModuleVersionsResponse), nil + } +} + +type ListPrivateModulesInvoker struct { + *invoker.BaseInvoker +} + +func (i *ListPrivateModulesInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *ListPrivateModulesInvoker) Invoke() (*model.ListPrivateModulesResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.ListPrivateModulesResponse), nil + } +} + +type ShowPrivateModuleMetadataInvoker struct { + *invoker.BaseInvoker +} + +func (i *ShowPrivateModuleMetadataInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *ShowPrivateModuleMetadataInvoker) Invoke() (*model.ShowPrivateModuleMetadataResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.ShowPrivateModuleMetadataResponse), nil + } +} + +type ShowPrivateModuleVersionContentInvoker struct { + *invoker.BaseInvoker +} + +func (i *ShowPrivateModuleVersionContentInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *ShowPrivateModuleVersionContentInvoker) Invoke() (*model.ShowPrivateModuleVersionContentResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.ShowPrivateModuleVersionContentResponse), nil + } +} + +type ShowPrivateModuleVersionMetadataInvoker struct { + *invoker.BaseInvoker +} + +func (i *ShowPrivateModuleVersionMetadataInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *ShowPrivateModuleVersionMetadataInvoker) Invoke() (*model.ShowPrivateModuleVersionMetadataResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.ShowPrivateModuleVersionMetadataResponse), nil + } +} + +type UpdatePrivateModuleMetadataInvoker struct { + *invoker.BaseInvoker +} + +func (i *UpdatePrivateModuleMetadataInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *UpdatePrivateModuleMetadataInvoker) Invoke() (*model.UpdatePrivateModuleMetadataResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.UpdatePrivateModuleMetadataResponse), nil + } +} + type ContinueDeployStackInvoker struct { *invoker.BaseInvoker } diff --git a/services/aos/v1/aos_meta.go b/services/aos/v1/aos_meta.go index 7ada21300b..0f6b8f2afe 100644 --- a/services/aos/v1/aos_meta.go +++ b/services/aos/v1/aos_meta.go @@ -511,6 +511,283 @@ func GenReqDefForUpdatePrivateHookMetadata() *def.HttpRequestDef { return requestDef } +func GenReqDefForCreatePrivateModule() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodPost). + WithPath("/v1/private-modules"). + WithResponse(new(model.CreatePrivateModuleResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("Body"). + WithLocationType(def.Body)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForCreatePrivateModuleVersion() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodPost). + WithPath("/v1/private-modules/{module_name}/versions"). + WithResponse(new(model.CreatePrivateModuleVersionResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleName"). + WithJsonTag("module_name"). + WithLocationType(def.Path)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("Body"). + WithLocationType(def.Body)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForDeletePrivateModule() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodDelete). + WithPath("/v1/private-modules/{module_name}"). + WithResponse(new(model.DeletePrivateModuleResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleName"). + WithJsonTag("module_name"). + WithLocationType(def.Path)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleId"). + WithJsonTag("module_id"). + WithLocationType(def.Query)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForDeletePrivateModuleVersion() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodDelete). + WithPath("/v1/private-modules/{module_name}/versions/{module_version}"). + WithResponse(new(model.DeletePrivateModuleVersionResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleName"). + WithJsonTag("module_name"). + WithLocationType(def.Path)) + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleVersion"). + WithJsonTag("module_version"). + WithLocationType(def.Path)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleId"). + WithJsonTag("module_id"). + WithLocationType(def.Query)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForListPrivateModuleVersions() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodGet). + WithPath("/v1/private-modules/{module_name}/versions"). + WithResponse(new(model.ListPrivateModuleVersionsResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleName"). + WithJsonTag("module_name"). + WithLocationType(def.Path)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleId"). + WithJsonTag("module_id"). + WithLocationType(def.Query)) + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("SortKey"). + WithJsonTag("sort_key"). + WithLocationType(def.Query)) + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("SortDir"). + WithJsonTag("sort_dir"). + WithLocationType(def.Query)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForListPrivateModules() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodGet). + WithPath("/v1/private-modules"). + WithResponse(new(model.ListPrivateModulesResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("SortKey"). + WithJsonTag("sort_key"). + WithLocationType(def.Query)) + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("SortDir"). + WithJsonTag("sort_dir"). + WithLocationType(def.Query)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForShowPrivateModuleMetadata() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodGet). + WithPath("/v1/private-modules/{module_name}/metadata"). + WithResponse(new(model.ShowPrivateModuleMetadataResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleName"). + WithJsonTag("module_name"). + WithLocationType(def.Path)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleId"). + WithJsonTag("module_id"). + WithLocationType(def.Query)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForShowPrivateModuleVersionContent() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodGet). + WithPath("/v1/private-modules/{module_name}/versions/{module_version}"). + WithResponse(new(model.ShowPrivateModuleVersionContentResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleName"). + WithJsonTag("module_name"). + WithLocationType(def.Path)) + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleVersion"). + WithJsonTag("module_version"). + WithLocationType(def.Path)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleId"). + WithJsonTag("module_id"). + WithLocationType(def.Query)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + reqDefBuilder.WithResponseField(def.NewFieldDef(). + WithName("Location"). + WithJsonTag("Location"). + WithKindName("string"). + WithLocationType(def.Header)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForShowPrivateModuleVersionMetadata() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodGet). + WithPath("/v1/private-modules/{module_name}/versions/{module_version}/metadata"). + WithResponse(new(model.ShowPrivateModuleVersionMetadataResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleName"). + WithJsonTag("module_name"). + WithLocationType(def.Path)) + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleVersion"). + WithJsonTag("module_version"). + WithLocationType(def.Path)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleId"). + WithJsonTag("module_id"). + WithLocationType(def.Query)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForUpdatePrivateModuleMetadata() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodPatch). + WithPath("/v1/private-modules/{module_name}/metadata"). + WithResponse(new(model.UpdatePrivateModuleMetadataResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ModuleName"). + WithJsonTag("module_name"). + WithLocationType(def.Path)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("ClientRequestId"). + WithJsonTag("Client-Request-Id"). + WithLocationType(def.Header)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("Body"). + WithLocationType(def.Body)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + func GenReqDefForContinueDeployStack() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). diff --git a/services/aos/v1/model/model_create_private_module_request.go b/services/aos/v1/model/model_create_private_module_request.go new file mode 100644 index 0000000000..5cc660c210 --- /dev/null +++ b/services/aos/v1/model/model_create_private_module_request.go @@ -0,0 +1,25 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// CreatePrivateModuleRequest Request Object +type CreatePrivateModuleRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + Body *CreatePrivateModuleRequestBody `json:"body,omitempty"` +} + +func (o CreatePrivateModuleRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "CreatePrivateModuleRequest struct{}" + } + + return strings.Join([]string{"CreatePrivateModuleRequest", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_create_private_module_request_body.go b/services/aos/v1/model/model_create_private_module_request_body.go new file mode 100644 index 0000000000..fa6f539270 --- /dev/null +++ b/services/aos/v1/model/model_create_private_module_request_body.go @@ -0,0 +1,34 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type CreatePrivateModuleRequestBody struct { + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义 + ModuleVersion *string `json:"module_version,omitempty"` + + // 私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。 + ModuleDescription *string `json:"module_description,omitempty"` + + // 模块(module)包的OBS地址。模块允许用户将可复用的代码编辑在一起供模块使用。 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) 模块包只支持zip压缩包,文件需要以\".zip\"结尾。关于模块包的校验要求如下: * 模块包中不得包含以\".tfvars\"结尾的文件 * 模块包解压前后的大小均应控制在1MB以内 * 模块包内的文件数量不能超过100个 * 模块包内的文件路径不允许以正斜线(/)开头 * 模块包内的文件路径分隔符之间不允许为空、`.`和`..` * 模块包内的文件路径最长为2048 * 模块包内的文件名最长为255 * 模块包内应至少有一份模板文件(以`.tf`或`.tf.json`结尾的文件) **注意:** * 模块中的内容不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储module_uri对应的模块包。 + ModuleUri *string `json:"module_uri,omitempty"` + + // 模块版本(module version)的描述。可用于客户识别并管理模块的版本。注意:模块版本为不可更新(immutable),即描述不可更新,如果需要更新,请删除后重建 + VersionDescription *string `json:"version_description,omitempty"` +} + +func (o CreatePrivateModuleRequestBody) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "CreatePrivateModuleRequestBody struct{}" + } + + return strings.Join([]string{"CreatePrivateModuleRequestBody", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_create_private_module_response.go b/services/aos/v1/model/model_create_private_module_response.go new file mode 100644 index 0000000000..60d585781d --- /dev/null +++ b/services/aos/v1/model/model_create_private_module_response.go @@ -0,0 +1,24 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// CreatePrivateModuleResponse Response Object +type CreatePrivateModuleResponse struct { + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + HttpStatusCode int `json:"-"` +} + +func (o CreatePrivateModuleResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "CreatePrivateModuleResponse struct{}" + } + + return strings.Join([]string{"CreatePrivateModuleResponse", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_create_private_module_version_request.go b/services/aos/v1/model/model_create_private_module_version_request.go new file mode 100644 index 0000000000..ad81846ccd --- /dev/null +++ b/services/aos/v1/model/model_create_private_module_version_request.go @@ -0,0 +1,28 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// CreatePrivateModuleVersionRequest Request Object +type CreatePrivateModuleVersionRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + Body *CreatePrivateModuleVersionRequestBody `json:"body,omitempty"` +} + +func (o CreatePrivateModuleVersionRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "CreatePrivateModuleVersionRequest struct{}" + } + + return strings.Join([]string{"CreatePrivateModuleVersionRequest", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_create_private_module_version_request_body.go b/services/aos/v1/model/model_create_private_module_version_request_body.go new file mode 100644 index 0000000000..3d20d83d2c --- /dev/null +++ b/services/aos/v1/model/model_create_private_module_version_request_body.go @@ -0,0 +1,31 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type CreatePrivateModuleVersionRequestBody struct { + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + + // 模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义 + ModuleVersion *string `json:"module_version,omitempty"` + + // 模块版本(module version)的描述。可用于客户识别并管理模块的版本。注意:模块版本为不可更新(immutable),即描述不可更新,如果需要更新,请删除后重建 + VersionDescription *string `json:"version_description,omitempty"` + + // 模块(module)包的OBS地址。模块允许用户将可复用的代码编辑在一起供模块使用。 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) 模块包只支持zip压缩包,文件需要以\".zip\"结尾。关于模块包的校验要求如下: * 模块包中不得包含以\".tfvars\"结尾的文件 * 模块包解压前后的大小均应控制在1MB以内 * 模块包内的文件数量不能超过100个 * 模块包内的文件路径不允许以正斜线(/)开头 * 模块包内的文件路径分隔符之间不允许为空、`.`和`..` * 模块包内的文件路径最长为2048 * 模块包内的文件名最长为255 * 模块包内应至少有一份模板文件(以`.tf`或`.tf.json`结尾的文件) **注意:** * 模块中的内容不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储module_uri对应的模块包。 + ModuleUri *string `json:"module_uri,omitempty"` +} + +func (o CreatePrivateModuleVersionRequestBody) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "CreatePrivateModuleVersionRequestBody struct{}" + } + + return strings.Join([]string{"CreatePrivateModuleVersionRequestBody", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_create_private_module_version_response.go b/services/aos/v1/model/model_create_private_module_version_response.go new file mode 100644 index 0000000000..b445e7ff34 --- /dev/null +++ b/services/aos/v1/model/model_create_private_module_version_response.go @@ -0,0 +1,21 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// CreatePrivateModuleVersionResponse Response Object +type CreatePrivateModuleVersionResponse struct { + HttpStatusCode int `json:"-"` +} + +func (o CreatePrivateModuleVersionResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "CreatePrivateModuleVersionResponse struct{}" + } + + return strings.Join([]string{"CreatePrivateModuleVersionResponse", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_delete_private_module_request.go b/services/aos/v1/model/model_delete_private_module_request.go new file mode 100644 index 0000000000..533b2c0f1a --- /dev/null +++ b/services/aos/v1/model/model_delete_private_module_request.go @@ -0,0 +1,29 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// DeletePrivateModuleRequest Request Object +type DeletePrivateModuleRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我认为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` +} + +func (o DeletePrivateModuleRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "DeletePrivateModuleRequest struct{}" + } + + return strings.Join([]string{"DeletePrivateModuleRequest", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_delete_private_module_response.go b/services/aos/v1/model/model_delete_private_module_response.go new file mode 100644 index 0000000000..2975589a64 --- /dev/null +++ b/services/aos/v1/model/model_delete_private_module_response.go @@ -0,0 +1,21 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// DeletePrivateModuleResponse Response Object +type DeletePrivateModuleResponse struct { + HttpStatusCode int `json:"-"` +} + +func (o DeletePrivateModuleResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "DeletePrivateModuleResponse struct{}" + } + + return strings.Join([]string{"DeletePrivateModuleResponse", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_delete_private_module_version_request.go b/services/aos/v1/model/model_delete_private_module_version_request.go new file mode 100644 index 0000000000..2887ba28e2 --- /dev/null +++ b/services/aos/v1/model/model_delete_private_module_version_request.go @@ -0,0 +1,32 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// DeletePrivateModuleVersionRequest Request Object +type DeletePrivateModuleVersionRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 模块的版本号。版本号遵循语义化版本号(Semantic Version),为用户自定义 + ModuleVersion string `json:"module_version"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我认为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` +} + +func (o DeletePrivateModuleVersionRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "DeletePrivateModuleVersionRequest struct{}" + } + + return strings.Join([]string{"DeletePrivateModuleVersionRequest", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_delete_private_module_version_response.go b/services/aos/v1/model/model_delete_private_module_version_response.go new file mode 100644 index 0000000000..7a1b3787cd --- /dev/null +++ b/services/aos/v1/model/model_delete_private_module_version_response.go @@ -0,0 +1,21 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// DeletePrivateModuleVersionResponse Response Object +type DeletePrivateModuleVersionResponse struct { + HttpStatusCode int `json:"-"` +} + +func (o DeletePrivateModuleVersionResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "DeletePrivateModuleVersionResponse struct{}" + } + + return strings.Join([]string{"DeletePrivateModuleVersionResponse", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_list_private_module_versions_request.go b/services/aos/v1/model/model_list_private_module_versions_request.go new file mode 100644 index 0000000000..34aabf1b14 --- /dev/null +++ b/services/aos/v1/model/model_list_private_module_versions_request.go @@ -0,0 +1,128 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "errors" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/converter" + + "strings" +) + +// ListPrivateModuleVersionsRequest Request Object +type ListPrivateModuleVersionsRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我认为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + + // 排序字段,仅支持给予create_time + SortKey *[]ListPrivateModuleVersionsRequestSortKey `json:"sort_key,omitempty"` + + // 指定升序还是降序 * `asc` - 升序 * `desc` - 降序 + SortDir *[]ListPrivateModuleVersionsRequestSortDir `json:"sort_dir,omitempty"` +} + +func (o ListPrivateModuleVersionsRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ListPrivateModuleVersionsRequest struct{}" + } + + return strings.Join([]string{"ListPrivateModuleVersionsRequest", string(data)}, " ") +} + +type ListPrivateModuleVersionsRequestSortKey struct { + value string +} + +type ListPrivateModuleVersionsRequestSortKeyEnum struct { + CREATE_TIME ListPrivateModuleVersionsRequestSortKey +} + +func GetListPrivateModuleVersionsRequestSortKeyEnum() ListPrivateModuleVersionsRequestSortKeyEnum { + return ListPrivateModuleVersionsRequestSortKeyEnum{ + CREATE_TIME: ListPrivateModuleVersionsRequestSortKey{ + value: "create_time", + }, + } +} + +func (c ListPrivateModuleVersionsRequestSortKey) Value() string { + return c.value +} + +func (c ListPrivateModuleVersionsRequestSortKey) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *ListPrivateModuleVersionsRequestSortKey) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} + +type ListPrivateModuleVersionsRequestSortDir struct { + value string +} + +type ListPrivateModuleVersionsRequestSortDirEnum struct { + ASC ListPrivateModuleVersionsRequestSortDir + DESC ListPrivateModuleVersionsRequestSortDir +} + +func GetListPrivateModuleVersionsRequestSortDirEnum() ListPrivateModuleVersionsRequestSortDirEnum { + return ListPrivateModuleVersionsRequestSortDirEnum{ + ASC: ListPrivateModuleVersionsRequestSortDir{ + value: "asc", + }, + DESC: ListPrivateModuleVersionsRequestSortDir{ + value: "desc", + }, + } +} + +func (c ListPrivateModuleVersionsRequestSortDir) Value() string { + return c.value +} + +func (c ListPrivateModuleVersionsRequestSortDir) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *ListPrivateModuleVersionsRequestSortDir) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} diff --git a/services/aos/v1/model/model_list_private_module_versions_response.go b/services/aos/v1/model/model_list_private_module_versions_response.go new file mode 100644 index 0000000000..9e50bab91f --- /dev/null +++ b/services/aos/v1/model/model_list_private_module_versions_response.go @@ -0,0 +1,24 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ListPrivateModuleVersionsResponse Response Object +type ListPrivateModuleVersionsResponse struct { + + // 私有模块版本的列表。默认以创建时间升序排序。 + Versions *[]PrivateModuleVersionSummary `json:"versions,omitempty"` + HttpStatusCode int `json:"-"` +} + +func (o ListPrivateModuleVersionsResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ListPrivateModuleVersionsResponse struct{}" + } + + return strings.Join([]string{"ListPrivateModuleVersionsResponse", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_list_private_modules_request.go b/services/aos/v1/model/model_list_private_modules_request.go new file mode 100644 index 0000000000..2492257499 --- /dev/null +++ b/services/aos/v1/model/model_list_private_modules_request.go @@ -0,0 +1,122 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "errors" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/converter" + + "strings" +) + +// ListPrivateModulesRequest Request Object +type ListPrivateModulesRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + // 排序字段,仅支持给予create_time + SortKey *[]ListPrivateModulesRequestSortKey `json:"sort_key,omitempty"` + + // 指定升序还是降序 * `asc` - 升序 * `desc` - 降序 + SortDir *[]ListPrivateModulesRequestSortDir `json:"sort_dir,omitempty"` +} + +func (o ListPrivateModulesRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ListPrivateModulesRequest struct{}" + } + + return strings.Join([]string{"ListPrivateModulesRequest", string(data)}, " ") +} + +type ListPrivateModulesRequestSortKey struct { + value string +} + +type ListPrivateModulesRequestSortKeyEnum struct { + CREATE_TIME ListPrivateModulesRequestSortKey +} + +func GetListPrivateModulesRequestSortKeyEnum() ListPrivateModulesRequestSortKeyEnum { + return ListPrivateModulesRequestSortKeyEnum{ + CREATE_TIME: ListPrivateModulesRequestSortKey{ + value: "create_time", + }, + } +} + +func (c ListPrivateModulesRequestSortKey) Value() string { + return c.value +} + +func (c ListPrivateModulesRequestSortKey) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *ListPrivateModulesRequestSortKey) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} + +type ListPrivateModulesRequestSortDir struct { + value string +} + +type ListPrivateModulesRequestSortDirEnum struct { + ASC ListPrivateModulesRequestSortDir + DESC ListPrivateModulesRequestSortDir +} + +func GetListPrivateModulesRequestSortDirEnum() ListPrivateModulesRequestSortDirEnum { + return ListPrivateModulesRequestSortDirEnum{ + ASC: ListPrivateModulesRequestSortDir{ + value: "asc", + }, + DESC: ListPrivateModulesRequestSortDir{ + value: "desc", + }, + } +} + +func (c ListPrivateModulesRequestSortDir) Value() string { + return c.value +} + +func (c ListPrivateModulesRequestSortDir) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *ListPrivateModulesRequestSortDir) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} diff --git a/services/aos/v1/model/model_list_private_modules_response.go b/services/aos/v1/model/model_list_private_modules_response.go new file mode 100644 index 0000000000..000c2acee6 --- /dev/null +++ b/services/aos/v1/model/model_list_private_modules_response.go @@ -0,0 +1,24 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ListPrivateModulesResponse Response Object +type ListPrivateModulesResponse struct { + + // 私有模块的列表。默认以创建时间升序排序。 + Modules *[]PrivateModuleSummary `json:"modules,omitempty"` + HttpStatusCode int `json:"-"` +} + +func (o ListPrivateModulesResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ListPrivateModulesResponse struct{}" + } + + return strings.Join([]string{"ListPrivateModulesResponse", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_module_uri_primitive_type_holder.go b/services/aos/v1/model/model_module_uri_primitive_type_holder.go new file mode 100644 index 0000000000..9a1d920b9c --- /dev/null +++ b/services/aos/v1/model/model_module_uri_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type ModuleUriPrimitiveTypeHolder struct { + + // 模块(module)包的OBS地址。模块允许用户将可复用的代码编辑在一起供模块使用。 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) 模块包只支持zip压缩包,文件需要以\".zip\"结尾。关于模块包的校验要求如下: * 模块包中不得包含以\".tfvars\"结尾的文件 * 模块包解压前后的大小均应控制在1MB以内 * 模块包内的文件数量不能超过100个 * 模块包内的文件路径不允许以正斜线(/)开头 * 模块包内的文件路径分隔符之间不允许为空、`.`和`..` * 模块包内的文件路径最长为2048 * 模块包内的文件名最长为255 * 模块包内应至少有一份模板文件(以`.tf`或`.tf.json`结尾的文件) **注意:** * 模块中的内容不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储module_uri对应的模块包。 + ModuleUri *string `json:"module_uri,omitempty"` +} + +func (o ModuleUriPrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ModuleUriPrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"ModuleUriPrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module.go b/services/aos/v1/model/model_private_module.go new file mode 100644 index 0000000000..61b2501787 --- /dev/null +++ b/services/aos/v1/model/model_private_module.go @@ -0,0 +1,34 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModule struct { + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + + // 私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。 + ModuleDescription *string `json:"module_description,omitempty"` + + // 私有模块(private-module)的生成时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + CreateTime *string `json:"create_time,omitempty"` + + // 私有模块(private-module)的更新时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + UpdateTime *string `json:"update_time,omitempty"` +} + +func (o PrivateModule) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModule struct{}" + } + + return strings.Join([]string{"PrivateModule", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_create_time_primitive_type_holder.go b/services/aos/v1/model/model_private_module_create_time_primitive_type_holder.go new file mode 100644 index 0000000000..aa0bbb14c6 --- /dev/null +++ b/services/aos/v1/model/model_private_module_create_time_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleCreateTimePrimitiveTypeHolder struct { + + // 私有模块(private-module)的生成时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + CreateTime *string `json:"create_time,omitempty"` +} + +func (o PrivateModuleCreateTimePrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleCreateTimePrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"PrivateModuleCreateTimePrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_description_primitive_type_holder.go b/services/aos/v1/model/model_private_module_description_primitive_type_holder.go new file mode 100644 index 0000000000..2e6e848c9a --- /dev/null +++ b/services/aos/v1/model/model_private_module_description_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleDescriptionPrimitiveTypeHolder struct { + + // 私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。 + ModuleDescription *string `json:"module_description,omitempty"` +} + +func (o PrivateModuleDescriptionPrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleDescriptionPrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"PrivateModuleDescriptionPrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_id_primitive_type_holder.go b/services/aos/v1/model/model_private_module_id_primitive_type_holder.go new file mode 100644 index 0000000000..7f75492350 --- /dev/null +++ b/services/aos/v1/model/model_private_module_id_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleIdPrimitiveTypeHolder struct { + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` +} + +func (o PrivateModuleIdPrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleIdPrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"PrivateModuleIdPrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_name_primitive_type_holder.go b/services/aos/v1/model/model_private_module_name_primitive_type_holder.go new file mode 100644 index 0000000000..0f49f68dff --- /dev/null +++ b/services/aos/v1/model/model_private_module_name_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleNamePrimitiveTypeHolder struct { + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` +} + +func (o PrivateModuleNamePrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleNamePrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"PrivateModuleNamePrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_source_primitive_type_holder.go b/services/aos/v1/model/model_private_module_source_primitive_type_holder.go new file mode 100644 index 0000000000..f902a706b6 --- /dev/null +++ b/services/aos/v1/model/model_private_module_source_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleSourcePrimitiveTypeHolder struct { + + // 在模板中使用模块需要定义如下格式: module \"my_hello_word_module\" { source = {module_source} } 其中{module_source}为本参数 + ModuleSource *string `json:"module_source,omitempty"` +} + +func (o PrivateModuleSourcePrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleSourcePrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"PrivateModuleSourcePrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_summary.go b/services/aos/v1/model/model_private_module_summary.go new file mode 100644 index 0000000000..f126854c70 --- /dev/null +++ b/services/aos/v1/model/model_private_module_summary.go @@ -0,0 +1,34 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleSummary struct { + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + + // 私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。 + ModuleDescription *string `json:"module_description,omitempty"` + + // 私有模块(private-module)的生成时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + CreateTime *string `json:"create_time,omitempty"` + + // 私有模块(private-module)的更新时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + UpdateTime *string `json:"update_time,omitempty"` +} + +func (o PrivateModuleSummary) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleSummary struct{}" + } + + return strings.Join([]string{"PrivateModuleSummary", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_update_time_primitive_type_holder.go b/services/aos/v1/model/model_private_module_update_time_primitive_type_holder.go new file mode 100644 index 0000000000..03c24fb0d3 --- /dev/null +++ b/services/aos/v1/model/model_private_module_update_time_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleUpdateTimePrimitiveTypeHolder struct { + + // 私有模块(private-module)的更新时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + UpdateTime *string `json:"update_time,omitempty"` +} + +func (o PrivateModuleUpdateTimePrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleUpdateTimePrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"PrivateModuleUpdateTimePrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_version.go b/services/aos/v1/model/model_private_module_version.go new file mode 100644 index 0000000000..575e5d45e2 --- /dev/null +++ b/services/aos/v1/model/model_private_module_version.go @@ -0,0 +1,37 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleVersion struct { + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + + // 模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义 + ModuleVersion *string `json:"module_version,omitempty"` + + // 模块版本(module version)的描述。可用于客户识别并管理模块的版本。注意:模块版本为不可更新(immutable),即描述不可更新,如果需要更新,请删除后重建 + VersionDescription *string `json:"version_description,omitempty"` + + // 私有模块(private-module)版本的生成时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + CreateTime *string `json:"create_time,omitempty"` + + // 在模板中使用模块需要定义如下格式: module \"my_hello_word_module\" { source = {module_source} } 其中{module_source}为本参数 + ModuleSource *string `json:"module_source,omitempty"` +} + +func (o PrivateModuleVersion) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleVersion struct{}" + } + + return strings.Join([]string{"PrivateModuleVersion", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_version_create_time_primitive_type_holder.go b/services/aos/v1/model/model_private_module_version_create_time_primitive_type_holder.go new file mode 100644 index 0000000000..093122d09e --- /dev/null +++ b/services/aos/v1/model/model_private_module_version_create_time_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleVersionCreateTimePrimitiveTypeHolder struct { + + // 私有模块(private-module)版本的生成时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + CreateTime *string `json:"create_time,omitempty"` +} + +func (o PrivateModuleVersionCreateTimePrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleVersionCreateTimePrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"PrivateModuleVersionCreateTimePrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_version_description_primitive_type_holder.go b/services/aos/v1/model/model_private_module_version_description_primitive_type_holder.go new file mode 100644 index 0000000000..8b9edb86dc --- /dev/null +++ b/services/aos/v1/model/model_private_module_version_description_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleVersionDescriptionPrimitiveTypeHolder struct { + + // 模块版本(module version)的描述。可用于客户识别并管理模块的版本。注意:模块版本为不可更新(immutable),即描述不可更新,如果需要更新,请删除后重建 + VersionDescription *string `json:"version_description,omitempty"` +} + +func (o PrivateModuleVersionDescriptionPrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleVersionDescriptionPrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"PrivateModuleVersionDescriptionPrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_version_primitive_type_holder.go b/services/aos/v1/model/model_private_module_version_primitive_type_holder.go new file mode 100644 index 0000000000..b48ce9c4b8 --- /dev/null +++ b/services/aos/v1/model/model_private_module_version_primitive_type_holder.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleVersionPrimitiveTypeHolder struct { + + // 模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义 + ModuleVersion *string `json:"module_version,omitempty"` +} + +func (o PrivateModuleVersionPrimitiveTypeHolder) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleVersionPrimitiveTypeHolder struct{}" + } + + return strings.Join([]string{"PrivateModuleVersionPrimitiveTypeHolder", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_private_module_version_summary.go b/services/aos/v1/model/model_private_module_version_summary.go new file mode 100644 index 0000000000..e6a73d9245 --- /dev/null +++ b/services/aos/v1/model/model_private_module_version_summary.go @@ -0,0 +1,34 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type PrivateModuleVersionSummary struct { + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + + // 模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义 + ModuleVersion *string `json:"module_version,omitempty"` + + // 模块版本(module version)的描述。可用于客户识别并管理模块的版本。注意:模块版本为不可更新(immutable),即描述不可更新,如果需要更新,请删除后重建 + VersionDescription *string `json:"version_description,omitempty"` + + // 私有模块(private-module)版本的生成时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + CreateTime *string `json:"create_time,omitempty"` +} + +func (o PrivateModuleVersionSummary) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "PrivateModuleVersionSummary struct{}" + } + + return strings.Join([]string{"PrivateModuleVersionSummary", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_show_private_module_metadata_request.go b/services/aos/v1/model/model_show_private_module_metadata_request.go new file mode 100644 index 0000000000..56d8ee48f4 --- /dev/null +++ b/services/aos/v1/model/model_show_private_module_metadata_request.go @@ -0,0 +1,29 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ShowPrivateModuleMetadataRequest Request Object +type ShowPrivateModuleMetadataRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我认为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` +} + +func (o ShowPrivateModuleMetadataRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ShowPrivateModuleMetadataRequest struct{}" + } + + return strings.Join([]string{"ShowPrivateModuleMetadataRequest", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_show_private_module_metadata_response.go b/services/aos/v1/model/model_show_private_module_metadata_response.go new file mode 100644 index 0000000000..cbf03f4f5f --- /dev/null +++ b/services/aos/v1/model/model_show_private_module_metadata_response.go @@ -0,0 +1,36 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ShowPrivateModuleMetadataResponse Response Object +type ShowPrivateModuleMetadataResponse struct { + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + + // 私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。 + ModuleDescription *string `json:"module_description,omitempty"` + + // 私有模块(private-module)的生成时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + CreateTime *string `json:"create_time,omitempty"` + + // 私有模块(private-module)的更新时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + UpdateTime *string `json:"update_time,omitempty"` + HttpStatusCode int `json:"-"` +} + +func (o ShowPrivateModuleMetadataResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ShowPrivateModuleMetadataResponse struct{}" + } + + return strings.Join([]string{"ShowPrivateModuleMetadataResponse", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_show_private_module_version_content_request.go b/services/aos/v1/model/model_show_private_module_version_content_request.go new file mode 100644 index 0000000000..91ee02a56a --- /dev/null +++ b/services/aos/v1/model/model_show_private_module_version_content_request.go @@ -0,0 +1,32 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ShowPrivateModuleVersionContentRequest Request Object +type ShowPrivateModuleVersionContentRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 模块的版本号。版本号遵循语义化版本号(Semantic Version),为用户自定义 + ModuleVersion string `json:"module_version"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我认为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` +} + +func (o ShowPrivateModuleVersionContentRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ShowPrivateModuleVersionContentRequest struct{}" + } + + return strings.Join([]string{"ShowPrivateModuleVersionContentRequest", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_show_private_module_version_content_response.go b/services/aos/v1/model/model_show_private_module_version_content_response.go new file mode 100644 index 0000000000..0908b2607e --- /dev/null +++ b/services/aos/v1/model/model_show_private_module_version_content_response.go @@ -0,0 +1,22 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ShowPrivateModuleVersionContentResponse Response Object +type ShowPrivateModuleVersionContentResponse struct { + Location *string `json:"Location,omitempty"` + HttpStatusCode int `json:"-"` +} + +func (o ShowPrivateModuleVersionContentResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ShowPrivateModuleVersionContentResponse struct{}" + } + + return strings.Join([]string{"ShowPrivateModuleVersionContentResponse", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_show_private_module_version_metadata_request.go b/services/aos/v1/model/model_show_private_module_version_metadata_request.go new file mode 100644 index 0000000000..fc3be0a210 --- /dev/null +++ b/services/aos/v1/model/model_show_private_module_version_metadata_request.go @@ -0,0 +1,32 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ShowPrivateModuleVersionMetadataRequest Request Object +type ShowPrivateModuleVersionMetadataRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我认为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + + // 模块的版本号。版本号遵循语义化版本号(Semantic Version),为用户自定义 + ModuleVersion string `json:"module_version"` +} + +func (o ShowPrivateModuleVersionMetadataRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ShowPrivateModuleVersionMetadataRequest struct{}" + } + + return strings.Join([]string{"ShowPrivateModuleVersionMetadataRequest", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_show_private_module_version_metadata_response.go b/services/aos/v1/model/model_show_private_module_version_metadata_response.go new file mode 100644 index 0000000000..60d193d6d5 --- /dev/null +++ b/services/aos/v1/model/model_show_private_module_version_metadata_response.go @@ -0,0 +1,39 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ShowPrivateModuleVersionMetadataResponse Response Object +type ShowPrivateModuleVersionMetadataResponse struct { + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` + + // 模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义 + ModuleVersion *string `json:"module_version,omitempty"` + + // 模块版本(module version)的描述。可用于客户识别并管理模块的版本。注意:模块版本为不可更新(immutable),即描述不可更新,如果需要更新,请删除后重建 + VersionDescription *string `json:"version_description,omitempty"` + + // 私有模块(private-module)版本的生成时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 + CreateTime *string `json:"create_time,omitempty"` + + // 在模板中使用模块需要定义如下格式: module \"my_hello_word_module\" { source = {module_source} } 其中{module_source}为本参数 + ModuleSource *string `json:"module_source,omitempty"` + HttpStatusCode int `json:"-"` +} + +func (o ShowPrivateModuleVersionMetadataResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ShowPrivateModuleVersionMetadataResponse struct{}" + } + + return strings.Join([]string{"ShowPrivateModuleVersionMetadataResponse", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_update_private_module_metadata_request.go b/services/aos/v1/model/model_update_private_module_metadata_request.go new file mode 100644 index 0000000000..8ccf61f4ae --- /dev/null +++ b/services/aos/v1/model/model_update_private_module_metadata_request.go @@ -0,0 +1,28 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// UpdatePrivateModuleMetadataRequest Request Object +type UpdatePrivateModuleMetadataRequest struct { + + // 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID + ClientRequestId string `json:"Client-Request-Id"` + + // 私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 + ModuleName string `json:"module_name"` + + Body *UpdatePrivateModuleMetadataRequestBody `json:"body,omitempty"` +} + +func (o UpdatePrivateModuleMetadataRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "UpdatePrivateModuleMetadataRequest struct{}" + } + + return strings.Join([]string{"UpdatePrivateModuleMetadataRequest", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_update_private_module_metadata_request_body.go b/services/aos/v1/model/model_update_private_module_metadata_request_body.go new file mode 100644 index 0000000000..09ef487678 --- /dev/null +++ b/services/aos/v1/model/model_update_private_module_metadata_request_body.go @@ -0,0 +1,25 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type UpdatePrivateModuleMetadataRequestBody struct { + + // 私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。 + ModuleDescription *string `json:"module_description,omitempty"` + + // 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 + ModuleId *string `json:"module_id,omitempty"` +} + +func (o UpdatePrivateModuleMetadataRequestBody) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "UpdatePrivateModuleMetadataRequestBody struct{}" + } + + return strings.Join([]string{"UpdatePrivateModuleMetadataRequestBody", string(data)}, " ") +} diff --git a/services/aos/v1/model/model_update_private_module_metadata_response.go b/services/aos/v1/model/model_update_private_module_metadata_response.go new file mode 100644 index 0000000000..2cac81d648 --- /dev/null +++ b/services/aos/v1/model/model_update_private_module_metadata_response.go @@ -0,0 +1,21 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// UpdatePrivateModuleMetadataResponse Response Object +type UpdatePrivateModuleMetadataResponse struct { + HttpStatusCode int `json:"-"` +} + +func (o UpdatePrivateModuleMetadataResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "UpdatePrivateModuleMetadataResponse struct{}" + } + + return strings.Join([]string{"UpdatePrivateModuleMetadataResponse", string(data)}, " ") +} diff --git a/services/aos/v1/region/region.go b/services/aos/v1/region/region.go index fe5e071241..a7ac68f093 100644 --- a/services/aos/v1/region/region.go +++ b/services/aos/v1/region/region.go @@ -28,6 +28,8 @@ var ( "https://rfs.ap-southeast-1.myhuaweicloud.com") AP_SOUTHEAST_4 = region.NewRegion("ap-southeast-4", "https://rfs.ap-southeast-4.myhuaweicloud.com") + MY_KUALALUMPUR_1 = region.NewRegion("my-kualalumpur-1", + "https://rfs.my-kualalumpur-1.myhuaweicloud.com") ME_EAST_1 = region.NewRegion("me-east-1", "https://rfs.me-east-1.myhuaweicloud.com") TR_WEST_1 = region.NewRegion("tr-west-1", @@ -53,27 +55,28 @@ var ( ) var staticFields = map[string]*region.Region{ - "cn-north-4": CN_NORTH_4, - "cn-south-1": CN_SOUTH_1, - "cn-east-3": CN_EAST_3, - "cn-east-4": CN_EAST_4, - "cn-north-9": CN_NORTH_9, - "cn-southwest-2": CN_SOUTHWEST_2, - "ap-southeast-3": AP_SOUTHEAST_3, - "ap-southeast-2": AP_SOUTHEAST_2, - "ap-southeast-1": AP_SOUTHEAST_1, - "ap-southeast-4": AP_SOUTHEAST_4, - "me-east-1": ME_EAST_1, - "tr-west-1": TR_WEST_1, - "la-south-2": LA_SOUTH_2, - "sa-brazil-1": SA_BRAZIL_1, - "la-north-2": LA_NORTH_2, - "af-south-1": AF_SOUTH_1, - "eu-west-101": EU_WEST_101, - "na-mexico-1": NA_MEXICO_1, - "cn-north-11": CN_NORTH_11, - "cn-east-5": CN_EAST_5, - "af-north-1": AF_NORTH_1, + "cn-north-4": CN_NORTH_4, + "cn-south-1": CN_SOUTH_1, + "cn-east-3": CN_EAST_3, + "cn-east-4": CN_EAST_4, + "cn-north-9": CN_NORTH_9, + "cn-southwest-2": CN_SOUTHWEST_2, + "ap-southeast-3": AP_SOUTHEAST_3, + "ap-southeast-2": AP_SOUTHEAST_2, + "ap-southeast-1": AP_SOUTHEAST_1, + "ap-southeast-4": AP_SOUTHEAST_4, + "my-kualalumpur-1": MY_KUALALUMPUR_1, + "me-east-1": ME_EAST_1, + "tr-west-1": TR_WEST_1, + "la-south-2": LA_SOUTH_2, + "sa-brazil-1": SA_BRAZIL_1, + "la-north-2": LA_NORTH_2, + "af-south-1": AF_SOUTH_1, + "eu-west-101": EU_WEST_101, + "na-mexico-1": NA_MEXICO_1, + "cn-north-11": CN_NORTH_11, + "cn-east-5": CN_EAST_5, + "af-north-1": AF_NORTH_1, } var provider = region.DefaultProviderChain("AOS") diff --git a/services/cce/v3/cce_client.go b/services/cce/v3/cce_client.go index 73b9659ec6..017d62abbd 100644 --- a/services/cce/v3/cce_client.go +++ b/services/cce/v3/cce_client.go @@ -1627,27 +1627,6 @@ func (c *CceClient) SyncNodeInvoker(request *model.SyncNodeRequest) *SyncNodeInv return &SyncNodeInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} } -// SyncNodePool 同步nodePool配置到存量节点 -// -// 该API用于同步nodePool配置到存量节点。 -// -// Please refer to HUAWEI cloud API Explorer for details. -func (c *CceClient) SyncNodePool(request *model.SyncNodePoolRequest) (*model.SyncNodePoolResponse, error) { - requestDef := GenReqDefForSyncNodePool() - - if resp, err := c.HcClient.Sync(request, requestDef); err != nil { - return nil, err - } else { - return resp.(*model.SyncNodePoolResponse), nil - } -} - -// SyncNodePoolInvoker 同步nodePool配置到存量节点 -func (c *CceClient) SyncNodePoolInvoker(request *model.SyncNodePoolRequest) *SyncNodePoolInvoker { - requestDef := GenReqDefForSyncNodePool() - return &SyncNodePoolInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} -} - // UpdateAddonInstance 更新AddonInstance // // 更新插件实例的功能。 diff --git a/services/cce/v3/cce_invoker.go b/services/cce/v3/cce_invoker.go index 694ea4bcbf..55c70abb3b 100644 --- a/services/cce/v3/cce_invoker.go +++ b/services/cce/v3/cce_invoker.go @@ -1189,22 +1189,6 @@ func (i *SyncNodeInvoker) Invoke() (*model.SyncNodeResponse, error) { } } -type SyncNodePoolInvoker struct { - *invoker.BaseInvoker -} - -func (i *SyncNodePoolInvoker) GetBaseInvoker() *invoker.BaseInvoker { - return i.BaseInvoker -} - -func (i *SyncNodePoolInvoker) Invoke() (*model.SyncNodePoolResponse, error) { - if result, err := i.BaseInvoker.Invoke(); err != nil { - return nil, err - } else { - return result.(*model.SyncNodePoolResponse), nil - } -} - type UpdateAddonInstanceInvoker struct { *invoker.BaseInvoker } diff --git a/services/cce/v3/cce_meta.go b/services/cce/v3/cce_meta.go index f87163e520..814eba7ee5 100644 --- a/services/cce/v3/cce_meta.go +++ b/services/cce/v3/cce_meta.go @@ -1575,30 +1575,6 @@ func GenReqDefForSyncNode() *def.HttpRequestDef { return requestDef } -func GenReqDefForSyncNodePool() *def.HttpRequestDef { - reqDefBuilder := def.NewHttpRequestDefBuilder(). - WithMethod(http.MethodPut). - WithPath("/api/v3.1/projects/{project_id}/clusters/{cluster_id}/nodepool/{nodepool_id}/sync"). - WithResponse(new(model.SyncNodePoolResponse)). - WithContentType("application/json") - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("ClusterId"). - WithJsonTag("cluster_id"). - WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("NodepoolId"). - WithJsonTag("nodepool_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithResponseField(def.NewFieldDef(). - WithName("Body"). - WithLocationType(def.Body)) - - requestDef := reqDefBuilder.Build() - return requestDef -} - func GenReqDefForUpdateAddonInstance() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPut). diff --git a/services/cce/v3/model/model_sync_node_pool_request.go b/services/cce/v3/model/model_sync_node_pool_request.go deleted file mode 100644 index f84d59a048..0000000000 --- a/services/cce/v3/model/model_sync_node_pool_request.go +++ /dev/null @@ -1,26 +0,0 @@ -package model - -import ( - "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" - - "strings" -) - -// SyncNodePoolRequest Request Object -type SyncNodePoolRequest struct { - - // 集群ID,获取方式请参见[如何获取接口URI中参数](cce_02_0271.xml)。 - ClusterId string `json:"cluster_id"` - - // 节点池ID - NodepoolId string `json:"nodepool_id"` -} - -func (o SyncNodePoolRequest) String() string { - data, err := utils.Marshal(o) - if err != nil { - return "SyncNodePoolRequest struct{}" - } - - return strings.Join([]string{"SyncNodePoolRequest", string(data)}, " ") -} diff --git a/services/cce/v3/model/model_sync_node_pool_resp.go b/services/cce/v3/model/model_sync_node_pool_resp.go deleted file mode 100644 index ac903eb0db..0000000000 --- a/services/cce/v3/model/model_sync_node_pool_resp.go +++ /dev/null @@ -1,19 +0,0 @@ -package model - -import ( - "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" - - "strings" -) - -type SyncNodePoolResp struct { -} - -func (o SyncNodePoolResp) String() string { - data, err := utils.Marshal(o) - if err != nil { - return "SyncNodePoolResp struct{}" - } - - return strings.Join([]string{"SyncNodePoolResp", string(data)}, " ") -} diff --git a/services/cce/v3/model/model_sync_node_pool_response.go b/services/cce/v3/model/model_sync_node_pool_response.go deleted file mode 100644 index ffa623507d..0000000000 --- a/services/cce/v3/model/model_sync_node_pool_response.go +++ /dev/null @@ -1,22 +0,0 @@ -package model - -import ( - "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" - - "strings" -) - -// SyncNodePoolResponse Response Object -type SyncNodePoolResponse struct { - Body *string `json:"body,omitempty"` - HttpStatusCode int `json:"-"` -} - -func (o SyncNodePoolResponse) String() string { - data, err := utils.Marshal(o) - if err != nil { - return "SyncNodePoolResponse struct{}" - } - - return strings.Join([]string{"SyncNodePoolResponse", string(data)}, " ") -} diff --git a/services/cdn/v2/model/model_cache_rules.go b/services/cdn/v2/model/model_cache_rules.go index 56f046dfb0..03bfae46ca 100644 --- a/services/cdn/v2/model/model_cache_rules.go +++ b/services/cdn/v2/model/model_cache_rules.go @@ -26,6 +26,9 @@ type CacheRules struct { // 缓存遵循源站开关,on:打开,off:关闭。 > 默认值为off。 FollowOrigin *string `json:"follow_origin,omitempty"` + // 强制缓存:CDN节点缓存过期时间是否忽略源站响应头Cache-Control中的no-cache、private、no-store字段,默认关闭强制缓存功能。强制缓存与缓存过期时间来源功能配合使用,具体使用限制及配置效果请参考CDN用户指南的配置节点缓存规则章节。on:打开强制缓存,off:关闭强制缓存 + ForceCache *string `json:"force_cache,omitempty"` + // URL参数: - del_params:忽略指定URL参数, - reserve_params:保留指定URL参数, - ignore_url_params:忽略全部URL参数, - full_url:使用完整URL参数。 > 不传此参数时,默认为full_url。 UrlParameterType *string `json:"url_parameter_type,omitempty"` diff --git a/services/csms/v1/csms_meta.go b/services/csms/v1/csms_meta.go index 6aabd6916a..240cc1f012 100644 --- a/services/csms/v1/csms_meta.go +++ b/services/csms/v1/csms_meta.go @@ -465,8 +465,8 @@ func GenReqDefForListUsers() *def.HttpRequestDef { WithJsonTag("limit"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("UserName"). - WithJsonTag("user_name"). + WithName("UserInfo"). + WithJsonTag("user_info"). WithLocationType(def.Query)) requestDef := reqDefBuilder.Build() diff --git a/services/csms/v1/model/model_list_users_request.go b/services/csms/v1/model/model_list_users_request.go index 683caed7bb..d1095d0212 100644 --- a/services/csms/v1/model/model_list_users_request.go +++ b/services/csms/v1/model/model_list_users_request.go @@ -19,7 +19,7 @@ type ListUsersRequest struct { Limit int32 `json:"limit"` // 最长64位,用户名,支持模糊查询 - UserName *string `json:"user_name,omitempty"` + UserInfo *string `json:"user_info,omitempty"` } func (o ListUsersRequest) String() string { diff --git a/services/das/v3/model/model_health_report_disk_stat.go b/services/das/v3/model/model_health_report_disk_stat.go index e09923f076..6ce189e66d 100644 --- a/services/das/v3/model/model_health_report_disk_stat.go +++ b/services/das/v3/model/model_health_report_disk_stat.go @@ -13,6 +13,12 @@ type HealthReportDiskStat struct { // 比率值数据列表。 RatioStats []HealthReportRatioStat `json:"ratio_stats"` + + // 统计分析是否成功。 + AnalyzeSuccess bool `json:"analyze_success"` + + // 错误信息。 + ErrorMessage string `json:"error_message"` } func (o HealthReportDiskStat) String() string { diff --git a/services/das/v3/model/model_health_report_performance_stat.go b/services/das/v3/model/model_health_report_performance_stat.go index 5fed2e2c5d..5b79be752b 100644 --- a/services/das/v3/model/model_health_report_performance_stat.go +++ b/services/das/v3/model/model_health_report_performance_stat.go @@ -13,6 +13,12 @@ type HealthReportPerformanceStat struct { // 比率值数据列表。 RatioStats []HealthReportRatioStat `json:"ratio_stats"` + + // 统计分析是否成功。 + AnalyzeSuccess bool `json:"analyze_success"` + + // 错误信息。 + ErrorMessage string `json:"error_message"` } func (o HealthReportPerformanceStat) String() string { diff --git a/services/dc/v3/model/model_create_vif_peer_response.go b/services/dc/v3/model/model_create_vif_peer_response.go index 14c7b6eb5e..242206c7cc 100644 --- a/services/dc/v3/model/model_create_vif_peer_response.go +++ b/services/dc/v3/model/model_create_vif_peer_response.go @@ -8,6 +8,10 @@ import ( // CreateVifPeerResponse Response Object type CreateVifPeerResponse struct { + + // 请求ID + RequestId *string `json:"request_id,omitempty"` + VifPeer *VifPeer `json:"vif_peer,omitempty"` HttpStatusCode int `json:"-"` } diff --git a/services/dc/v3/model/model_update_vif_peer_response.go b/services/dc/v3/model/model_update_vif_peer_response.go index b86f36e0d4..662a464629 100644 --- a/services/dc/v3/model/model_update_vif_peer_response.go +++ b/services/dc/v3/model/model_update_vif_peer_response.go @@ -8,6 +8,10 @@ import ( // UpdateVifPeerResponse Response Object type UpdateVifPeerResponse struct { + + // 请求ID + RequestId *string `json:"request_id,omitempty"` + VifPeer *VifPeer `json:"vif_peer,omitempty"` HttpStatusCode int `json:"-"` } diff --git a/services/dds/v3/model/model_resize_instance_option.go b/services/dds/v3/model/model_resize_instance_option.go index ea862d6d7f..bf00d18047 100644 --- a/services/dds/v3/model/model_resize_instance_option.go +++ b/services/dds/v3/model/model_resize_instance_option.go @@ -15,7 +15,10 @@ type ResizeInstanceOption struct { TargetType *ResizeInstanceOptionTargetType `json:"target_type,omitempty"` // 待变更规格的节点ID或实例ID,可以调用“查询实例列表和详情”接口获取。如果未申请实例,可以调用“创建实例”接口创建。 - 对于集群实例,变更mongos节点规格时,取值为mongos节点ID;变更单个shard组规格时,取值为shard组ID;批量变更多个shard组规格时,不传该参数;变更config组规格时,取值为config组的ID。 - 对于副本集实例,取值为相应的实例ID。变更readonly节点规格时,取值为readonly节点ID。 - 对于单节点实例,取值为相应的实例ID。 - TargetId string `json:"target_id"` + TargetId *string `json:"target_id,omitempty"` + + // 待变更规格的节点组ID列表,可以调用“查询实例列表和详情”接口获取。如果未申请实例,可以调用“创建实例”接口创建。 - 对于集群实例,变更mongos节点规格时,不传该参数;变更单个shard组规格时,不传该参数;变更config组规格时,不传该参数;批量变更多个shard组规格时,取值为相应的多个shard组ID,最多支持16个shard组批量变更。 - 对于副本集实例,不传该参数。 - 对于单节点实例,不传该参数。 + TargetIds *[]string `json:"target_ids,omitempty"` // 变更至新规格的资源规格编码。 TargetSpecCode string `json:"target_spec_code"` diff --git a/services/dli/v1/model/model_create_flink_jar_job_request_body.go b/services/dli/v1/model/model_create_flink_jar_job_request_body.go index 68af6919f4..df31ad0e3d 100644 --- a/services/dli/v1/model/model_create_flink_jar_job_request_body.go +++ b/services/dli/v1/model/model_create_flink_jar_job_request_body.go @@ -45,13 +45,13 @@ type CreateFlinkJarJobRequestBody struct { // 是否开启异常重启功能,默认值为“false”。 RestartWhenException *bool `json:"restart_when_exception,omitempty"` - // 用户已上传到DLI资源管理系统的资源包名,用户自定义作业主类所在的jar包。 + // 选择Jar作业程序包。 Jar包的管理方式: 上传OBS管理程序包:提前将对应的Jar包上传至OBS桶中。并在此处选择对应的OBS路径。 上传DLI管理程序包:提前将对应的Jar包上传至OBS桶中,并在DLI管理控制台的“数据管理>程序包管理”中创建程序包。 Flink1.15版本不推荐DLI管理程序包,Flink1.15版本以上不再支持DLI管理程序包。 Entrypoint *string `json:"entrypoint,omitempty"` - // 用户已上传到DLI资源管理系统的资源包名,用户自定义作业的其他依赖包。示例:[Group/test.jar,myGroup/test1.jar] + // 用户自定义的依赖程序包。依赖的相关程序包将会被放置到集群classpath下。 依赖程序包程序包的管理方式: 上传OBS管理依赖程序包:提前将对应的Jar包上传至OBS桶中。并在此处选择对应的OBS路径。 上传DLI管理依赖程序包:提前将对应的Jar包上传至OBS桶中,并在DLI管理控制台的“数据管理>程序包管理”中创建程序包 Flink1.15版本不推荐DLI管理依赖程序包,Flink1.15版本以上不再支持DLI管理依赖程序包。 DependencyJars *[]string `json:"dependency_jars,omitempty"` - // 用户已上传到DLI资源管理系统的资源包名,用户自定义作业的依赖文件,示例:[myGroup/test.cvs,myGroup/test1.csv] + // 用户自定义的依赖文件。 依赖文件的管理方式: 上传OBS管理依赖文件:提前将对应的依赖文件上传至OBS桶中。并在此处选择对应的OBS路径。 上传DLI管理依赖文件:提前将对应的依赖文件上传至OBS桶中,并在DLI管理控制台的“数据管理>程序包管理”中创建程序。 Flink1.15版本不推荐DLI管理依赖文件,Flink1.15版本以上不再支持DLI管理依赖文件。 DependencyFiles *[]string `json:"dependency_files,omitempty"` // Flink版本。当用户设置“feature”为“basic”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用的DLI基础Flink镜像的版本。 diff --git a/services/dli/v1/model/model_create_flink_sql_job_request_body.go b/services/dli/v1/model/model_create_flink_sql_job_request_body.go index c60f9340ec..17b203f79e 100644 --- a/services/dli/v1/model/model_create_flink_sql_job_request_body.go +++ b/services/dli/v1/model/model_create_flink_sql_job_request_body.go @@ -66,7 +66,7 @@ type CreateFlinkSqlJobRequestBody struct { // 作业脏数据策略。 “2”:保存; “1”:抛出异常; “0”:忽略; 默认值为“0”。 DirtyDataStrategy *string `json:"dirty_data_strategy,omitempty"` - // 用户已上传到DLI资源管理系统的资源包名,用户sql作业的udf jar通过该参数传入。 + // 用户自定义UDF文件,在后续作业中可以调用插入Jar包中的自定义函数。 UDF Jar包的管理方式: 上传OBS管理UDF Jar包:提前将对应的Jar包上传至OBS桶中。并在此处选择对应的OBS路径。 上传DLI管理UDF Jar包:提前将对应的Jar包上传至OBS桶中,并在DLI管理控制台的“数据管理>程序包管理”中创建程序包。 Flink1.15版本不再支持DLI管理UDF Jar包。 UdfJarUrl *string `json:"udf_jar_url,omitempty"` // 用户为作业选择的管理单元(jobmanager)CU数量,默认值为“1”。 diff --git a/services/dli/v1/model/model_update_flink_jar_job_request_body.go b/services/dli/v1/model/model_update_flink_jar_job_request_body.go index 8aaeff1485..9a9d30250d 100644 --- a/services/dli/v1/model/model_update_flink_jar_job_request_body.go +++ b/services/dli/v1/model/model_update_flink_jar_job_request_body.go @@ -45,13 +45,13 @@ type UpdateFlinkJarJobRequestBody struct { // 是否开启异常重启功能,默认值为“false”。 RestartWhenException *bool `json:"restart_when_exception,omitempty"` - // 用户已上传到DLI资源管理系统的资源包名,用户自定义作业主类所在的jar包。 + // 选择Jar作业程序包。 Jar包的管理方式: 上传OBS管理程序包:提前将对应的Jar包上传至OBS桶中。并在此处选择对应的OBS路径。 上传DLI管理程序包:提前将对应的Jar包上传至OBS桶中,并在DLI管理控制台的“数据管理>程序包管理”中创建程序包。 Flink1.15版本不推荐DLI管理程序包,Flink1.15版本以上不再支持DLI管理程序包。 Entrypoint *string `json:"entrypoint,omitempty"` - // 用户已上传到DLI资源管理系统的资源包名,用户自定义作业的其他依赖包。示例[Group/test.jar,myGroup/test1.jar] + // 用户自定义的依赖程序包。依赖的相关程序包将会被放置到集群classpath下。 依赖程序包的管理方式: 上传OBS管理依赖程序包:提前将对应的Jar包上传至OBS桶中。并在此处选择对应的OBS路径。 上传DLI管理依赖程序包:提前将对应的Jar包上传至OBS桶中,并在DLI管理控制台的“数据管理>程序包管理”中创建程序包。 Flink1.15版本不推荐DLI管理依赖程序包,Flink1.15版本以上不再支持DLI管理依赖程序包。 DependencyJars *[]string `json:"dependency_jars,omitempty"` - // 用户已上传到DLI资源管理系统的资源包名,用户自定义作业的依赖文件。 + // 用户自定义的依赖文件。 依赖文件的管理方式: 上传OBS管理依赖文件:提前将对应的依赖文件上传至OBS桶中。并在此处选择对应的OBS路径。 上传DLI管理依赖文件:提前将对应的依赖文件上传至OBS桶中,并在DLI管理控制台的“数据管理>程序包管理”中创建程序包 Flink1.15版本不推荐DLI管理依赖依赖文件,Flink1.15版本以上不再支持DLI管理依赖依赖文件。 DependencyFiles *[]string `json:"dependency_files,omitempty"` // 每个taskmanager的CU数,默认值为“1”。 diff --git a/services/dli/v1/model/model_update_flink_sql_job_request_body.go b/services/dli/v1/model/model_update_flink_sql_job_request_body.go index bebe5c751f..c227bd2912 100644 --- a/services/dli/v1/model/model_update_flink_sql_job_request_body.go +++ b/services/dli/v1/model/model_update_flink_sql_job_request_body.go @@ -60,7 +60,7 @@ type UpdateFlinkSqlJobRequestBody struct { // 作业脏数据策略。 “2”:保存; “1”:抛出异常; “0”:忽略; 默认值为“0”。 DirtyDataStrategy *string `json:"dirty_data_strategy,omitempty"` - // 用户已上传到DLI资源管理系统的资源包名,用户sql作业的udf jar通过该参数传入。 + // 用户自定义UDF文件,在后续作业中可以调用插入Jar包中的自定义函数。 UDF Jar包的管理方式: 上传OBS管理UDF Jar包:提前将对应的Jar包上传至OBS桶中。并在此处选择对应的OBS路径。 上传DLI管理UDF Jar包:提前将对应的Jar包上传至OBS桶中,并在DLI管理控制台的“数据管理>程序包管理”中创建程序包。 Flink1.15版本不再支持DLI管理UDF Jar包。 UdfJarUrl *string `json:"udf_jar_url,omitempty"` // 用户为作业选择的管理单元(jobmanager)CU数量,默认值为“1”。 diff --git a/services/dns/v2/region/region.go b/services/dns/v2/region/region.go index b161130314..fd84ba0a22 100644 --- a/services/dns/v2/region/region.go +++ b/services/dns/v2/region/region.go @@ -52,6 +52,10 @@ var ( "https://dns.me-east-1.myhuaweicloud.com") AP_SOUTHEAST_5 = region.NewRegion("ap-southeast-5", "https://dns.ap-southeast-5.myhuaweicloud.com") + CN_EAST_5 = region.NewRegion("cn-east-5", + "https://dns.cn-east-5.myhuaweicloud.com") + CN_EAST_4 = region.NewRegion("cn-east-4", + "https://dns.cn-east-4.myhuaweicloud.com") ) var staticFields = map[string]*region.Region{ @@ -77,6 +81,8 @@ var staticFields = map[string]*region.Region{ "ru-moscow-1": RU_MOSCOW_1, "me-east-1": ME_EAST_1, "ap-southeast-5": AP_SOUTHEAST_5, + "cn-east-5": CN_EAST_5, + "cn-east-4": CN_EAST_4, } var provider = region.DefaultProviderChain("DNS") diff --git a/services/elb/v2/region/region.go b/services/elb/v2/region/region.go index 8f9ae1c32a..c1bbc19884 100644 --- a/services/elb/v2/region/region.go +++ b/services/elb/v2/region/region.go @@ -66,6 +66,8 @@ var ( "https://elb.cn-east-5.myhuaweicloud.com") RU_NORTHWEST_2 = region.NewRegion("ru-northwest-2", "https://elb.ru-northwest-2.myhuaweicloud.com") + AP_SOUTHEAST_5 = region.NewRegion("ap-southeast-5", + "https://elb.ap-southeast-5.myhuaweicloud.com") ) var staticFields = map[string]*region.Region{ @@ -98,6 +100,7 @@ var staticFields = map[string]*region.Region{ "af-north-1": AF_NORTH_1, "cn-east-5": CN_EAST_5, "ru-northwest-2": RU_NORTHWEST_2, + "ap-southeast-5": AP_SOUTHEAST_5, } var provider = region.DefaultProviderChain("ELB") diff --git a/services/elb/v3/region/region.go b/services/elb/v3/region/region.go index 8f9ae1c32a..c1bbc19884 100644 --- a/services/elb/v3/region/region.go +++ b/services/elb/v3/region/region.go @@ -66,6 +66,8 @@ var ( "https://elb.cn-east-5.myhuaweicloud.com") RU_NORTHWEST_2 = region.NewRegion("ru-northwest-2", "https://elb.ru-northwest-2.myhuaweicloud.com") + AP_SOUTHEAST_5 = region.NewRegion("ap-southeast-5", + "https://elb.ap-southeast-5.myhuaweicloud.com") ) var staticFields = map[string]*region.Region{ @@ -98,6 +100,7 @@ var staticFields = map[string]*region.Region{ "af-north-1": AF_NORTH_1, "cn-east-5": CN_EAST_5, "ru-northwest-2": RU_NORTHWEST_2, + "ap-southeast-5": AP_SOUTHEAST_5, } var provider = region.DefaultProviderChain("ELB") diff --git a/services/gaussdb/v3/model/model_star_rocks_create_request.go b/services/gaussdb/v3/model/model_star_rocks_create_request.go index 69a64b84ec..69d73217e5 100644 --- a/services/gaussdb/v3/model/model_star_rocks_create_request.go +++ b/services/gaussdb/v3/model/model_star_rocks_create_request.go @@ -50,6 +50,11 @@ type StarRocksCreateRequest struct { // 实例安全组ID。默认与Taurus安全组ID一致。 SecurityGroupId *string `json:"security_group_id,omitempty"` + + PayInfo *StarRocksCreateRequestPayInfo `json:"pay_info,omitempty"` + + // 可用区。包周期场景必填。 + RegionCode *string `json:"region_code,omitempty"` } func (o StarRocksCreateRequest) String() string { diff --git a/services/gaussdb/v3/model/model_star_rocks_create_request_pay_info.go b/services/gaussdb/v3/model/model_star_rocks_create_request_pay_info.go new file mode 100644 index 0000000000..b6789aa1bc --- /dev/null +++ b/services/gaussdb/v3/model/model_star_rocks_create_request_pay_info.go @@ -0,0 +1,32 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// StarRocksCreateRequestPayInfo 支付信息。包周期场景必填。 +type StarRocksCreateRequestPayInfo struct { + + // 计费模式,默认0。包周期场景必填。 取值范围: - 0:按需计费 - 1:包周期 + PayModel *string `json:"pay_model,omitempty"` + + // 包周期周期。包周期场景必填。 + Period *string `json:"period,omitempty"` + + // 包周期周期类型。包周期场景必填。 取值范围: - 2:包月 - 3:包年 + PeriodType *string `json:"period_type,omitempty"` + + // 包周期是否自动续费。包周期场景必填。 取值范围: - 1:自动续费 - 0:不自动续费 + IsAutoRenew *string `json:"is_auto_renew,omitempty"` +} + +func (o StarRocksCreateRequestPayInfo) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "StarRocksCreateRequestPayInfo struct{}" + } + + return strings.Join([]string{"StarRocksCreateRequestPayInfo", string(data)}, " ") +} diff --git a/services/iam/v3/region/region.go b/services/iam/v3/region/region.go index d50a9005aa..50f8eb59ae 100644 --- a/services/iam/v3/region/region.go +++ b/services/iam/v3/region/region.go @@ -56,6 +56,10 @@ var ( "https://iam.ap-southeast-4.myhuaweicloud.com") AE_AD_1 = region.NewRegion("ae-ad-1", "https://iam.ae-ad-1.myhuaweicloud.com") + CN_EAST_4 = region.NewRegion("cn-east-4", + "https://iam.cn-east-4.myhuaweicloud.com") + CN_EAST_5 = region.NewRegion("cn-east-5", + "https://iam.cn-east-5.myhuaweicloud.com") ) var staticFields = map[string]*region.Region{ @@ -83,6 +87,8 @@ var staticFields = map[string]*region.Region{ "me-east-1": ME_EAST_1, "ap-southeast-4": AP_SOUTHEAST_4, "ae-ad-1": AE_AD_1, + "cn-east-4": CN_EAST_4, + "cn-east-5": CN_EAST_5, } var provider = region.DefaultProviderChain("IAM") diff --git a/services/lts/v2/lts_client.go b/services/lts/v2/lts_client.go index 076dc6baf0..af0d75f635 100644 --- a/services/lts/v2/lts_client.go +++ b/services/lts/v2/lts_client.go @@ -859,6 +859,27 @@ func (c *LtsClient) ListKeywordsAlarmRulesInvoker(request *model.ListKeywordsAla return &ListKeywordsAlarmRulesInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} } +// ListLogContext 查询上下文日志 +// +// 查询上下文日志 该接口用于查询指定日志前(上文)后(下文)的若干条日志。 +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *LtsClient) ListLogContext(request *model.ListLogContextRequest) (*model.ListLogContextResponse, error) { + requestDef := GenReqDefForListLogContext() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.ListLogContextResponse), nil + } +} + +// ListLogContextInvoker 查询上下文日志 +func (c *LtsClient) ListLogContextInvoker(request *model.ListLogContextRequest) *ListLogContextInvoker { + requestDef := GenReqDefForListLogContext() + return &ListLogContextInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + // ListLogGroups 查询账号下所有日志组 // // 该接口用于查询账号下所有日志组。 diff --git a/services/lts/v2/lts_invoker.go b/services/lts/v2/lts_invoker.go index 0b32b49c90..19ade6c89a 100644 --- a/services/lts/v2/lts_invoker.go +++ b/services/lts/v2/lts_invoker.go @@ -645,6 +645,22 @@ func (i *ListKeywordsAlarmRulesInvoker) Invoke() (*model.ListKeywordsAlarmRulesR } } +type ListLogContextInvoker struct { + *invoker.BaseInvoker +} + +func (i *ListLogContextInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *ListLogContextInvoker) Invoke() (*model.ListLogContextResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.ListLogContextResponse), nil + } +} + type ListLogGroupsInvoker struct { *invoker.BaseInvoker } diff --git a/services/lts/v2/lts_meta.go b/services/lts/v2/lts_meta.go index 15f0642ea1..d3f5a14cfb 100644 --- a/services/lts/v2/lts_meta.go +++ b/services/lts/v2/lts_meta.go @@ -732,6 +732,30 @@ func GenReqDefForListKeywordsAlarmRules() *def.HttpRequestDef { return requestDef } +func GenReqDefForListLogContext() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodPost). + WithPath("/v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/context"). + WithResponse(new(model.ListLogContextResponse)). + WithContentType("application/json;charset=UTF-8") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("LogGroupId"). + WithJsonTag("log_group_id"). + WithLocationType(def.Path)) + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("LogStreamId"). + WithJsonTag("log_stream_id"). + WithLocationType(def.Path)) + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("Body"). + WithLocationType(def.Body)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + func GenReqDefForListLogGroups() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). diff --git a/services/lts/v2/model/model_access_config_deatil_create.go b/services/lts/v2/model/model_access_config_deatil_create.go index f6e881dcfc..473902837a 100644 --- a/services/lts/v2/model/model_access_config_deatil_create.go +++ b/services/lts/v2/model/model_access_config_deatil_create.go @@ -66,6 +66,33 @@ type AccessConfigDeatilCreate struct { // K8s Label日志标签,最多支持创建30个,keyname不支持重名,仅CCE接入类型时使用 LogK8s map[string]string `json:"logK8s,omitempty"` + + // 是否允许此文件重复采集 + RepeatCollect *bool `json:"repeat_collect,omitempty"` + + // 系统内置字段:配置日志接入规则时,可以配置系统内置字段,上报日志后,每条日志数据的标签数据中将会有系统字段 采集场景为主机文件的内置字段为:hostName、hostId、hostIP、pathFile、hostIPv6、category、collectTime、__host_group__ 采集场景为K8S集群容器文件的内置字段为:hostName、hostId、hostIP、pathFile、hostIPv6、clusterId、podName、appName、containerName、nameSpace、category、collectTime、__host_group__、serviceID、podIp、clusterName、workloadType 若修改时传入此字段,将覆盖原有配置 + SystemFields *[]string `json:"system_fields,omitempty"` + + // 自定义键值对:配置日志接入规则时,可以配置自定义键值对规则,上报日志后,每条日志数据的标签数据中将会有用户自定义的键值对字段,键值对数量不超过20 键的长度限制为128,允许的字符有a-zA-Z0-9_- 值的长度限制为1024 + CustomKeyValue map[string]string `json:"custom_key_value,omitempty"` + + // 容器 Label白名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + IncludeLabelsLogical *string `json:"includeLabelsLogical,omitempty"` + + // 容器 Label黑名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + ExcludeLabelsLogical *string `json:"excludeLabelsLogical,omitempty"` + + // K8S Label白名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + IncludeK8sLabelsLogical *string `json:"includeK8sLabelsLogical,omitempty"` + + // K8S Label黑名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + ExcludeK8sLabelsLogical *string `json:"excludeK8sLabelsLogical,omitempty"` + + // 环境变量白名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + IncludeEnvsLogical *string `json:"includeEnvsLogical,omitempty"` + + // 环境变量黑名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + ExcludeEnvsLogical *string `json:"excludeEnvsLogical,omitempty"` } func (o AccessConfigDeatilCreate) String() string { diff --git a/services/lts/v2/model/model_access_config_deatil_update.go b/services/lts/v2/model/model_access_config_deatil_update.go index 75d2bd7d39..b6729e4477 100644 --- a/services/lts/v2/model/model_access_config_deatil_update.go +++ b/services/lts/v2/model/model_access_config_deatil_update.go @@ -65,6 +65,30 @@ type AccessConfigDeatilUpdate struct { // K8s Label日志标签,最多支持创建30个,keyname不支持重名,仅CCE接入类型时使用 LogK8s map[string]string `json:"logK8s,omitempty"` + + // 系统内置字段:配置日志接入规则时,可以配置系统内置字段,上报日志后,每条日志数据的标签数据中将会有系统字段 采集场景为主机文件的内置字段为:hostName、hostId、hostIP、pathFile、hostIPv6、category、collectTime、__host_group__ 采集场景为K8S集群容器文件的内置字段为:hostName、hostId、hostIP、pathFile、hostIPv6、clusterId、podName、appName、containerName、nameSpace、category、collectTime、__host_group__、serviceID、podIp、clusterName、workloadType 若修改时传入此字段,将覆盖原有配置 + SystemFields *[]string `json:"system_fields,omitempty"` + + // 自定义键值对:配置日志接入规则时,可以配置自定义键值对规则,上报日志后,每条日志数据的标签数据中将会有用户自定义的键值对字段,键值对数量不超过20 键的长度限制为128,允许的字符有a-zA-Z0-9_- 值的长度限制为1024 若修改时传入此字段,将覆盖原有配置 + CustomKeyValue map[string]string `json:"custom_key_value,omitempty"` + + // 容器 Label白名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + IncludeLabelsLogical *string `json:"includeLabelsLogical,omitempty"` + + // 容器 Label黑名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + ExcludeLabelsLogical *string `json:"excludeLabelsLogical,omitempty"` + + // K8S Label白名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + IncludeK8sLabelsLogical *string `json:"includeK8sLabelsLogical,omitempty"` + + // K8S Label黑名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + ExcludeK8sLabelsLogical *string `json:"excludeK8sLabelsLogical,omitempty"` + + // 环境变量白名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + IncludeEnvsLogical *string `json:"includeEnvsLogical,omitempty"` + + // 环境变量黑名单,可选为AND,OR,不配置时默认为OR;当存在多个值时的处理逻辑,AND表示同时满足才会生效,OR表示有一项满足就会生效 + ExcludeEnvsLogical *string `json:"excludeEnvsLogical,omitempty"` } func (o AccessConfigDeatilUpdate) String() string { diff --git a/services/lts/v2/model/model_list_log_context_request.go b/services/lts/v2/model/model_list_log_context_request.go new file mode 100644 index 0000000000..8fd84840d9 --- /dev/null +++ b/services/lts/v2/model/model_list_log_context_request.go @@ -0,0 +1,28 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ListLogContextRequest Request Object +type ListLogContextRequest struct { + + // 日志组ID,获取方式请参见:[获取项目ID,获取账号ID,日志组ID、日志流ID](lts_api_0006.xml) + LogGroupId string `json:"log_group_id"` + + // 日志流ID,获取方式请参见:[获取项目ID,获取账号ID,日志组ID、日志流ID](lts_api_0006.xml) + LogStreamId string `json:"log_stream_id"` + + Body *ListLogContextRequestBody `json:"body,omitempty"` +} + +func (o ListLogContextRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ListLogContextRequest struct{}" + } + + return strings.Join([]string{"ListLogContextRequest", string(data)}, " ") +} diff --git a/services/lts/v2/model/model_list_log_context_request_body.go b/services/lts/v2/model/model_list_log_context_request_body.go new file mode 100644 index 0000000000..757de8936c --- /dev/null +++ b/services/lts/v2/model/model_list_log_context_request_body.go @@ -0,0 +1,32 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ListLogContextRequestBody 查询上下文日志请求体。 +type ListLogContextRequestBody struct { + + // 日志单行序列号,字段值需要从日志结果中获取,纳秒级时间戳。 + LineNum *string `json:"line_num,omitempty"` + + // 自定义时间特性时间字段,字段值需要从日志结果中获取,毫秒级时间戳。若已开启云端结构化自定义时间功能,需要使用该字段和line_num字段共同进行上下文查询。 + Time *string `json:"__time__,omitempty"` + + // 指定起始日志往前(上文)的日志条数,取值范围 [0, 500] ,默认值100 + BackwardsSize *int32 `json:"backwardsSize,omitempty"` + + // 指定起始日志往后(下文)的日志条数,取值范围 [0, 500] ,默认值100 + ForwardsSize *int32 `json:"forwardsSize,omitempty"` +} + +func (o ListLogContextRequestBody) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ListLogContextRequestBody struct{}" + } + + return strings.Join([]string{"ListLogContextRequestBody", string(data)}, " ") +} diff --git a/services/lts/v2/model/model_list_log_context_response.go b/services/lts/v2/model/model_list_log_context_response.go new file mode 100644 index 0000000000..649b658dd9 --- /dev/null +++ b/services/lts/v2/model/model_list_log_context_response.go @@ -0,0 +1,36 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// ListLogContextResponse Response Object +type ListLogContextResponse struct { + + // 上下文日志信息。 + Logs *[]LogContents `json:"logs,omitempty"` + + // 返回的总日志条数,包含请求参数中所指定的起始日志。 + TotalCount *int32 `json:"total_count,omitempty"` + + // 向前查询到的日志条数。 + BackwardsCount *int32 `json:"backwards_count,omitempty"` + + // 向后查询到的日志条数。 + ForwardsCount *int32 `json:"forwards_count,omitempty"` + + // 是否查询完成。 + IsQueryComplete *bool `json:"isQueryComplete,omitempty"` + HttpStatusCode int `json:"-"` +} + +func (o ListLogContextResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ListLogContextResponse struct{}" + } + + return strings.Join([]string{"ListLogContextResponse", string(data)}, " ") +} diff --git a/services/lts/v2/model/model_lts_fields_info.go b/services/lts/v2/model/model_lts_fields_info.go index 88e6707fef..128ddd1754 100644 --- a/services/lts/v2/model/model_lts_fields_info.go +++ b/services/lts/v2/model/model_lts_fields_info.go @@ -31,6 +31,9 @@ type LtsFieldsInfo struct { // 特殊分词符 Ascii *[]string `json:"ascii,omitempty"` + + // json字段信息 + LtsSubFieldsInfoList *[]LtsSubFieldsInfo `json:"ltsSubFieldsInfoList,omitempty"` } func (o LtsFieldsInfo) String() string { @@ -50,6 +53,7 @@ type LtsFieldsInfoFieldTypeEnum struct { STRING LtsFieldsInfoFieldType LONG LtsFieldsInfoFieldType FLOAT LtsFieldsInfoFieldType + JSON LtsFieldsInfoFieldType } func GetLtsFieldsInfoFieldTypeEnum() LtsFieldsInfoFieldTypeEnum { @@ -63,6 +67,9 @@ func GetLtsFieldsInfoFieldTypeEnum() LtsFieldsInfoFieldTypeEnum { FLOAT: LtsFieldsInfoFieldType{ value: "float", }, + JSON: LtsFieldsInfoFieldType{ + value: "json", + }, } } diff --git a/services/lts/v2/model/model_lts_sub_fields_info.go b/services/lts/v2/model/model_lts_sub_fields_info.go new file mode 100644 index 0000000000..87a5c41949 --- /dev/null +++ b/services/lts/v2/model/model_lts_sub_fields_info.go @@ -0,0 +1,95 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "errors" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/converter" + + "strings" +) + +// LtsSubFieldsInfo json子字段信息 +type LtsSubFieldsInfo struct { + + // 字段类型 + FieldType LtsSubFieldsInfoFieldType `json:"fieldType"` + + // 字段名称 + FieldName string `json:"fieldName"` + + // 是否大小写敏感 + CaseSensitive *bool `json:"caseSensitive,omitempty"` + + // 是否包含中文 + IncludeChinese *bool `json:"includeChinese,omitempty"` + + // 分词符 + Tokenizer *string `json:"tokenizer,omitempty"` + + // 是否快速分析 + QuickAnalysis *bool `json:"quickAnalysis,omitempty"` + + // 特殊分词符 + Ascii *[]string `json:"ascii,omitempty"` +} + +func (o LtsSubFieldsInfo) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "LtsSubFieldsInfo struct{}" + } + + return strings.Join([]string{"LtsSubFieldsInfo", string(data)}, " ") +} + +type LtsSubFieldsInfoFieldType struct { + value string +} + +type LtsSubFieldsInfoFieldTypeEnum struct { + STRING LtsSubFieldsInfoFieldType + LONG LtsSubFieldsInfoFieldType + FLOAT LtsSubFieldsInfoFieldType +} + +func GetLtsSubFieldsInfoFieldTypeEnum() LtsSubFieldsInfoFieldTypeEnum { + return LtsSubFieldsInfoFieldTypeEnum{ + STRING: LtsSubFieldsInfoFieldType{ + value: "string", + }, + LONG: LtsSubFieldsInfoFieldType{ + value: "long", + }, + FLOAT: LtsSubFieldsInfoFieldType{ + value: "float", + }, + } +} + +func (c LtsSubFieldsInfoFieldType) Value() string { + return c.value +} + +func (c LtsSubFieldsInfoFieldType) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *LtsSubFieldsInfoFieldType) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} diff --git a/services/metastudio/v1/metaStudio_client.go b/services/metastudio/v1/metaStudio_client.go index 61d5621ac4..fd8d158e8d 100644 --- a/services/metastudio/v1/metaStudio_client.go +++ b/services/metastudio/v1/metaStudio_client.go @@ -3344,7 +3344,7 @@ func (c *MetaStudioClient) ListTtsaJobsInvoker(request *model.ListTtsaJobsReques return &ListTtsaJobsInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} } -// CreateAsyncTtsJob 创建TTS语音异步任务 +// CreateAsyncTtsJob 创建TTS异步任务 // // 该接口用于对外生成音频文件 // @@ -3363,7 +3363,7 @@ func (c *MetaStudioClient) CreateAsyncTtsJob(request *model.CreateAsyncTtsJobReq } } -// CreateAsyncTtsJobInvoker 创建TTS语音异步任务 +// CreateAsyncTtsJobInvoker 创建TTS异步任务 func (c *MetaStudioClient) CreateAsyncTtsJobInvoker(request *model.CreateAsyncTtsJobRequest) *CreateAsyncTtsJobInvoker { requestDef := GenReqDefForCreateAsyncTtsJob() return &CreateAsyncTtsJobInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} @@ -3394,7 +3394,7 @@ func (c *MetaStudioClient) CreateTtsAuditionInvoker(request *model.CreateTtsAudi return &CreateTtsAuditionInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} } -// ShowAsyncTtsJob 获取音频语音文件 +// ShowAsyncTtsJob 获取TTS异步任务 // // 该接口用于获取TTS音频文件下载链接。 // @@ -3409,7 +3409,7 @@ func (c *MetaStudioClient) ShowAsyncTtsJob(request *model.ShowAsyncTtsJobRequest } } -// ShowAsyncTtsJobInvoker 获取音频语音文件 +// ShowAsyncTtsJobInvoker 获取TTS异步任务 func (c *MetaStudioClient) ShowAsyncTtsJobInvoker(request *model.ShowAsyncTtsJobRequest) *ShowAsyncTtsJobInvoker { requestDef := GenReqDefForShowAsyncTtsJob() return &ShowAsyncTtsJobInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} diff --git a/services/metastudio/v1/model/model_chat_voice_config.go b/services/metastudio/v1/model/model_chat_voice_config.go new file mode 100644 index 0000000000..133866c99c --- /dev/null +++ b/services/metastudio/v1/model/model_chat_voice_config.go @@ -0,0 +1,88 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "errors" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/converter" + + "strings" +) + +// ChatVoiceConfig 语音配置参数 +type ChatVoiceConfig struct { + + // 语音合成特征字符串 + VoiceAssetId *string `json:"voice_asset_id,omitempty"` + + // 语速。默认值100,最小值50,最大值200。 > 当取值为“100”时,表示一个成年人正常的语速,约为250字/分钟。 + Speed *int32 `json:"speed,omitempty"` + + // 音高。默认值100,最小值50,最大值200。 + Pitch *int32 `json:"pitch,omitempty"` + + // 音量。默认值140,最小值90,最大值240。 + Volume *int32 `json:"volume,omitempty"` + + // 第三方TTS供应商类型。 * XIMALAYA:喜马拉雅TTS * HUAWEI_EI:EI TTS * MOBVOI:出门问问TTS + Provider *string `json:"provider,omitempty"` + + // 语言类型。默认值CN。 * CN:简体中文。 * EN:英语。 + Language *ChatVoiceConfigLanguage `json:"language,omitempty"` +} + +func (o ChatVoiceConfig) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "ChatVoiceConfig struct{}" + } + + return strings.Join([]string{"ChatVoiceConfig", string(data)}, " ") +} + +type ChatVoiceConfigLanguage struct { + value string +} + +type ChatVoiceConfigLanguageEnum struct { + CN ChatVoiceConfigLanguage + EN ChatVoiceConfigLanguage +} + +func GetChatVoiceConfigLanguageEnum() ChatVoiceConfigLanguageEnum { + return ChatVoiceConfigLanguageEnum{ + CN: ChatVoiceConfigLanguage{ + value: "CN", + }, + EN: ChatVoiceConfigLanguage{ + value: "EN", + }, + } +} + +func (c ChatVoiceConfigLanguage) Value() string { + return c.value +} + +func (c ChatVoiceConfigLanguage) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *ChatVoiceConfigLanguage) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} diff --git a/services/metastudio/v1/model/model_create_async_tts_job_request_body.go b/services/metastudio/v1/model/model_create_async_tts_job_request_body.go index b61ff2d036..e8b0539861 100644 --- a/services/metastudio/v1/model/model_create_async_tts_job_request_body.go +++ b/services/metastudio/v1/model/model_create_async_tts_job_request_body.go @@ -15,28 +15,28 @@ type CreateAsyncTtsJobRequestBody struct { // 待合成文本 Text string `json:"text"` - // 音色ID + // 音色ID,获取方式详见[获取音色ID](metastudio_02_0054.xml)。 VoiceAssetId string `json:"voice_asset_id"` - // 语速。 默认值100,最小值50,最大值200。 > * 当取值为“100”时,表示一个成年人正常的语速,约为250字/分钟。 > * 50表示0.5倍语速,100表示正常语速,200表示2倍语速。 + // 语速。 * 当取值为“100”时,表示一个成年人正常的语速,约为250字/分钟。 * 50表示0.5倍语速,100表示正常语速,200表示2倍语速。 Speed *int32 `json:"speed,omitempty"` - // 音高。 默认值100,最小值50,最大值200。 + // 音高。 Pitch *int32 `json:"pitch,omitempty"` - // 音量。 默认值140,最小值90,最大值240。 + // 音量。 Volume *int32 `json:"volume,omitempty"` // 输出音频文件格式。默认WAV。 * WAV:wav格式。 * MP3:mp3格式。 AudioFormat *CreateAsyncTtsJobRequestBodyAudioFormat `json:"audio_format,omitempty"` - // 是否需要时间戳 false不需要;true:需要返回时间戳信息;默认false + // 是否需要时间戳。false为不需要,true为需要返回时间戳信息。默认值为false。 NeedTimestamp *bool `json:"need_timestamp,omitempty"` // 异常时是否返回静默音频流 SilenceFlag *bool `json:"silence_flag,omitempty"` - // 异常时返回的静默音频流时长,单位毫秒 + // 异常时返回的静默音频流时长,单位毫秒。 SilenceTimeMs *int32 `json:"silence_time_ms,omitempty"` } diff --git a/services/metastudio/v1/model/model_create_smart_chat_room_req.go b/services/metastudio/v1/model/model_create_smart_chat_room_req.go index c745f7f55a..ce5db1a0e4 100644 --- a/services/metastudio/v1/model/model_create_smart_chat_room_req.go +++ b/services/metastudio/v1/model/model_create_smart_chat_room_req.go @@ -25,12 +25,18 @@ type CreateSmartChatRoomReq struct { VoiceConfig *VoiceConfig `json:"voice_config,omitempty"` + // 语音配置参数列表。 + VoiceConfigList *[]ChatVoiceConfig `json:"voice_config_list,omitempty"` + // 机器人ID。获取方法请参考[创建应用](CreateRobot.xml)。 RobotId *string `json:"robot_id,omitempty"` // **参数解释**: 并发路数。 Concurrency *int32 `json:"concurrency,omitempty"` + // 默认语言,智能交互接口使用。默认值CN。 * CN:简体中文。 * EN:英语。 + DefaultLanguage *CreateSmartChatRoomReqDefaultLanguage `json:"default_language,omitempty"` + BackgroundConfig *BackgroundConfigInfo `json:"background_config,omitempty"` // 图层配置。 @@ -53,6 +59,53 @@ func (o CreateSmartChatRoomReq) String() string { return strings.Join([]string{"CreateSmartChatRoomReq", string(data)}, " ") } +type CreateSmartChatRoomReqDefaultLanguage struct { + value string +} + +type CreateSmartChatRoomReqDefaultLanguageEnum struct { + CN CreateSmartChatRoomReqDefaultLanguage + EN CreateSmartChatRoomReqDefaultLanguage +} + +func GetCreateSmartChatRoomReqDefaultLanguageEnum() CreateSmartChatRoomReqDefaultLanguageEnum { + return CreateSmartChatRoomReqDefaultLanguageEnum{ + CN: CreateSmartChatRoomReqDefaultLanguage{ + value: "CN", + }, + EN: CreateSmartChatRoomReqDefaultLanguage{ + value: "EN", + }, + } +} + +func (c CreateSmartChatRoomReqDefaultLanguage) Value() string { + return c.value +} + +func (c CreateSmartChatRoomReqDefaultLanguage) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *CreateSmartChatRoomReqDefaultLanguage) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} + type CreateSmartChatRoomReqChatVideoType struct { value string } diff --git a/services/metastudio/v1/model/model_create_smart_live_room_req.go b/services/metastudio/v1/model/model_create_smart_live_room_req.go index fe8f2f8f20..062660c68b 100644 --- a/services/metastudio/v1/model/model_create_smart_live_room_req.go +++ b/services/metastudio/v1/model/model_create_smart_live_room_req.go @@ -42,7 +42,7 @@ type CreateSmartLiveRoomReq struct { // **参数解释**: 主播轮换时备选主播数字人资产ID(仅形象资产,不包含声音)。 **约束限制**: 不涉及 **取值范围**: 当前最大支持5个备选主播。 数字人资产ID,字符长度0-64位。 **默认取值**: 不涉及 BackupModelAssetIds *[]string `json:"backup_model_asset_ids,omitempty"` - LiveEventCallbackConfig *LiveEventCallBackConfig `json:"live_event_callback_config,omitempty"` + LiveEventCallbackConfig *LiveRoomEventCallBackConfig `json:"live_event_callback_config,omitempty"` RtcCallbackConfig *RtcLiveEventCallBackConfig `json:"rtc_callback_config,omitempty"` diff --git a/services/metastudio/v1/model/model_create_smart_live_room_req_base_info.go b/services/metastudio/v1/model/model_create_smart_live_room_req_base_info.go index c1200bb908..e90c38b5c6 100644 --- a/services/metastudio/v1/model/model_create_smart_live_room_req_base_info.go +++ b/services/metastudio/v1/model/model_create_smart_live_room_req_base_info.go @@ -42,7 +42,7 @@ type CreateSmartLiveRoomReqBaseInfo struct { // **参数解释**: 主播轮换时备选主播数字人资产ID(仅形象资产,不包含声音)。 **约束限制**: 不涉及 **取值范围**: 当前最大支持5个备选主播。 数字人资产ID,字符长度0-64位。 **默认取值**: 不涉及 BackupModelAssetIds *[]string `json:"backup_model_asset_ids,omitempty"` - LiveEventCallbackConfig *LiveEventCallBackConfig `json:"live_event_callback_config,omitempty"` + LiveEventCallbackConfig *LiveRoomEventCallBackConfig `json:"live_event_callback_config,omitempty"` RtcCallbackConfig *RtcLiveEventCallBackConfig `json:"rtc_callback_config,omitempty"` diff --git a/services/metastudio/v1/model/model_create_tts_audition_request_body.go b/services/metastudio/v1/model/model_create_tts_audition_request_body.go index 6386eede52..b22103623c 100644 --- a/services/metastudio/v1/model/model_create_tts_audition_request_body.go +++ b/services/metastudio/v1/model/model_create_tts_audition_request_body.go @@ -12,16 +12,16 @@ type CreateTtsAuditionRequestBody struct { // 待合成文本。 Text string `json:"text"` - // 音色ID。 + // 音色ID,获取方式详见[获取音色ID](metastudio_02_0054.xml)。 Emotion string `json:"emotion"` - // 语速。 默认值100,最小值50,最大值200。 > * 当取值为“100”时,表示一个成年人正常的语速,约为250字/分钟。 > * 50表示0.5倍语速,100表示正常语速,200表示2倍语速。 + // 语速。 * 当取值为“100”时,表示一个成年人正常的语速,约为250字/分钟。 * 50表示0.5倍语速,100表示正常语速,200表示2倍语速。 Speed *int32 `json:"speed,omitempty"` - // 音高。 默认值100,最小值50,最大值200。 + // 音高。 Pitch *int32 `json:"pitch,omitempty"` - // 音量。 默认值140,最小值90,最大值240。 + // 音量。 Volume *int32 `json:"volume,omitempty"` // 业务场景,多个入口调用试听接口时的业务场景 diff --git a/services/metastudio/v1/model/model_image_asset_meta.go b/services/metastudio/v1/model/model_image_asset_meta.go index 55954b9588..aa4df3d4fe 100644 --- a/services/metastudio/v1/model/model_image_asset_meta.go +++ b/services/metastudio/v1/model/model_image_asset_meta.go @@ -27,6 +27,12 @@ type ImageAssetMeta struct { // **参数解释**: 图片形态。 **约束限制**: 用户无需填写,系统自行提取。 **取值范围**: * Horizontal:横向 * Vertical:纵向 **默认取值**: 不涉及。 Mode *ImageAssetMetaMode `json:"mode,omitempty"` + // **参数解释**: 视频帧率。 **约束限制**: 用户无需填写,系统自行提取。 **取值范围**: 字符长度0-32位。 **默认取值**: 不涉及 + FrameRate *string `json:"frame_rate,omitempty"` + + // **参数解释**: 时长,单位秒。 **约束限制**: 用户无需填写,系统自行提取。 **默认取值**: 不涉及 + Duration *int32 `json:"duration,omitempty"` + ErrorInfo *ErrorResponse `json:"error_info,omitempty"` } diff --git a/services/metastudio/v1/model/model_live_room_event_call_back_config.go b/services/metastudio/v1/model/model_live_room_event_call_back_config.go new file mode 100644 index 0000000000..e7cc8dc133 --- /dev/null +++ b/services/metastudio/v1/model/model_live_room_event_call_back_config.go @@ -0,0 +1,92 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "errors" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/converter" + + "strings" +) + +type LiveRoomEventCallBackConfig struct { + + // **参数解释**: 直播事件回调地址,为https地址。 **约束限制**: 不涉及。 **取值范围**: 字符长度0-2048位。 **默认取值**: 不涉及。 + LiveEventTypeCallbackUrl *string `json:"live_event_type_callback_url,omitempty"` + + // **参数解释**: 认证类型。 **约束限制**: 不涉及。 **取值范围**: * NONE:URL中自带认证。 * MSS_A:HMACSHA256签名模式,在URL中追加参数hwSecret、hwTime。 取值方式:hwSecret=hmac_sha256(Key, URI(live_event_callback_url)+ hwTime)&hwTime=hex(timestamp) * MSS_A_HEAD:HMACSHA256签名模式,参数hwSecret、hwTime放置在Head中。 取值方式:x-hw-mss-secret=hmac_sha256(Key, URI(live_event_callback_url)+ hwTime) x-hw-mss-time=hex(timestamp) * MEITUAN_DEFAULT:仅用于美团平台调用回调使用。 + AuthType *LiveRoomEventCallBackConfigAuthType `json:"auth_type,omitempty"` + + // **参数解释**: 密钥Key。 **约束限制**: 不涉及。 **取值范围**: 字符长度0-32位。 **默认取值**: 不涉及。 + Key *string `json:"key,omitempty"` + + // **参数解释**: 回调的直播事件类型列表。 **约束限制**: 不涉及。 **取值范围**: 当前仅支持如下取值: * SHOOT_SCRIPT_SWITCH:剧本段落切换事件。 * RTMP_STREAM_STATE_CHANGE:RTMP链接发生变化回调事件。 * REPLY_COMMAND_FINISH:回复播放完成通知。 回调事件结构体定义: * event_type:事件类型。 * message:事件描述。 - SHOOT_SCRIPT_SWITCH事件回调定义如下: ```json { \"event_type\": \"SHOOT_SCRIPT_SWITCH\", \"message\":\"{\\\"room_id\\\":\\\"26f065244f754b3aa853b649a21aaf66\\\",\\\"job_id\\\":\\\"e87104f76d7546ce8a46ac6b04c49c3c\\\",\\\"scene_script_name\\\":\\\"商品1\\\",\\\"shoot_script_sequence_no\\\":\\\"2\\\",\\\"shoot_script_title\\\":\\\"段落2\\\"}\" } ``` - RTMP_STREAM_STATE_CHANGE回调定义如下: ```json { \"event_type\": \"RTMP_STREAM_STATE_CHANGE\", \"message\":\"{\\\"room_id\\\":\\\"26f065244f754b3aa853b649a21aaf66\\\",\\\"job_id\\\":\\\"e87104f76d7546ce8a46ac6b04c49c3c\\\",\\\"output_url\\\":\\\"rtmp://xxx/xx/xx\\\",\\\"stream_key\\\":\\\"xxxxx\\\",\\\"state\\\":\\\"CONNECTED\\\"}\" } ``` 其中state取值:CONNECTING链路连接中;CONNECTED链路已连接;DISCONNECTED链路已断开,RECONNECTING链路重连中;END联络不再重连,链路已结束。 - REPLY_COMMAND_FINISH回调定义如下: ```json { \"event_type\": \"REPLY_COMMAND_FINISH\", \"message\":\"{\\\"room_id\\\":\\\"26f065244f754b3aa853b649a21aaf66\\\",\\\"job_id\\\":\\\"e87104f76d7546ce8a46ac6b04c49c3c\\\",\\\"reply_id\\\":\\\"e87104f76d7546ce8a46ac6b04c49c3c\"}\" } + CallbackEventType *[]string `json:"callback_event_type,omitempty"` + + // **参数解释**: 是否继承直播平台回调配置,默认true **约束限制**: 不涉及。 **取值范围**: true:继承直播平台callback配置 false:不继承直播平台callback配置 **默认取值**: false + IsInheritancePlatformCallback *bool `json:"is_inheritance_platform_callback,omitempty"` +} + +func (o LiveRoomEventCallBackConfig) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "LiveRoomEventCallBackConfig struct{}" + } + + return strings.Join([]string{"LiveRoomEventCallBackConfig", string(data)}, " ") +} + +type LiveRoomEventCallBackConfigAuthType struct { + value string +} + +type LiveRoomEventCallBackConfigAuthTypeEnum struct { + NONE LiveRoomEventCallBackConfigAuthType + MSS_A LiveRoomEventCallBackConfigAuthType + MSS_A_HEAD LiveRoomEventCallBackConfigAuthType + MEITUAN_DEFAULT LiveRoomEventCallBackConfigAuthType +} + +func GetLiveRoomEventCallBackConfigAuthTypeEnum() LiveRoomEventCallBackConfigAuthTypeEnum { + return LiveRoomEventCallBackConfigAuthTypeEnum{ + NONE: LiveRoomEventCallBackConfigAuthType{ + value: "NONE", + }, + MSS_A: LiveRoomEventCallBackConfigAuthType{ + value: "MSS_A", + }, + MSS_A_HEAD: LiveRoomEventCallBackConfigAuthType{ + value: "MSS_A_HEAD", + }, + MEITUAN_DEFAULT: LiveRoomEventCallBackConfigAuthType{ + value: "MEITUAN_DEFAULT", + }, + } +} + +func (c LiveRoomEventCallBackConfigAuthType) Value() string { + return c.value +} + +func (c LiveRoomEventCallBackConfigAuthType) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *LiveRoomEventCallBackConfigAuthType) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} diff --git a/services/metastudio/v1/model/model_operation_log_info.go b/services/metastudio/v1/model/model_operation_log_info.go index 530ff113d7..f49a8a493c 100644 --- a/services/metastudio/v1/model/model_operation_log_info.go +++ b/services/metastudio/v1/model/model_operation_log_info.go @@ -18,11 +18,14 @@ type OperationLogInfo struct { // 命令执行结果。 * USER_CREATE_JOD:用户开始分身数字人定制 * USER_VERIFYING_SUBMITTED:用户提交审核 * SYSTEM_VERIFY_FAILED:自动审核失败 * ADMIN_UPDATE_BEAUTY_LEVEL:管理员更新美白等级 * SYSTEM_VERIFY_SUCCESS:自动审核成功 * ADMIN_VERIFY_SUCCESS:人工审核通过 * ADMIN_VERIFY_FAILED:人工审核不通过 * SYSTEM_TRAIN_DATA_PREPROCESSING:训练数据预处理中 * SYSTEM_TRAIN_DATA_PREPROCESS_FAILED:训练数据预处理失败 * SYSTEM_TRAIN_DATA_PREPROCESS_SUCCESS:训练数据预处理成功 * SYSTEM_ACTION_GENERATE_DATA_PREPROCESSING:动作编排原子动作生成中 * SYSTEM_ACTION_GENERATE_DATA_SUCCESS:动作编排原子动作生成成功 * SYSTEM_ACTION_GENERATE_ORI_SUCCESS:动作编排资产数据生成成功 * SYSTEM_ACTION_GENERATE_DATA_FAILED:动作编排原子动作生成失败 * SYSTEM_ACTION_GENERATE_ORI_FAILED:动作编排资产数据生成失败 * SYSTEM_ACTION_GENERATE_ORI_PREPROCESSING:动作编排资产数据生成中 * SYSTEM_TRAINING:开始训练 * ADMIN_STOP_TRAINING_DATA_PREPROCESS:人工中止训练 * ADMIN_STOP_BEAUTY_PREPROCESS:人工中止美白 * ADMIN_STOP_INFERENCE_DATA_PREPROCESS:人工中止推理预处理 * ADMIN_STOP_TRAIN:人工终止训练 * SYSTEM_TRAIN_FAILED:训练失败 * SYSTEM_TRAIN_SUCCESS:训练成功 * SYSTEM_INFERENCE_DATA_PREPROCESSING:推理数据预处理中 * SYSTEM_INFERENCE_DATA_PREPROCESS_FAILED:推理数据预处理失败 * SYSTEM_INFERENCE_DATA_PREPROCESS_SUCCESS:推理数据预处理成功 * SYSTEM_JOB_SUCCESS:任务处理完成 * ADMIN_MASK_UPLOADED:遮罩文件上传完成(已废弃) * ADMIN_UPDATE_VIDEO:管理员更换视频 * ADMIN_UPDATE_ACTION_VIDEO:管理员更换动作编排视频 * ADMIN_RESET:管理员一键重置 * ADMIN_ACCEPT:管理员通过 * USER_REPAIR:用户修复 * SYSTEM_UPDATE_COVER:更换封面 * ADMIN_SET_SILENCE_REPEAT_NUM:管理员设置静默轮数 * SYSTEM_MARKABLE_VIDEO:标记视频生成任务 * SYSTEM_MASK_VERIFY_VIDEO:校验视频生成任务 * SYSTEM_MASK_VERIFY_VIDEO_SUCCESS:校验视频生成成功 * SYSTEM_MASK_VERIFY_VIDEO_FAILED:校验视频生成失败 * SYSTEM_MARKABLE_VIDEO_SUCCESS:标记视频生成成功 * SYSTEM_BEAUTY_PREPROCESSING:美白处理中 * SYSTEM_BEAUTY_PREPROCESS_FAILED:美白处理失败 * ADMIN_CONFIRM_ACTION:管理员确认动作 * ADMIN_STOP_ACTION_GENERATE_DATA_PREPROCESS:人工中止原子动作生成 * ADMIN_STOP_ACTION_GENERATE_ORI_PREPROCESS:人工中止动作编排 * SYSTEM_BEAUTY_PREPROCESS_SUCCESS:美白视频训练预处理成功 * SYSTEM_COMPILE_FAILED:转编译失败 * SYSTEM_COMPILE_SUCCESS:转编译成功 * SYSTEM_MARKABLE_VIDEO_FAILED:标记视频生成失败 * ADMIN_UPDATE_COMPILE:管理员更新转编译配置 * ADMIN_UPDATE_INFERENCE_DATA_PROCESS_VIDEO:管理员更新推理预处理时间段信息 * SYSTEM_EXECUTE_COMPILE:执行转编译 * SYSTEM_EXECUTE_BEAUTY:执行美白处理 * SYSTEM_MASK_VIDEO_AND_ACTION_TIME_SUCCESS:自动标记成功 * SYSTEM_MASK_VIDEO_AND_ACTION_TIME_FAILED:自动标记失败 * USER_UPDATE_VIDEO:用户更换视频 * ADMIN_UPDATE_GENERAL_CONFIG:管理员更新通用配置 * ADMIN_MASK_ACTION_TIME:管理员标记 * STOP_COMPILE:人工中止转编译 LogType *OperationLogInfoLogType `json:"log_type,omitempty"` - // 日志描述。用于记录人工审核不通过时的审核意见和DHTS、DHPS上报的错误信息。 + // 日志描述。用于记录人工或自动审核不通过时的审核意见。 LogDescription *string `json:"log_description,omitempty"` // 操作人员。 * USER:用户 * ADMIN:管理员 * SYSTEM:系统 OperateUser *OperationLogInfoOperateUser `json:"operate_user,omitempty"` + + // 系统自动驳回时的错误码: * 44005901:视频分辨率不符合要求,目前只接受 1080p(1920x1080, 1080x1920) 或 4K(3840x2160, 2160x3840) 这四种分辨率 + ErrorCode *string `json:"error_code,omitempty"` } func (o OperationLogInfo) String() string { diff --git a/services/metastudio/v1/model/model_show_async_tts_job_response.go b/services/metastudio/v1/model/model_show_async_tts_job_response.go index fb317612eb..efff306e5b 100644 --- a/services/metastudio/v1/model/model_show_async_tts_job_response.go +++ b/services/metastudio/v1/model/model_show_async_tts_job_response.go @@ -15,7 +15,7 @@ type ShowAsyncTtsJobResponse struct { // 音频文件下载链接,有效期为1个小时。 AudioFileUrl *string `json:"audio_file_url,omitempty"` - // 音频信息文件下载链接,有效期为1个小时。 + // 字幕文件下载链接,有效期为1个小时。 AudioInfoFileUrl *string `json:"audio_info_file_url,omitempty"` HttpStatusCode int `json:"-"` } diff --git a/services/metastudio/v1/model/model_show_smart_chat_room_response.go b/services/metastudio/v1/model/model_show_smart_chat_room_response.go index b094059aa8..d5b1a0ead5 100644 --- a/services/metastudio/v1/model/model_show_smart_chat_room_response.go +++ b/services/metastudio/v1/model/model_show_smart_chat_room_response.go @@ -25,12 +25,18 @@ type ShowSmartChatRoomResponse struct { VoiceConfig *VoiceConfig `json:"voice_config,omitempty"` + // 语音配置参数列表。 + VoiceConfigList *[]ChatVoiceConfig `json:"voice_config_list,omitempty"` + // 机器人ID。获取方法请参考[创建应用](CreateRobot.xml)。 RobotId *string `json:"robot_id,omitempty"` // **参数解释**: 并发路数。 Concurrency *int32 `json:"concurrency,omitempty"` + // 默认语言,智能交互接口使用。默认值CN。 * CN:简体中文。 * EN:英语。 + DefaultLanguage *ShowSmartChatRoomResponseDefaultLanguage `json:"default_language,omitempty"` + BackgroundConfig *BackgroundConfigInfo `json:"background_config,omitempty"` // 图层配置。 @@ -68,6 +74,53 @@ func (o ShowSmartChatRoomResponse) String() string { return strings.Join([]string{"ShowSmartChatRoomResponse", string(data)}, " ") } +type ShowSmartChatRoomResponseDefaultLanguage struct { + value string +} + +type ShowSmartChatRoomResponseDefaultLanguageEnum struct { + CN ShowSmartChatRoomResponseDefaultLanguage + EN ShowSmartChatRoomResponseDefaultLanguage +} + +func GetShowSmartChatRoomResponseDefaultLanguageEnum() ShowSmartChatRoomResponseDefaultLanguageEnum { + return ShowSmartChatRoomResponseDefaultLanguageEnum{ + CN: ShowSmartChatRoomResponseDefaultLanguage{ + value: "CN", + }, + EN: ShowSmartChatRoomResponseDefaultLanguage{ + value: "EN", + }, + } +} + +func (c ShowSmartChatRoomResponseDefaultLanguage) Value() string { + return c.value +} + +func (c ShowSmartChatRoomResponseDefaultLanguage) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *ShowSmartChatRoomResponseDefaultLanguage) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} + type ShowSmartChatRoomResponseChatVideoType struct { value string } diff --git a/services/metastudio/v1/model/model_show_smart_live_room_response.go b/services/metastudio/v1/model/model_show_smart_live_room_response.go index 7a185e176c..acef253d49 100644 --- a/services/metastudio/v1/model/model_show_smart_live_room_response.go +++ b/services/metastudio/v1/model/model_show_smart_live_room_response.go @@ -42,7 +42,7 @@ type ShowSmartLiveRoomResponse struct { // **参数解释**: 主播轮换时备选主播数字人资产ID(仅形象资产,不包含声音)。 **约束限制**: 不涉及 **取值范围**: 当前最大支持5个备选主播。 数字人资产ID,字符长度0-64位。 **默认取值**: 不涉及 BackupModelAssetIds *[]string `json:"backup_model_asset_ids,omitempty"` - LiveEventCallbackConfig *LiveEventCallBackConfig `json:"live_event_callback_config,omitempty"` + LiveEventCallbackConfig *LiveRoomEventCallBackConfig `json:"live_event_callback_config,omitempty"` RtcCallbackConfig *RtcLiveEventCallBackConfig `json:"rtc_callback_config,omitempty"` diff --git a/services/metastudio/v1/model/model_show_voice_training_job_response.go b/services/metastudio/v1/model/model_show_voice_training_job_response.go index 3658baceb2..e3858ea88b 100644 --- a/services/metastudio/v1/model/model_show_voice_training_job_response.go +++ b/services/metastudio/v1/model/model_show_voice_training_job_response.go @@ -62,7 +62,10 @@ type ShowVoiceTrainingJobResponse struct { BatchName *string `json:"batch_name,omitempty"` AllocatedResource *VoiceTrainingAllocatedResource `json:"allocated_resource,omitempty"` - HttpStatusCode int `json:"-"` + + // 模型输出语言类型 + OutputLanguage *string `json:"output_language,omitempty"` + HttpStatusCode int `json:"-"` } func (o ShowVoiceTrainingJobResponse) String() string { diff --git a/services/metastudio/v1/model/model_smart_chat_room_base_info.go b/services/metastudio/v1/model/model_smart_chat_room_base_info.go index c1c157629b..4cd1519f87 100644 --- a/services/metastudio/v1/model/model_smart_chat_room_base_info.go +++ b/services/metastudio/v1/model/model_smart_chat_room_base_info.go @@ -3,6 +3,9 @@ package model import ( "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + "errors" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/converter" + "strings" ) @@ -30,6 +33,12 @@ type SmartChatRoomBaseInfo struct { // **参数解释**: 并发路数。 Concurrency *int32 `json:"concurrency,omitempty"` + // 语音配置参数列表。 + VoiceConfigList *[]VoiceConfigRsp `json:"voice_config_list,omitempty"` + + // 默认语言,智能交互接口使用。默认值CN。 * CN:简体中文。 * EN:英语。 + DefaultLanguage *SmartChatRoomBaseInfoDefaultLanguage `json:"default_language,omitempty"` + // 创建时间,格式遵循:RFC 3339 如“2021-01-10T08:43:17Z”。 CreateTime *string `json:"create_time,omitempty"` @@ -45,3 +54,50 @@ func (o SmartChatRoomBaseInfo) String() string { return strings.Join([]string{"SmartChatRoomBaseInfo", string(data)}, " ") } + +type SmartChatRoomBaseInfoDefaultLanguage struct { + value string +} + +type SmartChatRoomBaseInfoDefaultLanguageEnum struct { + CN SmartChatRoomBaseInfoDefaultLanguage + EN SmartChatRoomBaseInfoDefaultLanguage +} + +func GetSmartChatRoomBaseInfoDefaultLanguageEnum() SmartChatRoomBaseInfoDefaultLanguageEnum { + return SmartChatRoomBaseInfoDefaultLanguageEnum{ + CN: SmartChatRoomBaseInfoDefaultLanguage{ + value: "CN", + }, + EN: SmartChatRoomBaseInfoDefaultLanguage{ + value: "EN", + }, + } +} + +func (c SmartChatRoomBaseInfoDefaultLanguage) Value() string { + return c.value +} + +func (c SmartChatRoomBaseInfoDefaultLanguage) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *SmartChatRoomBaseInfoDefaultLanguage) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} diff --git a/services/metastudio/v1/model/model_training_job_info.go b/services/metastudio/v1/model/model_training_job_info.go index 157d27bdef..be30584093 100644 --- a/services/metastudio/v1/model/model_training_job_info.go +++ b/services/metastudio/v1/model/model_training_job_info.go @@ -62,6 +62,9 @@ type TrainingJobInfo struct { BatchName *string `json:"batch_name,omitempty"` AllocatedResource *VoiceTrainingAllocatedResource `json:"allocated_resource,omitempty"` + + // 模型输出语言类型 + OutputLanguage *string `json:"output_language,omitempty"` } func (o TrainingJobInfo) String() string { diff --git a/services/metastudio/v1/model/model_update_custom_platform_auth_config.go b/services/metastudio/v1/model/model_update_custom_platform_auth_config.go new file mode 100644 index 0000000000..a70967bc7a --- /dev/null +++ b/services/metastudio/v1/model/model_update_custom_platform_auth_config.go @@ -0,0 +1,23 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// UpdateCustomPlatformAuthConfig 自定义直播平台鉴权配置 +type UpdateCustomPlatformAuthConfig struct { + + // 密钥Key。调用自定义直播平台时使用。 使用方式: 调用接口时,增加两个头域:x-hw-mss-time,x-hw-mss-secret * x-hw-mss-time:当前时间戳。Unix时间戳的十六进制结果。1分钟内有效。 示例: 66df9308(即2024.09.10 08:30:00) * x-hw-mss-secret:鉴权串。hmac_sha256(Key, URI(product_query_url,query参数按照Key的字典序排列)+ x-hw-mss-time) 示例: URL https://api.example.com/v1/products?live_id=111&limit=10&offset=0 Key:GCTbw44s6MPLh4GqgDpnfuFHgy25Enly hwTime:66df9308 x-hw-mss-secret=hmac_sha256(GCTbw44s6MPLh4GqgDpnfuFHgy25Enly,api.example.com/v1/products?limit=10&live_id=111&offset=066df9308)=5e7fe8869a12a87ea966d9edbc02e38cd4ce62c73b8b05c638f15835e78902d7 x-hw-mss-secret: 5e7fe8869a12a87ea966d9edbc02e38cd4ce62c73b8b05c638f15835e78902d7 + Key *string `json:"key,omitempty"` +} + +func (o UpdateCustomPlatformAuthConfig) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "UpdateCustomPlatformAuthConfig struct{}" + } + + return strings.Join([]string{"UpdateCustomPlatformAuthConfig", string(data)}, " ") +} diff --git a/services/metastudio/v1/model/model_update_live_platform_req.go b/services/metastudio/v1/model/model_update_live_platform_req.go new file mode 100644 index 0000000000..095c9f1df0 --- /dev/null +++ b/services/metastudio/v1/model/model_update_live_platform_req.go @@ -0,0 +1,28 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// UpdateLivePlatformReq 自定义直播平台创建请求 +type UpdateLivePlatformReq struct { + + // 直播平台名称 + Name string `json:"name"` + + AuthConfig *UpdateCustomPlatformAuthConfig `json:"auth_config,omitempty"` + + // 自定义直播平台回调配置。同一种类型仅保留一个配置,如果配置多个会随机保存一个。 + CallbackConfig []StandardPlatformApiConfig `json:"callback_config"` +} + +func (o UpdateLivePlatformReq) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "UpdateLivePlatformReq struct{}" + } + + return strings.Join([]string{"UpdateLivePlatformReq", string(data)}, " ") +} diff --git a/services/metastudio/v1/model/model_update_live_platform_request.go b/services/metastudio/v1/model/model_update_live_platform_request.go index fb08dbb0d4..9f22229929 100644 --- a/services/metastudio/v1/model/model_update_live_platform_request.go +++ b/services/metastudio/v1/model/model_update_live_platform_request.go @@ -24,7 +24,7 @@ type UpdateLivePlatformRequest struct { // 直播平台ID。 PlatformId string `json:"platform_id"` - Body *CreateLivePlatformReq `json:"body,omitempty"` + Body *UpdateLivePlatformReq `json:"body,omitempty"` } func (o UpdateLivePlatformRequest) String() string { diff --git a/services/metastudio/v1/model/model_update_smart_chat_room_response.go b/services/metastudio/v1/model/model_update_smart_chat_room_response.go index 7a17251aab..ceac8171c9 100644 --- a/services/metastudio/v1/model/model_update_smart_chat_room_response.go +++ b/services/metastudio/v1/model/model_update_smart_chat_room_response.go @@ -25,12 +25,18 @@ type UpdateSmartChatRoomResponse struct { VoiceConfig *VoiceConfig `json:"voice_config,omitempty"` + // 语音配置参数列表。 + VoiceConfigList *[]ChatVoiceConfig `json:"voice_config_list,omitempty"` + // 机器人ID。获取方法请参考[创建应用](CreateRobot.xml)。 RobotId *string `json:"robot_id,omitempty"` // **参数解释**: 并发路数。 Concurrency *int32 `json:"concurrency,omitempty"` + // 默认语言,智能交互接口使用。默认值CN。 * CN:简体中文。 * EN:英语。 + DefaultLanguage *UpdateSmartChatRoomResponseDefaultLanguage `json:"default_language,omitempty"` + BackgroundConfig *BackgroundConfigInfo `json:"background_config,omitempty"` // 图层配置。 @@ -68,6 +74,53 @@ func (o UpdateSmartChatRoomResponse) String() string { return strings.Join([]string{"UpdateSmartChatRoomResponse", string(data)}, " ") } +type UpdateSmartChatRoomResponseDefaultLanguage struct { + value string +} + +type UpdateSmartChatRoomResponseDefaultLanguageEnum struct { + CN UpdateSmartChatRoomResponseDefaultLanguage + EN UpdateSmartChatRoomResponseDefaultLanguage +} + +func GetUpdateSmartChatRoomResponseDefaultLanguageEnum() UpdateSmartChatRoomResponseDefaultLanguageEnum { + return UpdateSmartChatRoomResponseDefaultLanguageEnum{ + CN: UpdateSmartChatRoomResponseDefaultLanguage{ + value: "CN", + }, + EN: UpdateSmartChatRoomResponseDefaultLanguage{ + value: "EN", + }, + } +} + +func (c UpdateSmartChatRoomResponseDefaultLanguage) Value() string { + return c.value +} + +func (c UpdateSmartChatRoomResponseDefaultLanguage) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *UpdateSmartChatRoomResponseDefaultLanguage) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} + type UpdateSmartChatRoomResponseChatVideoType struct { value string } diff --git a/services/metastudio/v1/model/model_update_smart_live_room_response.go b/services/metastudio/v1/model/model_update_smart_live_room_response.go index 06f4da6439..0c6866fdc9 100644 --- a/services/metastudio/v1/model/model_update_smart_live_room_response.go +++ b/services/metastudio/v1/model/model_update_smart_live_room_response.go @@ -42,7 +42,7 @@ type UpdateSmartLiveRoomResponse struct { // **参数解释**: 主播轮换时备选主播数字人资产ID(仅形象资产,不包含声音)。 **约束限制**: 不涉及 **取值范围**: 当前最大支持5个备选主播。 数字人资产ID,字符长度0-64位。 **默认取值**: 不涉及 BackupModelAssetIds *[]string `json:"backup_model_asset_ids,omitempty"` - LiveEventCallbackConfig *LiveEventCallBackConfig `json:"live_event_callback_config,omitempty"` + LiveEventCallbackConfig *LiveRoomEventCallBackConfig `json:"live_event_callback_config,omitempty"` RtcCallbackConfig *RtcLiveEventCallBackConfig `json:"rtc_callback_config,omitempty"` diff --git a/services/metastudio/v1/model/model_video_config.go b/services/metastudio/v1/model/model_video_config.go index 006e0633bb..a05f9ff171 100644 --- a/services/metastudio/v1/model/model_video_config.go +++ b/services/metastudio/v1/model/model_video_config.go @@ -43,6 +43,9 @@ type VideoConfig struct { // **参数解释**: 视频是否开启超分。 **约束限制**: 仅分身数字人视频制作支持。 **取值范围** * true: 开启 * false: 不开启 IsEnableSuperResolution *bool `json:"is_enable_super_resolution,omitempty"` + + // **参数解释**: 视频结束帧是否跟起始帧相同。需要多个数字人视频无缝拼接时设置成true。 **约束限制**: 仅分身数字人视频制作支持。 **取值范围** * true: 开启 * false: 不开启 + IsEndAtFirstFrame *bool `json:"is_end_at_first_frame,omitempty"` } func (o VideoConfig) String() string { diff --git a/services/metastudio/v1/model/model_voice_config_rsp.go b/services/metastudio/v1/model/model_voice_config_rsp.go new file mode 100644 index 0000000000..af7a130f02 --- /dev/null +++ b/services/metastudio/v1/model/model_voice_config_rsp.go @@ -0,0 +1,91 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "errors" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/converter" + + "strings" +) + +// VoiceConfigRsp 语音配置参数 +type VoiceConfigRsp struct { + + // 语音合成特征字符串 + VoiceAssetId *string `json:"voice_asset_id,omitempty"` + + // 语速。默认值100,最小值50,最大值200。 > 当取值为“100”时,表示一个成年人正常的语速,约为250字/分钟。 + Speed *int32 `json:"speed,omitempty"` + + // 音高。默认值100,最小值50,最大值200。 + Pitch *int32 `json:"pitch,omitempty"` + + // 音量。默认值140,最小值90,最大值240。 + Volume *int32 `json:"volume,omitempty"` + + // 第三方TTS供应商类型。 * XIMALAYA:喜马拉雅TTS * HUAWEI_EI:EI TTS * MOBVOI:出门问问TTS + Provider *string `json:"provider,omitempty"` + + // 语言类型。默认值CN。 * CN:简体中文。 * EN:英语。 + Language *VoiceConfigRspLanguage `json:"language,omitempty"` + + // 语言描述 + LanguageDesc *string `json:"language_desc,omitempty"` +} + +func (o VoiceConfigRsp) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "VoiceConfigRsp struct{}" + } + + return strings.Join([]string{"VoiceConfigRsp", string(data)}, " ") +} + +type VoiceConfigRspLanguage struct { + value string +} + +type VoiceConfigRspLanguageEnum struct { + CN VoiceConfigRspLanguage + EN VoiceConfigRspLanguage +} + +func GetVoiceConfigRspLanguageEnum() VoiceConfigRspLanguageEnum { + return VoiceConfigRspLanguageEnum{ + CN: VoiceConfigRspLanguage{ + value: "CN", + }, + EN: VoiceConfigRspLanguage{ + value: "EN", + }, + } +} + +func (c VoiceConfigRspLanguage) Value() string { + return c.value +} + +func (c VoiceConfigRspLanguage) MarshalJSON() ([]byte, error) { + return utils.Marshal(c.value) +} + +func (c *VoiceConfigRspLanguage) UnmarshalJSON(b []byte) error { + myConverter := converter.StringConverterFactory("string") + if myConverter == nil { + return errors.New("unsupported StringConverter type: string") + } + + interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\"")) + if err != nil { + return err + } + + if val, ok := interf.(string); ok { + c.value = val + return nil + } else { + return errors.New("convert enum data to string error") + } +} diff --git a/services/smsapi/v1/model/model_batch_send_diff_sms_request.go b/services/smsapi/v1/model/model_batch_send_diff_sms_request.go new file mode 100644 index 0000000000..cc24cad034 --- /dev/null +++ b/services/smsapi/v1/model/model_batch_send_diff_sms_request.go @@ -0,0 +1,21 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// BatchSendDiffSmsRequest Request Object +type BatchSendDiffSmsRequest struct { + Body *BatchSendDiffSmsRequestBody `json:"body,omitempty"` +} + +func (o BatchSendDiffSmsRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "BatchSendDiffSmsRequest struct{}" + } + + return strings.Join([]string{"BatchSendDiffSmsRequest", string(data)}, " ") +} diff --git a/services/smsapi/v1/model/model_batch_send_diff_sms_request_body.go b/services/smsapi/v1/model/model_batch_send_diff_sms_request_body.go new file mode 100644 index 0000000000..3333790d0a --- /dev/null +++ b/services/smsapi/v1/model/model_batch_send_diff_sms_request_body.go @@ -0,0 +1,32 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// BatchSendDiffSmsRequestBody 批量发送短信的请求body数据结构 +type BatchSendDiffSmsRequestBody struct { + + // 短信发送方的号码 + From *string `json:"from,omitempty"` + + // SP的回调地址,用于单条接收短信状态报告 + StatusCallback *string `json:"statusCallback,omitempty"` + + // 短信内容 + SmsContent *[]SmsContent `json:"smsContent,omitempty"` + + // 扩展参数 + Extend *string `json:"extend,omitempty"` +} + +func (o BatchSendDiffSmsRequestBody) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "BatchSendDiffSmsRequestBody struct{}" + } + + return strings.Join([]string{"BatchSendDiffSmsRequestBody", string(data)}, " ") +} diff --git a/services/smsapi/v1/model/model_batch_send_diff_sms_response.go b/services/smsapi/v1/model/model_batch_send_diff_sms_response.go new file mode 100644 index 0000000000..7e184b14e1 --- /dev/null +++ b/services/smsapi/v1/model/model_batch_send_diff_sms_response.go @@ -0,0 +1,30 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// BatchSendDiffSmsResponse Response Object +type BatchSendDiffSmsResponse struct { + + // 错误码 + Code *string `json:"code,omitempty"` + + // 错误描述 + Description *string `json:"description,omitempty"` + + // 短信状态 + Result *[]SmsId `json:"result,omitempty"` + HttpStatusCode int `json:"-"` +} + +func (o BatchSendDiffSmsResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "BatchSendDiffSmsResponse struct{}" + } + + return strings.Join([]string{"BatchSendDiffSmsResponse", string(data)}, " ") +} diff --git a/services/smsapi/v1/model/model_batch_send_sms_request.go b/services/smsapi/v1/model/model_batch_send_sms_request.go new file mode 100644 index 0000000000..2555f64340 --- /dev/null +++ b/services/smsapi/v1/model/model_batch_send_sms_request.go @@ -0,0 +1,21 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// BatchSendSmsRequest Request Object +type BatchSendSmsRequest struct { + Body *BatchSendSmsRequestBody `json:"body,omitempty" type:"multipart"` +} + +func (o BatchSendSmsRequest) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "BatchSendSmsRequest struct{}" + } + + return strings.Join([]string{"BatchSendSmsRequest", string(data)}, " ") +} diff --git a/services/smsapi/v1/model/model_batch_send_sms_request_body.go b/services/smsapi/v1/model/model_batch_send_sms_request_body.go new file mode 100644 index 0000000000..2c30724792 --- /dev/null +++ b/services/smsapi/v1/model/model_batch_send_sms_request_body.go @@ -0,0 +1,80 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "encoding/json" + "errors" + "fmt" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/def" + "os" + "reflect" + + "strings" +) + +type BatchSendSmsRequestBody struct { + + // 短信发送方的号码 + From *def.MultiPart `json:"from,omitempty"` + + // 短信接收方的号码 + To *def.MultiPart `json:"to,omitempty"` + + // 短信模板ID + TemplateId *def.MultiPart `json:"templateId,omitempty"` + + // 短信模板的变量值 + TemplateParas *def.MultiPart `json:"templateParas,omitempty"` + + // SP的回调地址 + StatusCallback *def.MultiPart `json:"statusCallback,omitempty"` + + // 扩展参数,在状态报告中会原样返回。 + Extend *def.MultiPart `json:"extend,omitempty"` + + // 短信签名 + Signature *def.MultiPart `json:"signature,omitempty"` +} + +func (o BatchSendSmsRequestBody) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "BatchSendSmsRequestBody struct{}" + } + + return strings.Join([]string{"BatchSendSmsRequestBody", string(data)}, " ") +} + +func (o *BatchSendSmsRequestBody) UnmarshalJSON(b []byte) error { + m := make(map[string]interface{}) + err := json.Unmarshal(b, &m) + if err != nil { + return err + } + t := reflect.TypeOf(o).Elem() + v := reflect.ValueOf(o).Elem() + count := v.NumField() + for i := 0; i < count; i++ { + jsonTag := t.Field(i).Tag.Get("json") + jsonName := strings.Split(jsonTag, ",")[0] + if m[jsonName] == nil && strings.Contains(jsonTag, "omitempty") { + continue + } + field := v.FieldByName(utils.UnderscoreToCamel(jsonName)) + switch v.Field(i).Interface().(type) { + case *def.FilePart: + filePath := m[jsonName].(string) + file, err := os.Open(filePath) + if err != nil { + return err + } + field.Set(reflect.ValueOf(def.NewFilePart(file))) + case *def.MultiPart: + field.Set(reflect.ValueOf(def.NewMultiPart(m[jsonName]))) + default: + return errors.New(fmt.Sprintf("unmarshal %s failed", m[jsonName])) + } + } + return nil +} diff --git a/services/smsapi/v1/model/model_batch_send_sms_response.go b/services/smsapi/v1/model/model_batch_send_sms_response.go new file mode 100644 index 0000000000..d05db80d1a --- /dev/null +++ b/services/smsapi/v1/model/model_batch_send_sms_response.go @@ -0,0 +1,30 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +// BatchSendSmsResponse Response Object +type BatchSendSmsResponse struct { + + // 错误码 + Code *string `json:"code,omitempty"` + + // 错误描述 + Description *string `json:"description,omitempty"` + + // 短信状态 + Result *[]SmsId `json:"result,omitempty"` + HttpStatusCode int `json:"-"` +} + +func (o BatchSendSmsResponse) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "BatchSendSmsResponse struct{}" + } + + return strings.Join([]string{"BatchSendSmsResponse", string(data)}, " ") +} diff --git a/services/smsapi/v1/model/model_sms_content.go b/services/smsapi/v1/model/model_sms_content.go new file mode 100644 index 0000000000..d9be8e522c --- /dev/null +++ b/services/smsapi/v1/model/model_sms_content.go @@ -0,0 +1,31 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type SmsContent struct { + + // 群发短信接收方的号码 + To *[]string `json:"to,omitempty"` + + // 短信模板ID + TemplateId *string `json:"templateId,omitempty"` + + // 短信模板的变量值列表 + TemplateParas *[]string `json:"templateParas,omitempty"` + + // 短信签名 + Signature *string `json:"signature,omitempty"` +} + +func (o SmsContent) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "SmsContent struct{}" + } + + return strings.Join([]string{"SmsContent", string(data)}, " ") +} diff --git a/services/smsapi/v1/model/model_sms_id.go b/services/smsapi/v1/model/model_sms_id.go new file mode 100644 index 0000000000..6464b9f007 --- /dev/null +++ b/services/smsapi/v1/model/model_sms_id.go @@ -0,0 +1,40 @@ +package model + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils" + + "strings" +) + +type SmsId struct { + + // 创建时间 + CreateTime *string `json:"createTime,omitempty"` + + // 发送短信号码 + From *string `json:"from,omitempty"` + + // 接收短信号码 + OriginTo *string `json:"originTo,omitempty"` + + // 短信id + SmsMsgId *string `json:"smsMsgId,omitempty"` + + // 短信当前状态 + Status *string `json:"status,omitempty"` + + // 国家码 + CountryId *string `json:"countryId,omitempty"` + + // 短信拆分条数 + Total *int32 `json:"total,omitempty"` +} + +func (o SmsId) String() string { + data, err := utils.Marshal(o) + if err != nil { + return "SmsId struct{}" + } + + return strings.Join([]string{"SmsId", string(data)}, " ") +} diff --git a/services/smsapi/v1/region/region.go b/services/smsapi/v1/region/region.go new file mode 100644 index 0000000000..1bccd3e89e --- /dev/null +++ b/services/smsapi/v1/region/region.go @@ -0,0 +1,58 @@ +package region + +import ( + "fmt" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/region" + "sort" + "strings" +) + +var ( + CN_NORTH_4 = region.NewRegion("cn-north-4", + "https://smsapi.cn-north-4.myhuaweicloud.com") + CN_SOUTH_1 = region.NewRegion("cn-south-1", + "https://smsapi.cn-south-1.myhuaweicloud.com") +) + +var staticFields = map[string]*region.Region{ + "cn-north-4": CN_NORTH_4, + "cn-south-1": CN_SOUTH_1, +} + +var provider = region.DefaultProviderChain("SMSAPI") + +func getRegionIds() []string { + ids := make([]string, 0, len(staticFields)) + for key := range staticFields { + ids = append(ids, key) + } + sort.Strings(ids) + return ids +} + +func SafeValueOf(regionId string) (region *region.Region, err error) { + defer func() { + if r := recover(); r != nil { + err = fmt.Errorf("%v", r) + } + }() + region = ValueOf(regionId) + return region, err +} + +// Deprecated: This function may panic under certain circumstances. Use SafeValueOf instead. +func ValueOf(regionId string) *region.Region { + if regionId == "" { + panic("unexpected empty parameter: regionId") + } + + reg := provider.GetRegion(regionId) + if reg != nil { + return reg + } + + if _, ok := staticFields[regionId]; ok { + return staticFields[regionId] + } + panic(fmt.Sprintf("region id '%s' is not in the following supported regions of service 'SMSApi': [%s]", regionId, strings.Join(getRegionIds(), ", "))) +} diff --git a/services/smsapi/v1/sMSApi_client.go b/services/smsapi/v1/sMSApi_client.go new file mode 100644 index 0000000000..e8d274a520 --- /dev/null +++ b/services/smsapi/v1/sMSApi_client.go @@ -0,0 +1,78 @@ +package v1 + +import ( + httpclient "github.com/huaweicloud/huaweicloud-sdk-go-v3/core" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/invoker" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/smsapi/v1/model" +) + +type SMSApiClient struct { + HcClient *httpclient.HcHttpClient +} + +func NewSMSApiClient(hcClient *httpclient.HcHttpClient) *SMSApiClient { + return &SMSApiClient{HcClient: hcClient} +} + +func SMSApiClientBuilder() *httpclient.HcHttpClientBuilder { + builder := httpclient.NewHcHttpClientBuilder().WithCredentialsType("v1.SMSApiCredentials") + return builder +} + +// BatchSendDiffSms 发送分批短信 +// +// 发送分批短信 +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *SMSApiClient) BatchSendDiffSms(request *model.BatchSendDiffSmsRequest) (*model.BatchSendDiffSmsResponse, error) { + requestDef := GenReqDefForBatchSendDiffSms() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.BatchSendDiffSmsResponse), nil + } +} + +// BatchSendDiffSmsInvoker 发送分批短信 +func (c *SMSApiClient) BatchSendDiffSmsInvoker(request *model.BatchSendDiffSmsRequest) *BatchSendDiffSmsInvoker { + requestDef := GenReqDefForBatchSendDiffSms() + return &BatchSendDiffSmsInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} + +// BatchSendSms 发送短信 +// +// ## 典型场景 ## +// +// SP调用此接口发送短信。 +// +// ## 接口功能 ## +// +// 该接口用于SP请求短信平台向指定用户发送短信。 +// +// ## 使用说明 ## +// +// 前提条件 +// i. 已在短信平台获取该短信能力开放应用的app_key、app_secret。 +// +// 注意事项 +// a. 群发短信时,如果“to”参数携带的号码中包含除数字和+之外的其他字符,则无法向该参数携带的所有号码发送短信。如果“to”参数携带的所有号码只包含数字和+,但部分号码不符合号码规则要求,则在响应消息中会通过状态码标识发送失败的号码,不影响其他正常号码的短信发送。号码之间以英文逗号分隔,每个号码最大长度为21位,最多允许携带500个号码。 +// b. 本接口支持AK/SK认证和X-WSSE认证(二选一),推荐使用AK/SK认证(更安全)。 +// c. X-Sdk-Date不能与发送请求时的本地时间相差太大(15分钟),否则会导致鉴权失败。 +// +// Please refer to HUAWEI cloud API Explorer for details. +func (c *SMSApiClient) BatchSendSms(request *model.BatchSendSmsRequest) (*model.BatchSendSmsResponse, error) { + requestDef := GenReqDefForBatchSendSms() + + if resp, err := c.HcClient.Sync(request, requestDef); err != nil { + return nil, err + } else { + return resp.(*model.BatchSendSmsResponse), nil + } +} + +// BatchSendSmsInvoker 发送短信 +func (c *SMSApiClient) BatchSendSmsInvoker(request *model.BatchSendSmsRequest) *BatchSendSmsInvoker { + requestDef := GenReqDefForBatchSendSms() + return &BatchSendSmsInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)} +} diff --git a/services/smsapi/v1/sMSApi_invoker.go b/services/smsapi/v1/sMSApi_invoker.go new file mode 100644 index 0000000000..ce445acfe3 --- /dev/null +++ b/services/smsapi/v1/sMSApi_invoker.go @@ -0,0 +1,38 @@ +package v1 + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/invoker" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/smsapi/v1/model" +) + +type BatchSendDiffSmsInvoker struct { + *invoker.BaseInvoker +} + +func (i *BatchSendDiffSmsInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *BatchSendDiffSmsInvoker) Invoke() (*model.BatchSendDiffSmsResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.BatchSendDiffSmsResponse), nil + } +} + +type BatchSendSmsInvoker struct { + *invoker.BaseInvoker +} + +func (i *BatchSendSmsInvoker) GetBaseInvoker() *invoker.BaseInvoker { + return i.BaseInvoker +} + +func (i *BatchSendSmsInvoker) Invoke() (*model.BatchSendSmsResponse, error) { + if result, err := i.BaseInvoker.Invoke(); err != nil { + return nil, err + } else { + return result.(*model.BatchSendSmsResponse), nil + } +} diff --git a/services/smsapi/v1/sMSApi_meta.go b/services/smsapi/v1/sMSApi_meta.go new file mode 100644 index 0000000000..894cda05d6 --- /dev/null +++ b/services/smsapi/v1/sMSApi_meta.go @@ -0,0 +1,38 @@ +package v1 + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/def" + + "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/smsapi/v1/model" + "net/http" +) + +func GenReqDefForBatchSendDiffSms() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodPost). + WithPath("/sms/batchSendDiffSms/v1"). + WithResponse(new(model.BatchSendDiffSmsResponse)). + WithContentType("application/json") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("Body"). + WithLocationType(def.Body)) + + requestDef := reqDefBuilder.Build() + return requestDef +} + +func GenReqDefForBatchSendSms() *def.HttpRequestDef { + reqDefBuilder := def.NewHttpRequestDefBuilder(). + WithMethod(http.MethodPost). + WithPath("/sms/batchSendSms/v1"). + WithResponse(new(model.BatchSendSmsResponse)). + WithContentType("application/x-www-form-urlencoded") + + reqDefBuilder.WithRequestField(def.NewFieldDef(). + WithName("Body"). + WithLocationType(def.Body)) + + requestDef := reqDefBuilder.Build() + return requestDef +} diff --git a/services/smsapi/v1/smsapi_icredential.go b/services/smsapi/v1/smsapi_icredential.go new file mode 100644 index 0000000000..7a172cff33 --- /dev/null +++ b/services/smsapi/v1/smsapi_icredential.go @@ -0,0 +1,68 @@ +package v1 + +import ( + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/signer" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/impl" + "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/request" + "net/url" +) + +type SMSApiCredentials struct { + AK string + SK string +} + +func (s *SMSApiCredentials) ProcessAuthParams(client *impl.DefaultHttpClient, region string) auth.ICredential { + return s +} + +func (s *SMSApiCredentials) ProcessAuthRequest(client *impl.DefaultHttpClient, req *request.DefaultHttpRequest) (*request.DefaultHttpRequest, error) { + var additionalHeaders map[string]string + + // Go版SDK签名接口默认未自动新增Host头域,未保持跟其他语言实现的一致性,新增Host参数,提升安全性 + if _, ok := req.GetHeaderParams()["Host"]; !ok { + if u, err := url.Parse(req.GetEndpoint()); err == nil { + req.AddHeaderParam("Host", u.Host) + } + } + + sn, err := signer.GetSigner(req.GetSigningAlgorithm()) + if err != nil { + return nil, err + } + + reqBuilder := req.Builder() + additionalHeaders, err = sn.Sign(reqBuilder.Build(), s.AK, s.SK) + if err != nil { + return nil, err + } + + for key, value := range additionalHeaders { + req.AddHeaderParam(key, value) + } + return req, nil +} + +type SMSApiCredentialsBuilder struct { + SMSApiCredentials *SMSApiCredentials +} + +func NewSMSApiCredentialsBuilder() *SMSApiCredentialsBuilder { + + return &SMSApiCredentialsBuilder{SMSApiCredentials: &SMSApiCredentials{}} +} + +func (builder *SMSApiCredentialsBuilder) WithAk(ak string) *SMSApiCredentialsBuilder { + builder.SMSApiCredentials.AK = ak + return builder +} + +func (builder *SMSApiCredentialsBuilder) WithSk(sk string) *SMSApiCredentialsBuilder { + builder.SMSApiCredentials.SK = sk + return builder +} + +func (builder *SMSApiCredentialsBuilder) Build() *SMSApiCredentials { + return builder.SMSApiCredentials +}