:original_name: CreateFirewall.html .. _CreateFirewall: Create Firewall =============== Function -------- This API is used to create firewall. URI --- POST /v2/{project_id}/firewall .. table:: **Table 1** Path Parameters ========== ========= ====== =========== Parameter Mandatory Type Description ========== ========= ====== =========== project_id Yes String Project ID ========== ========= ====== =========== Request Parameters ------------------ .. table:: **Table 2** Request header parameters +----------------+-----------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Parameter | Mandatory | Type | Description | +================+===========+========+========================================================================================================================================================================+ | X-Auth-Token | Yes | String | User token. It 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 a token. | +----------------+-----------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | X-Client-Token | No | String | An identity that guarantees the idempotency of client requests. The identifier is in 32-bit UUID format, generated by the client, and must be unique between requests. | +----------------+-----------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | X-Trace-Id | No | String | | +----------------+-----------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. table:: **Table 3** Request body parameters +-----------------------+-----------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | Parameter | Mandatory | Type | Description | +=======================+=================+=================================================================+===================================================================================================================+ | name | Yes | String | Firewall Name | +-----------------------+-----------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | enterprise_project_id | No | String | Enterprise project id, the id generated by the enterprise project after the user supports the enterprise project. | | | | | | | | | | Default: **0** | +-----------------------+-----------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | tags | No | Array of :ref:`tags ` objects | Resource Tag | +-----------------------+-----------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | flavor | No | :ref:`flavor ` object | flavor | +-----------------------+-----------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | charge_info | Yes | :ref:`charge_info ` object | Billing type information, prepaid and postpaid, the default is postpaid. | +-----------------------+-----------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ .. _createfirewall__request_tags: .. table:: **Table 4** tags ========= ========= ====== =========== Parameter Mandatory Type Description ========= ========= ====== =========== key Yes String Tag Key value Yes String Tag Value ========= ========= ====== =========== .. _createfirewall__request_flavor: .. table:: **Table 5** flavor +------------------+-----------------+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Parameter | Mandatory | Type | Description | +==================+=================+=================+================================================================================================================================================================================================+ | version | No | String | Firewall version: If charge_mode is set to prePaid, only the Professional Edition is supported, and when charge_mode is set to postPaid, the Standard and Professional Editions are supported. | | | | | | | | | | Enumeration values: | | | | | | | | | | - **Standard** | | | | | | | | | | - **Professional** | +------------------+-----------------+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | extend_eip_count | No | Integer | Expand the number of EIPs and take effect only in the prepaid mode. | | | | | | | | | | Minimum: **0** | | | | | | | | | | Maximum: **2000** | | | | | | | | | | Default: **0** | +------------------+-----------------+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | extend_bandwidth | No | Integer | Expand band width and take effect only in the prepaid mode. | | | | | | | | | | Minimum: **0** | | | | | | | | | | Maximum: **5000** | +------------------+-----------------+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | extend_vpc_count | No | Integer | Expand the number of VPCs and take effect only in the prepaid mode. | | | | | | | | | | Minimum: **0** | | | | | | | | | | Maximum: **100** | +------------------+-----------------+-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. _createfirewall__request_charge_info: .. table:: **Table 6** charge_info +-----------------+-----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Parameter | Mandatory | Type | Description | +=================+=================+=================+=======================================================================================================================================================================================+ | charge_mode | Yes | String | The billing mode can be prepaid, i.e., yearly/monthly, and postPaid: postpaid, i.e., pay-per-use. | +-----------------+-----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | period_type | No | String | The value range of the subscription cycle,include monthly and yearly. Note: This parameter takes effect when charge_mode is set to prePaid, and the value is required. | +-----------------+-----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | period_num | No | Integer | the time of the subscription, take effect when charge_mode is prePaid and it is required, value range: 1~9 when period_type is set to month, and 1~3 when period_type is set to year. | +-----------------+-----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | is_auto_renew | Yes | Boolean | whether the firewall instance is auto renewed | | | | | | | | | | Default: **false** | +-----------------+-----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | is_auto_pay | Yes | Boolean | whether the firewall instance is auto paid | | | | | | | | | | Default: **false** | +-----------------+-----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Response Parameters ------------------- **Status code: 200** .. table:: **Table 7** Response body parameters +-----------+------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | Parameter | Type | Description | +===========+==============================================================================+======================================================================================================================+ | job_id | String | The job id, created when the firewall instance is created, which is returned only when the billing mode is postpaid. | +-----------+------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | order_id | String | Order id,which is returned when the firewall instance is created. | +-----------+------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | data | :ref:`CreateFirewallReq ` object | Create Firewall Request | +-----------+------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ .. _createfirewall__response_createfirewallreq: .. table:: **Table 8** CreateFirewallReq +-----------------------+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | Parameter | Type | Description | +=======================+==================================================================+===================================================================================================================+ | name | String | Firewall Name | +-----------------------+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | enterprise_project_id | String | Enterprise project id, the id generated by the enterprise project after the user supports the enterprise project. | | | | | | | | Default: **0** | +-----------------------+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | tags | Array of :ref:`tags ` objects | Resource Tag | +-----------------------+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | flavor | :ref:`flavor ` object | flavor | +-----------------------+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ | charge_info | :ref:`charge_info ` object | Billing type information, prepaid and postpaid, the default is postpaid. | +-----------------------+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+ .. _createfirewall__response_tags: .. table:: **Table 9** tags ========= ====== =========== Parameter Type Description ========= ====== =========== key String Tag Key value String Tag Value ========= ====== =========== .. _createfirewall__response_flavor: .. table:: **Table 10** flavor +-----------------------+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Parameter | Type | Description | +=======================+=======================+================================================================================================================================================================================================+ | version | String | Firewall version: If charge_mode is set to prePaid, only the Professional Edition is supported, and when charge_mode is set to postPaid, the Standard and Professional Editions are supported. | | | | | | | | Enumeration values: | | | | | | | | - **Standard** | | | | | | | | - **Professional** | +-----------------------+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | extend_eip_count | Integer | Expand the number of EIPs and take effect only in the prepaid mode. | | | | | | | | Minimum: **0** | | | | | | | | Maximum: **2000** | | | | | | | | Default: **0** | +-----------------------+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | extend_bandwidth | Integer | Expand band width and take effect only in the prepaid mode. | | | | | | | | Minimum: **0** | | | | | | | | Maximum: **5000** | +-----------------------+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | extend_vpc_count | Integer | Expand the number of VPCs and take effect only in the prepaid mode. | | | | | | | | Minimum: **0** | | | | | | | | Maximum: **100** | +-----------------------+-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. _createfirewall__response_charge_info: .. table:: **Table 11** charge_info +-----------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Parameter | Type | Description | +=======================+=======================+=======================================================================================================================================================================================+ | charge_mode | String | The billing mode can be prepaid, i.e., yearly/monthly, and postPaid: postpaid, i.e., pay-per-use. | +-----------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | period_type | String | The value range of the subscription cycle,include monthly and yearly. Note: This parameter takes effect when charge_mode is set to prePaid, and the value is required. | +-----------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | period_num | Integer | the time of the subscription, take effect when charge_mode is prePaid and it is required, value range: 1~9 when period_type is set to month, and 1~3 when period_type is set to year. | +-----------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | is_auto_renew | Boolean | whether the firewall instance is auto renewed | | | | | | | | Default: **false** | +-----------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | is_auto_pay | Boolean | whether the firewall instance is auto paid | | | | | | | | Default: **false** | +-----------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ **Status code: 400** .. table:: **Table 12** Response body parameters +-----------------------+-----------------------+-----------------------+ | Parameter | Type | Description | +=======================+=======================+=======================+ | error_code | String | Error code | | | | | | | | Minimum: **8** | | | | | | | | Maximum: **36** | +-----------------------+-----------------------+-----------------------+ | error_msg | String | Description | | | | | | | | Minimum: **2** | | | | | | | | Maximum: **512** | +-----------------------+-----------------------+-----------------------+ Example Requests ---------------- Enable a standard firewall with 2000 extended EIP, 5,000 Mbps extended protection bandwidth, 100 extended protection VCPs under a monthly billing auto-renewal model. .. code-block:: https://{Endpoint}/v2/124147da-5b08-471a-93d2-bc82acc290c6/firewall { "name" : "CFW-TEST", "enterprise_project_id" : "0", "tags" : [ { "key" : "TagKey", "value" : "TagVal" } ], "flavor" : { "version" : "standard", "extend_eip_count" : 2000, "extend_bandwidth" : 5000, "extend_vpc_count" : 100 }, "charge_info" : { "charge_mode" : "prePaid", "period_type" : "month", "period_num" : 1, "is_auto_renew" : true, "is_auto_pay" : true } } Example Responses ----------------- **Status code: 200** Create Firewall Response .. code-block:: { "data" : { "charge_info" : { "charge_mode" : "prePaid", "is_auto_pay" : true, "is_auto_renew" : true, "period_num" : 1, "period_type" : "month" }, "enterprise_project_id" : "0", "flavor" : { "extend_bandwidth" : 5000, "extend_eip_count" : 2000, "extend_vpc_count" : 100, "version" : "Standard" }, "name" : "CFW-TEST", "tags" : [ { "key" : "TagKey", "value" : "TagVal" } ] }, "order_id" : "CS2403271050ZEM0L" } **Status code: 400** Bad Request .. code-block:: { "error_code" : "CFW.00100001", "error_msg" : "The system is busy. Please try again later." } Status Codes ------------ =========== ======================== Status Code Description =========== ======================== 200 Create Firewall Response 400 Bad Request =========== ======================== Error Codes ----------- See :ref:`Error Codes `.