Updated on 2026-01-28 GMT+08:00

Querying the Template List

Function

This API is used to list templates used for setting up target servers. You can use these templates for quick configuration.

Calling Method

For details, see Calling APIs.

Authorization Information

Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.

  • If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
  • If you are using identity policy-based authorization, the following identity policy-based permissions are required.

    Action

    Access Level

    Resource Type (*: required)

    Condition Key

    Alias

    Dependencies

    sms:template:list

    List

    template *

    -

    sms:server:queryServer

    -

URI

GET /v3/vm/templates

Table 1 Query Parameters

Parameter

Mandatory

Type

Description

name

No

String

The template name.

Minimum: 0

Maximum: 255

availability_zone

No

String

The availability zone.

Minimum: 0

Maximum: 255

region

No

String

Region ID

Minimum: 0

Maximum: 255

limit

No

Integer

The page size. If this parameter is not transferred, the default value 50 is used.

Minimum: 0

Maximum: 100

Default: 50

offset

No

Integer

The offset for pagination. If this parameter is not transferred, the default value 0 is used.

Minimum: 0

Maximum: 65535

Default: 0

id

No

String

The template ID.

Minimum: 1

Maximum: 36

Request Parameters

Table 2 Request header 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

Response Parameters

Status code: 200

Table 3 Response body parameters

Parameter

Type

Description

count

Integer

The number of templates.

Minimum: 0

Maximum: 65535

templates

Array of TemplateResponseBody objects

The template information.

Array Length: 0 - 65535

Table 4 TemplateResponseBody

Parameter

Type

Description

id

String

The template ID.

Minimum: 0

Maximum: 255

name

String

The template name.

Minimum: 0

Maximum: 255

is_template

String

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

Minimum: 0

Maximum: 255

region

String

The region.

Minimum: 0

Maximum: 255

projectid

String

The project ID.

Minimum: 0

Maximum: 255

target_server_name

String

The name of the target server.

Minimum: 0

Maximum: 255

availability_zone

String

The availability zone.

Minimum: 0

Maximum: 255

volumetype

String

The data disk type.

SAS: serial attached SCSI

SSD: solid-state drive

SATA: serial advanced technology attachment

Enumeration values:

  • SAS

  • SSD

  • SATA

flavor

String

The server flavor.

Minimum: 0

Maximum: 255

vpc

VpcObject object

The VPC information.

nics

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

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

PublicIp object

The public IP address.

disk

Array of TemplateDisk objects

The disk information.

Array Length: 0 - 65535

data_volume_type

String

The data disk type.

SAS: serial attached SCSI

SSD: solid-state drive

SATA: serial advanced technology attachment

Enumeration values:

  • SAS

  • SSD

  • SATA

target_password

String

The target server password.

Minimum: 0

Maximum: 1024

image_id

String

The ID of the selected image.

Minimum: 0

Maximum: 255

Table 5 VpcObject

Parameter

Type

Description

id

String

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

Minimum: 1

Maximum: 255

name

String

The VPC name.

Minimum: 1

Maximum: 255

cidr

String

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

Minimum: 1

Maximum: 255

Table 6 Nics

Parameter

Type

Description

id

String

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

Minimum: 0

Maximum: 255

name

String

The subnet name.

Minimum: 0

Maximum: 255

cidr

String

The subnet gateway/mask.

Minimum: 0

Maximum: 255

ip

String

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

Minimum: 0

Maximum: 255

Table 7 SgObject

Parameter

Type

Description

id

String

Security group ID.

Minimum: 0

Maximum: 255

name

String

Security group name.

Minimum: 0

Maximum: 255

Table 8 PublicIp

Parameter

Type

Description

type

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

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

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

Table 9 TemplateDisk

Parameter

Type

Description

id

Long

The disk ID.

Minimum: 0

Maximum: 9223372036854775807

index

Integer

The disk serial number, starting from 0.

Minimum: 0

Maximum: 2147483647

name

String

The disk name.

Minimum: 0

Maximum: 255

disktype

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

Long

The disk size in GB.

Minimum: 0

Maximum: 9223372036854775807

device_use

String

The disk function.

Minimum: 0

Maximum: 255

Status code: 403

Table 10 Response body parameters

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

Table 11 details

Parameter

Type

Description

error_code

String

The SMS error code.

Minimum: 0

Maximum: 65535

error_msg

String

The SMS error message.

Minimum: 0

Maximum: 65535

Example Requests

This example queries the template list.

GET https://{endpoint}/v3/vm/templates

Example Responses

Status code: 200

Querying the template list succeeded.

{
  "count" : 9,
  "templates" : [ {
    "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "name" : "test",
    "region" : "region",
    "availability_zone" : "availability_zone",
    "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
    "flavor" : "s2.large.2",
    "volumetype" : "",
    "image_id" : "",
    "vpc" : {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "vpc-dfdb"
    },
    "nics" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "subnet-dfdb(192.168.1.0/24)",
      "cidr" : "192.168.1.0/24",
      "ip" : ""
    } ],
    "security_groups" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "default(Inbound:tcp/8900,8899,3389,22; Outbound:--)"
    } ]
  }, {
    "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "name" : "test1",
    "region" : "region",
    "availability_zone" : "availability_zone",
    "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
    "flavor" : "s6.large.2",
    "volumetype" : "",
    "image_id" : "",
    "vpc" : {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "vpc-13d6"
    },
    "nics" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "subnet-13d6(192.168.1.0/24)",
      "cidr" : "192.168.1.0/24",
      "ip" : ""
    } ],
    "security_groups" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "sms-1568190885(Inbound:tcp/8900,8899,3389; Outbound:--)"
    } ]
  }, {
    "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "name" : "test2",
    "region" : "region",
    "availability_zone" : "availability_zone",
    "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
    "flavor" : "s2.large.2",
    "volumetype" : "",
    "image_id" : "",
    "vpc" : {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "vpc-testcloud(192.168.0.0/16)"
    },
    "nics" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "subnet-testcloud(192.168.0.0/24)",
      "cidr" : "192.168.0.0/24",
      "ip" : ""
    } ],
    "security_groups" : [ ]
  }, {
    "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "name" : "fdff",
    "region" : "region",
    "availability_zone" : "availability_zone",
    "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
    "flavor" : "s2.large.2",
    "volumetype" : "",
    "image_id" : "",
    "vpc" : {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "vpc-migration(192.168.0.0/16)"
    },
    "nics" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "subnet-cf42(192.168.5.0/24)",
      "cidr" : "192.168.5.0/24",
      "ip" : ""
    } ],
    "security_groups" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "sg-smt-test(Inbound:tcp/3389,8899,22,8900; Outbound:--)"
    } ]
  }, {
    "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "name" : "test3",
    "region" : "region",
    "availability_zone" : "availability_zone",
    "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
    "flavor" : "s2.medium.2",
    "volumetype" : "",
    "image_id" : "",
    "vpc" : { },
    "nics" : [ ],
    "security_groups" : [ ]
  }, {
    "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "name" : "test_linux_childproj",
    "region" : "region",
    "availability_zone" : "availability_zone",
    "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
    "flavor" : "s2.small.1",
    "volumetype" : "SATA",
    "image_id" : "",
    "vpc" : {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "sms-1567992634(192.168.0.0/16)"
    },
    "nics" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "sms-1567992646(192.168.0.0/16)",
      "cidr" : "192.168.0.0/16",
      "ip" : ""
    } ],
    "security_groups" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "sg-7e50(Inbound:tcp/8900,8899,3389,22; Outbound:--)"
    } ]
  }, {
    "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "name" : "12212",
    "region" : "region",
    "availability_zone" : "availability_zone",
    "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
    "flavor" : "s2.large.2",
    "volumetype" : "",
    "image_id" : "",
    "vpc" : {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "vpc-migration(192.168.0.0/16)"
    },
    "nics" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "subnet-migration(192.168.1.0/24)",
      "cidr" : "192.168.1.0/24",
      "ip" : ""
    } ],
    "security_groups" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "SMT-Windows(Inbound:tcp/8443,8899,8900,22,3389;icmp; Outbound:--)"
    } ]
  }, {
    "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "name" : "test4",
    "region" : "region",
    "availability_zone" : "availability_zone",
    "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
    "flavor" : "s2.medium.2",
    "volumetype" : "SATA",
    "image_id" : "",
    "vpc" : { },
    "nics" : [ ],
    "security_groups" : [ ]
  }, {
    "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
    "name" : "dddd",
    "region" : "region",
    "availability_zone" : "availability_zone",
    "projectid" : "xxxxxxxxxxxxxxxxxxxxxxxx00000001",
    "flavor" : "s2.large.2",
    "volumetype" : "",
    "image_id" : "",
    "vpc" : {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "sms-1566979232(192.168.0.0/16)"
    },
    "nics" : [ {
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx0001",
      "name" : "sms-1566979244(192.168.0.0/16)",
      "cidr" : "192.168.0.0/16",
      "ip" : ""
    } ],
    "security_groups" : [ ]
  } ]
}

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."
  } ]
}

SDK Sample Code

The SDK sample code is as follows.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.GlobalCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.sms.v3.region.SmsRegion;
import com.huaweicloud.sdk.sms.v3.*;
import com.huaweicloud.sdk.sms.v3.model.*;


public class ListTemplatesSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new GlobalCredentials()
                .withAk(ak)
                .withSk(sk);

        SmsClient client = SmsClient.newBuilder()
                .withCredential(auth)
                .withRegion(SmsRegion.valueOf("<YOUR REGION>"))
                .build();
        ListTemplatesRequest request = new ListTemplatesRequest();
        try {
            ListTemplatesResponse response = client.listTemplates(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import GlobalCredentials
from huaweicloudsdksms.v3.region.sms_region import SmsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdksms.v3 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]

    credentials = GlobalCredentials(ak, sk)

    client = SmsClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(SmsRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListTemplatesRequest()
        response = client.list_templates(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global"
    sms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/sms/v3/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := global.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := sms.NewSmsClient(
        sms.SmsClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListTemplatesRequest{}
	response, err := client.ListTemplates(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Querying the template list succeeded.

403

Authentication failed.

Error Codes

See Error Codes.