Creating a VPC Endpoint

Function

This API is used to create a VPC endpoint for accessing a VPC endpoint service.

Note

This API is asynchronous. If it is successfully invoked, status code 200 is returned, indicating that the request has been successfully delivered. It takes 1 to 2 minutes to create a VPC endpoint. You can view the creation result by performing operations in Querying Details About a VPC Endpoint Service.

URI

POST /v1/{project_id}/vpc-endpoints

Table 1 describes the parameter in this URI.

Table 1 URI parameter

Parameter

Mandatory

Description

project_id

Yes

Specifies the project ID. For details about how to obtain the project ID, see Obtaining a Project ID.

Request

  • Parameter description

    Table 2 Request parameters

    Parameter

    Mandatory

    Type

    Description

    subnet_id

    No

    Note

    This parameter is mandatory to create an interface VPC endpoint.

    String

    Specifies the ID of the subnet in the VPC specified by vpc_id. The ID is in UUID format

    For details, see response field id in Querying Subnet Details in the Virtual Private Cloud API Reference.

    Note

    • This parameter is mandatory only when you create a VPC endpoint for connecting to an interface VPC endpoint service.

    • The CIDR block of the VPC subnet cannot overlap with 198.19.128.0/17.

    • The destination address of the custom route in the VPC route table cannot overlap with 198.19.128.0/17.

    endpoint_service_id

    Yes

    String

    Specifies the ID of the VPC endpoint service.

    You can obtain the ID of the VPC endpoint service to be connected by performing operations in Querying Basic Information About a VPC Endpoint Service.

    vpc_id

    Yes

    String

    Specifies the ID of the VPC where the VPC endpoint is to be created.

    For details, see response field id in Querying VPC Details in the Virtual Private Cloud API Reference.

    enable_dns

    No

    Boolean

    Specifies whether to create a private domain name.

    • true: A private domain name is created.

    • false: A private domain name is not created.

    The default value is false.

    Note

    When a VPC endpoint for connecting to a gateway VPC endpoint service is created, no private domain name is created no matter enable_dns is set to true or false.

    tags

    No

    Array of objects

    Lists the resource tags. For details, see Table 3.

    A maximum of 20 tags can be added to each VPC endpoint.

    routetables

    No

    Array of strings

    Lists the IDs of route tables.

    If you do not specify this parameter, the route table ID of the VPC is returned.

    Note

    This parameter is available only when you create a VPC endpoint for connecting to a gateway VPC endpoint service.

    port_ip

    No

    Note

    This parameter is mandatory only when you create a VPC endpoint for connecting to an interface VPC endpoint service.

    String

    Specifies the IP address for accessing the associated VPC endpoint service.

    You can specify IP addresses for accessing the associated VPC endpoint service when creating a VPC endpoint. Only IPv4 addresses are supported.

    whitelist

    No

    Array of strings

    Specifies the whitelist for controlling access to the VPC endpoint.

    IPv4 addresses or CIDR blocks can be specified to control access when you create a VPC endpoint.

    Note

    This parameter is available only when you create a VPC endpoint for connecting to an interface VPC endpoint service.

    enable_whitelist

    No

    Boolean

    Specifies whether access control is enabled.

    • true: Access control is enabled.

    • false: Access control is disabled.

    The default value is false.

    Note

    This parameter is available only when you create a VPC endpoint for connecting to an interface VPC endpoint service.

    specification_name

    No

    String

    Specifies the name of the VPC endpoint specifications.

    description

    No

    String

    Specifies the description of the VPC endpoint. The description can contain a maximum of 128 characters and cannot contain left angle brackets (<) or right angle brackets (>).

    Table 3 Tags parameters

    Parameter

    Mandatory

    Type

    Description

    key

    No

    String

    Specifies the tag key. A tag key contains a maximum of 36 Unicode characters. key cannot be left blank. It can contain only digits, letters, hyphens (-), underscores (_), and at signs (@).

    value

    No

    String

    Specifies the tag value. A tag value contains a maximum of 43 Unicode characters and can be left blank. It can contain only digits, letters, hyphens (-), underscores (_), and at signs (@).

  • Example request

    POST https://{endpoint}/v1/{project_id}/vpc-endpoints
    
    {
    "subnet_id": "68bfbcc1-dff2-47e4-a9d4-332b9bc1b8de",
    "vpc_id": "84758cf5-9c62-43ae-a778-3dbd8370c0a4",
    "tags":[
                {
                    "key":"test1",
                    "value":"test1"
                }
           ],
    "endpoint_service_id":"e0c748b7-d982-47df-ba06-b9c8c7650c1a",
    "enable_dns":true
    }
    

Response

  • Parameter description

    Table 4 Response parameters

    Parameter

    Type

    Description

    id

    String

    Specifies the unique ID of the VPC endpoint.

    service_type

    String

    Specifies the type of the VPC endpoint service that is associated with the VPC endpoint.

    • Gateway: VPC endpoint services of this type are configured by operations people. You can use them directly without the need to create one by yourselves.

    • Interface: VPC endpoint services of this type include cloud services configured by operations people and private services created by yourselves. You cannot configure these cloud services, but can use them.

    You can view those VPC endpoint services that are configured by operations people and are visible and accessible to all users. For detailed steps, see Querying Public VPC Endpoint Services. Perform the operations in Creating a VPC Endpoint Service to create an interface VPC endpoint service.

    status

    String

    Specifies the connection status of the VPC endpoint.

    • pendingAcceptance: The VPC endpoint is to be accepted.

    • creating: The VPC endpoint is being created.

    • accepted: The VPC endpoint has been accepted.

    • rejected: The VPC endpoint has been rejected.

    • failed: The VPC endpoint failed to be created.

    active_status

    Array of strings

    Specifies the domain status.

    • arrear_frozen: frozen due to arrears

    • verify_frozen: frozen due to lack of real-name authentication

    • police_frozen: frozen for legal management

    • illegal_frozen: frozen due to abuse

    • partner_frozen: frozen for partnership

    • active: The domain is normal.

    endpoint_service_name

    String

    Specifies the name of the VPC endpoint service.

    marker_id

    Integer

    Specifies the packet ID of the VPC endpoint.

    endpoint_service_id

    String

    Specifies the ID of the VPC endpoint service.

    enable_dns

    Boolean

    Specifies whether to create a private domain name.

    • true: A private domain name is created.

    • false: A private domain name is not created.

    Note

    When a VPC endpoint for connecting to a gateway VPC endpoint service is created, no private domain name is created no matter enable_dns is set to true or false.

    dns_names

    Array of strings

    Specifies the domain name for accessing the associated VPC endpoint service.

    Note

    • This parameter is available only when you create a VPC endpoint for connecting to an interface VPC endpoint service and enable_dns is set to true.

    • The API for creating a VPC endpoint is asynchronous. If it is successfully invoked, status code 200 is returned, indicating that the request has been successfully delivered. It takes 1 to 2 minutes to create a VPC endpoint. You can view the creation result by performing operations in Querying Details About a VPC Endpoint Service.

    subnet_id

    String

    Specifies the ID of the subnet in the VPC specified by vpc_id. The ID is in UUID format.

    Note

    This parameter is available only when you create a VPC endpoint for connecting to an interface VPC endpoint service.

    vpc_id

    String

    Specifies the ID of the VPC where the VPC endpoint is to be created.

    created_at

    String

    Specifies the creation time of the VPC endpoint.

    The UTC time format is used: YYYY-MM-DDTHH:MM:SSZ.

    updated_at

    String

    Specifies the update time of the VPC endpoint.

    The UTC time format is used: YYYY-MM-DDTHH:MM:SSZ.

    project_id

    String

    Specifies the project ID. For details about how to obtain the project ID, see Obtaining a Project ID.

    tags

    Array of objects

    Lists the resource tags. For details, see Table 5.

    whitelist

    Array of strings

    Specifies the whitelist for controlling access to the VPC endpoint.

    If you do not specify this parameter, an empty whitelist is returned.

    Note

    This parameter is available only when you create a VPC endpoint for connecting to an interface VPC endpoint service.

    enable_whitelist

    Boolean

    Specifies whether access control is enabled.

    • true: Access control is enabled.

    • false: Access control is disabled.

    If you do not specify this parameter, the whitelist is not enabled.

    Note

    This parameter is available only when you create a VPC endpoint for connecting to an interface VPC endpoint service.

    routetables

    Array of strings

    Lists the IDs of route tables.

    If you do not specify this parameter, the route table ID of the VPC is returned.

    Note

    This parameter is available only when you create a VPC endpoint for connecting to a gateway VPC endpoint service.

    specification_name

    String

    Specifies the name of the VPC endpoint specifications.

    enable_status

    String

    Specifies whether to enable the endpoint.

    • enable: The endpoint will be enabled.

    • disable: The endpoint will be disabled.

    endpoint_pool_id

    String

    (To be discarded) Specifies the ID of the cluster associated with the VPC endpoint.

    description

    String

    Specifies the description of the VPC endpoint.

    Table 5 Tags parameters

    Parameter

    Type

    Description

    key

    String

    Specifies the tag key. A tag key contains a maximum of 36 Unicode characters. key cannot be left blank. It can contain only digits, letters, hyphens (-), underscores (_), and at signs (@).

    value

    String

    Specifies the tag value. A tag value contains a maximum of 43 Unicode characters and can be left blank. It can contain only digits, letters, hyphens (-), underscores (_), and at signs (@).

  • Example response

    {
        "id": "4189d3c2-8882-4871-a3c2-d380272eed83",
        "status": "creating",
        "service_type": "interface",
        "marker_id": 322312312312,
        "active_status":[
                        "active"
        ],
        "vpc_id": "4189d3c2-8882-4871-a3c2-d380272eed83",
        "enable_dns": false,
        "endpoint_service_name": "test123",
        "endpoint_service_id": "test123",
        "project_id": "6e9dfd51d1124e8d8498dce894923a0d",
        "whitelist": [
            "127.0.0.1"
        ],
        "enable_whitelist": true,
        "specification_name":"default",
        "enable_status":"enable",
        "endpoint_pool_id":"501f4a3b-6f96-4309-97d1-e291b8ca5b96",
        "description":"demo",
        "created_at": "2018-01-30T07:42:01Z",
        "updated_at": "2018-01-30T07:42:01Z",
        "tags": [
            {
                "key": "test1",
                "value": "test1"
            }
        ]
    }
    

Status Codes

See Status Codes.