doc-exports/elb/api-ref/UpdateLoadBalancer.rst

660 lines
64 KiB
ReStructuredText

Updating a Load Balancer
========================
Function
^^^^^^^^
This API is used to update a load balancer.
URI
^^^
PUT /v3/{project_id}/elb/loadbalancers/{loadbalancer_id}
.. table:: **Table 1** Path parameters
=============== ========= ====== ===============================
Parameter Mandatory Type Description
=============== ========= ====== ===============================
loadbalancer_id Yes String Specifies the load balancer ID.
project_id Yes String Specifies the project ID.
=============== ========= ====== ===============================
Request Parameters
^^^^^^^^^^^^^^^^^^
.. table:: **Table 2** Request header parameters
============ ========= ====== ================================================
Parameter Mandatory Type Description
============ ========= ====== ================================================
X-Auth-Token Yes String Specifies the token used for IAM authentication.
============ ========= ====== ================================================
.. table:: **Table 3** Request body parameters
+--------------+-----------+-------------------------------------------+------------------------------+
| Parameter | Mandatory | Type | Description |
+==============+===========+===========================================+==============================+
| loadbalancer | Yes | `U | Specifies the load balancer. |
| | | pdateLoadBalancerOption <#UpdateLoadBalan | |
| | | cer__request_UpdateLoadBalancerOption>`__ | |
| | | object | |
+--------------+-----------+-------------------------------------------+------------------------------+
.. table:: **Table 4** UpdateLoadBalancerOption
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| Parameter | Mandatory | Type | Description |
+=============================+=============================+=============================+=============================+
| name | No | String | Specifies the load balancer |
| | | | name. |
| | | | |
| | | | Minimum: **0** |
| | | | |
| | | | Maximum: **255** |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| admin_state_up | No | Boolean | Specifies the |
| | | | administrative status of |
| | | | the load balancer. And the |
| | | | value can only be **true**. |
| | | | |
| | | | This parameter is |
| | | | unsupported. Please do not |
| | | | use it. |
| | | | |
| | | | Default: **true** |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| description | No | String | Provides supplementary |
| | | | information about the load |
| | | | balancer. |
| | | | |
| | | | Minimum: **0** |
| | | | |
| | | | Maximum: **255** |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| ipv6_vip_virsubnet_id | No | String | Specifies the ID of the |
| | | | IPv6 subnet where the load |
| | | | balancer works. You can |
| | | | query **id** in the |
| | | | response by calling the API |
| | | | (GET |
| | | | https://{VPC_Endpoint |
| | | | }/v1/{project_id}/subnets). |
| | | | |
| | | | The IPv6 subnet can be |
| | | | updated using |
| | | | **ipv6_vip_virsubnet_id**, |
| | | | and the private IPv6 |
| | | | address of the load |
| | | | balancer will be changed |
| | | | accordingly. |
| | | | |
| | | | The IPv6 subnet must be in |
| | | | the VPC specified by |
| | | | **vpc_id**. |
| | | | |
| | | | Note: |
| | | | |
| | | | - |
| | | | **ipv6_vip_virsubnet_id** |
| | | | can be updated only when |
| | | | **guaranteed** is set to |
| | | | **true**. |
| | | | - Enter **null** if the |
| | | | IPv6 address is unbound |
| | | | from the load balancer. |
| | | | |
| | | | This parameter is |
| | | | unsupported. Please do not |
| | | | use it. |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| vip_subnet_cidr_id | No | String | Specifies the ID of the |
| | | | IPv4 subnet where the load |
| | | | balancer works. You can |
| | | | query **neutron_subnet_id** |
| | | | in the response by calling |
| | | | the API (GET |
| | | | https://{VPC_Endpoint |
| | | | }/v1/{project_id}/subnets). |
| | | | |
| | | | - The IPv4 subnet can be |
| | | | updated using |
| | | | **vip_subnet_cidr_id**, |
| | | | and the private IPv4 |
| | | | address of the load |
| | | | balancer will be changed |
| | | | accordingly. |
| | | | - If **vip_address** is |
| | | | also specified, the IP |
| | | | address specified by it |
| | | | must be in the subnet |
| | | | specified by |
| | | | **vip_subnet_cidr_id** |
| | | | and will be used as the |
| | | | private IPv4 address of |
| | | | the load balancer. |
| | | | - The IPv4 subnet must be |
| | | | in the VPC specified by |
| | | | **vpc_id**. |
| | | | |
| | | | Note: |
| | | | |
| | | | - **vip_subnet_cidr_id** |
| | | | can be updated only when |
| | | | **guaranteed** is set to |
| | | | **true**. |
| | | | - Enter **null** if the |
| | | | private IPv4 address is |
| | | | unbound from the load |
| | | | balancer. |
| | | | |
| | | | Minimum: **1** |
| | | | |
| | | | Maximum: **36** |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| vip_address | No | String | Specifies the virtual IP |
| | | | address bound to the load |
| | | | balancer. The IP address |
| | | | must be from the IPv4 |
| | | | subnet of the VPC where the |
| | | | load balancer works and IP |
| | | | address should not be |
| | | | occupied by other services. |
| | | | |
| | | | The IP address specified by |
| | | | this parameter must be in |
| | | | the subnet specified by |
| | | | **vip_subnet_cidr_id** and |
| | | | will be used as the private |
| | | | IPv4 address of the load |
| | | | balancer. |
| | | | |
| | | | **vip_address** can be |
| | | | updated only when |
| | | | **guaranteed** is set to |
| | | | **true**. |
| | | | |
| | | | Minimum: **1** |
| | | | |
| | | | Maximum: **36** |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| l4_flavor_id | No | String | Specifies the ID of the |
| | | | Layer-4 flavor. |
| | | | |
| | | | Note: |
| | | | |
| | | | - This parameter can be |
| | | | updated only when |
| | | | **guaranteed** is set to |
| | | | **true**. |
| | | | - The value cannot be |
| | | | changed from **null** to |
| | | | a specific value, or the |
| | | | other way around. If you |
| | | | need to change the |
| | | | flavor, you must select |
| | | | a larger one. |
| | | | |
| | | | Minimum: **1** |
| | | | |
| | | | Maximum: **255** |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| l7_flavor_id | No | String | Specifies the ID of the |
| | | | Layer-7 flavor. |
| | | | |
| | | | Note: |
| | | | |
| | | | - This parameter can be |
| | | | updated only when |
| | | | **guaranteed** is set to |
| | | | **true**. |
| | | | - The value cannot be |
| | | | changed from **null** to |
| | | | a specific value, or the |
| | | | other way around. If you |
| | | | need to change the |
| | | | flavor, you must select |
| | | | a larger one. |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| ipv6_bandwidth | No | `Bandw | Specifies the ID of the |
| | | idthRef <#UpdateLoadBalance | bandwidth. This parameter |
| | | r__request_BandwidthRef>`__ | is available only when you |
| | | object | create or update a |
| | | | dedicated load balancer |
| | | | that has an IPv6 address |
| | | | bound. |
| | | | |
| | | | If you use a new IPv6 |
| | | | address and specify a |
| | | | shared bandwidth, the IPv6 |
| | | | address will be added to |
| | | | the shared bandwidth. |
| | | | |
| | | | This parameter is |
| | | | unsupported. Please do not |
| | | | use it. |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| ip_target_enable | No | Boolean | Specifies whether to enable |
| | | | cross-VPC backend. The |
| | | | value can only be **true**. |
| | | | |
| | | | This parameter is |
| | | | unsupported. Please do not |
| | | | use it. |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
.. table:: **Table 5** BandwidthRef
========= ========= ====== ==================================
Parameter Mandatory Type Description
========= ========= ====== ==================================
id Yes String Specifies the shared bandwidth ID.
========= ========= ====== ==================================
Response Parameters
^^^^^^^^^^^^^^^^^^^
**Status code: 200**
.. table:: **Table 6** Response body parameters
+--------------+--------------------------------------------------+--------------------------------------------------+
| Parameter | Type | Description |
+==============+==================================================+==================================================+
| request_id | String | Specifies the request ID. The value is |
| | | automatically generated. |
+--------------+--------------------------------------------------+--------------------------------------------------+
| loadbalancer | `LoadBalancer | Specifies the load balancer. |
| | <#UpdateLoadBalancer__response_LoadBalancer>`__ | |
| | object | |
+--------------+--------------------------------------------------+--------------------------------------------------+
.. table:: **Table 7** LoadBalancer
+---------------------------------------+---------------------------------------+---------------------------------------+
| Parameter | Type | Description |
+=======================================+=======================================+=======================================+
| id | String | Specifies the load balancer ID. |
| | | |
| | | Default: **Automatically generated** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| description | String | Provides supplementary information |
| | | about the load balancer. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **255** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| provisioning_status | String | Specifies the provisioning status of |
| | | the load balancer. The value can only |
| | | be **ACTIVE**. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| admin_state_up | Boolean | Specifies the administrative status |
| | | of the load balancer. The value can |
| | | only be **true**. |
| | | |
| | | This parameter is unsupported. Please |
| | | do not use it. |
| | | |
| | | Default: **true** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| provider | String | Specifies the provider of the load |
| | | balancer. The value can only be |
| | | **vlb**. |
| | | |
| | | Default: **vlb** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| pools | Array of | Lists the IDs of backend server |
| | `PoolRef <#Upd | groups associated with the load |
| | ateLoadBalancer__response_PoolRef>`__ | balancer. |
| | objects | |
+---------------------------------------+---------------------------------------+---------------------------------------+
| listeners | Array of | Lists the IDs of listeners added to |
| | `ListenerRef <#UpdateL | the load balancer. |
| | oadBalancer__response_ListenerRef>`__ | |
| | objects | |
+---------------------------------------+---------------------------------------+---------------------------------------+
| operating_status | String | Specifies the operating status of the |
| | | load balancer. The value can only be |
| | | **ONLINE**. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **16** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| vip_address | String | Specifies the private IPv4 address |
| | | bound to the load balancer. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **64** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| vip_subnet_cidr_id | String | Specifies the ID of the IPv4 subnet |
| | | where the load balancer works. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **36** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| name | String | Specifies the name of the load |
| | | balancer. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **255** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| project_id | String | Specifies the project ID of the load |
| | | balancer. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **32** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| vip_port_id | String | Specifies the ID of the port bound to |
| | | the virtual IP address (the value of |
| | | **vip_address**) of the load |
| | | balancer. |
| | | |
| | | When you create a dedicated load |
| | | balancer, the system automatically |
| | | creates a port for the load balancer |
| | | and associates the port with a |
| | | default security group. However, |
| | | security group rules containing the |
| | | port will not affect traffic to and |
| | | from the load balancer. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| tags | Array of | Lists the tags added to the load |
| | `Tag < | balancer. |
| | #UpdateLoadBalancer__response_Tag>`__ | |
| | objects | |
+---------------------------------------+---------------------------------------+---------------------------------------+
| created_at | String | Specifies the time when the load |
| | | balancer was created. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **20** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| updated_at | String | Specifies the time when the load |
| | | balancer was updated. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **20** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| guaranteed | Boolean | Specifies whether the load balancer |
| | | is a dedicated load balancer. |
| | | |
| | | The value can be **true** or |
| | | **false**. **true** indicates a |
| | | dedicated load balancer, and |
| | | **false** indicates a shared load |
| | | balancer. When dedicated load |
| | | balancers are launched in the |
| | | **eu-de** region, either **true** or |
| | | **false** will be returned when you |
| | | use the API to query or update a load |
| | | balancer. |
| | | |
| | | Default: **true** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| vpc_id | String | Specifies the ID of the VPC where the |
| | | load balancer works. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| eips | Array of | Specifies the EIP bound to the load |
| | `EipInfo <#Upd | balancer. |
| | ateLoadBalancer__response_EipInfo>`__ | |
| | objects | |
+---------------------------------------+---------------------------------------+---------------------------------------+
| ipv6_vip_address | String | Specifies the IPv6 address bound to |
| | | the load balancer. |
| | | |
| | | This parameter is unsupported. Please |
| | | do not use it. |
| | | |
| | | Default: **None** |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **64** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| ipv6_vip_virsubnet_id | String | Specifies the ID of the IPv6 subnet |
| | | where the load balancer works. |
| | | |
| | | This parameter is unsupported. Please |
| | | do not use it. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| ipv6_vip_port_id | String | Specifies the ID of the port bound to |
| | | the IPv6 address. |
| | | |
| | | This parameter is unsupported. Please |
| | | do not use it. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| availability_zone_list | Array of strings | Specifies the list of AZs where the |
| | | load balancer is created. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| enterprise_project_id | String | Specifies the enterprise project ID. |
| | | |
| | | If this parameter is not passed |
| | | during resource creation, the |
| | | resource belongs to the default |
| | | enterprise project. |
| | | |
| | | This parameter is unsupported. Please |
| | | do not use it. |
| | | |
| | | Default: **0** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| l4_flavor_id | String | Specifies the Layer-4 flavor. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **255** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| l4_scale_flavor_id | String | Specifies the reserved Layer 4 |
| | | flavor. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **255** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| l7_flavor_id | String | Specifies the Layer-7 flavor. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **255** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| l7_scale_flavor_id | String | Specifies the reserved Layer 7 |
| | | flavor. |
| | | |
| | | Minimum: **1** |
| | | |
| | | Maximum: **255** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| publicips | Array of | Specifies the EIP bound to the load |
| | `PublicIpInfo <#UpdateLo | balancer. |
| | adBalancer__response_PublicIpInfo>`__ | |
| | objects | |
+---------------------------------------+---------------------------------------+---------------------------------------+
| elb_virsubnet_ids | Array of strings | Specifies the ID of the subnet on the |
| | | downstream plane. The ports used by |
| | | the load balancer dynamically occupy |
| | | IP addresses in the subnet. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| ip_target_enable | Boolean | Specifies whether to enable cross-VPC |
| | | backend. |
| | | |
| | | This parameter is unsupported. Please |
| | | do not use it. |
| | | |
| | | Default: **false** |
+---------------------------------------+---------------------------------------+---------------------------------------+
| frozen_scene | String | Specifies the scenario where the load |
| | | balancer is frozen. Use commas to |
| | | separate multiple scenarios. |
| | | |
| | | If the value is **ARREAR**, the load |
| | | balancer is frozen because your |
| | | account is in arrears. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| ipv6_bandwidth | `BandwidthRef <#UpdateLo | Specifies the ID of the bandwidth. |
| | adBalancer__response_BandwidthRef>`__ | This parameter is available only when |
| | object | you create or update a dedicated load |
| | | balancer that has an IPv6 address |
| | | bound. |
| | | |
| | | If you use a new IPv6 address and |
| | | specify a shared bandwidth, the IPv6 |
| | | address will be added to the shared |
| | | bandwidth. |
| | | |
| | | This parameter is unsupported. Please |
| | | do not use it. |
+---------------------------------------+---------------------------------------+---------------------------------------+
.. table:: **Table 8** PoolRef
========= ====== =============================================
Parameter Type Description
========= ====== =============================================
id String Specifies the ID of the backend server group.
========= ====== =============================================
.. table:: **Table 9** ListenerRef
========= ====== ==========================
Parameter Type Description
========= ====== ==========================
id String Specifies the listener ID.
========= ====== ==========================
.. table:: **Table 10** Tag
========= ====== ========================
Parameter Type Description
========= ====== ========================
key String Specifies the tag key.
value String Specifies the tag value.
========= ====== ========================
.. table:: **Table 11** EipInfo
+---------------------------------------+---------------------------------------+---------------------------------------+
| Parameter | Type | Description |
+=======================================+=======================================+=======================================+
| eip_id | String | Specifies the EIP ID. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| eip_address | String | Specifies the specific IP address. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| ip_version | Integer | Specifies the IP version. **4** |
| | | indicates IPv4, and **6** indicates |
| | | IPv6. |
| | | |
| | | IPv6 is unsupported. The value cannot |
| | | be **6**. |
+---------------------------------------+---------------------------------------+---------------------------------------+
.. table:: **Table 12** PublicIpInfo
+---------------------------------------+---------------------------------------+---------------------------------------+
| Parameter | Type | Description |
+=======================================+=======================================+=======================================+
| publicip_id | String | Specifies the EIP ID. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| publicip_address | String | Specifies the IP address. |
+---------------------------------------+---------------------------------------+---------------------------------------+
| ip_version | Integer | Specifies the IP version. The value |
| | | can be **4** (IPv4) or **6** (IPv6). |
| | | |
| | | IPv6 is unsupported. The value cannot |
| | | be **6**. |
+---------------------------------------+---------------------------------------+---------------------------------------+
.. table:: **Table 13** BandwidthRef
========= ====== ==================================
Parameter Type Description
========= ====== ==================================
id String Specifies the shared bandwidth ID.
========= ====== ==================================
Example Requests
^^^^^^^^^^^^^^^^
.. code:: screen
PUT
https://{elb_endpoint}/v3/{project_id}/elb/loadbalancers/{loadbalancer_id}
{
"loadbalancer" : {
"admin_state_up" : true,
"description" : "loadbalancer",
"name" : "loadbalancer-update"
}
}
Example Responses
^^^^^^^^^^^^^^^^^
**Status code: 200**
Successful request.
.. code:: screen
{
"request_id" : "010dad1e-32a3-4405-ab83-62a1fc5f8722",
"loadbalancer" : {
"id" : "2e073bf8-edfe-4e51-a699-d915b0b8af89",
"project_id" : "b2782e6708b8475c993e6064bc456bf8",
"name" : "loadbalancer-update",
"description" : "loadbalancer",
"admin_state_up" : true,
"provisioning_status" : "ACTIVE",
"operating_status" : "ONLINE",
"listeners" : [ {
"id" : "41937176-bf64-4b58-8e0d-9ff2d0d32c54"
}, {
"id" : "abc6ac93-ad0e-4765-bd5a-eec632efde56"
}, {
"id" : "b9d8ba97-6d60-467d-838d-f3550b54c22a"
}, {
"id" : "fd797ebd-263d-4b18-96e9-e9188d36c69e"
} ],
"pools" : [ {
"id" : "0aabcaa8-c35c-4ddc-a60c-9032d0ac0b80"
}, {
"id" : "165d9092-396e-4a8d-b398-067496a447d2"
} ],
"tags" : [ ],
"provider" : "vlb",
"created_at" : "2019-04-20T03:10:37Z",
"updated_at" : "2019-05-24T02:11:58Z",
"vpc_id" : "2037c5bb-e04b-4de2-9300-9051af18e417",
"enterprise_project_id" : "0",
"availability_zone_list" : [ "AZ1", "AZ2", "dc3" ],
"eips" : [ ],
"guaranteed" : true
}
}
Status Codes
^^^^^^^^^^^^
=========== ===================
Status Code Description
=========== ===================
200 Successful request.
=========== ===================
Error Codes
^^^^^^^^^^^
See `Error Codes <errorcode.html>`__.
**Parent topic:** `Load Balancer <topic_300000003.html>`__