openapi: 3.1.0 info: title: VPC API description: "VPC allows you to build your own **V**irtual **P**rivate **C**loud on top of Scaleway’s shared public cloud. \n\nVPC currently comprises the regional Private Networks product. Layer 2 regional Private Networks sit inside the layer 3 VPC. Private Networks allows Scaleway resources (Instances, Load Balancers, Managed Databases etc.) within a single region to be interconnected through a dedicated, private, and flexible [L2 network](https://en.wikipedia.org/wiki/Data_link_layer).\n\nYou can add as many resources to your networks as you want, and add up to eight (8) different networks\nper resource. This allows you to run services isolated from the public internet and expose them to the rest of your infrastructure without worrying about public network filtering.\n\n\n\nVPC v2 is now in **General Availability**. \n\n\n\nCheck out our [IPAM API](https://www.scaleway.com/en/developers/api/ipam/) to facilitate the management of IP addresses across your different Scaleway resources.\n\n\n\n## Concepts\n\nRefer to our [dedicated concepts page](https://www.scaleway.com/en/docs/vpc/concepts/) to find definitions of all concepts and terminology related to VPC.\n\n\n\n\n## Quickstart\n\n1. **Configure your environment variables**\n\n \n \ This is an optional step that seeks to simplify your usage of the API. See the [Technical information](#technical-information) section below for help choosing an Availability Zone and Region. You can find your Project ID in the [Scaleway console](https://console.scaleway.com/project/settings).\n \n\n ```bash\n \ export SCW_SECRET_KEY=\"\"\n export SCW_DEFAULT_REGION=\"\"\n export SCW_DEFAULT_ZONE=\"\"\n export SCW_PROJECT_ID=\"\"\n ```\n\n2. **Create a Private Network**. Run the following command to create a Private Network. You can customize the details in the payload (name, tags etc.) to your needs.\n\n ```bash\n curl -X POST \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n \"https://api.scaleway.com/vpc/v2/regions/$SCW_DEFAULT_REGION/private-networks\" \\\n -d '{\n \"name\": \"My new Private Network\",\n \"project_id\": \"'\"$SCW_PROJECT_ID\"'\", \n \"tags\": [\"test\", \"dev\"]\n }'\n \ ```\n\n \n Keep the `id` field of the response: it is your Private Network ID, and is useable across all Scaleway products that support Private Networks. It may be useful to you to export the Private Network ID as a new environment variable `export PN_ID=\"`\n \ \n\n \n If you create a Private Network without specifying a VPC to create it in, the behavior depends on when you created your Scaleway Project. [Find out more](https://www.scaleway.com/en/docs/vpc/concepts/#default-vpc)\n \ \n\n3. **Attach a resource to your Private Network**. Each Scaleway product has its own API to interact with Private Networks. To attach an Instance, Managed Database, Elastic Metal server, Load Balancer or Public Gateway to your Private Network, see instructions in the documentation of the relevant product API. Here, we take the example of an Instance.\n\n Use the following call to attach an Instance to your Private Network. Ensure you replace `` with the ID of your Instance, and `` with the ID of your Private Network. Note that the Instance must be in an Availability Zone that is part of the region of your Private Network.\n\n ```bash\n curl -X POST \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n \"https://api.scaleway.com/instance/v1/zones/$SCW_DEFAULT_ZONE/servers//private_nics\" \\\n -d '{\"private_network_id\": \"\"}'\n ```\n\n \n Keep the `id` field of the response: it is your Private NIC ID. It may be useful to you to export\n the Private NIC ID as a new environment variable `export NIC_ID=\"`.\n \n\n \n Keep the `mac_address` field of the response, as it will allow you to identify the Private NIC inside your Instance. If successful, a new network interface will appear inside your Instance, ready to be configured to transmit traffic to other Instances of the same network, with the MAC address returned by the API call.\n \n\n4. **Confirm that the network interface has been plugged in**. To do this, connect to your Instance and run `dmseg`. You should see an output similar to the following:\n\n \ ```bash\n [1579004.592869] pci 0000:00:05.0: [1af4:1000] type 00 class 0x020000\n [1579004.594835] pci 0000:00:05.0: reg 0x10: [io 0x0000-0x003f]\n \ [1579004.596715] pci 0000:00:05.0: reg 0x14: [mem 0x00000000-0x00000fff]\n \ [1579004.598732] pci 0000:00:05.0: reg 0x20: [mem 0x00000000-0x00003fff 64bit pref]\n [1579004.600765] pci 0000:00:05.0: reg 0x30: [mem 0x00000000-0x0007ffff pref]\n [1579004.603819] pci 0000:00:05.0: BAR 6: assigned [mem 0xc0100000-0xc017ffff pref]\n [1579004.604582] pci 0000:00:05.0: BAR 4: assigned [mem 0x100000c000-0x100000ffff 64bit pref]\n [1579004.605555] pci 0000:00:05.0: BAR 1: assigned [mem 0xc0003000-0xc0003fff]\n \ [1579004.606383] pci 0000:00:05.0: BAR 0: assigned [io 0x1000-0x103f]\n [1579004.607212] virtio-pci 0000:00:05.0: enabling device (0000 -> 0003)\n [1579004.625149] PCI Interrupt Link [LNKA] enabled at IRQ 11\n [1579004.644930] virtio_net virtio3 ens5: renamed from eth0\n ```\n\n5. **Confirm the presence of the network interface, and confirm its name if several networks are plugged into your Instance**. To do this, run `ip -br link`. You should see an output similar to the following:\n\n \ ```bash\n lo UNKNOWN 00:00:00:00:00:00 \n \ ens2 UP de:1c:94:44:d0:04 \n \ ens5 DOWN 02:00:00:00:00:31 \n \ ens6 DOWN 02:00:00:00:01:5b \n \ ens7 DOWN 02:00:00:00:01:5e \n \ ```\n\n6. **Configure the Instance's IP address**. DHCP is activated by default on new Private Networks, and automatically assigns IP addresses to resources on the network. If you have an older Private Network, [check whether DHCP is activated](https://www.scaleway.com/en/docs/vpc/reference-content/vpc-migration/) and either activate DHCP for automatic IP configuration, or [manually configure](https://www.scaleway.com/en/docs/instances/reference-content/manual-configuration-private-ips/) the network interface on your Instance if necessary.\n\n\n7. **Delete your Private NIC**, which equates to unplugging your Instance from the Private Network. Use the following call. Ensure you replace `` with the ID of your Instance, `` with the ID of your Private Network, and `` with the ID of your Private NIC.\n\n ```bash\n curl -X DELETE \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n \"https://api.scaleway.com/instance/v1/zones/$SCW_DEFAULT_ZONE/servers//private_nics/\"\n ```\n\n The network interface disappears from your Instance.\n\n8. **Delete your Private Network**. Use the following call. Ensure you replace `` with the ID of your Private Network.\n\n \ ```bash\n curl -X DELETE \\\n -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n -H \"Content-Type: application/json\" \\\n \"https://api.scaleway.com/vpc/v2/regions/$SCW_DEFAULT_REGION/private-networks/\"\n ```\n\n \n Private Networks must be empty to be deleted. Ensure you have detached all resources and deleted all reserved IPs from your network prior to deletion.\n \n\n \n \n - You have a [Scaleway account](https://console.scaleway.com/)\n \ - You have created an [API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page\n - You have [installed `curl`](https://curl.se/download.html)\n \ \n \n\n## Technical information\n\nVPC and Private Networks are available in the Paris, Amsterdam and Warsaw regions, which are represented by the following path parameters:\n\n* `fr-par`\n* `nl-ams`\n* `pl-waw`\n\n## Technical limitations\n\nThe following limitations apply to Scaleway VPC:\n\n- Up to 250 resources can be attached to a Private Network.\n- A resource can be attached to up to 8 Private Networks.\n- The following resource types can be attached to a Private Network:\n - Instances\n - Elastic Metal servers\n - Apple silicon\n - Managed Inference\n - Load Balancers\n - Public Gateways\n \ - Managed Databases for PostgreSQL and MySQL\n - Managed Databases for Redis (only at the time of resource creation)\n - Kubernetes Kapsule (only at the time of resource creation)\n- The MAC address of an Instance in a Private Network cannot be changed.\n- Broadcast and multicast traffic, while supported, are heavily rate-limited.\n\n## Going further\n\nFor more help using Scaleway VPC and Private Networks, check out the following resources:\n- Our [main documentation](https://www.scaleway.com/en/docs/vpc/)\n- The #virtual-private-cloud channel on our [Slack Community](https://www.scaleway.com/en/docs/tutorials/scaleway-slack-community/)\n- Our [support ticketing system](https://www.scaleway.com/en/docs/account/how-to/open-a-support-ticket/)." version: v2 servers: - url: https://api.scaleway.com tags: - name: VPCs description: | A Virtual Private Cloud (VPC) allows you to group your regional Private Networks together. Note that a Private Network can be a part of only one VPC. - name: Private Networks description: | A Private Network allows you to interconnect your Scaleway resources in an isolated and private network. Network reachability is limited to resources that are on the same Private Network. Note that a resource can be a part of multiple private networks. - name: Subnets description: | CIDR subnet management for your Private Networks. - name: Routes description: | Custom routes that will be pushed to your private networks resources. - name: Network ACLs description: | A Network **A**ccess **C**ontrol **L**ist (ACL) is a set of stateless, IP-based rules used to filter packets between Private Networks in a VPC. Each VPC can have a maximum of two Network ACLs: one for IPv4 rules, and one for IPv6 rules. IPv4 and IPv6 rules cannot be mixed in the same ACL. - name: VPC Connectors description: A VPC peering connector constitutes one side of a VPC peering connection. It represents an intent to peer with another VPC. Two matching, compatible VPC connectors create a VPC peering connection. components: schemas: scaleway.vpc.v2.AclRule: type: object properties: protocol: type: string description: Protocol to which this rule applies. enum: - ANY - TCP - UDP - ICMP default: ANY source: type: string description: Source IP range to which this rule applies (CIDR notation with subnet mask). (IP network) example: 1.2.3.4/32 src_port_low: type: integer description: Starting port of the source port range to which this rule applies (inclusive). format: uint32 src_port_high: type: integer description: Ending port of the source port range to which this rule applies (inclusive). format: uint32 destination: type: string description: Destination IP range to which this rule applies (CIDR notation with subnet mask). (IP network) example: 1.2.3.4/32 dst_port_low: type: integer description: Starting port of the destination port range to which this rule applies (inclusive). format: uint32 dst_port_high: type: integer description: Ending port of the destination port range to which this rule applies (inclusive). format: uint32 action: type: string description: Policy to apply to the packet. enum: - unknown_action - accept - drop default: unknown_action description: type: string description: Rule description. nullable: true required: - protocol - source - src_port_low - src_port_high - destination - dst_port_low - dst_port_high - action - description x-properties-order: - protocol - source - src_port_low - src_port_high - destination - dst_port_low - dst_port_high - action - description scaleway.vpc.v2.Action: type: string enum: - unknown_action - accept - drop default: unknown_action scaleway.vpc.v2.AddSubnetsResponse: type: object properties: subnets: type: array description: (IP network) example: - 1.2.3.4/32 items: type: string x-properties-order: - subnets scaleway.vpc.v2.DeleteSubnetsResponse: type: object properties: subnets: type: array description: (IP network) example: - 1.2.3.4/32 items: type: string x-properties-order: - subnets scaleway.vpc.v2.GetAclResponse: type: object properties: rules: type: array items: $ref: '#/components/schemas/scaleway.vpc.v2.AclRule' default_policy: $ref: '#/components/schemas/scaleway.vpc.v2.Action' x-properties-order: - rules - default_policy scaleway.vpc.v2.ListPrivateNetworksResponse: type: object properties: private_networks: type: array items: $ref: '#/components/schemas/scaleway.vpc.v2.PrivateNetwork' total_count: type: integer format: uint32 x-properties-order: - private_networks - total_count scaleway.vpc.v2.ListSubnetOverlapsResponse: type: object properties: subnet_overlaps: type: array items: $ref: '#/components/schemas/scaleway.vpc.v2.ListSubnetOverlapsResponse.SubnetOverlap' total_count: type: integer format: uint64 x-properties-order: - subnet_overlaps - total_count scaleway.vpc.v2.ListSubnetOverlapsResponse.SubnetOverlap: type: object properties: subnet_id: type: string description: (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d subnet: type: string description: (IP network) example: 1.2.3.4/32 target_subnet_id: type: string description: (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d target_subnet: type: string description: (IP network) example: 1.2.3.4/32 x-properties-order: - subnet_id - subnet - target_subnet_id - target_subnet scaleway.vpc.v2.ListSubnetsResponse: type: object properties: subnets: type: array items: $ref: '#/components/schemas/scaleway.vpc.v2.Subnet' total_count: type: integer format: uint32 x-properties-order: - subnets - total_count scaleway.vpc.v2.ListVPCConnectorsResponse: type: object properties: vpc_connectors: type: array items: $ref: '#/components/schemas/scaleway.vpc.v2.VPCConnector' total_count: type: integer format: uint32 x-properties-order: - vpc_connectors - total_count scaleway.vpc.v2.ListVPCsResponse: type: object properties: vpcs: type: array items: $ref: '#/components/schemas/scaleway.vpc.v2.VPC' total_count: type: integer format: uint32 x-properties-order: - vpcs - total_count scaleway.vpc.v2.PrivateNetwork: type: object properties: id: type: string description: Private Network ID. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d name: type: string description: Private Network name. organization_id: type: string description: Scaleway Organization the Private Network belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d project_id: type: string description: Scaleway Project the Private Network belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d region: type: string description: Region in which the Private Network is available. tags: type: array description: Tags of the Private Network. items: type: string created_at: type: string description: Date the Private Network was created. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true updated_at: type: string description: Date the Private Network was last modified. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true subnets: type: array description: Private Network subnets. items: $ref: '#/components/schemas/scaleway.vpc.v2.Subnet' vpc_id: type: string description: VPC the Private Network belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d dhcp_enabled: type: boolean description: Defines whether managed DHCP is enabled for this Private Network. default_route_propagation_enabled: type: boolean description: Defines whether default v4 and v6 routes are propagated for this Private Network. x-properties-order: - id - name - organization_id - project_id - region - tags - created_at - updated_at - subnets - vpc_id - dhcp_enabled - default_route_propagation_enabled scaleway.vpc.v2.Route: type: object properties: id: type: string description: Route ID. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d description: type: string description: Route description. tags: type: array description: Tags of the Route. items: type: string vpc_id: type: string description: VPC the Route belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d destination: type: string description: Destination of the Route. (IP network) example: 1.2.3.4/32 nexthop_resource_id: type: string description: ID of the nexthop resource. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true nexthop_private_network_id: type: string description: ID of the nexthop private network. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true nexthop_vpc_connector_id: type: string description: ID of the nexthop VPC connector. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true created_at: type: string description: Date the Route was created. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true updated_at: type: string description: Date the Route was last modified. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true is_read_only: type: boolean description: Defines whether the route can be modified or deleted by the user. type: type: string description: Type of the Route. enum: - unknown_route_type - subnet - default - custom - interlink - s2s_vpn default: unknown_route_type region: type: string description: Region of the Route. x-properties-order: - id - description - tags - vpc_id - destination - nexthop_resource_id - nexthop_private_network_id - nexthop_vpc_connector_id - created_at - updated_at - is_read_only - type - region scaleway.vpc.v2.SetAclResponse: type: object properties: rules: type: array items: $ref: '#/components/schemas/scaleway.vpc.v2.AclRule' default_policy: $ref: '#/components/schemas/scaleway.vpc.v2.Action' x-properties-order: - rules - default_policy scaleway.vpc.v2.Subnet: type: object properties: id: type: string description: ID of the subnet. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d created_at: type: string description: Subnet creation date. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true updated_at: type: string description: Subnet last modification date. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true subnet: type: string description: Subnet CIDR. (IP network) example: 1.2.3.4/32 project_id: type: string description: Scaleway Project the subnet belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d private_network_id: type: string description: Private Network the subnet belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d vpc_id: type: string description: VPC the subnet belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d x-properties-order: - id - created_at - updated_at - subnet - project_id - private_network_id - vpc_id scaleway.vpc.v2.VPC: type: object properties: id: type: string description: VPC ID. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d name: type: string description: VPC name. organization_id: type: string description: Scaleway Organization the VPC belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d project_id: type: string description: Scaleway Project the VPC belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d region: type: string description: Region of the VPC. tags: type: array description: Tags for the VPC. items: type: string is_default: type: boolean description: Defines whether the VPC is the default one for its Project. created_at: type: string description: Date the VPC was created. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true updated_at: type: string description: Date the VPC was last modified. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true private_network_count: type: integer description: Number of Private Networks within this VPC. format: uint32 routing_enabled: type: boolean description: Defines whether the VPC routes traffic between its Private Networks. custom_routes_propagation_enabled: type: boolean description: Defines whether the VPC advertises custom routes between its Private Networks. x-properties-order: - id - name - organization_id - project_id - region - tags - is_default - created_at - updated_at - private_network_count - routing_enabled - custom_routes_propagation_enabled scaleway.vpc.v2.VPCConnector: type: object properties: id: type: string description: VPC connector ID. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d name: type: string description: VPC connector name. organization_id: type: string description: Scaleway Organization the VPC connector belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d project_id: type: string description: Scaleway Project the VPC connector belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d vpc_id: type: string description: VPC the VPC connector belongs to (origin VPC). (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d target_vpc_id: type: string description: VPC with which the VPC connector is peered (target VPC). (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d status: type: string description: Status of the VPC connector. enum: - unknown_vpc_connector_status - orphan - peered - conflict default: unknown_vpc_connector_status peer_info: type: object description: Peer info of target VPC. Available when status is Peered. properties: organization_id: type: string description: (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d project_id: type: string description: (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d vpc_name: type: string x-properties-order: - organization_id - project_id - vpc_name region: type: string description: Region of the VPC connector. tags: type: array description: Tags for the VPC connector. items: type: string created_at: type: string description: Date the VPC connector was created. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true updated_at: type: string description: Date the VPC connector was last modified. (RFC 3339 format) format: date-time example: "2022-03-22T12:34:56.123456Z" nullable: true x-properties-order: - id - name - organization_id - project_id - vpc_id - target_vpc_id - status - peer_info - region - tags - created_at - updated_at securitySchemes: scaleway: in: header name: X-Auth-Token type: apiKey paths: /vpc/v2/regions/{region}/private-networks: get: tags: - Private Networks operationId: ListPrivateNetworks summary: List Private Networks description: List existing Private Networks in the specified region. By default, the Private Networks returned in the list are ordered by creation date in ascending order, though this can be modified via the order_by field. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: query name: order_by description: Sort order of the returned Private Networks. schema: type: string enum: - created_at_asc - created_at_desc - name_asc - name_desc default: created_at_asc - in: query name: page description: Page number to return, from the paginated results. schema: type: integer format: int32 - in: query name: page_size description: Maximum number of Private Networks to return per page. schema: type: integer format: uint32 - in: query name: name description: Name to filter for. Only Private Networks with names containing this string will be returned. schema: type: string - in: query name: tags description: Tags to filter for. Only Private Networks with one or more matching tags will be returned. schema: type: array items: type: string - in: query name: organization_id description: Organization ID to filter for. Only Private Networks belonging to this Organization will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: project_id description: Project ID to filter for. Only Private Networks belonging to this Project will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: private_network_ids description: Private Network IDs to filter for. Only Private Networks with one of these IDs will be returned. schema: type: array items: type: string - in: query name: vpc_id description: VPC ID to filter for. Only Private Networks belonging to this VPC will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: dhcp_enabled description: DHCP status to filter for. When true, only Private Networks with managed DHCP enabled will be returned. schema: type: boolean responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.ListPrivateNetworksResponse' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks" \ X-Auth-Token:$SCW_SECRET_KEY post: tags: - Private Networks operationId: CreatePrivateNetwork summary: Create a Private Network description: Create a new Private Network. Once created, you can attach Scaleway resources which are in the same region. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.PrivateNetwork' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Name for the Private Network. project_id: type: string description: Scaleway Project in which to create the Private Network. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d tags: type: array description: Tags for the Private Network. items: type: string subnets: type: array description: Private Network subnets CIDR. (IP network) example: - 1.2.3.4/32 items: type: string vpc_id: type: string description: VPC in which to create the Private Network. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true default_route_propagation_enabled: type: boolean description: Defines whether default v4 and v6 routes are propagated for this Private Network. required: - name - project_id x-properties-order: - name - project_id - tags - subnets - vpc_id - default_route_propagation_enabled security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X POST \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{ "default_route_propagation_enabled": false, "name": "string", "project_id": "6170692e-7363-616c-6577-61792e636f6d" }' \ "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks" - lang: HTTPie source: |- http POST "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks" \ X-Auth-Token:$SCW_SECRET_KEY \ default_route_propagation_enabled:=false \ name="string" \ project_id="6170692e-7363-616c-6577-61792e636f6d" /vpc/v2/regions/{region}/private-networks/{private_network_id}: get: tags: - Private Networks operationId: GetPrivateNetwork summary: Get a Private Network description: Retrieve information about an existing Private Network, specified by its Private Network ID. Its full details are returned in the response object. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: private_network_id description: Private Network ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.PrivateNetwork' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}" \ X-Auth-Token:$SCW_SECRET_KEY patch: tags: - Private Networks operationId: UpdatePrivateNetwork summary: Update Private Network description: Update parameters (such as name or tags) of an existing Private Network, specified by its Private Network ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: private_network_id description: Private Network ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.PrivateNetwork' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Name for the Private Network. nullable: true tags: type: array description: Tags for the Private Network. nullable: true items: type: string default_route_propagation_enabled: type: boolean description: Defines whether default v4 and v6 routes are propagated for this Private Network. x-properties-order: - name - tags - default_route_propagation_enabled security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X PATCH \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}" - lang: HTTPie source: |- http PATCH "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}" \ X-Auth-Token:$SCW_SECRET_KEY delete: tags: - Private Networks operationId: DeletePrivateNetwork summary: Delete a Private Network description: Delete an existing Private Network. Note that you must first detach all resources from the network, in order to delete it. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: private_network_id description: Private Network ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "204": description: "" security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X DELETE \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}" - lang: HTTPie source: |- http DELETE "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}" \ X-Auth-Token:$SCW_SECRET_KEY /vpc/v2/regions/{region}/private-networks/{private_network_id}/enable-dhcp: post: tags: - Private Networks operationId: EnableDHCP summary: Enable DHCP on a Private Network description: Enable DHCP managed on an existing Private Network. Note that you will not be able to deactivate it afterwards. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: private_network_id description: Private Network ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.PrivateNetwork' requestBody: required: true content: application/json: schema: type: object security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X POST \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}/enable-dhcp" - lang: HTTPie source: |- http POST "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}/enable-dhcp" \ X-Auth-Token:$SCW_SECRET_KEY /vpc/v2/regions/{region}/private-networks/{private_network_id}/subnets: post: tags: - Subnets operationId: AddSubnets summary: Add subnets to a Private Network description: Add new subnets to an existing Private Network. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: private_network_id description: Private Network ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.AddSubnetsResponse' requestBody: required: true content: application/json: schema: type: object properties: subnets: type: array description: Private Network subnets CIDR. (IP network) example: - 1.2.3.4/32 items: type: string x-properties-order: - subnets security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X POST \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}/subnets" - lang: HTTPie source: |- http POST "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}/subnets" \ X-Auth-Token:$SCW_SECRET_KEY delete: tags: - Subnets operationId: DeleteSubnets summary: Delete subnets from a Private Network description: Delete the specified subnets from a Private Network. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: private_network_id description: Private Network ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.DeleteSubnetsResponse' requestBody: required: true content: application/json: schema: type: object properties: subnets: type: array description: Private Network subnets CIDR. (IP network) example: - 1.2.3.4/32 items: type: string x-properties-order: - subnets security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X DELETE \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}/subnets" - lang: HTTPie source: |- http DELETE "https://api.scaleway.com/vpc/v2/regions/{region}/private-networks/{private_network_id}/subnets" \ X-Auth-Token:$SCW_SECRET_KEY /vpc/v2/regions/{region}/routes: post: tags: - Routes operationId: CreateRoute summary: Create a Route description: Create a new custom Route. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.Route' requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: Route description. tags: type: array description: Tags of the Route. items: type: string vpc_id: type: string description: VPC the Route belongs to. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d destination: type: string description: Destination of the Route. (IP network) example: 1.2.3.4/32 nexthop_resource_id: type: string description: ID of the nexthop resource. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true nexthop_private_network_id: type: string description: ID of the nexthop private network. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true nexthop_vpc_connector_id: type: string description: ID of the nexthop VPC Connector. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true x-properties-order: - description - tags - vpc_id - destination - nexthop_resource_id - nexthop_private_network_id - nexthop_vpc_connector_id security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X POST \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{ "description": "string", "destination": "1.2.3.4/32", "vpc_id": "6170692e-7363-616c-6577-61792e636f6d" }' \ "https://api.scaleway.com/vpc/v2/regions/{region}/routes" - lang: HTTPie source: |- http POST "https://api.scaleway.com/vpc/v2/regions/{region}/routes" \ X-Auth-Token:$SCW_SECRET_KEY \ description="string" \ destination="1.2.3.4/32" \ vpc_id="6170692e-7363-616c-6577-61792e636f6d" /vpc/v2/regions/{region}/routes/{route_id}: get: tags: - Routes operationId: GetRoute summary: Get a Route description: Retrieve details of an existing Route, specified by its Route ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: route_id description: Route ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.Route' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/routes/{route_id}" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/routes/{route_id}" \ X-Auth-Token:$SCW_SECRET_KEY patch: tags: - Routes operationId: UpdateRoute summary: Update Route description: Update parameters of the specified Route. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: route_id description: Route ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.Route' requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: Route description. nullable: true tags: type: array description: Tags of the Route. nullable: true items: type: string destination: type: string description: Destination of the Route. (IP network) example: 1.2.3.4/32 nullable: true nexthop_resource_id: type: string description: ID of the nexthop resource. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true nexthop_private_network_id: type: string description: ID of the nexthop private network. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true nexthop_vpc_connector_id: type: string description: ID of the nexthop VPC connector. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d nullable: true x-properties-order: - description - tags - destination - nexthop_resource_id - nexthop_private_network_id - nexthop_vpc_connector_id security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X PATCH \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "https://api.scaleway.com/vpc/v2/regions/{region}/routes/{route_id}" - lang: HTTPie source: |- http PATCH "https://api.scaleway.com/vpc/v2/regions/{region}/routes/{route_id}" \ X-Auth-Token:$SCW_SECRET_KEY delete: tags: - Routes operationId: DeleteRoute summary: Delete a Route description: Delete a Route specified by its Route ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: route_id description: Route ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "204": description: "" security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X DELETE \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/routes/{route_id}" - lang: HTTPie source: |- http DELETE "https://api.scaleway.com/vpc/v2/regions/{region}/routes/{route_id}" \ X-Auth-Token:$SCW_SECRET_KEY /vpc/v2/regions/{region}/subnets: get: tags: - Subnets operationId: ListSubnets summary: List subnets description: List any Private Network's subnets. See ListPrivateNetworks to list a specific Private Network's subnets. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: query name: order_by description: Sort order of the returned subnets. schema: type: string enum: - created_at_asc - created_at_desc default: created_at_asc - in: query name: page description: Page number to return, from the paginated results. schema: type: integer format: int32 - in: query name: page_size description: Maximum number of Private Networks to return per page. schema: type: integer format: uint32 - in: query name: organization_id description: Organization ID to filter for. Only subnets belonging to this Organization will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: project_id description: Project ID to filter for. Only subnets belonging to this Project will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: subnet_ids description: Subnet IDs to filter for. Only subnets matching the specified IDs will be returned. schema: type: array items: type: string - in: query name: vpc_id description: VPC ID to filter for. Only subnets belonging to this VPC will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.ListSubnetsResponse' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/subnets" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/subnets" \ X-Auth-Token:$SCW_SECRET_KEY /vpc/v2/regions/{region}/vpc-connectors: get: tags: - VPC Connectors operationId: ListVPCConnectors summary: List VPC connectors description: List existing VPC connectors in the specified region. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: query name: order_by description: Sort order of the returned VPC connectors. schema: type: string enum: - created_at_asc - created_at_desc - name_asc - name_desc default: created_at_asc - in: query name: page description: Page number to return, from the paginated results. schema: type: integer format: int32 - in: query name: page_size description: Maximum number of VPC connectors to return per page. schema: type: integer format: uint32 - in: query name: name description: Name to filter for. Only connectors with names containing this string will be returned. schema: type: string - in: query name: tags description: Tags to filter for. Only connectors with one or more matching tags will be returned. schema: type: array items: type: string - in: query name: organization_id description: Organization ID to filter for. Only connectors belonging to this Organization will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: project_id description: Project ID to filter for. Only connectors belonging to this Project will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: vpc_id description: VPC ID to filter for. Only connectors belonging to this VPC will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: target_vpc_id description: Target VPC ID to filter for. Only connectors belonging to this target VPC will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: status description: Status of the VPC connector. schema: type: string enum: - unknown_vpc_connector_status - orphan - peered - conflict default: unknown_vpc_connector_status responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.ListVPCConnectorsResponse' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors" \ X-Auth-Token:$SCW_SECRET_KEY post: tags: - VPC Connectors operationId: CreateVPCConnector summary: Create a VPC connector description: Create a new VPC connector in the specified region. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.VPCConnector' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Name for the VPC connector. tags: type: array description: Tags for the VPC connector. items: type: string vpc_id: type: string description: VPC ID to filter for. Only connectors belonging to this VPC will be returned. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d target_vpc_id: type: string description: Target VPC ID to filter for. Only connectors belonging to this target VPC will be returned. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d required: - name x-properties-order: - name - tags - vpc_id - target_vpc_id security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X POST \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "target_vpc_id": "6170692e-7363-616c-6577-61792e636f6d", "vpc_id": "6170692e-7363-616c-6577-61792e636f6d" }' \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors" - lang: HTTPie source: |- http POST "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors" \ X-Auth-Token:$SCW_SECRET_KEY \ name="string" \ target_vpc_id="6170692e-7363-616c-6577-61792e636f6d" \ vpc_id="6170692e-7363-616c-6577-61792e636f6d" /vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}: get: tags: - VPC Connectors operationId: GetVPCConnector summary: Get a VPC connector description: Retrieve details of an existing VPC connector, specified by its VPC connector ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_connector_id description: VPC connector ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.VPCConnector' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}" \ X-Auth-Token:$SCW_SECRET_KEY patch: tags: - VPC Connectors operationId: UpdateVPCConnector summary: Update VPC connector description: Update parameters including name and tags of the specified VPC connector. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_connector_id description: VPC connector ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.VPCConnector' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Name for the VPC connector. nullable: true tags: type: array description: Tags for the VPC connector. nullable: true items: type: string x-properties-order: - name - tags security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X PATCH \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}" - lang: HTTPie source: |- http PATCH "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}" \ X-Auth-Token:$SCW_SECRET_KEY delete: tags: - VPC Connectors operationId: DeleteVPCConnector summary: Delete a VPC connector description: Delete a VPC connector specified by its VPC connector ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_connector_id description: VPC connector ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "204": description: "" security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X DELETE \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}" - lang: HTTPie source: |- http DELETE "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}" \ X-Auth-Token:$SCW_SECRET_KEY /vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}/subnet-overlaps: get: tags: - VPC Connectors operationId: ListSubnetOverlaps summary: List subnet overlaps. description: List subnet overlaps between the VPCConnector VPC and the target VPC or for a specific subnet if specified. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_connector_id description: VPCConnector ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: order_by description: Sort order of the returned Subnet overlaps. schema: type: string enum: - subnet_asc - subnet_desc - target_subnet_asc - target_subnet_desc default: subnet_asc - in: query name: page description: Page number to return, from the paginated results. schema: type: integer format: int32 - in: query name: page_size description: Maximum number of Subnet overlaps to return per page. schema: type: integer format: uint32 responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.ListSubnetOverlapsResponse' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}/subnet-overlaps" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/vpc-connectors/{vpc_connector_id}/subnet-overlaps" \ X-Auth-Token:$SCW_SECRET_KEY /vpc/v2/regions/{region}/vpcs: get: tags: - VPCs operationId: ListVPCs summary: List VPCs description: List existing VPCs in the specified region. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: query name: order_by description: Sort order of the returned VPCs. schema: type: string enum: - created_at_asc - created_at_desc - name_asc - name_desc default: created_at_asc - in: query name: page description: Page number to return, from the paginated results. schema: type: integer format: int32 - in: query name: page_size description: Maximum number of VPCs to return per page. schema: type: integer format: uint32 - in: query name: name description: Name to filter for. Only VPCs with names containing this string will be returned. schema: type: string - in: query name: tags description: Tags to filter for. Only VPCs with one or more matching tags will be returned. schema: type: array items: type: string - in: query name: organization_id description: Organization ID to filter for. Only VPCs belonging to this Organization will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: project_id description: Project ID to filter for. Only VPCs belonging to this Project will be returned. (UUID format) schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: is_default description: Defines whether to filter only for VPCs which are the default one for their Project. schema: type: boolean - in: query name: routing_enabled description: Defines whether to filter only for VPCs which route traffic between their Private Networks. schema: type: boolean responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.ListVPCsResponse' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs" \ X-Auth-Token:$SCW_SECRET_KEY post: tags: - VPCs operationId: CreateVPC summary: Create a VPC description: Create a new VPC in the specified region. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.VPC' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Name for the VPC. project_id: type: string description: Scaleway Project in which to create the VPC. (UUID format) example: 6170692e-7363-616c-6577-61792e636f6d tags: type: array description: Tags for the VPC. items: type: string enable_routing: type: boolean description: Enable routing between Private Networks in the VPC. required: - name - project_id x-properties-order: - name - project_id - tags - enable_routing security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X POST \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{ "enable_routing": false, "name": "string", "project_id": "6170692e-7363-616c-6577-61792e636f6d" }' \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs" - lang: HTTPie source: |- http POST "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs" \ X-Auth-Token:$SCW_SECRET_KEY \ enable_routing:=false \ name="string" \ project_id="6170692e-7363-616c-6577-61792e636f6d" /vpc/v2/regions/{region}/vpcs/{vpc_id}: get: tags: - VPCs operationId: GetVPC summary: Get a VPC description: Retrieve details of an existing VPC, specified by its VPC ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_id description: VPC ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.VPC' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}" \ X-Auth-Token:$SCW_SECRET_KEY patch: tags: - VPCs operationId: UpdateVPC summary: Update VPC description: Update parameters including name and tags of the specified VPC. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_id description: VPC ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.VPC' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Name for the VPC. nullable: true tags: type: array description: Tags for the VPC. nullable: true items: type: string x-properties-order: - name - tags security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X PATCH \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}" - lang: HTTPie source: |- http PATCH "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}" \ X-Auth-Token:$SCW_SECRET_KEY delete: tags: - VPCs operationId: DeleteVPC summary: Delete a VPC description: Delete a VPC specified by its VPC ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_id description: VPC ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "204": description: "" security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X DELETE \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}" - lang: HTTPie source: |- http DELETE "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}" \ X-Auth-Token:$SCW_SECRET_KEY /vpc/v2/regions/{region}/vpcs/{vpc_id}/acl-rules: get: tags: - Network ACLs operationId: GetAcl summary: Get ACL Rules for VPC description: Retrieve a list of ACL rules for a VPC, specified by its VPC ID. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_id description: ID of the Network ACL's VPC. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d - in: query name: is_ipv6 description: Defines whether this set of ACL rules is for IPv6 (false = IPv4). Each Network ACL can have rules for only one IP type. required: true schema: type: boolean responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.GetAclResponse' security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X GET \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}/acl-rules?is_ipv6=false" - lang: HTTPie source: |- http GET "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}/acl-rules" \ X-Auth-Token:$SCW_SECRET_KEY \ is_ipv6==false put: tags: - Network ACLs operationId: SetAcl summary: Set VPC ACL rules description: Set the list of ACL rules and the default routing policy for a VPC. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_id description: ID of the Network ACL's VPC. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.SetAclResponse' requestBody: required: true content: application/json: schema: type: object properties: rules: type: array description: List of Network ACL rules. items: $ref: '#/components/schemas/scaleway.vpc.v2.AclRule' is_ipv6: type: boolean description: Defines whether this set of ACL rules is for IPv6 (false = IPv4). Each Network ACL can have rules for only one IP type. default_policy: type: string description: Action to take for packets which do not match any rules. enum: - unknown_action - accept - drop default: unknown_action required: - rules - is_ipv6 - default_policy x-properties-order: - rules - is_ipv6 - default_policy security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X PUT \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{ "default_policy": "unknown_action", "is_ipv6": false, "rules": [ "" ] }' \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}/acl-rules" - lang: HTTPie source: |- http PUT "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}/acl-rules" \ X-Auth-Token:$SCW_SECRET_KEY \ default_policy="unknown_action" \ is_ipv6:=false \ rules:='[ "" ]' /vpc/v2/regions/{region}/vpcs/{vpc_id}/enable-routing: post: tags: - VPCs operationId: EnableRouting summary: Enable routing on a VPC description: Enable routing on an existing VPC. Note that you will not be able to deactivate it afterwards. parameters: - in: path name: region description: The region you want to target required: true schema: type: string enum: - fr-par - nl-ams - pl-waw - in: path name: vpc_id description: VPC ID. (UUID format) required: true schema: type: string example: 6170692e-7363-616c-6577-61792e636f6d responses: "200": description: "" content: application/json: schema: $ref: '#/components/schemas/scaleway.vpc.v2.VPC' requestBody: required: true content: application/json: schema: type: object security: - scaleway: [] x-codeSamples: - lang: cURL source: |- curl -X POST \ -H "X-Auth-Token: $SCW_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{}' \ "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}/enable-routing" - lang: HTTPie source: |- http POST "https://api.scaleway.com/vpc/v2/regions/{region}/vpcs/{vpc_id}/enable-routing" \ X-Auth-Token:$SCW_SECRET_KEY