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 `__. **Parent topic:** `Load Balancer `__