创建模板版本
功能介绍
创建模板版本(CreateTemplateVersion)
此API用于创建新的模板版本
请求中必须包括template_uri或template_body。前者为模板内容obs链接,后者为模板内容
新创建的模板版本版本ID会自动在当前最大模板版本ID的基础上加1
创建模板版本需要的具体信息详见:CreateTemplateVersionRequestBody
template_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给予的template_id和当前模板管理的ID不一致,则返回400
URI
POST /v1/{project_id}/templates/{template_name}/versions
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 项目ID,可以从调用API处获取,也可以从控制台获取。 最小长度:3 最大长度:64 |
template_name | 是 | String | 模板(Template)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
template_id | 否 | String | 模板的ID。当template_id存在时,模板服务会检查template_id是否和template_name匹配,不匹配会返回400 最小长度:36 最大长度:36 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
Client-Request-Id | 是 | String | 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
version_description | 否 | String | 模板版本的描述。可用于客户识别自己的模板版本 最小长度:0 最大长度:1024 |
template_body | 否 | String | HCL模板,描述了模板中使用的资源 template_body 和 template_uri 有且仅有一个存在 |
template_uri | 否 | String | HCL模板的obs链接,该模板描述了资源的目标状态 对应的文件应该是纯tf文件或zip压缩包 纯tf文件需要以.tf或者.tf.json结尾,并遵守hcl语法 压缩包目前只支持zip格式,文件需要以".zip"结尾。解压后的文件不得包含".tfvars"文件 template_body 和 template_uri 有且仅有一个存在 最小长度:0 最大长度:2048 |
响应参数
状态码:200
参数 | 参数类型 | 描述 |
|---|---|---|
version_id | String | 模板模板版本ID 最小长度:2 最大长度:11 |
状态码:400
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:401
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:403
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:404
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:429
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:500
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
请求示例
通过template_body创建模板版本
POST https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates/{template_name}/versions { "template_body" : "terraform {\n required_providers {\n huaweicloud = {\n source = \"huawei.com/provider/huaweicloud\"\n version = \"1.41.0\"\n }\n }\n}\n\nprovider \"huaweicloud\" {\n insecure = true\n cloud = \"{cloud_name}\"\n region = \"{region}\"\n endpoints = {\n iam = \"{iam_endpoint}\"\n }\n}\n\nresource \"huaweicloud_vpc\" \"vpc\" {\n cidr = \"172.16.0.0/16\"\n name = \"my_vpc\"\n}" }通过template_uri(OBS链接)创建模板版本
POST https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates/{template_name}/versions { "template_uri" : "https://{bucket_name}.{region}.myhuaweicloud.com/terraform-templates/vpc-version-2.tf" }
响应示例
状态码:200
创建模板版本成功
{
"version_id" : "V10"
} 状态码
状态码 | 描述 |
|---|---|
200 | 创建模板版本成功 |
400 | 用户请求非法 |
401 | 用户身份认证失败 |
403 | 用户无权限调用此API |
404 | 模板不存在 |
429 | 请求数量过多 |
500 | 服务器内部错误 |

