Skip to content

Commit

Permalink
release 0.1.129 source code
Browse files Browse the repository at this point in the history
  • Loading branch information
Huaweicloud-SDK committed Dec 26, 2024
1 parent 4949589 commit bfc2b26
Show file tree
Hide file tree
Showing 327 changed files with 11,988 additions and 832 deletions.
728 changes: 728 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

728 changes: 728 additions & 0 deletions CHANGELOG_CN.md

Large diffs are not rendered by default.

48 changes: 45 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,8 @@ the [CHANGELOG.md](https://github.com/huaweicloud/huaweicloud-sdk-go-v3/blob/mas
* [7. API Invoker](#7-api-invoker-top)
* [7.1 Custom request headers](#71-custom-request-headers-top)
* [7.2 Retry for request](#72-retry-for-request-top)
* [8. FAQ](#8-faq-top)
* [8.1 How to use in Cloud Service Alliance Scenarios](#81-how-to-use-in-cloud-service-alliance-scenarios-top)

### 1. Client Configuration [:top:](#user-manual-top)

Expand Down Expand Up @@ -365,7 +367,7 @@ There are two types of Huawei Cloud services, `regional` services and `global` s

Global services contain BSS, DevStar, EPS, IAM, RMS.

For `regional` services' authentication, projectId is required to initialize basic.NewCredentialsBuilder().
For `regional` services' authentication, projectId is required to initialize basic.NewCredentialsBuilder().

For `global` services' authentication, domainId is required to initialize global.NewCredentialsBuilder().

Expand Down Expand Up @@ -1160,14 +1162,14 @@ func main() {
#### 7.2 Retry for request [:top:](#user-manual-top)

When a request encounters a network exception or flow control on the interface, the request needs to be retried. The
Go SDK provides the retry method for our users which could be used to the requests of `GET` HTTP method.
Go SDK provides the retry method for our users which could be used to the requests of `GET` HTTP method.
If you want to use the retry method, the following parameters are required:

- _maxRetryTimes_: the max retry times
- _retryCondition_: a function, which determine the condition of when to retry
- _backoffStrategy_: calculate the wait duration before next retry

Take the interface `ListVpcs` of VPC service for example, assume the request would retry at most 3 times,
Take the interface `ListVpcs` of VPC service for example, assume the request would retry at most 3 times,
retry when service responses an error, the code would be like the following:

``` go
Expand Down Expand Up @@ -1218,3 +1220,43 @@ func main() {
}
}
```

### 8. FAQ [:top:](#user-manual-top)

#### 8.1 How to use in Cloud Service Alliance Scenarios [:top:](#user-manual-top)

``` go
package main

import (
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
vpc "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpc/v2"
"os"
)

func main() {
// Specify the endpoint, take the endpoint of VPC service in region of eu-west-101 for example
endpoint := "https://vpc.eu-west-101.myhuaweicloud.com"
// Initialize the credentials, you should provide projectId or domainId in this way, take initializing BasicCredentials for example
basicAuth, err := basic.NewCredentialsBuilder().
WithAk(os.Getenv("HUAWEICLOUD_SDK_AK")).
WithSk(os.Getenv("HUAWEICLOUD_SDK_SK")).
WithProjectId("{your projectId string}").
SafeBuild()
if err != nil {
fmt.Println(err)
return
}

// Initialize specified New{Service}Client, take initializing the regional service VPC's VpcClient for example
hcClient, err := vpc.VpcClientBuilder().
WithEndpoint(endpoint).
WithCredential(basicAuth).
SafeBuild()
if err != nil {
fmt.Println(err)
return
}
client := vpc.NewVpcClient(hcClient)
}
```
44 changes: 43 additions & 1 deletion README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,8 @@ func main() {
* [7. 接口调用器](#7-接口调用器-top)
* [7.1 自定义请求头](#71-自定义请求头-top)
* [7.2 请求重试](#72-请求重试-top)
* [8. FAQ](#8-faq-top)
* [8.1 云联盟场景如何调用](#81-云联盟场景如何调用-top)

### 1. 客户端连接参数 [:top:](#用户手册-top)

Expand Down Expand Up @@ -835,7 +837,7 @@ func main() {
**两种方式对比:**

| 初始化方式 | 优势 | 劣势 |
| :---- | :---- | :---- |
| :---- | :---- | :---- |
| 指定云服务 Endpoint 方式 | 只要接口已在当前环境发布就可以成功调用 | 需要用户自行查找并填写 projectId 和 endpoint
| 指定 Region 方式 | 无需指定 projectId 和 endpoint,按照要求配置即可自动获取该值并回填 | 支持的服务和 region 有限制

Expand Down Expand Up @@ -1225,3 +1227,43 @@ func main() {
}
}
```

### 8. FAQ [:top:](#用户手册-top)

#### 8.1 云联盟场景如何调用 [:top:](#用户手册-top)

``` go
package main

import (
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
vpc "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpc/v2"
"os"
)

func main() {
// 指定终端节点,以 云联盟都柏林节点调用 VPC 服务为例
endpoint := "https://vpc.eu-west-101.myhuaweicloud.com"
// 初始化客户端认证信息,需要填写相应 projectId/domainId,以初始化 basic.NewCredentialsBuilder() 为例
basicAuth, err := basic.NewCredentialsBuilder().
WithAk(os.Getenv("HUAWEICLOUD_SDK_AK")).
WithSk(os.Getenv("HUAWEICLOUD_SDK_SK")).
WithProjectId("{your projectId string}").
SafeBuild()
if err != nil {
fmt.Println(err)
return
}

// 初始化指定云服务的客户端 New{Service}Client ,以初始化 Region 级服务 VPC 的 NewVpcClient 为例
hcClient, err := vpc.VpcClientBuilder().
WithEndpoint(endpoint).
WithCredential(basicAuth).
SafeBuild()
if err != nil {
fmt.Println(err)
return
}
client := vpc.NewVpcClient(hcClient)
}
```
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.128
0.1.129
7 changes: 5 additions & 2 deletions services/aos/v1/aos_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ func (c *AosClient) CreatePrivateProviderVersionInvoker(request *model.CreatePri
// * 当执行请求接受后,执行计划状态将变为`APPLY_IN_PROGRESS`,后台会进行异步处理。
// * 当执行结束后,执行计划状态将变为`APPLIED`。
// * 用户可以调用GetStackMetadata查询资源栈的状态(status)来跟踪资源栈部署情况以及确认本次执行结果是否成功。
// * 执行执行计划时,用户将模板中定义的资源删除(包括Import定义的资源),会触发实际资源的删除。
//
// 如果不希望通过执行计划进行部署操作,也可以选择调用DeployStack进行直接部署
//
Expand Down Expand Up @@ -700,7 +701,7 @@ func (c *AosClient) UpdatePrivateHookMetadataInvoker(request *model.UpdatePrivat
//
// 创建私有模块(CreatePrivateModule)
//
// 创建一个私有的空模块。如果用户给予了module_version与module_uri,则在创建私有模块的同时,在私有模块下创建一个私有模块版本。
// 创建一个空的私有模块。如果用户给予了module_version与module_uri,则在创建私有模块的同时,在私有模块下创建一个私有模块版本。
// - 模块允许用户将可复用的代码编辑在一起供模块使用。
// - 如果同名私有模块在当前账户中已经存在,则会返回失败。
// - 版本号遵循语义化版本号(Semantic Version),为用户自定义。
Expand Down Expand Up @@ -1079,7 +1080,7 @@ func (c *AosClient) CreateStackInvoker(request *model.CreateStackRequest) *Creat
// 此API用于删除某个资源栈
// **请谨慎操作,删除资源栈将会删除与该资源栈相关的所有数据和资源,如:执行计划、资源栈事件、资源栈输出、资源等。**
//
// * 此API会触发删除资源栈,并以最终一致性删除所有数据,用户可以调用GetStackMetadata或ListStacks跟踪资源栈删除情况
// * 此API会触发删除资源栈,并以最终一致性删除所有数据(包括通过资源栈模板创建以及通过Import模块导入的已有资源),用户可以调用GetStackMetadata或ListStacks跟踪资源栈删除情况
// * 如果资源栈状态处于非终态(状态以`IN_PROGRESS`结尾)状态时,则不允许删除。包括但不限于以下状态:
// - 正在部署(DEPLOYMENT_IN_PROGRESS)
// - 正在删除(DELETION_IN_PROGRESS)
Expand Down Expand Up @@ -1155,6 +1156,8 @@ func (c *AosClient) DeleteStackEnhancedInvoker(request *model.DeleteStackEnhance
//
// * 此API为全量API,即用户每次部署都需要给予所想要使用的template、vars的全量
//
// * 部署资源栈时,用户将模板中定义的资源删除(包括Import定义的资源),会触发实际资源的删除。建议通过CreateExecutionPlan查看模板修改后资源栈的部署行为,以避免误操作非预期资源
//
// * 当触发的部署失败时,如果资源栈开启了自动回滚,会触发自动回滚的流程,否则就会停留在部署失败时的状态
//
// Please refer to HUAWEI cloud API Explorer for details.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
// CreatePrivateModuleResponse Response Object
type CreatePrivateModuleResponse struct {

// 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400
// 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅在同一时间下唯一,即允许用户先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400
ModuleId *string `json:"module_id,omitempty"`
HttpStatusCode int `json:"-"`
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

type CreatePrivateModuleVersionRequestBody struct {

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

// 模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义
Expand Down
2 changes: 1 addition & 1 deletion services/aos/v1/model/model_private_module.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ 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
// 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅在同一时间下唯一,即允许用户先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400
ModuleId *string `json:"module_id,omitempty"`

// 私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

type PrivateModuleIdPrimitiveTypeHolder struct {

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

Expand Down
2 changes: 1 addition & 1 deletion services/aos/v1/model/model_private_module_summary.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ 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
// 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅在同一时间下唯一,即允许用户先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400
ModuleId *string `json:"module_id,omitempty"`

// 私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。
Expand Down
2 changes: 1 addition & 1 deletion services/aos/v1/model/model_private_module_version.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ 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
// 私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅在同一时间下唯一,即允许用户先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400
ModuleId *string `json:"module_id,omitempty"`

// 模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义
Expand Down
Loading

0 comments on commit bfc2b26

Please sign in to comment.