Creating a Template
Function
CreateTemplate
This API creates a template and generates its first version.
-
The request must contain either template_uri or template_body. The former is the OBS link of the template content, and the latter is the template content.
-
Template names are unique at one specific time, so you can create a template named HelloWorld and another template with the same name after deleting the first one.
-
When a template is created, the template version V1 is automatically generated.
-
The template has at least one version.
URI
POST /v1/{project_id}/templates
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID. It can be obtained by calling an API or from the console. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
Client-Request-Id |
Yes |
String |
Unique request ID. It is specified by a user and is used to locate a request. UUID is recommended. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
version_description |
No |
String |
Description of a template version. It can be used by users to identify their own template versions. |
template_body |
No |
String |
HCL template. It describes the resources used in the template. You can specify either template_body or template_uri, but not both. |
template_uri |
No |
String |
OBS link of an HCL template. The template describes the target status of a resource. The corresponding file must be a pure .tf file or a .zip package. A pure .tf file must end with .tf or .tf.json and comply with the HCL syntax. Currently, only the .zip package is supported. The file name extension must be .zip. The decompressed files cannot contain .tfvars files. You can specify either template_body or template_uri, but not both. |
template_name |
Yes |
String |
Name of a template. The name is unique within its domain (domain_id) and region. Chinese characters, letters, digits, underscores (_), and hyphens (-) are allowed. It is case-sensitive and must start with a Chinese character or a letter. |
template_description |
No |
String |
Template description. It can be used by users to identify their own templates. |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
template_id |
String |
Unique template ID. It is randomly generated by the template service. |
version_id |
String |
Template version ID. |
Status code: 400
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
encoded_authorization_message |
String |
The message contains information about unauthorized requests. |
details |
Array of Detail objects |
Detailed error messages returned by service when permission is denied. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Response code. |
error_msg |
String |
Response message. |
Status code: 401
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
encoded_authorization_message |
String |
The message contains information about unauthorized requests. |
details |
Array of Detail objects |
Detailed error messages returned by service when permission is denied. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Response code. |
error_msg |
String |
Response message. |
Status code: 403
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
encoded_authorization_message |
String |
The message contains information about unauthorized requests. |
details |
Array of Detail objects |
Detailed error messages returned by service when permission is denied. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Response code. |
error_msg |
String |
Response message. |
Status code: 409
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
encoded_authorization_message |
String |
The message contains information about unauthorized requests. |
details |
Array of Detail objects |
Detailed error messages returned by service when permission is denied. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Response code. |
error_msg |
String |
Response message. |
Status code: 429
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
encoded_authorization_message |
String |
The message contains information about unauthorized requests. |
details |
Array of Detail objects |
Detailed error messages returned by service when permission is denied. |
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Response code. |
error_msg |
String |
Response message. |
Status code: 500
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. |
error_msg |
String |
Error message. |
encoded_authorization_message |
String |
The message contains information about unauthorized requests. |
details |
Array of Detail objects |
Detailed error messages returned by service when permission is denied. |
Example Requests
-
Create a template by passing the Terraform template through template_body
POST https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates { "template_name" : "huaweicloud_vpc_template", "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}" }
-
Create a template by referencing the template file stored in Huawei Cloud OBS through template_uri
POST https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates { "template_name" : "huaweicloud_vpc_template_obs", "template_uri" : "https://{bucket_name}.{region}.myhuaweicloud.com/terraform-templates/vpc-base.tf" }
Example Responses
Status code: 200
Template created.
{ "template_id" : "69f8d5ea-eaa4-4a3b-a96d-bae9230e97c8", "version_id" : "V1" }
Status Codes
Status Code |
Description |
---|---|
200 |
Template created. |
400 |
Invalid request. |
401 |
Authentication failed. |
403 |
The user does not have the permission to call this API. |
409 |
Creation requests conflict. A template with the same name already exists. |
429 |
Too frequent requests. |
500 |
Internal server error. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot