Creating a Template
Function
This API is used to create a template.
Calling Method
For details, see Calling APIs.
URI
POST /v3/vm/templates
Request Parameters
Parameter | Mandatory | Type | Description |
|---|---|---|---|
X-Auth-Token | Yes | String | User token. The token can be obtained by calling the IAM API for obtaining a user token. The value of X-Subject-Token in the response header is the user token. Minimum: 1 Maximum: 16384 |
Parameter | Mandatory | Type | Description |
|---|---|---|---|
template | Yes | TemplateRequest object | The template information. |
Parameter | Mandatory | Type | Description |
|---|---|---|---|
name | Yes | String | The template name. Only Chinese characters, underscores (_), hyphens (-), digits, and uppercase and lowercase letters are allowed. Minimum: 1 Maximum: 64 |
is_template | No | Boolean | Indicates whether the template is general. If the template is associated with a task, the template is not a general template. |
region | No | String | The region. Minimum: 0 Maximum: 255 |
projectid | No | String | The project ID. Minimum: 0 Maximum: 255 |
target_server_name | No | String | The name of the target server. Minimum: 0 Maximum: 255 |
availability_zone | No | String | The availability zone. Minimum: 0 Maximum: 255 |
volumetype | No | String | Template name. The value can contain only letters, digits, underscores (_), and hyphens (-). Minimum: 0 Maximum: 255 |
flavor | No | String | The server flavor. Minimum: 0 Maximum: 65535 |
vpc | No | VpcObject object | The VPC information. |
nics | No | Array of Nics objects | The NIC information. Multiple NICs are supported. To let the system automatically add a NIC, configure only one NIC entry and set the ID to autoCreate. Array Length: 0 - 65535 |
security_groups | No | Array of SgObject objects | The security group information. Multiple security groups are supported. To let the system automatically create a security group, configure only one security group record and set the ID to autoCreate. Array Length: 0 - 65535 |
publicip | No | PublicIp object | The public IP address. |
disk | No | Array of TemplateDisk objects | The disk information. Array Length: 0 - 65535 |
data_volume_type | No | String | Disk type of the data disk. Its value comes from EVS. Common types include SAS (serial attached SCSI), SSD (solid-state drive), and SATA (serial ATA). For details, see the description of the volume_type field in the response parameters in section "Querying Details About a Single EVS Disk" in the EIP API document. Minimum: 0 Maximum: 255 |
target_password | No | String | The target server password. Minimum: 0 Maximum: 1024 |
image_id | No | String | The ID of the image used to create target servers. Minimum: 0 Maximum: 255 |
Parameter | Mandatory | Type | Description |
|---|---|---|---|
id | No | String | The VPC ID. To let the system automatically create a VPC, set this parameter to autoCreate. Minimum: 1 Maximum: 255 |
name | No | String | The VPC name. Minimum: 1 Maximum: 255 |
cidr | No | String | The VPC CIDR block. The default value is 192.168.0.0/16. Minimum: 1 Maximum: 255 |
Parameter | Mandatory | Type | Description |
|---|---|---|---|
id | Yes | String | The subnet ID. To let the system automatically create a subnet, set this parameter to autoCreate. Minimum: 0 Maximum: 255 |
name | Yes | String | The subnet name. Minimum: 0 Maximum: 255 |
cidr | Yes | String | The subnet gateway/mask. Minimum: 0 Maximum: 255 |
ip | No | String | The server IP address. If this parameter is not specified, the system will automatically assign an IP address. Minimum: 0 Maximum: 255 |
Parameter | Mandatory | Type | Description |
|---|---|---|---|
id | Yes | String | Security group ID. Minimum: 0 Maximum: 255 |
name | Yes | String | Security group name. Minimum: 0 Maximum: 255 |
Parameter | Mandatory | Type | Description |
|---|---|---|---|
type | Yes | String | The EIP type. The default value is 5_bgp. For details about the type, see the description of the type field in Response Message in section "Querying an EIP" of the EIP API reference. Minimum: 0 Maximum: 255 |
bandwidth_size | Yes | Integer | The bandwidth size, in Mbit/s. The minimum increment for bandwidth adjustment varies depending on the bandwidth range. The minimum increment is 1 Mbit/s if the allowed bandwidth does not exceed 300 Mbit/s. The minimum increment is 50 Mbit/s if the allowed bandwidth ranges from 300 Mbit/s to 1,000 Mbit/s. The minimum increment is 500 Mbit/s if the allowed bandwidth exceeds 1,000 Mbit/s. Minimum: 1 Maximum: 2000 |
bandwidth_share_type | No | String | Bandwidth sharing type (long text, non-enumerated data, from EIP) For details about the type, see the description of the bandwidth_share_type field in Response Message in section "Querying an EIP" of the EIP API reference. Minimum: 0 Maximum: 255 |
Parameter | Mandatory | Type | Description |
|---|---|---|---|
id | No | Long | The disk ID. Minimum: 0 Maximum: 9223372036854775807 |
index | Yes | Integer | The disk serial number, starting from 0. Minimum: 0 Maximum: 2147483647 |
name | Yes | String | The disk name. Minimum: 0 Maximum: 255 |
disktype | Yes | String | Disk type, which is the same as the volumetype field. Its value comes from EVS. For details, see the description of the volume_type field in the response parameters in the section "Querying Details About a Single EVS Disk" in the EIP API document. Minimum: 0 Maximum: 255 |
size | Yes | Long | The disk size in GB. Minimum: 0 Maximum: 9223372036854775807 |
device_use | No | String | The disk function. Minimum: 0 Maximum: 255 |
Response Parameters
Status code: 200
Parameter | Type | Description |
|---|---|---|
id | String | The ID of the newly created template returned by SMS. Minimum: 0 Maximum: 255 |
Status code: 403
Parameter | Type | Description |
|---|---|---|
error_code | String | The error code. Minimum: 0 Maximum: 255 |
error_msg | String | The error message. Minimum: 0 Maximum: 255 |
encoded_authorization_message | String | The encrypted authorization information. Minimum: 0 Maximum: 65535 |
error_param | Array of strings | Error parameters. Minimum: 0 Maximum: 65535 Array Length: 1 - 20 |
details | Array of details objects | The error details. Array Length: 1 - 20 |
Example Requests
This example creates a migration task template. The template name is xxxx, the region information is region, and the project ID is 00924d0ad2df4f21ac476dd9f3288xxx.
POST https://{endpoint}/v3/vm/templates { "template" : { "name" : "", "is_template" : false, "region" : "region", "target_server_name" : "abcd", "availability_zone" : "availability_zone", "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001", "volumetype" : "", "image_id" : "", "vpc" : { "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001", "name" : "sms-1566979232(192.168.0.0/16)" }, "security_groups" : [ { "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001", "name" : "kubernetes.io-default-sg (Inbound: udp/1-65535; tcp/22,1-65535,3389; Outbound: --)" } ], "nics" : [ { "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001", "name" : "sms-1566979244(192.168.0.0/16)", "cidr" : "192.168.0.0/16", "ip" : "" } ], "flavor" : "s2.medium.2", "publicip" : { "type" : "5_bgp", "bandwidth_size" : 5, "bandwidth_share_type" : "PER" }, "disk" : [ { "index" : 0, "name" : "system", "disktype" : "", "size" : 40 } ] } }This example creates a template directly.
POST https://{endpoint}/v3/vm/templates { "template" : { "name" : "xxxx", "is_template" : true, "region" : "region", "target_server_name" : "ggg-win16-t", "availability_zone" : "availability_zone", "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001", "target_password" : "********", "flavor" : "c3.medium.2", "vpc" : { "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001", "name" : "Migrate-SSd-1", "cidr" : "192.168.0.0/16" }, "nics" : [ { "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001", "name" : "Migrate-SSd-35", "cidr" : "192.168.0.0/16", "ip" : "" } ], "security_groups" : [ { "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001", "name" : "Migrate-dddd" } ], "disk" : [ { "id" : "0", "index" : 0, "name" : "Disk 0", "disktype" : "SATA", "size" : 40, "device_use" : "BOOT" } ], "volumetype" : "SATA", "publicip" : { "type" : "5_g-vm", "bandwidth_size" : 10, "bandwidth_share_type" : "PER" } } }
Example Responses
Status code: 200
The template was created.
{
"id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001"
} Status code: 403
Authentication failed.
{
"error_code" : "SMS.9004",
"error_msg" : "The current account does not have the permission to execute policy. You do not have permission to perform action XXX on resource XXX.",
"encoded_authorization_message" : "XXXXXX",
"error_param" : [ "You do not have permission to perform action XXX on resource XXX." ],
"details" : [ {
"error_code" : "SMS.9004",
"error_msg" : "You do not have permission to perform action XXX on resource XXX."
} ]
} Status Codes
Status Code | Description |
|---|---|
200 | The template was created. |
403 | Authentication failed. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.

