Skip to content

Commit

Permalink
release 0.1.58 source code
Browse files Browse the repository at this point in the history
  • Loading branch information
Huaweicloud-SDK committed Sep 7, 2023
1 parent 7f9d2cc commit 7ea34b2
Show file tree
Hide file tree
Showing 286 changed files with 11,999 additions and 522 deletions.
509 changes: 509 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

509 changes: 509 additions & 0 deletions CHANGELOG_CN.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.57
0.1.58
47 changes: 41 additions & 6 deletions services/aos/v1/aos_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ func (c *AosClient) DeleteExecutionPlanInvoker(request *model.DeleteExecutionPla
// - 若用户在模板中使用了depends_on参数,如A资源询价必要字段依赖于B资源的创建,则A资源不支持询价。
// - 暂不支持传入data sources的flavor.id的场景的询价。
// - 暂不支持镜像询价。
// - 如果A资源的询价必要字段设置了sensitive = true,则A资源不支持询价。
// - 模板中询价的资源的个数是有限制的。当前一个模板中最多支持12个包周期计费资源和24个按需计费资源。
// - 支持询价的资源列表和询价必要参数
// - huaweicloud_cce_cluster:
Expand Down Expand Up @@ -384,6 +385,40 @@ func (c *AosClient) DeleteStackInvoker(request *model.DeleteStackRequest) *Delet
return &DeleteStackInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)}
}

// DeleteStackEnhanced 条件删除资源栈
//
// 此API用于删除某个资源栈,可以选择是否保留资源。
// **请谨慎操作,删除资源栈将默认删除与该资源栈相关的所有数据,如:执行计划、资源栈事件、资源栈输出、资源等。**
// **如果希望删除资源栈保留资源,可以在请求中设置`retain_all_resources`对资源进行保留。
//
// * 此API会触发删除资源栈,并以最终一致性删除数据,用户可以调用GetStackMetadata或ListStacks跟踪资源栈删除情况。当删除完成后,被删除资源栈将不会在上述API中返回。
// * 如果资源栈状态处于非终态(状态以`IN_PROGRESS`结尾)状态时,则不允许删除。包括但不限于以下状态:
// - 正在部署(DEPLOYMENT_IN_PROGRESS)
// - 正在删除(DELETION_IN_PROGRESS)
// - 正在回滚(ROLLBACK_IN_PROGRESS)
//
// * 如果资源栈开启了删除保护,则不允许删除。用户可调用GetStackMetadata,查看返回中的`enable_deletion_protection`字段判断删除保护是否开启。用户可通过调用UpdateStack关闭删除保护。
// * 如果资源栈删除失败,可以根据StackEvents提示信息修复当前模板中的错误后,部署成功后再次删除资源栈。有以下两种方式触发部署:
// - 调用CreateExecutionPlan创建执行计划,执行计划创建成功后调用ApplyExecutionPlan部署资源栈。
// - 调用DeployStack部署资源栈。
//
// Please refer to HUAWEI cloud API Explorer for details.
func (c *AosClient) DeleteStackEnhanced(request *model.DeleteStackEnhancedRequest) (*model.DeleteStackEnhancedResponse, error) {
requestDef := GenReqDefForDeleteStackEnhanced()

if resp, err := c.HcClient.Sync(request, requestDef); err != nil {
return nil, err
} else {
return resp.(*model.DeleteStackEnhancedResponse), nil
}
}

// DeleteStackEnhancedInvoker 条件删除资源栈
func (c *AosClient) DeleteStackEnhancedInvoker(request *model.DeleteStackEnhancedRequest) *DeleteStackEnhancedInvoker {
requestDef := GenReqDefForDeleteStackEnhanced()
return &DeleteStackEnhancedInvoker{invoker.NewBaseInvoker(c.HcClient, request, requestDef)}
}

// DeployStack 部署资源栈
//
// 部署资源栈(DeployStack)
Expand Down Expand Up @@ -691,7 +726,7 @@ func (c *AosClient) ParseTemplateVariablesInvoker(request *model.ParseTemplateVa
// 此API用于删除某个模板以及模板下的全部模板版本
// **请谨慎操作,删除模板将会删除模板下的所有模板版本。**
//
// - tempate_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
// - template_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
//
// Please refer to HUAWEI cloud API Explorer for details.
func (c *AosClient) DeleteTemplate(request *model.DeleteTemplateRequest) (*model.DeleteTemplateResponse, error) {
Expand All @@ -716,7 +751,7 @@ func (c *AosClient) DeleteTemplateInvoker(request *model.DeleteTemplateRequest)
//
// 此API用于删除某个模板版本
//
// - tempate_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
// - template_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
// - 若模板下只存在唯一模板版本,此模板版本将无法被删除,如果需要删除此模板版本,请调用DeleteTemplate。模板服务不允许存在没有模板版本的模板
//
// **请谨慎操作**
Expand Down Expand Up @@ -747,7 +782,7 @@ func (c *AosClient) DeleteTemplateVersionInvoker(request *model.DeleteTemplateVe
// - 默认按照生成时间排序,最早生成的模板排列在最前面
// - 注意:目前返回全量模板版本信息,即不支持分页
// - 如果没有任何模板版本,则返回空list
// - tempate_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
// - template_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
// - 若模板不存在则返回404
//
// # ListTemplateVersions返回的信息只包含模板版本摘要信息(具体摘要信息见ListTemplateVersionsResponseBody),若用户需要了解模板版本内容,请调用ShowTemplateVersionContent
Expand Down Expand Up @@ -807,7 +842,7 @@ func (c *AosClient) ListTemplatesInvoker(request *model.ListTemplatesRequest) *L
//
// 具体信息见ShowTemplateMetadataResponseBody,若想查看模板下全部模板版本,请调用ListTemplateVersions。
//
// - tempate_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
// - template_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
//
// Please refer to HUAWEI cloud API Explorer for details.
func (c *AosClient) ShowTemplateMetadata(request *model.ShowTemplateMetadataRequest) (*model.ShowTemplateMetadataResponse, error) {
Expand All @@ -832,7 +867,7 @@ func (c *AosClient) ShowTemplateMetadataInvoker(request *model.ShowTemplateMetad
//
// 此API用于获取用户的模板版本内容
//
// - tempate_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
// - template_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
// - 此api会以临时重定向形式返回模板内容的下载链接,用户通过下载获取模板版本内容(OBS Pre Signed地址,有效期为5分钟)
//
// # ShowTemplateVersionContent返回的信息只包含模板版本内容,若想知道模板版本的元数据,请调用ShowTemplateVersionMetadata
Expand Down Expand Up @@ -860,7 +895,7 @@ func (c *AosClient) ShowTemplateVersionContentInvoker(request *model.ShowTemplat
//
// 此API用于展示某一版本模板的元数据
//
// - tempate_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
// - template_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给与的template_id和当前模板管理的ID不一致,则返回400
//
// # ShowTemplateVersionMetadata返回的信息只包含模板版本元数据信息(具体摘要信息见ShowTemplateVersionMetadataResponseBody),若用户需要了解模板版本内容,请调用ShowTemplateVersionContent
//
Expand Down
12 changes: 12 additions & 0 deletions services/aos/v1/aos_invoker.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,18 @@ func (i *DeleteStackInvoker) Invoke() (*model.DeleteStackResponse, error) {
}
}

type DeleteStackEnhancedInvoker struct {
*invoker.BaseInvoker
}

func (i *DeleteStackEnhancedInvoker) Invoke() (*model.DeleteStackEnhancedResponse, error) {
if result, err := i.BaseInvoker.Invoke(); err != nil {
return nil, err
} else {
return result.(*model.DeleteStackEnhancedResponse), nil
}
}

type DeployStackInvoker struct {
*invoker.BaseInvoker
}
Expand Down
25 changes: 25 additions & 0 deletions services/aos/v1/aos_meta.go
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,31 @@ func GenReqDefForDeleteStack() *def.HttpRequestDef {
return requestDef
}

func GenReqDefForDeleteStackEnhanced() *def.HttpRequestDef {
reqDefBuilder := def.NewHttpRequestDefBuilder().
WithMethod(http.MethodPost).
WithPath("/v1/{project_id}/stacks/{stack_name}/deletion").
WithResponse(new(model.DeleteStackEnhancedResponse)).
WithContentType("application/json")

reqDefBuilder.WithRequestField(def.NewFieldDef().
WithName("StackName").
WithJsonTag("stack_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 GenReqDefForDeployStack() *def.HttpRequestDef {
reqDefBuilder := def.NewHttpRequestDefBuilder().
WithMethod(http.MethodPost).
Expand Down
28 changes: 28 additions & 0 deletions services/aos/v1/model/model_delete_stack_enhanced_request.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package model

import (
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils"

"strings"
)

// DeleteStackEnhancedRequest Request Object
type DeleteStackEnhancedRequest struct {

// 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID
ClientRequestId string `json:"Client-Request-Id"`

// 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。
StackName string `json:"stack_name"`

Body *DeleteStackEnhancedRequestBody `json:"body,omitempty"`
}

func (o DeleteStackEnhancedRequest) String() string {
data, err := utils.Marshal(o)
if err != nil {
return "DeleteStackEnhancedRequest struct{}"
}

return strings.Join([]string{"DeleteStackEnhancedRequest", string(data)}, " ")
}
25 changes: 25 additions & 0 deletions services/aos/v1/model/model_delete_stack_enhanced_request_body.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package model

import (
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils"

"strings"
)

type DeleteStackEnhancedRequestBody struct {

// 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给与的stack_id和当前资源栈的ID不一致,则返回400
StackId *string `json:"stack_id,omitempty"`

// 删除资源栈是否保留资源的标志位,如果不传默认为false,即默认不保留资源(删除资源栈后会删除资源栈中的资源) * DeleteStackEnhanced API中,若该参数未在RequestBody中给予,则删除时不会保留资源栈中的资源*
RetainAllResources *bool `json:"retain_all_resources,omitempty"`
}

func (o DeleteStackEnhancedRequestBody) String() string {
data, err := utils.Marshal(o)
if err != nil {
return "DeleteStackEnhancedRequestBody struct{}"
}

return strings.Join([]string{"DeleteStackEnhancedRequestBody", string(data)}, " ")
}
21 changes: 21 additions & 0 deletions services/aos/v1/model/model_delete_stack_enhanced_response.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package model

import (
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils"

"strings"
)

// DeleteStackEnhancedResponse Response Object
type DeleteStackEnhancedResponse struct {
HttpStatusCode int `json:"-"`
}

func (o DeleteStackEnhancedResponse) String() string {
data, err := utils.Marshal(o)
if err != nil {
return "DeleteStackEnhancedResponse struct{}"
}

return strings.Join([]string{"DeleteStackEnhancedResponse", string(data)}, " ")
}
22 changes: 22 additions & 0 deletions services/aos/v1/model/model_retain_all_resources_type_holder.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package model

import (
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/utils"

"strings"
)

type RetainAllResourcesTypeHolder struct {

// 删除资源栈是否保留资源的标志位,如果不传默认为false,即默认不保留资源(删除资源栈后会删除资源栈中的资源) * DeleteStackEnhanced API中,若该参数未在RequestBody中给予,则删除时不会保留资源栈中的资源*
RetainAllResources *bool `json:"retain_all_resources,omitempty"`
}

func (o RetainAllResourcesTypeHolder) String() string {
data, err := utils.Marshal(o)
if err != nil {
return "RetainAllResourcesTypeHolder struct{}"
}

return strings.Join([]string{"RetainAllResourcesTypeHolder", string(data)}, " ")
}
3 changes: 3 additions & 0 deletions services/apig/v2/region/region.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ var (
"https://apig.tr-west-1.myhuaweicloud.com")
CN_NORTH_2 = region.NewRegion("cn-north-2",
"https://apig.cn-north-2.myhuaweicloud.com")
EU_WEST_101 = region.NewRegion("eu-west-101",
"https://apig.eu-west-101.myhuaweicloud.eu")
)

var staticFields = map[string]*region.Region{
Expand All @@ -66,6 +68,7 @@ var staticFields = map[string]*region.Region{
"ap-southeast-4": AP_SOUTHEAST_4,
"tr-west-1": TR_WEST_1,
"cn-north-2": CN_NORTH_2,
"eu-west-101": EU_WEST_101,
}

var provider = region.DefaultProviderChain("APIG")
Expand Down
2 changes: 1 addition & 1 deletion services/as/v1/model/model_create_scheduled_task_option.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type CreateScheduledTaskOption struct {
// 计划任务名称
Name string `json:"name"`

ScheduledPolicy *ScheduledPolicy `json:"scheduled_policy"`
ScheduledPolicy *ScheduledTaskPolicy `json:"scheduled_policy"`

InstanceNumber *IntegerRange `json:"instance_number"`
}
Expand Down
Loading

0 comments on commit 7ea34b2

Please sign in to comment.