# Adding an EIP to a Shared Bandwidth

#### Function

This API is used to add an EIP to a shared bandwidth.

#### URI

POST /v2.0/{project_id}/bandwidths/{bandwidth_id}/insert

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
  --- | --- | --- | ---

  publicip_info

  Yes

  Array of publicip_info objects

  - Specifies information about the EIP to be added to the shared bandwidth. For details, see Table 4.
  - The bandwidth, whose type is WHOLE, can be used by multiple EIPs. The number of EIPs varies depending on the tenant quota. By default, a shared bandwidth can be used by up to 20 EIPs.

  Table 4 publicip_info object
  Name | Mandatory | Type | Description
  --- | --- | --- | ---
  publicip_id | Yes | String | Specifies the ID of the EIP that uses the bandwidth.

  publicip_type

  No

  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 request

      POST https://{Endpoint}/v2.0/{project_id}/bandwidths/{bandwidth_id}/insert

      {
        "bandwidth": {
          "publicip_info": [
            {
              "publicip_id": "29b114d1-2d41-4741-a1f0-b6f80aabceff",
              "publicip_type": "5_bgp",
            }
          ]
        }
      }

#### Response Message

- Response parameter

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

  Table 6 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.
  - The value ranges from 5 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.)

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

  share_type

  String

  - Specifies whether the bandwidth is shared or dedicated.
  - The value can be PER or WHOLE.
    - WHOLE: Shared bandwidth
    - PER: Dedicated bandwidth

  publicip_info

  Array of publicip_info objects

  - Specifies information about the EIP that uses the bandwidth. For details, see Table 7.
  - The bandwidth, whose type is WHOLE, can be used by multiple EIPs. The bandwidth, whose type is PER, can be used by only one EIP.

  tenant_id | String | Specifies the project ID.

  bandwidth_type

  String

  - Specifies the bandwidth type. The default value for the shared bandwidth is share.

  charge_mode

  String

  - Specifies that the bandwidth is billed by bandwidth.
  - The value can be 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.
  - When creating a shared bandwidth, associate the enterprise project ID with the shared 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)

  Table 7 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": "WHOLE",
              "publicip_info": [
                  {
                      "publicip_id": "1d184b2c-4ec9-49b5-a3f9-27600a76ba3f",
                      "publicip_address": "99.xx.xx.82",
                      "publicip_type": "5_bgp",
                      "ip_version": 4
                  }
              ],
              "tenant_id": "8b7e35ad379141fc9df3e178bd64f55c",
              "charge_mode": "traffic",
              "billing_info": "",
              "bandwidth_type": "share",
              "status": "NORMAL"
          }
      }

#### Status Code

See Status Codes.

#### Error Code

See Error Codes.

Parent topic: Bandwidth (V2.0)