VPCs v4.176.0
VPCs List
Display all VPCs on your account.
Authorizations
| personalAccessToken | |
| oauth |
Query Parameters
| page |
The page of a collection to return. |
| page_size |
The number of items to return per page. |
Request Samples
curl https://api.linode.com/v4/vpcs \
-H "Authorization: Bearer $TOKEN"
linode-cli vpcs list
Response Samples
{
"data": [
{
"created": "2023-07-11T00:00:00",
"description": "A description of my VPC.",
"id": 123,
"label": "cool-vpc",
"region": "us-east",
"subnets": [
{
"created": "2023-07-11T00:00:00",
"id": 456,
"ipv4": "10.0.1.0/24",
"label": "cool-vpc-subnet",
"linodes": [
{
"id": 111,
"interfaces": [
{
"active": true,
"id": 421
}
]
}
],
"updated": "2023-09-11T00:00:00"
}
],
"updated": "2023-09-11T00:00:00"
}
],
"page": 1,
"pages": 1,
"results": 1
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
data | array
of objects
| ||||||||||||||||||||||||||||||||||
page | integerThe current page. | ||||||||||||||||||||||||||||||||||
pages | integerThe total number of pages. | ||||||||||||||||||||||||||||||||||
results | integerThe total number of results. |
errors | array
of objects
|
VPC Create
Create a new VPC and optionally associated VPC Subnets.
- Users must have the
add_vpcgrant to access this command. - A successful request triggers a
vpc_createevent andsubnet_createevents for any created VPC Subnets.
Once a VPC is created, it can be attached to a Linode by assigning a VPC Subnet to one of the Linode’s Configuration Profile Interfaces. This step can be accomplished with the following commands:
- Linode Create ( POST /linode/instances)
- Configuration Profile Create ( POST /linode/instances/{linodeId}/configs)
- Configuration Profile Update ( PUT /linode/instances/{linodeId}/configs/{configId})
- Configuration Profile Interface Add ( POST /linode/instances/{linodeId}/configs/{configId}/interfaces)
Authorizations
| personalAccessToken | |
| oauth | vpc:read_write |
Request Samples
curl https://api.linode.com/v4/vpcs \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-X POST -d '{
"description": "A description of my VPC.",
"label": "cool-vpc",
"region": "us-east",
"subnets": [
{
"label": "cool-vpc-subnet",
"ipv4": "10.0.1.0/24"
}
]
}'
linode-cli vpcs create \
--description "A description of my VPC." \
--label cool-vpc \
--region us-east \
--subnets.label cool-vpc-subnet \
--subnets.ipv4 10.0.1.0/24
Request Body Schema
description | string
<=
255
charactersA written description to help distinguish the VPC. | ||||
label Required | string
1..64
charactersThe VPC’s label, for display purposes only.
| ||||
region Required | stringThe Region for the VPC. | ||||
subnets | array
of objectsA list of subnets associated with the VPC.
|
Response Samples
{
"created": "2023-07-11T00:00:00",
"description": "A description of my VPC.",
"id": 123,
"label": "cool-vpc",
"region": "us-east",
"subnets": [
{
"created": "2023-07-11T00:00:00",
"id": 456,
"ipv4": "10.0.1.0/24",
"label": "cool-vpc-subnet",
"linodes": [
{
"id": 111,
"interfaces": [
{
"active": true,
"id": 421
}
]
}
],
"updated": "2023-09-11T00:00:00"
}
],
"updated": "2023-09-11T00:00:00"
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
created | string<date-time>The date-time of VPC creation. | ||||||||||||||||||||
description | string
<=
255
charactersA written description to help distinguish the VPC. | ||||||||||||||||||||
id | integerThe unique ID of the VPC. | ||||||||||||||||||||
label | string
1..64
charactersThe VPC’s label, for display purposes only.
| ||||||||||||||||||||
region | stringThe Region for the VPC. | ||||||||||||||||||||
subnets | array
of objectsA list of subnets associated with the VPC.
| ||||||||||||||||||||
updated Nullable | string<date-time>The date-time of the most recent VPC update. |
errors | array
of objects
|
VPC IP Addresses List
Returns a paginated list of all VPC IP addresses and address ranges on your account.
Note: If a Linode has several configuration profiles that include a VPC interface, address information for all of them is listed in the response. Since VPCs can use the same address space, you may see duplicate IP addresses.
Authorizations
| personalAccessToken | |
| oauth | ips:read_only |
Query Parameters
| page |
The page of a collection to return. |
| page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/networking/vpcs/ips
linode-cli vpcs ip list
Response Samples
{
"data": [
{
"active": true,
"address": "192.0.2.141",
"address_range": null,
"config_id": 4567,
"gateway": "192.0.2.1",
"interface_id": 2435,
"linode_id": 123,
"nat_1_1": "192.168.0.42",
"page": 1,
"pages": 1,
"prefix": 24,
"region": "us-east",
"results": 1,
"subnet_id": 101,
"subnet_mask": "255.255.255.0",
"vpc_id": 7654
}
],
"page": 1,
"pages": 1,
"results": 1
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
data | array
| ||||||||||||||||||||||||||||||||
page | integerThe current page. | ||||||||||||||||||||||||||||||||
pages | integerThe total number of pages. | ||||||||||||||||||||||||||||||||
results | integerThe total number of results. |
errors | array
of objects
|
VPC Delete
Delete a single VPC and all of its Subnets.
- The User accessing this command must have
read_writegrants to the VPC. - A successful request triggers a
vpc_deleteevent andsubnet_deleteevents for each deleted VPC Subnet. - All of the VPC’s Subnets must be eligible for deletion. Accordingly, all Configuration Profile Interfaces that each Subnet is assigned to must first be deleted. If those Interfaces are active, the associated Linodes must first be shut down before they can be removed. If any Subnet cannot be deleted, then neither the VPC nor any of its Subnets are deleted.
Authorizations
| personalAccessToken | |
| oauth | vpc:read_write |
Path Parameters
| vpcId | integerRequiredThe |
Request Samples
curl https://api.linode.com/v4/vpcs/$vpcId \
-H "Authorization: Bearer $TOKEN" \
-X DELETE
linode-cli vpcs delete $vpcId
Response Samples
{}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
errors | array
of objects
|
VPC View
Get information about a single VPC.
Authorizations
| personalAccessToken | |
| oauth |
Path Parameters
| vpcId | integerRequiredThe |
Request Samples
curl https://api.linode.com/v4/vpcs/$vpcId \
-H "Authorization: Bearer $TOKEN"
linode-cli vpcs view $vpcId
Response Samples
{
"created": "2023-07-11T00:00:00",
"description": "A description of my VPC.",
"id": 123,
"label": "cool-vpc",
"region": "us-east",
"subnets": [
{
"created": "2023-07-11T00:00:00",
"id": 456,
"ipv4": "10.0.1.0/24",
"label": "cool-vpc-subnet",
"linodes": [
{
"id": 111,
"interfaces": [
{
"active": true,
"id": 421
}
]
}
],
"updated": "2023-09-11T00:00:00"
}
],
"updated": "2023-09-11T00:00:00"
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
created | string<date-time>The date-time of VPC creation. | ||||||||||||||||||||
description | string
<=
255
charactersA written description to help distinguish the VPC. | ||||||||||||||||||||
id | integerThe unique ID of the VPC. | ||||||||||||||||||||
label | string
1..64
charactersThe VPC’s label, for display purposes only.
| ||||||||||||||||||||
region | stringThe Region for the VPC. | ||||||||||||||||||||
subnets | array
of objectsA list of subnets associated with the VPC.
| ||||||||||||||||||||
updated Nullable | string<date-time>The date-time of the most recent VPC update. |
errors | array
of objects
|
VPC Update
Update an existing VPC.
- The User accessing this command must have
read_writegrants to the VPC. - A successful request triggers a
vpc_updateevent.
To update a VPC’s Subnet, use the VPC Subnet Update command.
Authorizations
| personalAccessToken | |
| oauth | vpc:read_write |
Path Parameters
| vpcId | integerRequiredThe |
Request Samples
curl https://api.linode.com/v4/vpcs/$vpcId \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-X PUT -d '{
"description": "A description of my VPC.",
"label": "cool-vpc"
}'
linode-cli vpcs update $vpcId \
--description "A description of my VPC."
--label cool-vpc
Request Body Schema
description | string
<=
255
charactersA written description to help distinguish the VPC. |
label | string
1..64
charactersThe VPC’s label, for display purposes only.
|
Response Samples
{
"created": "2023-07-11T00:00:00",
"description": "A description of my VPC.",
"id": 123,
"label": "cool-vpc",
"region": "us-east",
"subnets": [
{
"created": "2023-07-11T00:00:00",
"id": 456,
"ipv4": "10.0.1.0/24",
"label": "cool-vpc-subnet",
"linodes": [
{
"id": 111,
"interfaces": [
{
"active": true,
"id": 421
}
]
}
],
"updated": "2023-09-11T00:00:00"
}
],
"updated": "2023-09-11T00:00:00"
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
created | string<date-time>The date-time of VPC creation. | ||||||||||||||||||||
description | string
<=
255
charactersA written description to help distinguish the VPC. | ||||||||||||||||||||
id | integerThe unique ID of the VPC. | ||||||||||||||||||||
label | string
1..64
charactersThe VPC’s label, for display purposes only.
| ||||||||||||||||||||
region | stringThe Region for the VPC. | ||||||||||||||||||||
subnets | array
of objectsA list of subnets associated with the VPC.
| ||||||||||||||||||||
updated Nullable | string<date-time>The date-time of the most recent VPC update. |
errors | array
of objects
|
VPC IP Addresses View
Returns a paginated list of IP addresses for a single VPC.
Authorizations
| personalAccessToken | |
| oauth | ips:read_only |
Path Parameters
| vpcId | integerRequiredThe |
Query Parameters
| page |
The page of a collection to return. |
| page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/vpcs/123/ips
linode-cli vpcs ip-list 123
Response Samples
{
"active": true,
"address": "192.0.2.141",
"address_range": null,
"config_id": 4567,
"gateway": "192.0.2.1",
"interface_id": 2435,
"linode_id": 123,
"nat_1_1": "192.168.0.42",
"page": 1,
"pages": 1,
"prefix": 24,
"region": "us-east",
"results": 1,
"subnet_id": 101,
"subnet_mask": "255.255.255.0",
"vpc_id": 7654
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
active | booleanReturns |
address Nullable | string<ip>An IPv4 address configured for this VPC interface. These follow the RFC 1918 private address format. Displayed as |
address_range Nullable | stringA range of IPv4 addresses configured for this VPC interface. Displayed as |
config_id | integerThe globally general entity identifier for the Linode configuration profile where the VPC is included. |
gateway Nullable | string<ip>The default gateway for the VPC subnet that the IP or IP range belongs to. |
interface_id | integerThe globally general API entity identifier for the Linode interface. |
linode_id | integerThe identifier for the Linode the VPC interface currently belongs to. |
nat_1_1 | string<ip>The public IP address used for NAT 1:1 with the VPC. This is empty if NAT 1:1 isn’t used. |
page | integerThe current page. |
pages | integerThe total number of pages. |
prefix Nullable | integerThe number of bits set in the |
region | stringThe region of the VPC. |
results | integerThe total number of results. |
subnet_id | integerThe |
subnet_mask | string<ip>The mask that separates host bits from network bits for the |
vpc_id | integerThe unique globally general API entity identifier for the VPC. |
errors | array
of objects
|
VPC Subnets List
Get information about all VPC Subnets associated with a VPC.
Authorizations
| personalAccessToken | |
| oauth |
Path Parameters
| vpcId | integerRequiredThe |
Query Parameters
| page |
The page of a collection to return. |
| page_size |
The number of items to return per page. |
Request Samples
curl https://api.linode.com/v4/vpcs/$vpcId/subnets \
-H "Authorization: Bearer $TOKEN"
linode-cli vpcs subnets-list $vpcId
Response Samples
{
"data": [
{
"created": "2023-07-11T00:00:00",
"id": 456,
"ipv4": "10.0.1.0/24",
"label": "cool-vpc-subnet",
"linodes": [
{
"id": 111,
"interfaces": [
{
"active": true,
"id": 421
}
]
}
],
"updated": "2023-09-11T00:00:00"
}
],
"page": 1,
"pages": 1,
"results": 1
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
data | array
of objects
| ||||||||||||||||||||
page | integerThe current page. | ||||||||||||||||||||
pages | integerThe total number of pages. | ||||||||||||||||||||
results | integerThe total number of results. |
errors | array
of objects
|
VPC Subnet Create
Create a VPC Subnet.
- The User accessing this command must have
read_writegrants to the VPC. - A successful request triggers a
subnet_createevent.
Once a VPC Subnet is created, it can be attached to a Linode by assigning the Subnet to one of the Linode’s Configuration Profile Interfaces. This step can be accomplished with the following commands:
- Linode Create ( POST /linode/instances)
- Configuration Profile Create ( POST /linode/instances/{linodeId}/configs)
- Configuration Profile Update ( PUT /linode/instances/{linodeId}/configs/{configId})
- Configuration Profile Interface Add ( POST /linode/instances/{linodeId}/configs/{configId}/interfaces)
Authorizations
| personalAccessToken | |
| oauth | vpc:read_write |
Path Parameters
| vpcId | integerRequiredThe |
Request Samples
curl https://api.linode.com/v4/vpcs/$vpcId/subnets \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-X POST -d '{
"label": "cool-vpc-subnet",
"ipv4": "10.0.1.0/24",
}'
linode-cli vpcs subnet-create $vpcId \
--label cool-vpc-subnet \
--ipv4 10.0.1.0/24
Request Body Schema
ipv4 Required | string<ip>IPv4 range in CIDR canonical form.
|
label Required | string
1..64
charactersThe VPC Subnet’s label, for display purposes only.
|
Response Samples
{
"created": "2023-07-11T00:00:00",
"id": 456,
"ipv4": "10.0.1.0/24",
"label": "cool-vpc-subnet",
"linodes": [
{
"id": 111,
"interfaces": [
{
"active": true,
"id": 421
}
]
}
],
"updated": "2023-09-11T00:00:00"
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
created | string<date-time>The date-time of VPC Subnet creation. | ||||||||
id | integerThe unique ID of the VPC Subnet. | ||||||||
ipv4 | string<ip>IPv4 range in CIDR canonical form.
| ||||||||
label | string
1..64
charactersThe VPC Subnet’s label, for display purposes only.
| ||||||||
linodes | array
of objectsAn array of Linode IDs assigned to the VPC Subnet. A Linode is assigned to a VPC Subnet if it has a Configuration Profile with a
| ||||||||
updated Nullable | string<date-time>The date-time of the most recent VPC Subnet update. |
errors | array
of objects
|
VPC Subnet Delete
Delete a single VPC Subnet.
The user accessing this command must have read_write grants to the VPC. A successful request triggers a subnet_delete event.
Note: You need to delete all the Configuration Profile Interfaces that this Subnet is assigned to before you can delete it. If those Interfaces are active, the associated Linode needs to be shut down before they can be removed.
Authorizations
| personalAccessToken | |
| oauth | vpc:read_write |
Path Parameters
| vpcId | integerRequiredThe |
| vpcSubnetId | integerRequiredThe |
Request Samples
curl https://api.linode.com/v4/vpcs/$vpcId/subnets/$vpcSubnetId \
-H "Authorization: Bearer $TOKEN" \
-X DELETE
linode-cli vpcs subnet-delete $vpcId $vpcSubnetId
Response Samples
{}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
errors | array
of objects
|
VPC Subnet View
Get information about a single VPC Subnet.
Authorizations
| personalAccessToken | |
| oauth |
Path Parameters
| vpcId | integerRequiredThe |
| vpcSubnetId | integerRequiredThe |
Request Samples
curl https://api.linode.com/v4/vpcs/$vpcId/subnets/$vpcSubnetId \
-H "Authorization: Bearer $TOKEN"
linode-cli vpcs subnet-view $vpcId #vpcSubnetId
Response Samples
{
"created": "2023-07-11T00:00:00",
"id": 456,
"ipv4": "10.0.1.0/24",
"label": "cool-vpc-subnet",
"linodes": [
{
"id": 111,
"interfaces": [
{
"active": true,
"id": 421
}
]
}
],
"updated": "2023-09-11T00:00:00"
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
created | string<date-time>The date-time of VPC Subnet creation. | ||||||||
id | integerThe unique ID of the VPC Subnet. | ||||||||
ipv4 | string<ip>IPv4 range in CIDR canonical form.
| ||||||||
label | string
1..64
charactersThe VPC Subnet’s label, for display purposes only.
| ||||||||
linodes | array
of objectsAn array of Linode IDs assigned to the VPC Subnet. A Linode is assigned to a VPC Subnet if it has a Configuration Profile with a
| ||||||||
updated Nullable | string<date-time>The date-time of the most recent VPC Subnet update. |
errors | array
of objects
|
VPC Subnet Update
Update a VPC Subnet.
- The User accessing this command must have
read_writegrants to the VPC. - A successful request triggers a
subnet_updateevent.
Authorizations
| personalAccessToken | |
| oauth | vpc:read_write |
Path Parameters
| vpcId | integerRequiredThe |
| vpcSubnetId | integerRequiredThe |
Request Samples
curl https://api.linode.com/v4/vpcs/$vpcId/subnets/$vpcSubnetId \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-X PUT -d '{
"label": "cool-vpc-subnet"
}'
linode-cli vpcs subnet-update $vpcId \
--label cool-vpc-subnet
Request Body Schema
label | string
1..64
charactersThe VPC Subnet’s label, for display purposes only.
|
Response Samples
{
"created": "2023-07-11T00:00:00",
"id": 456,
"ipv4": "10.0.1.0/24",
"label": "cool-vpc-subnet",
"linodes": [
{
"id": 111,
"interfaces": [
{
"active": true,
"id": 421
}
]
}
],
"updated": "2023-09-11T00:00:00"
}{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}Responses
created | string<date-time>The date-time of VPC Subnet creation. | ||||||||
id | integerThe unique ID of the VPC Subnet. | ||||||||
ipv4 | string<ip>IPv4 range in CIDR canonical form.
| ||||||||
label | string
1..64
charactersThe VPC Subnet’s label, for display purposes only.
| ||||||||
linodes | array
of objectsAn array of Linode IDs assigned to the VPC Subnet. A Linode is assigned to a VPC Subnet if it has a Configuration Profile with a
| ||||||||
updated Nullable | string<date-time>The date-time of the most recent VPC Subnet update. |
errors | array
of objects
|