Public Gateways APIv1

Download OpenAPI

Introduction

Scaleway Public Gateways are building blocks for your infrastructure on Scaleway's public cloud. They sit at the border of Private Networks and provide access to/from other networks or the Internet. As well as this, Public Gateways offer a host of managed features and services to facilitate the management of resources in your Private Network, including DHCP to dynamically assign IP addresses, and NAT to map private IP addresses in the Private Network to the public IP address of the Public Gateway.

Refer to our dedicated concepts page to find definitions of all terminology related to Public Gateways, including DHCP, NAT, SSH bastion and more.

Requirements: To perform the following steps, you must first ensure that:

  1. Configure your environment variables.

    Note: This is an optional step that seeks to simplify your usage of the Public Gateways API.

  2. Choose a Public Gateway type: Public Gateways come in different shapes and sizes, with different network capabilities and pricing. When you create your Public Gateway, you need to include the required Public Gateway type in the request. Use the following call to get a list of available Public Gateway offer types and their details:

  3. Create a Public Gateway: run the following command to create a Public Gateway. You can customize the details in the payload (name, description, tags, etc) to your needs: use the information below to adjust the payload as necessary.

    ParameterDescriptionValid values
    typeThe type of Public Gateway (commercial offer type) to create. Use the Gateway Types endpoint to get a list of offer types.Any valid offer type string, e.g. VPC-GW-S
    nameA name of your choice for the Public GatewayAny string containing only alphanumeric characters and dashes, e.g. my-new-gateway.
    tagsA list of tags to describe your Public Gateway. These can help you manage and filter your gateways.A list of alphanumeric strings, e.g. ["my-first-tag, my-second-tag
    project_idThe Scaleway Project ID to create the Public Gateway in.A valid Scaleway Project ID, e.g. f5fe13a0-b9c7-11ed-afa1-0242ac120002

    Note: Further parameters are available, but for the purposes of this quickstart we have included only the essentials. See the Create a Public Gateway endpoint documentation below for full details of all possible parameters.

  4. Get a list of your Public Gateways: run the following command to get a list of all your Public Gateways.

  5. Attach a Private Network to a Public Gateway: run the following command to attach a Private Network to your Public Gateway, and make all the Gateway's services such as DHCP and NAT available to the Private Network. You can customize the details in the payload to your needs: use the information below to adjust the payload as necessary.

    Tip: If you haven't created a Private Network yet, see the Private Networks documentation to learn how to do so. Ensure you retain the ID of the Private Network.

    This configuration will set up the Public Gateway as a NAT gateway, masquerading traffic sent to it to the outer internet to provide internet access to resources in the Private Network, and serving IP addresses through DHCP to said instances, in the subnet 192.168.1.0/24.

    ParameterDescriptionValid values
    gateway_idThe Public Gateway ID of an existing Public GatewayAny valid Public Gateway ID, e.g. b1b2edda-9364-422d-93f2-ad04e6a054dc
    private_network_idThe Private Network ID of an existing Private NetworkAny valid Private Network ID in the same Availability Zone as the Public Gateway, e.g. 548dbcc3-8b78-486f-a79a-c3f5a17642f9
    enable_masqueradeDefines whether the gateway should masquerade traffic for the attached Private Network (i.e. whether to enable dynamic NAT)A boolean value, e.g. true
    dhcpAn DHCP object (see object definition in the DHCP endpoint documentation below), which defines DHCP configuration.An object which includes the Scaleway Project ID of the Public Gateway/Private Network, and the subnet to use for the Private Network e.g. {"project_id": "'$SCW_PROJECT_ID'", "subnet": "192.168.1.0/24"}

    Note: Further parameters are available, but for the purposes of this quickstart we have included only the essentials. See the Attach a gateway to a Private Network endpoint documentation below for full details of all possible parameters.

  6. Delete a Public Gateway: run the following call to delete your Public Gateway. Ensure that you replace <PUBLIC-GATEWAY-ID> in the URL with the ID of the Public Gateway you want to delete.

    The expected successful response is empty.

  • A maximum of eight (8) Private Networks can be plugged into a single Public Gateway

  • Note that the Public Gateway takes some time to start up, and actions on it are impossible unless it is in the running state. To check the current state of a Public Gateway, use the Get a Public Gateway endpoint to get information for your gateway: the status field of the response will tell you if it is running or in another state.

  • For further information about Public Gateway limitations https://www.scaleway.com/en/docs/network/public-gateways/troubleshooting/gw-limitations/

Public Gateways can be deployed in the following Availability Zones:

NameAPI ID
Parisfr-par-1 fr-par-2
Amsterdamnl-ams-1 nl-ams-2
Warsawpl-waw-1 pl-waw-2

The Scaleway Public Gateways API is a zoned API, meaning that each call must specify in its path parameters the Availability Zone for the resources concerned by the call.

For more help using Scaleway Public Gateways, check out the following resources:

Gateways

Public Gateways are building blocks for your infrastructure on Scaleway's shared public cloud. They provide a set of managed network services and features for Scaleway's Private Networks such as DHCP, NAT and routing.

List Public Gateways

List Public Gateways in a given Scaleway Organization or Project. By default, results are displayed in ascending order of creation date.

GET
/vpc-gw/v1/zones/{zone}/gateways
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Query Parameters

order_by
string
Order in which to return results. Possible values are created_at_asc, created_at_desc, name_asc, name_desc, type_asc, type_desc, status_asc and status_desc. The default value is created_at_asc.

page
integer
Page number to return. The default value is 1.

page_size
integer
Gateways per page. The default value is 20.

organization_id
string
Include only gateways in this Organization. (UUID format).

project_id
string
Include only gateways in this Project. (UUID format).

name
string
Filter for gateways which have this search term in their name.

tags
array
Filter for gateways with these tags.

type
string
Filter for gateways of this type.

status
string
Filter for gateways with this current status. Use `unknown` to include all statuses. Possible values are unknown, stopped, allocating, configuring, running, stopping, failed, deleting, deleted and locked. The default value is unknown.

private_network_id
string
Filter for gateways attached to this Private nNetwork. (UUID format).
200 Response

gateways
array
Gateways on this page.

total_count
integer
Total count of gateways matching the filter.
Response Example

Create a new Public Gateway in the specified Scaleway Project, defining its name, type and other configuration details such as whether to enable SSH bastion.

POST
/vpc-gw/v1/zones/{zone}/gateways
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Body

project_id
string
Scaleway Project to create the gateway in. (UUID format).

name
string
Name for the gateway.

tags
array
Tags for the gateway.

type
string
Gateway type (commercial offer type).

upstream_dns_servers
array
Array of DNS server IP addresses to override the gateway's default recursive DNS servers.

ip_id
nullable string
Existing IP address to attach to the gateway. (UUID format).

enable_smtp
boolean
Defines whether SMTP traffic should be allowed pass through the gateway.

enable_bastion
boolean
Defines whether SSH bastion should be enabled the gateway.

bastion_port
nullable integer
Port of the SSH bastion.
Request Example
200 Response

id
string
ID of the gateway. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
Gateway creation date. (RFC 3339 format).

updated_at
nullable string
Gateway last modification date. (RFC 3339 format).

type
object
Gateway type (commercial offer).

status
string
Current status of the gateway. Possible values are unknown, stopped, allocating, configuring, running, stopping, failed, deleting, deleted and locked. The default value is unknown.

name
string
Name of the gateway.

tags
array
Tags associated with the gateway.

ip
object
Public IP address of the gateway.

gateway_networks
array
GatewayNetwork objects attached to the gateway (each one represents a connection to a Private Network).

upstream_dns_servers
array
Array of DNS server IP addresses to override the gateway's default recursive DNS servers.

version
nullable string
Version of the running gateway software.

can_upgrade_to
nullable string
Newly available gateway software version that can be updated to.

bastion_enabled
boolean
Defines whether SSH bastion is enabled on the gateway.

bastion_port
integer
Port of the SSH bastion.

smtp_enabled
boolean
Defines whether SMTP traffic is allowed to pass through the gateway.

zone
string
Zone of the gateway.
Response Example

Get details of a Public Gateway, specified by its gateway ID. The response object contains full details of the gateway, including its name, type, status and more.

GET
/vpc-gw/v1/zones/{zone}/gateways/{gateway_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

gateway_id
required string
ID of the gateway to fetch. (UUID format).
200 Response

id
string
ID of the gateway. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
Gateway creation date. (RFC 3339 format).

updated_at
nullable string
Gateway last modification date. (RFC 3339 format).

type
object
Gateway type (commercial offer).

status
string
Current status of the gateway. Possible values are unknown, stopped, allocating, configuring, running, stopping, failed, deleting, deleted and locked. The default value is unknown.

name
string
Name of the gateway.

tags
array
Tags associated with the gateway.

ip
object
Public IP address of the gateway.

gateway_networks
array
GatewayNetwork objects attached to the gateway (each one represents a connection to a Private Network).

upstream_dns_servers
array
Array of DNS server IP addresses to override the gateway's default recursive DNS servers.

version
nullable string
Version of the running gateway software.

can_upgrade_to
nullable string
Newly available gateway software version that can be updated to.

bastion_enabled
boolean
Defines whether SSH bastion is enabled on the gateway.

bastion_port
integer
Port of the SSH bastion.

smtp_enabled
boolean
Defines whether SMTP traffic is allowed to pass through the gateway.

zone
string
Zone of the gateway.
Response Example

Update the parameters of an existing Public Gateway, for example, its name, tags, SSH bastion configuration, and DNS servers.

PATCH
/vpc-gw/v1/zones/{zone}/gateways/{gateway_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

gateway_id
required string
ID of the gateway to update. (UUID format).
Body

name
nullable string
Name for the gateway.

tags
nullable array
Tags for the gateway.

upstream_dns_servers
nullable array
Array of DNS server IP addresses to override the gateway's default recursive DNS servers.

enable_bastion
nullable boolean
Defines whether SSH bastion should be enabled the gateway.

bastion_port
nullable integer
Port of the SSH bastion.

enable_smtp
nullable boolean
Defines whether SMTP traffic should be allowed to pass through the gateway.
Request Example
200 Response

id
string
ID of the gateway. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
Gateway creation date. (RFC 3339 format).

updated_at
nullable string
Gateway last modification date. (RFC 3339 format).

type
object
Gateway type (commercial offer).

status
string
Current status of the gateway. Possible values are unknown, stopped, allocating, configuring, running, stopping, failed, deleting, deleted and locked. The default value is unknown.

name
string
Name of the gateway.

tags
array
Tags associated with the gateway.

ip
object
Public IP address of the gateway.

gateway_networks
array
GatewayNetwork objects attached to the gateway (each one represents a connection to a Private Network).

upstream_dns_servers
array
Array of DNS server IP addresses to override the gateway's default recursive DNS servers.

version
nullable string
Version of the running gateway software.

can_upgrade_to
nullable string
Newly available gateway software version that can be updated to.

bastion_enabled
boolean
Defines whether SSH bastion is enabled on the gateway.

bastion_port
integer
Port of the SSH bastion.

smtp_enabled
boolean
Defines whether SMTP traffic is allowed to pass through the gateway.

zone
string
Zone of the gateway.
Response Example

Delete an existing Public Gateway, specified by its gateway ID. This action is irreversible.

DELETE
/vpc-gw/v1/zones/{zone}/gateways/{gateway_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

gateway_id
required string
ID of the gateway to delete. (UUID format).
Query Parameters

cleanup_dhcp
boolean
Defines whether to clean up attached DHCP configurations (if any, and if not attached to another Gateway Network).
204 Response

Empty response

Refresh the SSH keys of a given Public Gateway, specified by its gateway ID. This adds any new SSH keys in the gateway's Scaleway Project to the gateway itself.

POST
/vpc-gw/v1/zones/{zone}/gateways/{gateway_id}/refresh-ssh-keys
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

gateway_id
required string
ID of the gateway to refresh SSH keys on. (UUID format).
Body

Request Example
200 Response

id
string
ID of the gateway. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
Gateway creation date. (RFC 3339 format).

updated_at
nullable string
Gateway last modification date. (RFC 3339 format).

type
object
Gateway type (commercial offer).

status
string
Current status of the gateway. Possible values are unknown, stopped, allocating, configuring, running, stopping, failed, deleting, deleted and locked. The default value is unknown.

name
string
Name of the gateway.

tags
array
Tags associated with the gateway.

ip
object
Public IP address of the gateway.

gateway_networks
array
GatewayNetwork objects attached to the gateway (each one represents a connection to a Private Network).

upstream_dns_servers
array
Array of DNS server IP addresses to override the gateway's default recursive DNS servers.

version
nullable string
Version of the running gateway software.

can_upgrade_to
nullable string
Newly available gateway software version that can be updated to.

bastion_enabled
boolean
Defines whether SSH bastion is enabled on the gateway.

bastion_port
integer
Port of the SSH bastion.

smtp_enabled
boolean
Defines whether SMTP traffic is allowed to pass through the gateway.

zone
string
Zone of the gateway.
Response Example

Upgrade a given Public Gateway to the newest software version. This applies the latest bugfixes and features to your Public Gateway, but its service will be interrupted during the update.

POST
/vpc-gw/v1/zones/{zone}/gateways/{gateway_id}/upgrade
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

gateway_id
required string
ID of the gateway to upgrade. (UUID format).
Body

Request Example
200 Response

id
string
ID of the gateway. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
Gateway creation date. (RFC 3339 format).

updated_at
nullable string
Gateway last modification date. (RFC 3339 format).

type
object
Gateway type (commercial offer).

status
string
Current status of the gateway. Possible values are unknown, stopped, allocating, configuring, running, stopping, failed, deleting, deleted and locked. The default value is unknown.

name
string
Name of the gateway.

tags
array
Tags associated with the gateway.

ip
object
Public IP address of the gateway.

gateway_networks
array
GatewayNetwork objects attached to the gateway (each one represents a connection to a Private Network).

upstream_dns_servers
array
Array of DNS server IP addresses to override the gateway's default recursive DNS servers.

version
nullable string
Version of the running gateway software.

can_upgrade_to
nullable string
Newly available gateway software version that can be updated to.

bastion_enabled
boolean
Defines whether SSH bastion is enabled on the gateway.

bastion_port
integer
Port of the SSH bastion.

smtp_enabled
boolean
Defines whether SMTP traffic is allowed to pass through the gateway.

zone
string
Zone of the gateway.
Response Example

A Gateway Network represents the connection of a Private Network to a Public Gateway. It holds configuration options relative to this specific connection, such as the DHCP configuration.

List the connections between Public Gateways and Private Networks (a connection = a GatewayNetwork). You can choose to filter by gateway-id to list all Private Networks attached to the specified Public Gateway, or by private_network_id to list all Public Gateways attached to the specified Private Network. Other query parameters are also available. The result is an array of GatewayNetwork objects, each giving details of the connection between a given Public Gateway and a given Private Network.

GET
/vpc-gw/v1/zones/{zone}/gateway-networks
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Query Parameters

order_by
string
Order in which to return results. Possible values are created_at_asc, created_at_desc, status_asc and status_desc. The default value is created_at_asc.

page
integer
Page number. The default value is 1.

page_size
integer
GatewayNetworks per page. The default value is 20.

gateway_id
string
Filter for GatewayNetworks connected to this gateway. (UUID format).

private_network_id
string
Filter for GatewayNetworks connected to this Private Network. (UUID format).

enable_masquerade
boolean
Filter for GatewayNetworks with this `enable_masquerade` setting.

dhcp_id
string
Filter for GatewayNetworks using this DHCP configuration. (UUID format).

status
string
Filter for GatewayNetworks with this current status this status. Use `unknown` to include all statuses. Possible values are unknown, created, attaching, configuring, ready, detaching and deleted. The default value is unknown.
200 Response

gateway_networks
array
GatewayNetworks on this page.

total_count
integer
Total GatewayNetworks count matching the filter.
Response Example

Attach a specific Public Gateway to a specific Private Network (create a GatewayNetwork). You can configure parameters for the connection including DHCP settings, whether to enable masquerade (dynamic NAT), and more.

POST
/vpc-gw/v1/zones/{zone}/gateway-networks
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Body

gateway_id
string
Public Gateway to connect. (UUID format).

private_network_id
string
Private Network to connect. (UUID format).

enable_masquerade
boolean
Defines whether to enable masquerade (dynamic NAT) on this network.

dhcp_id
string
ID of an existing DHCP configuration object to use for this GatewayNetwork. (UUID format). Only one of dhcp_id, dhcp and address may be set.

dhcp
object
New DHCP configuration object to use for this GatewayNetwork. Only one of dhcp_id, dhcp and address may be set.

address
string
Static IP address in CIDR format to to use without DHCP. (IP network). Only one of dhcp_id, dhcp and address may be set.

enable_dhcp
nullable boolean
Defines whether to enable DHCP on this Private Network. Defaults to `true` if either `dhcp_id` or `dhcp` are present. If set to `true`, either `dhcp_id` or `dhcp` must be present.
Request Example
200 Response

id
string
ID of the Public Gateway-Private Network connection. (UUID format).

created_at
nullable string
Connection creation date. (RFC 3339 format).

updated_at
nullable string
Connection last modification date. (RFC 3339 format).

gateway_id
string
ID of the connected Public Gateway. (UUID format).

private_network_id
string
ID of the connected Private Network. (UUID format).

mac_address
nullable string
MAC address of the gateway in the Private Network (if the gateway is up and running).

enable_masquerade
boolean
Defines whether the gateway masquerades traffic for this Private Network (Dynamic NAT).

status
string
Current status of the Public Gateway's connection to the Private Network. Possible values are unknown, created, attaching, configuring, ready, detaching and deleted. The default value is unknown.

dhcp
object
DHCP configuration for the connected Private Network.

enable_dhcp
boolean
Defines whether DHCP is enabled on the connected Private Network.

address
nullable string
Address of the Gateway (in CIDR form) to use when DHCP is not used. (IP network).

zone
string
Zone of the GatewayNetwork connection.
Response Example

Get details of a given connection between a Public Gateway and a Private Network (this connection = a GatewayNetwork), specified by its gateway_network_id. The response object contains details of the connection including the IDs of the Public Gateway and Private Network, the dates the connection was created/updated and its configuration settings.

GET
/vpc-gw/v1/zones/{zone}/gateway-networks/{gateway_network_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

gateway_network_id
required string
ID of the GatewayNetwork to fetch. (UUID format).
200 Response

id
string
ID of the Public Gateway-Private Network connection. (UUID format).

created_at
nullable string
Connection creation date. (RFC 3339 format).

updated_at
nullable string
Connection last modification date. (RFC 3339 format).

gateway_id
string
ID of the connected Public Gateway. (UUID format).

private_network_id
string
ID of the connected Private Network. (UUID format).

mac_address
nullable string
MAC address of the gateway in the Private Network (if the gateway is up and running).

enable_masquerade
boolean
Defines whether the gateway masquerades traffic for this Private Network (Dynamic NAT).

status
string
Current status of the Public Gateway's connection to the Private Network. Possible values are unknown, created, attaching, configuring, ready, detaching and deleted. The default value is unknown.

dhcp
object
DHCP configuration for the connected Private Network.

enable_dhcp
boolean
Defines whether DHCP is enabled on the connected Private Network.

address
nullable string
Address of the Gateway (in CIDR form) to use when DHCP is not used. (IP network).

zone
string
Zone of the GatewayNetwork connection.
Response Example

Update the configuration parameters of a connection between a given Public Gateway and Private Network (the connection = a GatewayNetwork). Updatable parameters include DHCP settings and whether to enable traffic masquerade (dynamic NAT).

PATCH
/vpc-gw/v1/zones/{zone}/gateway-networks/{gateway_network_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

gateway_network_id
required string
ID of the GatewayNetwork to update. (UUID format).
Body

enable_masquerade
nullable boolean
Defines whether to enable masquerade (dynamic NAT) on the GatewayNetwork.

dhcp_id
string
ID of the new DHCP configuration object to use with this GatewayNetwork. (UUID format). Only one of dhcp_id and address may be set.

enable_dhcp
nullable boolean
Defines whether to enable DHCP on the connected Private Network.

address
string
New static IP address. (IP network). Only one of dhcp_id and address may be set.
Request Example
200 Response

id
string
ID of the Public Gateway-Private Network connection. (UUID format).

created_at
nullable string
Connection creation date. (RFC 3339 format).

updated_at
nullable string
Connection last modification date. (RFC 3339 format).

gateway_id
string
ID of the connected Public Gateway. (UUID format).

private_network_id
string
ID of the connected Private Network. (UUID format).

mac_address
nullable string
MAC address of the gateway in the Private Network (if the gateway is up and running).

enable_masquerade
boolean
Defines whether the gateway masquerades traffic for this Private Network (Dynamic NAT).

status
string
Current status of the Public Gateway's connection to the Private Network. Possible values are unknown, created, attaching, configuring, ready, detaching and deleted. The default value is unknown.

dhcp
object
DHCP configuration for the connected Private Network.

enable_dhcp
boolean
Defines whether DHCP is enabled on the connected Private Network.

address
nullable string
Address of the Gateway (in CIDR form) to use when DHCP is not used. (IP network).

zone
string
Zone of the GatewayNetwork connection.
Response Example

Detach a given Public Gateway from a given Private Network, i.e. delete a GatewayNetwork specified by a gateway_network_id.

DELETE
/vpc-gw/v1/zones/{zone}/gateway-networks/{gateway_network_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

gateway_network_id
required string
ID of the GatewayNetwork to delete. (UUID format).
Query Parameters

cleanup_dhcp
boolean
Defines whether to clean up attached DHCP configurations (if any, and if not attached to another Gateway Network).
204 Response

Empty response

These objects define a DHCP configuration, i.e. how IP addresses should be assigned to devices on a Private Network attached to a Public Gateway. Definable parameters include the subnet for the DHCP server, the validity period for DHCP entries, whether to use dynamic pooling, and more. A DHCP configuration object has a DHCP ID, which can then be used as part of a call to create or update a Gateway Network. This lets you attach an existing DHCP configuration to a Public Gateway attached to a Private Network. Similarly, you can use a DHCP ID as a query parameter to list Gateway Networks which use this DHCP configuration object.

List DHCP configurations, optionally filtering by Organization, Project, Public Gateway IP address or more. The response is an array of DHCP configuration objects, each identified by a DHCP ID and containing configuration settings for the assignment of IP addresses to devices on a Private Network attached to a Public Gateway. Note that the response does not contain the IDs of any Private Network / Public Gateway the configuration is attached to. Use the List Public Gateway connections to Private Networks method for that purpose, filtering on DHCP ID.

GET
/vpc-gw/v1/zones/{zone}/dhcps
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Query Parameters

order_by
string
Order in which to return results. Possible values are created_at_asc, created_at_desc, subnet_asc and subnet_desc. The default value is created_at_asc.

page
integer
Page number. The default value is 1.

page_size
integer
DHCP configurations per page. The default value is 20.

organization_id
string
Include only DHCP configuration objects in this Organization. (UUID format).

project_id
string
Include only DHCP configuration objects in this Project. (UUID format).

address
string
Filter for DHCP configuration objects with this DHCP server IP address (the gateway's address in the Private Network). (IP address).

has_address
string
Filter for DHCP configuration objects with subnets containing this IP address. (IP address).
200 Response

dhcps
array
First page of DHCP configuration objects.

total_count
integer
Total count of DHCP configuration objects matching the filter.
Response Example

Create a new DHCP configuration object, containing settings for the assignment of IP addresses to devices on a Private Network attached to a Public Gateway. The response object includes the ID of the DHCP configuration object. You can use this ID as part of a call to Create a Public Gateway connection to a Private Network or Update a Public Gateway connection to a Private Network to directly apply this DHCP configuration.

POST
/vpc-gw/v1/zones/{zone}/dhcps
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Body

project_id
required string
Project to create the DHCP configuration in. (UUID format).

subnet
required string
Subnet for the DHCP server. (IP network).

address
nullable string
IP address of the DHCP server. This will be the gateway's address in the Private Network. Defaults to the first address of the subnet. (IP address).

pool_low
nullable string
Low IP (inclusive) of the dynamic address pool. Must be in the config's subnet. Defaults to the second address of the subnet. (IP address).

pool_high
nullable string
High IP (inclusive) of the dynamic address pool. Must be in the config's subnet. Defaults to the last address of the subnet. (IP address).

enable_dynamic
nullable boolean
Defines whether to enable dynamic pooling of IPs. When false, only pre-existing DHCP reservations will be handed out. Defaults to true.

valid_lifetime
nullable string
How long DHCP entries will be valid for. Defaults to 1h (3600s). (in seconds).

renew_timer
nullable string
After how long a renew will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s). (in seconds).

rebind_timer
nullable string
After how long a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s). (in seconds).

push_default_route
nullable boolean
Defines whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to true.

push_dns_server
nullable boolean
Defines whether the gateway should push custom DNS servers to clients. This allows for Instance hostname -> IP resolution. Defaults to true.

dns_servers_override
nullable array
Array of DNS server IP addresses used to override the DNS server list pushed to DHCP clients, instead of the gateway itself.

dns_search
nullable array
Array of search paths in addition to the pushed DNS configuration.

dns_local_name
nullable string
TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.
Request Example
200 Response

id
string
ID of the DHCP config. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
Date the DHCP configuration was created. (RFC 3339 format).

updated_at
nullable string
Configuration last modification date. (RFC 3339 format).

subnet
string
Subnet for the DHCP server. (IP network).

address
string
IP address of the DHCP server. This will be the Public Gateway's address in the Private Network. It must be part of config's subnet. (IP address).

pool_low
string
Low IP (inclusive) of the dynamic address pool. Must be in the config's subnet. (IP address).

pool_high
string
High IP (inclusive) of the dynamic address pool. Must be in the config's subnet. (IP address).

enable_dynamic
boolean
Defines whether to enable dynamic pooling of IPs. When false, only pre-existing DHCP reservations will be handed out.

valid_lifetime
nullable string
How long DHCP entries will be valid for. (in seconds).

renew_timer
nullable string
After how long a renew will be attempted. Must be 30s lower than `rebind_timer`. (in seconds).

rebind_timer
nullable string
After how long a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. (in seconds).

push_default_route
boolean
Defines whether the gateway should push a default route to DHCP clients, or only hand out IPs.

push_dns_server
boolean
Defines whether the gateway should push custom DNS servers to clients. This allows for instance hostname -> IP resolution.

dns_servers_override
array
Array of DNS server IP addresses used to override the DNS server list pushed to DHCP clients, instead of the gateway itself.

dns_search
array
Array of search paths in addition to the pushed DNS configuration.

dns_local_name
string
TLD given to hostnames in the Private Networks. If an Instance with hostname `foo` gets a lease, and this is set to `bar`, `foo.bar` will resolve.

zone
string
Zone of this DHCP configuration.
Response Example

Get a DHCP configuration object, identified by its DHCP ID. The response object contains configuration settings for the assignment of IP addresses to devices on a Private Network attached to a Public Gateway. Note that the response does not contain the IDs of any Private Network / Public Gateway the configuration is attached to. Use the List Public Gateway connections to Private Networks method for that purpose, filtering on DHCP ID.

GET
/vpc-gw/v1/zones/{zone}/dhcps/{dhcp_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

dhcp_id
required string
ID of the DHCP configuration to fetch. (UUID format).
200 Response

id
string
ID of the DHCP config. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
Date the DHCP configuration was created. (RFC 3339 format).

updated_at
nullable string
Configuration last modification date. (RFC 3339 format).

subnet
string
Subnet for the DHCP server. (IP network).

address
string
IP address of the DHCP server. This will be the Public Gateway's address in the Private Network. It must be part of config's subnet. (IP address).

pool_low
string
Low IP (inclusive) of the dynamic address pool. Must be in the config's subnet. (IP address).

pool_high
string
High IP (inclusive) of the dynamic address pool. Must be in the config's subnet. (IP address).

enable_dynamic
boolean
Defines whether to enable dynamic pooling of IPs. When false, only pre-existing DHCP reservations will be handed out.

valid_lifetime
nullable string
How long DHCP entries will be valid for. (in seconds).

renew_timer
nullable string
After how long a renew will be attempted. Must be 30s lower than `rebind_timer`. (in seconds).

rebind_timer
nullable string
After how long a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. (in seconds).

push_default_route
boolean
Defines whether the gateway should push a default route to DHCP clients, or only hand out IPs.

push_dns_server
boolean
Defines whether the gateway should push custom DNS servers to clients. This allows for instance hostname -> IP resolution.

dns_servers_override
array
Array of DNS server IP addresses used to override the DNS server list pushed to DHCP clients, instead of the gateway itself.

dns_search
array
Array of search paths in addition to the pushed DNS configuration.

dns_local_name
string
TLD given to hostnames in the Private Networks. If an Instance with hostname `foo` gets a lease, and this is set to `bar`, `foo.bar` will resolve.

zone
string
Zone of this DHCP configuration.
Response Example

Update a DHCP configuration object, identified by its DHCP ID.

PATCH
/vpc-gw/v1/zones/{zone}/dhcps/{dhcp_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

dhcp_id
required string
DHCP configuration to update. (UUID format).
Body

subnet
nullable string
Subnet for the DHCP server. (IP network).

address
nullable string
IP address of the DHCP server. This will be the Public Gateway's address in the Private Network. It must be part of config's subnet. (IP address).

pool_low
nullable string
Low IP (inclusive) of the dynamic address pool. Must be in the config's subnet. (IP address).

pool_high
nullable string
High IP (inclusive) of the dynamic address pool. Must be in the config's subnet. (IP address).

enable_dynamic
nullable boolean
Defines whether to enable dynamic pooling of IPs. When false, only pre-existing DHCP reservations will be handed out. Defaults to true.

valid_lifetime
nullable string
How long DHCP entries will be valid for. (in seconds).

renew_timer
nullable string
After how long a renew will be attempted. Must be 30s lower than `rebind_timer`. (in seconds).

rebind_timer
nullable string
After how long a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. (in seconds).

push_default_route
nullable boolean
Defines whether the gateway should push a default route to DHCP clients, or only hand out IPs.

push_dns_server
nullable boolean
Defines whether the gateway should push custom DNS servers to clients. This allows for instance hostname -> IP resolution.

dns_servers_override
nullable array
Array of DNS server IP addresses used to override the DNS server list pushed to DHCP clients, instead of the gateway itself.

dns_search
nullable array
Array of search paths in addition to the pushed DNS configuration.

dns_local_name
nullable string
TLD given to hostnames in the Private Networks. If an instance with hostname `foo` gets a lease, and this is set to `bar`, `foo.bar` will resolve. Allowed characters are `a-z0-9-.`.
Request Example
200 Response

id
string
ID of the DHCP config. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
Date the DHCP configuration was created. (RFC 3339 format).

updated_at
nullable string
Configuration last modification date. (RFC 3339 format).

subnet
string
Subnet for the DHCP server. (IP network).

address
string
IP address of the DHCP server. This will be the Public Gateway's address in the Private Network. It must be part of config's subnet. (IP address).

pool_low
string
Low IP (inclusive) of the dynamic address pool. Must be in the config's subnet. (IP address).

pool_high
string
High IP (inclusive) of the dynamic address pool. Must be in the config's subnet. (IP address).

enable_dynamic
boolean
Defines whether to enable dynamic pooling of IPs. When false, only pre-existing DHCP reservations will be handed out.

valid_lifetime
nullable string
How long DHCP entries will be valid for. (in seconds).

renew_timer
nullable string
After how long a renew will be attempted. Must be 30s lower than `rebind_timer`. (in seconds).

rebind_timer
nullable string
After how long a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. (in seconds).

push_default_route
boolean
Defines whether the gateway should push a default route to DHCP clients, or only hand out IPs.

push_dns_server
boolean
Defines whether the gateway should push custom DNS servers to clients. This allows for instance hostname -> IP resolution.

dns_servers_override
array
Array of DNS server IP addresses used to override the DNS server list pushed to DHCP clients, instead of the gateway itself.

dns_search
array
Array of search paths in addition to the pushed DNS configuration.

dns_local_name
string
TLD given to hostnames in the Private Networks. If an Instance with hostname `foo` gets a lease, and this is set to `bar`, `foo.bar` will resolve.

zone
string
Zone of this DHCP configuration.
Response Example

Delete a DHCP configuration object, identified by its DHCP ID. Note that you cannot delete a DHCP configuration object that is currently being used by a Gateway Network.

DELETE
/vpc-gw/v1/zones/{zone}/dhcps/{dhcp_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

dhcp_id
required string
DHCP configuration ID to delete. (UUID format).
204 Response

Empty response

DHCP entries belong to a specified Gateway Network (Public Gateway / Private Network connection). A DHCP entry can hold either a dynamic DHCP lease (an IP address dynamically assigned by the Public Gateway to a device) or a static, user-created DHCP reservation.

List DHCP entries, whether dynamically assigned and/or statically reserved. DHCP entries can be filtered by the Gateway Network they are on, their MAC address, IP address, type or hostname.

GET
/vpc-gw/v1/zones/{zone}/dhcp-entries
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Query Parameters

order_by
string
Order in which to return results. Possible values are created_at_asc, created_at_desc, ip_address_asc, ip_address_desc, hostname_asc and hostname_desc. The default value is created_at_asc.

page
integer
Page number. The default value is 1.

page_size
integer
DHCP entries per page. The default value is 20.

gateway_network_id
string
Filter for entries on this GatewayNetwork. (UUID format).

mac_address
string
Filter for entries with this MAC address.

ip_address
string
Filter for entries with this IP address. (IP address).

hostname
string
Filter for entries with this hostname substring.

type
string
Filter for entries of this type. Possible values are unknown, reservation and lease. The default value is unknown.
200 Response

dhcp_entries
array
DHCP entries in this page.

total_count
integer
Total count of DHCP entries matching the filter.
Response Example

Create a static DHCP reservation, specifying the Gateway Network for the reservation, the MAC address of the target device and the IP address to assign this device. The response is a DHCP entry object, confirming the ID and configuration details of the static DHCP reservation.

POST
/vpc-gw/v1/zones/{zone}/dhcp-entries
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Body

gateway_network_id
string
GatewayNetwork on which to create a DHCP reservation. (UUID format).

mac_address
string
MAC address to give a static entry to.

ip_address
string
IP address to give to the device. (IP address).
Request Example
200 Response

id
string
DHCP entry ID. (UUID format).

created_at
nullable string
DHCP entry creation date. (RFC 3339 format).

updated_at
nullable string
DHCP entry last modification date. (RFC 3339 format).

gateway_network_id
string
Owning GatewayNetwork. (UUID format).

mac_address
string
MAC address of the client device.

ip_address
string
Assigned IP address. (IP address).

hostname
string
Hostname of the client device.

type
string
Entry type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are unknown, reservation and lease. The default value is unknown.

zone
string
Zone of this DHCP entry.
Response Example

Set the list of DHCP reservations attached to a Gateway Network. Reservations are identified by their MAC address, and will sync the current DHCP entry list to the given list, creating, updating or deleting DHCP entries accordingly.

PUT
/vpc-gw/v1/zones/{zone}/dhcp-entries
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Body

gateway_network_id
string
ID of the Gateway Network on which to set DHCP reservation list. (UUID format).

dhcp_entries
array
New list of DHCP reservations.
Request Example
200 Response

dhcp_entries
array
List of DHCP entries.
Response Example

Get a DHCP entry, specified by its DHCP entry ID.

GET
/vpc-gw/v1/zones/{zone}/dhcp-entries/{dhcp_entry_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

dhcp_entry_id
required string
ID of the DHCP entry to fetch. (UUID format).
200 Response

id
string
DHCP entry ID. (UUID format).

created_at
nullable string
DHCP entry creation date. (RFC 3339 format).

updated_at
nullable string
DHCP entry last modification date. (RFC 3339 format).

gateway_network_id
string
Owning GatewayNetwork. (UUID format).

mac_address
string
MAC address of the client device.

ip_address
string
Assigned IP address. (IP address).

hostname
string
Hostname of the client device.

type
string
Entry type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are unknown, reservation and lease. The default value is unknown.

zone
string
Zone of this DHCP entry.
Response Example

Update the IP address for a DHCP entry, specified by its DHCP entry ID. You can update an existing DHCP entry of any type (reservation (static), lease (dynamic) or unknown), but in manually updating the IP address the entry will necessarily be of type reservation after the update.

PATCH
/vpc-gw/v1/zones/{zone}/dhcp-entries/{dhcp_entry_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

dhcp_entry_id
required string
ID of the DHCP entry to update. (UUID format).
Body

ip_address
nullable string
New IP address to give to the device. (IP address).
Request Example
200 Response

id
string
DHCP entry ID. (UUID format).

created_at
nullable string
DHCP entry creation date. (RFC 3339 format).

updated_at
nullable string
DHCP entry last modification date. (RFC 3339 format).

gateway_network_id
string
Owning GatewayNetwork. (UUID format).

mac_address
string
MAC address of the client device.

ip_address
string
Assigned IP address. (IP address).

hostname
string
Hostname of the client device.

type
string
Entry type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are unknown, reservation and lease. The default value is unknown.

zone
string
Zone of this DHCP entry.
Response Example

Delete a static DHCP reservation, identified by its DHCP entry ID. Note that you cannot delete DHCP entries of type lease, these are deleted automatically when their time-to-live expires.

DELETE
/vpc-gw/v1/zones/{zone}/dhcp-entries/{dhcp_entry_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

dhcp_entry_id
required string
ID of the DHCP entry to delete. (UUID format).
204 Response

Empty response

PAT (Port Address Translation) rules, aka static NAT rules, belong to a specified Public Gateway. They define the forwarding of a public port to a specific device on a Private Network, enabling enables ingress traffic from the public Internet to reach the correct device in the Private Network.

List PAT rules. You can filter by gateway ID to list all PAT rules for a particular gateway, or filter for PAT rules targeting a specific IP address or using a specific protocol.

GET
/vpc-gw/v1/zones/{zone}/pat-rules
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Query Parameters

order_by
string
Order in which to return results. Possible values are created_at_asc, created_at_desc, public_port_asc and public_port_desc. The default value is created_at_asc.

page
integer
Page number. The default value is 1.

page_size
integer
PAT rules per page. The default value is 20.

gateway_id
string
Filter for PAT rules on this Gateway. (UUID format).

private_ip
string
Filter for PAT rules targeting this private ip. (IP address).

protocol
string
Filter for PAT rules with this protocol. Possible values are unknown, both, tcp and udp. The default value is unknown.
200 Response

pat_rules
array
Array of PAT rules matching the filter.

total_count
integer
Total count of PAT rules matching the filter.
Response Example

Create a new PAT rule on a specified Public Gateway, defining the protocol to use, public port to listen on, and private port / IP address to map to.

POST
/vpc-gw/v1/zones/{zone}/pat-rules
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Body

gateway_id
string
ID of the Gateway on which to create the rule. (UUID format).

public_port
integer
Public port to listen on.

private_ip
string
Private IP to forward data to. (IP address).

private_port
integer
Private port to translate to.

protocol
string
Protocol the rule should apply to. Possible values are unknown, both, tcp and udp. The default value is unknown.
Request Example
200 Response

id
string
PAT rule ID. (UUID format).

gateway_id
string
Gateway the PAT rule applies to. (UUID format).

created_at
nullable string
PAT rule creation date. (RFC 3339 format).

updated_at
nullable string
PAT rule last modification date. (RFC 3339 format).

public_port
integer
Public port to listen on.

private_ip
string
Private IP address to forward data to. (IP address).

private_port
integer
Private port to translate to.

protocol
string
Protocol the rule applies to. Possible values are unknown, both, tcp and udp. The default value is unknown.

zone
string
Zone of the PAT rule.
Response Example

Set a definitive list of PAT rules attached to a Public Gateway. Each rule is identified by its public port and protocol. This will sync the current PAT rule list on the gateway with the new list, creating, updating or deleting PAT rules accordingly.

PUT
/vpc-gw/v1/zones/{zone}/pat-rules
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Body

gateway_id
string
ID of the gateway on which to set the PAT rules. (UUID format).

pat_rules
required array
New list of PAT rules.
Request Example
200 Response

pat_rules
array
List of PAT rules.
Response Example

Get a PAT rule, specified by its PAT rule ID. The response object gives full details of the PAT rule, including the Public Gateway it belongs to and the configuration settings in terms of public / private ports, private IP and protocol.

GET
/vpc-gw/v1/zones/{zone}/pat-rules/{pat_rule_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

pat_rule_id
required string
ID of the PAT rule to get. (UUID format).
200 Response

id
string
PAT rule ID. (UUID format).

gateway_id
string
Gateway the PAT rule applies to. (UUID format).

created_at
nullable string
PAT rule creation date. (RFC 3339 format).

updated_at
nullable string
PAT rule last modification date. (RFC 3339 format).

public_port
integer
Public port to listen on.

private_ip
string
Private IP address to forward data to. (IP address).

private_port
integer
Private port to translate to.

protocol
string
Protocol the rule applies to. Possible values are unknown, both, tcp and udp. The default value is unknown.

zone
string
Zone of the PAT rule.
Response Example

Update a PAT rule, specified by its PAT rule ID. Configuration settings including private/public port, private IP address and protocol can all be updated.

PATCH
/vpc-gw/v1/zones/{zone}/pat-rules/{pat_rule_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

pat_rule_id
required string
ID of the PAT rule to update. (UUID format).
Body

public_port
nullable integer
Public port to listen on.

private_ip
nullable string
Private IP to forward data to. (IP address).

private_port
nullable integer
Private port to translate to.

protocol
string
Protocol the rule should apply to. Possible values are unknown, both, tcp and udp. The default value is unknown.
Request Example
200 Response

id
string
PAT rule ID. (UUID format).

gateway_id
string
Gateway the PAT rule applies to. (UUID format).

created_at
nullable string
PAT rule creation date. (RFC 3339 format).

updated_at
nullable string
PAT rule last modification date. (RFC 3339 format).

public_port
integer
Public port to listen on.

private_ip
string
Private IP address to forward data to. (IP address).

private_port
integer
Private port to translate to.

protocol
string
Protocol the rule applies to. Possible values are unknown, both, tcp and udp. The default value is unknown.

zone
string
Zone of the PAT rule.
Response Example

Delete a PAT rule, identified by its PAT rule ID. This action is irreversible.

DELETE
/vpc-gw/v1/zones/{zone}/pat-rules/{pat_rule_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

pat_rule_id
required string
ID of the PAT rule to delete. (UUID format).
204 Response

Empty response

Public, flexible IP addresses for Public Gateways, allowing the gateway to reach the public internet, as well as forward (masquerade) traffic from member devices of attached Private Networks.

List Public Gateway flexible IP addresses. A number of filter options are available for limiting results in the response.

GET
/vpc-gw/v1/zones/{zone}/ips
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Query Parameters

order_by
string
Order in which to return results. Possible values are created_at_asc, created_at_desc, ip_asc, ip_desc, reverse_asc and reverse_desc. The default value is created_at_asc.

page
integer
Page number. The default value is 1.

page_size
integer
IP addresses per page. The default value is 20.

organization_id
string
Filter for IP addresses in this Organization. (UUID format).

project_id
string
Filter for IP addresses in this Project. (UUID format).

tags
array
Filter for IP addresses with these tags.

reverse
string
Filter for IP addresses that have a reverse containing this string.

is_free
boolean
Filter based on whether the IP is attached to a gateway or not.
200 Response

ips
array
IP addresses on this page.

total_count
integer
Total count of IP addresses matching the filter.
Response Example

Create (reserve) a new flexible IP address that can be used for a Public Gateway in a specified Scaleway Project.

POST
/vpc-gw/v1/zones/{zone}/ips
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
Body

project_id
string
Project to create the IP address in. (UUID format).

tags
array
Tags to give to the IP address.
Request Example
200 Response

id
string
IP address ID. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
IP address creation date. (RFC 3339 format).

updated_at
nullable string
IP address last modification date. (RFC 3339 format).

tags
array
Tags associated with the IP address.

address
string
The IP address itself. (IP address).

reverse
nullable string
Reverse domain name for the IP address.

gateway_id
nullable string
Public Gateway associated with the IP address. (UUID format).

zone
string
Zone of the IP address.
Response Example

Get details of a Public Gateway flexible IP address, identified by its IP ID. The response object contains information including which (if any) Public Gateway using this IP address, the reverse and various other metadata.

GET
/vpc-gw/v1/zones/{zone}/ips/{ip_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

ip_id
required string
ID of the IP address to get. (UUID format).
200 Response

id
string
IP address ID. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
IP address creation date. (RFC 3339 format).

updated_at
nullable string
IP address last modification date. (RFC 3339 format).

tags
array
Tags associated with the IP address.

address
string
The IP address itself. (IP address).

reverse
nullable string
Reverse domain name for the IP address.

gateway_id
nullable string
Public Gateway associated with the IP address. (UUID format).

zone
string
Zone of the IP address.
Response Example

Update details of an existing flexible IP address, including its tags, reverse and the Public Gateway it is assigned to.

PATCH
/vpc-gw/v1/zones/{zone}/ips/{ip_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

ip_id
required string
ID of the IP address to update. (UUID format).
Body

tags
nullable array
Tags to give to the IP address.

reverse
nullable string
Reverse to set on the address. Empty string to unset.

gateway_id
nullable string
Gateway to attach the IP address to. Empty string to detach. (UUID format).
Request Example
200 Response

id
string
IP address ID. (UUID format).

organization_id
string
Owning Organization. (UUID format).

project_id
string
Owning Project. (UUID format).

created_at
nullable string
IP address creation date. (RFC 3339 format).

updated_at
nullable string
IP address last modification date. (RFC 3339 format).

tags
array
Tags associated with the IP address.

address
string
The IP address itself. (IP address).

reverse
nullable string
Reverse domain name for the IP address.

gateway_id
nullable string
Public Gateway associated with the IP address. (UUID format).

zone
string
Zone of the IP address.
Response Example

Delete a flexible IP address from your account. This action is irreversible.

DELETE
/vpc-gw/v1/zones/{zone}/ips/{ip_id}
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.

ip_id
required string
ID of the IP address to delete. (UUID format).
204 Response

Empty response

Public Gateways come in various shapes, sizes and prices, which are described by gateway types. They represent the different commercial offer types for Public Gateways available at Scaleway.

List the different Public Gateway commercial offer types available at Scaleway. The response is an array of objects describing the name and technical details of each available gateway type.

GET
/vpc-gw/v1/zones/{zone}/gateway-types
Path Parameters

zone
required string
The zone you want to target. Possible values are fr-par-1, fr-par-2, nl-ams-1, nl-ams-2, pl-waw-1 and pl-waw-2.
200 Response

types
array
Available types of Public Gateway.
Response Example