# Updating a Bandwidth

#### Function

This API is used to update information about a bandwidth.

#### URI

PUT /v1/{project_id}/bandwidths/{bandwidth_id}

Table 1 describes the parameters.

Table 1 Parameter description
Name | Mandatory | Description
--- | --- | ---
project_id | Yes | Specifies the project ID.
bandwidth_id | Yes | Specifies the bandwidth ID, which uniquely identifies the bandwidth.

#### Request Message

- Request parameter

  Table 2 Request parameter
  Name | Mandatory | Type | Description
  --- | --- | --- | ---
  bandwidth | Yes | bandwidth object | Specifies the bandwidth objects. For details, see Table 3.

  Table 3 Description of the bandwidth field
  Name | Mandatory | Type | Description
  --- | --- | --- | ---

  name

  No

  String

  - Specifies the bandwidth name.
  - The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.). If the value is left blank, the name of the bandwidth is not changed.
  - Either parameter name or size must be specified.

  size

  No

  Integer

  - Specifies the bandwidth size in Mbit/s.
  - The value ranges from 1 Mbit/s to 1000 Mbit/s by default. (The specific range may vary depending on the configuration in each region. You can see the available bandwidth range on the management console.) If the parameter is not included, the bandwidth size is not changed.
  - Either parameter name or size must be specified.
  - If a decimal fraction (for example 10.2) or a character string (for example "10") is specified, the specified value will be automatically converted to an integer.
  - The minimum increment for bandwidth adjustment varies depending on the bandwidth range. The details are as follows:
    - The minimum increment is 1 Mbit/s if the allowed bandwidth ranges from 0 Mbit/s to 300 Mbit/s (with 300 Mbit/s included).
    - The minimum increment is 50 Mbit/s if the allowed bandwidth ranges from 300 Mbit/s to 1000 Mbit/s (with 1000 Mbit/s included).
    - The minimum increment is 500 Mbit/s if the allowed bandwidth is greater than 1000 Mbit/s.

- Example request

      PUT https://{Endpoint}/v1/{project_id}/bandwidths/{bandwidth_id}

      {
          "bandwidth":
              {"name": "bandwidth123",
               "size": 10
              }
      }

#### Response Message

- Response parameter

  Table 4 Response parameter
  Name | Type | Description
  --- | --- | ---
  bandwidth | bandwidth object | Specifies the bandwidth objects. For details, see Table 5.

  Table 5 Description of the bandwidth field
  Name | Type | Description
  --- | --- | ---

  name

  String

  - Specifies the bandwidth name.
  - The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.).

  size

  Integer

  - Specifies the bandwidth size in Mbit/s.
  - The value ranges from 1 Mbit/s to 1000 Mbit/s by default. (The specific range may vary depending on the configuration in each region. You can see the bandwidth range of each region on the management console.)

  id | String | Specifies the bandwidth ID, which uniquely identifies the bandwidth.

  share_type

  String

  - Possible values are as follows:
    - PER: Dedicated bandwidth
    - WHOLE: Shared bandwidth

  publicip_info

  Array of publicip_info objects

  - Specifies the information about the EIP that uses the bandwidth. For details, see Table 6.

  tenant_id | String | Specifies the project ID.

  bandwidth_type

  String

  - Specifies the bandwidth type.
  - The value can be bgp or share.
    - share: Shared bandwidth
    - bgp: Dynamic BGP

  charge_mode | String | If the value is traffic, the bandwidth is billed by traffic.
  billing_info | String | Specifies the bill information. If billing_info is specified, the bandwidth is in yearly/monthly billing mode.

  enterprise_project_id

  String

  - Specifies the enterprise project ID. The value is 0 or a string that contains a maximum of 36 characters in UUID format with hyphens (-). Value 0 indicates the default enterprise project. To obtain the bandwidth bound to all enterprise projects of the user, set all_granted_eps.
  - When creating a bandwidth, associate the enterprise project ID with the bandwidth.
  NOTE:

  This parameter is unsupported. Do not use it.

  status

  String

  - Specifies the bandwidth status.
  - Possible values are as follows:
    - FREEZED (Frozen)
    - NORMAL (Normal)

  created_at

  String

  - Specifies the time (UTC) when the bandwidth is created.
  - Format: yyyy-MM-ddTHH:mm:ss

  updated_at

  String

  - Specifies the time (UTC) when the bandwidth is updated.
  - Format: yyyy-MM-ddTHH:mm:ss

  Table 6 publicip_info objects
  Name | Type | Description
  --- | --- | ---
  publicip_id | String | Specifies the ID of the EIP that uses the bandwidth.
  publicip_address | String | Specifies the obtained EIP if only IPv4 EIPs are available.

  ip_version

  Integer

  - Specifies the IP address version.
  - Possible values are as follows:
    - 4: IPv4
    - 6: IPv6 (IPv6 is not supported currently.)

  publicip_type

  String

  - Specifies the EIP type.
  - The value can be 5_bgp (Dynamic BGP), 5_mailbgp (Mail BGP), or 5_gray (Dedicated load balancer, shared load balancer).
  - Constraints:
    - The configured value must be supported by the system.
    - publicip_id is an IPv4 port. If publicip_type is not specified, the default value is 5_bgp.

- Example response

      {
          "bandwidth": {
              "id": "3fa5b383-5a73-4dcb-a314-c6128546d855",
              "name": "bandwidth123",
              "size": 10,
              "share_type": "PER",
              "publicip_info": [
                  {
                      "publicip_id": "6285e7be-fd9f-497c-bc2d-dd0bdea6efe0",
                      "publicip_address": "161.xx.xx.9",
                      "publicip_type": "5_bgp",
                      "ip_version": 4
                  }
              ],
              "tenant_id": "8b7e35ad379141fc9df3e178bd64f55c",
              "bandwidth_type": "bgp",
              "charge_mode": "traffic",
              "billing_info": "",
              "status": "NORMAL"
          }
      }

#### Status Code

See Status Codes.

#### Error Code

See Error Codes.

Parent topic: Bandwidth