Updated on 2025-09-16 GMT+08:00

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

Table 1 Request header parameter

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

X-Auth-Token

The user token.

The token can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is the user token.

Minimum length: 1 character

Maximum length: 16,384 characters

Table 2 Request body parameter

Parameter

Mandatory

Type

Description

template

Yes

TemplateRequest object

The template information.

Table 3 TemplateRequest field description

Parameter

Mandatory

Type

Description

name

Yes

String

The template name.

Minimum length: 0 characters

Maximum length: 255 characters

is_template

Yes

Boolean

Specifies whether the template is general. If the template is associated with a task, the template is not a general template.

region

Yes

String

The region.

Minimum length: 0 characters

Maximum length: 255 characters

projectid

Yes

String

The project ID.

Minimum length: 0 characters

Maximum length: 255 characters

target_server_name

No

String

The server name.

Minimum length: 0 characters

Maximum length: 255 characters

availability_zone

No

String

The AZ.

Minimum length: 0 characters

Maximum length: 255 characters

volumetype

No

String

The disk type.

SAS: serial attached SCSI

SSD: solid-state drive

SATA: serial advanced technology attachment

The value can be:

  • SAS

  • SSD

  • SATA

flavor

No

String

The server flavor.

Minimum length: 0 characters

Maximum length: 65,535 characters

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 to 65,535

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 to 65,535

publicip

No

PublicIp object

The public IP address information.

disk

No

Array of TemplateDisk objects

The disk information.

Array length: 0 to 65,535

data_volume_type

No

String

The data disk type.

SAS: serial attached SCSI

SSD: solid-state drive

SATA: serial advanced technology attachment

The value can be:

  • SAS

  • SSD

  • SATA

target_password

No

String

The server login password.

Minimum length: 0 characters

Maximum length: 1,024 characters

image_id

No

String

The ID of the image for server creation.

Minimum length: 0 characters

Maximum length: 255 characters

Table 4 VpcObject field description

Parameter

Mandatory

Type

Description

id

Yes

String

The VPC ID. To let the system automatically create a VPC, set this parameter to autoCreate.

Minimum length: 1 character

Maximum length: 255 characters

name

Yes

String

The VPC name.

Minimum length: 1 character

Maximum length: 255 characters

cidr

No

String

The VPC CIDR block. The default value is 192.168.0.0/16.

Minimum length: 1 character

Maximum length: 255 characters

Table 5 Nics field description

Parameter

Mandatory

Type

Description

id

Yes

String

The subnet ID. To let the system automatically create a subnet, set this parameter to autoCreate.

Minimum length: 0 characters

Maximum length: 255 characters

name

Yes

String

The subnet name.

Minimum length: 0 characters

Maximum length: 255 characters

cidr

Yes

String

The subnet gateway/mask.

Minimum length: 0 characters

Maximum length: 255 characters

ip

No

String

The server IP address. If this parameter is not specified, the system will automatically assign an IP address.

Minimum length: 0 characters

Maximum length: 255 characters

Table 6 SgObject field description

Parameter

Mandatory

Type

Description

id

Yes

String

The security group ID.

Minimum length: 0 characters

Maximum length: 255 characters

name

Yes

String

The security group name.

Minimum length: 0 characters

Maximum length: 255 characters

Table 7 PublicIp field description

Parameter

Mandatory

Type

Description

type

Yes

String

The EIP type. The default value is 5_bgp.

Minimum length: 0 characters

Maximum length: 255 characters

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 ranges from 0 to 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 is greater than 1,000 Mbit/s.

Minimum value: 1

Maximum value: 2000

bandwidth_share_type

No

String

The bandwidth type, shared or dedicated.

Minimum length: 0 characters

Maximum length: 255 characters

Table 8 TemplateDisk field description

Parameter

Mandatory

Type

Description

id

No

Long

The disk ID.

Minimum value: 0

Maximum value: 9223372036854775807

index

Yes

Integer

The disk serial number, starting from 0.

Minimum value: 0

Maximum value: 2147483647

name

Yes

String

The disk name.

Minimum length: 0 characters

Maximum length: 255 characters

disktype

Yes

String

The disk type. The value is the same as that of volumetype.

Minimum length: 0 characters

Maximum length: 255 characters

size

Yes

Long

The disk size in GB.

Minimum value: 0

Maximum value: 9223372036854775807

device_use

No

String

The used disk space.

Minimum length: 0 characters

Maximum length: 255 characters

Response

Status code: 200

Table 9 Response body parameter

Parameter

Type

Description

id

String

The ID of the newly created template returned by SMS.

Minimum length: 0 characters

Maximum length: 255 characters

Example Request

  • This example creates a template during the creation of a migration task where a new target server will be created.

    POST https://{endpoint}/v3/vm/templates
    
    {
      "template" : {
        "name" : "",
        "is_template" : false,
        "region" : "region",
        "target_server_name" : "abcd",
        "availability_zone" : "availability_zone",
        "projectid" : "00924d0ad2df4f21ac476dd9f3288xxx",
        "volumetype" : "",
        "image_id" : "",
        "vpc" : {
          "id" : "00cda768-ef7b-40ac-a555-84b0c2b85d89",
          "name" : "sms-1566979232(192.168.0.0/16)"
        },
        "security_groups" : [ {
          "id" : "00d57b53-c00b-4d0a-975b-0f3c4fcf93c8",
          "name": "kubernetes.io-default-sg (Inbound: udp/1-65535;tcp/22,1-65535,3389; Outbound: --) "
        } ],
        "nics" : [ {
          "id" : "b5891372-f48c-4b3c-9f7a-ab58da5baa93",
          "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" : "00924d0ad2df4f21ac476dd9f3288xxx",
        "target_password" : "********",
        "flavor" : "c3.medium.2",
        "vpc" : {
          "id" : "e7069fc1-e09e-4ded-8570-6b3bb2a5893b",
          "name" : "Migrate-SSd-1",
          "cidr" : "192.168.0.0/16"
        },
        "nics" : [ {
          "id" : "c5c7d1a2-a204-4cee-8f11-26ac97a50d13",
          "name" : "Migrate-SSd-35",
          "cidr" : "192.168.0.0/16",
          "ip" : ""
        } ],
        "security_groups" : [ {
          "id" : "003ae8fc-066a-45cd-8a9c-995b1def8c26",
          "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 Response

Status code: 200

OK

{
  "id" : "2bf4344f-8f1f-414e-bb1b-8c2f59ada67f"
}

Status Codes

Status Code

Description

200

OK

Error Codes

For details, see Error Codes.