:original_name: dcs-api-0312004.html
.. _dcs-api-0312004:
Creating a DCS Instance
=======================
Function
--------
This API is used to create a DCS instance.
.. note::
The system automatically schedules the task every 3 minutes for checking whether resources are available or sold out.
URI
---
POST /v1.0/{project_id}/instances
:ref:`Table 1 ` describes the parameter.
.. _dcs-api-0312004__table9695164612327:
.. table:: **Table 1** Parameter description
+------------+--------+-----------+----------------------------------------------------------------------------------------------------------------------------+
| Parameter | Type | Mandatory | Description |
+============+========+===========+============================================================================================================================+
| project_id | String | Yes | Project ID. For details on how to obtain the value of this parameter, see :ref:`Obtaining a Project ID `. |
+------------+--------+-----------+----------------------------------------------------------------------------------------------------------------------------+
Request
-------
**Request parameters**
:ref:`Table 2 ` describes the request parameters.
.. _dcs-api-0312004__table56761820495:
.. table:: **Table 2** Parameter description
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Parameter | Type | Mandatory | Description |
+=========================+==================+=================+=======================================================================================================================================================================================================================================================================================================================================================================================================================================+
| name | String | Yes | DCS instance name. |
| | | | |
| | | | An instance name can contain 4 to 64 characters and must start with a letter. Only letters, digits, underscores (_), and hyphens (-) are allowed. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| description | String | No | Brief description of the DCS instance. |
| | | | |
| | | | The description supports up to 1024 characters. |
| | | | |
| | | | .. note:: |
| | | | |
| | | | The backslash (\\) and quotation mark (") are special characters for JSON messages. When using these characters in a parameter value, add the escape character (\\) before the characters, for example, **\\\\** and **\\"**. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| engine | String | Yes | Cache engine. Value: **Redis**. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| engine_version | String | Yes | Cache engine version. If the cache engine is Redis, the value can be **3.0**, **4.0**, or **5.0**. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| spec_code | String | No | DCS instance specification code. |
| | | | |
| | | | To obtain the value, go to the instance creation page on the DCS console, and view **Flavor Name** in the **Instance Specification** table. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| capacity | Float | Yes | Cache capacity. Unit: GB. |
| | | | |
| | | | - For a single-node or master/standby DCS Redis 3.0 instance, the value can be **2**, **4**, **8**, **16**, **32**, or **64**. For a Proxy Cluster DCS Redis 3.0 instance, the value can be **64**, **128**, **256**, **512**, or **1024**. |
| | | | - For a single-node or master/standby DCS Redis 4.0 or 5.0 instance, the value can be **0.125**, **0.25**, **0.5**, **1**, **2**, **4**, **8**, **16**, **32**, **24**, **48**, or **64**. For a Redis Cluster DCS Redis 4.0 or 5.0 instance, the value can be **4**, **8**, **16**, **24**, **32**, **48**, **64**, **96**, **128**, **192**, **256**, **384**, **512**, **768**, or **1024**. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| no_password_access | String | Yes | An indicator of whether a DCS instance can be accessed in password-free mode. |
| | | | |
| | | | - **true**: indicates that a DCS instance can be accessed without a password. |
| | | | - **false**: indicates that a DCS instance can be accessed only after password authentication. |
| | | | |
| | | | Default value: **false**. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| password | String | No | Password of a DCS instance. |
| | | | |
| | | | .. note:: |
| | | | |
| | | | If **no_password_access** is set to **false** or not set, the request must contain the **password** parameter. |
| | | | |
| | | | The password of a DCS Redis instance must meet the following complexity requirements: |
| | | | |
| | | | - Must be a string consisting of 8 to 32 characters. |
| | | | - Must be different from the old password. |
| | | | - Contains at least three of the following character types: |
| | | | |
| | | | - Lowercase letters |
| | | | - Uppercase letters |
| | | | - Digits |
| | | | - Special characters :literal:`(`~!@#$^&`\ ``*``\ (``)-_=+\|{}:,<.>/?``) |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| vpc_id | String | Yes | VPC ID. |
| | | | |
| | | | Obtain the value by using either of the following methods: |
| | | | |
| | | | - Method 1: Log in to VPC console and view the VPC ID in the VPC details. |
| | | | - Method 2: Call the API for querying VPCs. For details, see the "Querying VPCs" section in the *Virtual Private Cloud API Reference*. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| security_group_id | String | Yes | ID of the security group which the instance belongs to. |
| | | | |
| | | | This parameter is mandatory when the **engine** is **Redis** and **engine_version** is **3.0**. DCS Redis 3.0 instances support security group access control. |
| | | | |
| | | | This parameter is optional when the **engine** is **Redis** and **engine_version** is **4.0** or **5.0**. DCS Redis 4.0 and 5.0 instances do not support security groups. |
| | | | |
| | | | Obtain the value by using either of the following methods: |
| | | | |
| | | | - Method 1: Log in to the VPC console and view the security group ID on the security group details page. |
| | | | - Method 2: Call the API for querying security groups. For details, see the "Querying Security Groups" section in the *Virtual Private Cloud API Reference*. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| subnet_id | String | Yes | Network ID of the subnet. |
| | | | |
| | | | Obtain the value by using either of the following methods: |
| | | | |
| | | | - Method 1: Log in to VPC console and click the target subnet on the **Subnets** tab page. You can view the network ID on the displayed page. |
| | | | - Method 2: Call the API for querying subnets. For details, see the "Querying Subnets" section in the *Virtual Private Cloud API Reference*. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| available_zones | Array | Yes | ID of the AZ where the cache node resides and which has available resources. For details on how to obtain the value, see :ref:`Querying AZ Information `. Check whether the AZ has available resources. |
| | | | |
| | | | Master/Standby, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment. You can specify an AZ for the standby node. When specifying AZs for nodes, use commas (,) to separate multiple AZs. For details, see the example request. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| product_id | String | Yes | ID of the product that can be created. For details, see :ref:`Querying Service Specifications `. |
| | | | |
| | | | The parameter value is in the format of **spec_code-Abbreviation of the billing mode**. The abbreviation of the billing mode can only be **h**, indicating pay-per-use. |
| | | | |
| | | | For example, **redis.single.au1.large.1-h** indicates a pay-per-use product whose specification code is redis.single.au1.large.1. |
| | | | |
| | | | .. note:: |
| | | | |
| | | | When obtaining the product ID from the product specifications, ensure that the billing mode specified in the product ID is the same as the selected billing mode. For example, to buy a master/standby DCS Redis 3.0 instance billed in pay-per-use mode, you can search for the product ID corresponding to the record whose **charging_type** is **Hourly** and **spec_code** is **dcs.master_standby** in the response message. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| instance_backup_policy | Object | No | Backup policy. |
| | | | |
| | | | This parameter is available for master/standby and cluster DCS instances. For details, see :ref:`Table 3 ` and :ref:`Table 4 `. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| enable_publicip | Boolean | No | An indicator of whether to enable public access for a DCS Redis instance. |
| | | | |
| | | | - **true**: enable. |
| | | | - **false**: disable. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| publicip_id | String | No | ID of the elastic IP address bound to a DCS Redis instance. |
| | | | |
| | | | This parameter is mandatory if public access is enabled (that is, **enable_publicip** is set to **true**). |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| enable_ssl | Boolean | No | An indicator of whether to enable SSL for public access to a DCS Redis instance. |
| | | | |
| | | | - **true**: enable. |
| | | | - **false**: disable. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| maintain_begin | String | No | Time at which the maintenance time window starts. |
| | | | |
| | | | Format: hh:mm:ss. |
| | | | |
| | | | - The start time and end time of the maintenance time window must indicate the time segment of a supported maintenance time window. For details on how to query the time segments of supported maintenance time windows, see :ref:`Querying Maintenance Time Window `. |
| | | | - The start time must be set to 22:00:00, 02:00:00, 06:00:00, 10:00:00, 14:00:00, or 18:00: 00. |
| | | | - Parameters **maintain_begin** and **maintain_end** must be set in pairs. If parameter **maintain_start** is left blank, parameter **maintain_end** is also blank. In this case, the system automatically set the start time to 02:00:00. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| maintain_end | String | No | Time at which the maintenance time window ends. |
| | | | |
| | | | Format: hh:mm:ss. |
| | | | |
| | | | - The start time and end time of the maintenance time window must indicate the time segment of a supported maintenance time window. For details on how to query the time segments of supported maintenance time windows, see :ref:`Querying Maintenance Time Window `. |
| | | | |
| | | | - The end time is four hours later than the start time. For example, if the start time is 22:00:00, the end time is 02:00:00. |
| | | | - Parameters **maintain_begin** and **maintain_end** must be set in pairs. If parameter **maintain_end** is left blank, parameter **maintain_start** is also blank. In this case, the system automatically set the end time to 06:00:00. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| enterprise_project_id | String | No | Enterprise project ID. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| enterprise_project_name | String | No | Enterprise project name. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| instance_num | Integer | No | Number of instances to be created in batches. |
| | | | |
| | | | Default value: **1**. |
| | | | |
| | | | Value range: 1-100. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| private_ips | Array of strings | No | IP address that is manually specified for a DCS instance. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| port | Integer | No | Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances and not by Redis 3.0 instances. |
| | | | |
| | | | If this parameter is not sent or is left empty when you create a Redis 4.0 or 5.0 instance, the default port 6379 will be used. To customize a port, specify a port number in the range from 1 to 65535. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| rename_commands | Object | No | Critical command renaming, which is supported only by Redis 4.0 and Redis 5.0 instances and not by Redis 3.0 instances. |
| | | | |
| | | | If this parameter is not sent or is left empty when you create a Redis 4.0 or 5.0 instance, no critical command will be renamed. Currently, only **COMMAND**, **KEYS**, **FLUSHDB**, **FLUSHALL**, and **HGETALL** commands can be renamed. |
+-------------------------+------------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. _dcs-api-0312004__table12803218151513:
.. table:: **Table 3** instance_backup_policy parameter description
+------------------------+-----------------+-----------------+---------------------------------------------------------------------------------------+
| Parameter | Type | Mandatory | Description |
+========================+=================+=================+=======================================================================================+
| save_days | Integer | No | This parameter is mandatory when **backup_type** is set to **manual**. |
| | | | |
| | | | Retention period. |
| | | | |
| | | | Unit: day. |
| | | | |
| | | | Value range: 1-7. |
+------------------------+-----------------+-----------------+---------------------------------------------------------------------------------------+
| backup_type | String | No | Backup type. |
| | | | |
| | | | Options: |
| | | | |
| | | | - **auto**: automatic backup. |
| | | | - **manual**: manual backup. |
| | | | |
| | | | The default value is **manual**. |
+------------------------+-----------------+-----------------+---------------------------------------------------------------------------------------+
| periodical_backup_plan | Object | Yes | Backup plan. For details, see :ref:`Table 4 `. |
+------------------------+-----------------+-----------------+---------------------------------------------------------------------------------------+
.. _dcs-api-0312004__table187492037201518:
.. table:: **Table 4** periodical_backup_plan parameter description
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------+
| Parameter | Type | Mandatory | Description |
+=================+=================+=================+======================================================================================================================================+
| begin_at | String | Yes | Time at which backup starts. |
| | | | |
| | | | "00:00-01:00" indicates that backup starts at 00:00:00. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------+
| period_type | String | Yes | Interval at which backup is performed. |
| | | | |
| | | | Currently, only weekly backup is supported. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------+
| backup_at | Array | Yes | Day in a week on which backup starts. |
| | | | |
| | | | Value range: 1-7, where **1** indicates Monday and **7** indicates Sunday. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------+
| timezone_offset | String | No | Time zone in which backup is performed. |
| | | | |
| | | | Value range: GMT-12:00 to GMT+12:00. If this parameter is left blank, the current time zone of the DCS-Server VM is used by default. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------+
**Example request**
- Request URL:
.. code-block:: text
POST https://{dcs_endpoint}/v1.0/{project_id}/instances
- Example:
**Creating a DCS Redis instance**
.. code-block::
{
"name": "dcs-APITest",
"description": "Test",
"engine": "Redis",
"engine_version": "3.0",
"capacity": 2,
"enterprise_project_id": "0",
"enterprise_project_name": "default",
"no_password_access": false,
"password": "********",
"vpc_id": "0402ea19-5457-4032-9d1b-eb48b98f6c66",
"security_group_id": "4b95a790-5cfc-463d-8de5-42199e55371c",
"subnet_id": "a3bd29e4-d5bc-414c-a79a-1f35ee4ead88",
"available_zones": [
"12c47a78666b4e438cd0c692b9860387"
],
"maintain_begin": "02:00",
"maintain_end": "06:00",
"product_id": "dcs.master_standby-h",
"enable_publicip": false,
"publicip_id": "",
"enable_ssl": false,
"private_ips": "",
"instance_num": 1
}
Response
--------
**Response parameters**
:ref:`Table 5 ` describes the response parameters.
.. _dcs-api-0312004__table079510368334:
.. table:: **Table 5** Parameter description
+-------------+------------------+------------------------------------------------------------------------------------------+
| Parameter | Type | Description |
+=============+==================+==========================================================================================+
| instance_id | String | DCS instance ID. |
+-------------+------------------+------------------------------------------------------------------------------------------+
| instances | Array of Objects | DCS instance list. For details, see :ref:`Table 6 `. |
+-------------+------------------+------------------------------------------------------------------------------------------+
.. _dcs-api-0312004__table128250386224:
.. table:: **Table 6** instances parameters
============= ====== ==================
Parameter Type Description
============= ====== ==================
instance_id String DCS instance ID.
instance_name String DCS instance name.
============= ====== ==================
**Example response**
.. code-block::
{
"instances": [
{
"instance_id": "3c49fd6b-fc7c-419e-9644-b6cce008653f",
"instance_name": "dcs-test005"
}
],
"instance_id": "3c49fd6b-fc7c-419e-9644-b6cce008653f"
}
Status Code
-----------
:ref:`Table 7 ` describes the status code of successful operations. For details about other status codes, see :ref:`Table 1 `.
.. _dcs-api-0312004__table217814394526:
.. table:: **Table 7** Status code
=========== ==================================
Status Code Description
=========== ==================================
200 DCS instance created successfully.
=========== ==================================