openapi: 3.1.0
info:
  title: InterLink API
  description: "Scaleway InterLink connects your infrastructure (on-premise, in a
    private cloud, or in another public cloud) with your Scaleway VPC\n\nThis connection
    bypasses the public internet, offering more reliable, low-latency and secure connectivity
    compared to typical internet-based VPNs.\n\nTo simplify and streamline the processes
    of establishing a physical connection between our networks, we have pre-selected
    a set of network providers (later called Partners) with direct-connectivity in
    our datacenters. By choosing the datacenter location (also called PoP - Point
    Of Presence) where both you and the partner are present, you will re-use existing
    connectivity with Scaleway while still having layer 2 isolation to your VPC with
    guaranteed bandwidth (from 100Mbps up to 25Gbps depending on location). This **Hosted
    Link** setup is fully automated and BGP sessions can be set up in a few minutes.\n\nOnce
    connection is established with your VPC, Interlink allows you control BGP route
    propagation: you can fine tune which IPv4 or IPv6 prefixes are allowed to flow.\n\nFor
    more advanced use cases, we also provide **Self-Hosted Links**, where the whole
    physical connection is dedicated to one customer. The customer can then use this
    connection to create one or many links for themselves (logical InterLink resources).\n\n\n\n\n\n##
    Concepts\n\n### PoP\n\nA Point Of Presence (also known as a \"PoP\", or \"location\"),
    is a datacenter location where a InterLink connection is available. They are facilitated
    by partners, providing the means for a customer to create an InterLink.\n\n###
    Link\n\nA link is the logical InterLink resource, representing a BGP peering session.
    It comes in two flavors :\n\n- **Hosted Links** use a pre-established physical
    connection between the Partner router and a Scaleway InterLink switch. Create
    a **Hosted Link** by selecting a Partner already present in the PoP where you
    want connectivity.\n- **Self-Hosted Links** require a **Dedicated Connection**
    between a customer router and a Scaleway Interlink switch. The whole bandwidth
    of the physical connection can then be used by this single customer. They can
    create one or many **Self-Hosted Links** using this dedicated connection.\n\n###
    Partner\n\nA partner is a third-party service provider who facilitates a connection
    between the customer's infrastructure and their Scaleway VPC, allowing customers
    to create hosted InterLinks.\n\nIf you are a Network Service Provider and want
    to provide connectivity services through Scaleway's InterLink, please [contact
    us](https://www.scaleway.com/en/contact/).\n\n## Dedicated Connection\n\nA dedicated
    connection represents the physical connection between the network equipment of
    a customer and that of Scaleway, where both are located in the same datacenter.
    Establishing a dedicated connection requires manual intervention and approval
    (through Letter Of Authorization) on both sides. Please contact your sales representative
    to purchase a dedicated connection. In the future, we will provide an automated
    workflow for this process.\n\n\n\n\nRefer to our [dedicated concepts page](https://www.scaleway.com/en/docs/interlink/concepts/)
    to find definitions of all InterLink-related terminology.\n\n## Quickstart\n\n1.
    Configure your environment variables.\n\n   <Message type=\"note\">\n   This is
    an optional step that seeks to simplify your usage of the InterLink API.\n   </Message>\n\n
    \  ```bash\n   export SCW_SECRET_KEY=\"<API secret key>\"\n   export SCW_DEFAULT_REGION=\"<Scaleway
    default region>\"\n   export SCW_PROJECT_ID=\"<Scaleway Project ID>\"\n   export
    SCW_PARTNER_ID=\"<Scaleway Partner ID>\"\n   export SCW_POP_ID=\"<Scaleway PoP
    ID>\"\n   ```\n\n2. **Create a Link**: run the following command to create a Link.
    You can customize the details in the payload to your needs, using the table below
    to help.\n\n   Just after creation, links have a status of **Configuring** while
    we set up infrastructure on the Scaleway side. A few moments later, the status
    lands on **Requested** and will require partner approval and configuration before
    being **Active**. See our [dedicated documentation](https://www.scaleway.com/en/docs/interlink/reference-content/provisioning/)
    for full information on the provisioning process, including steps you as the user
    need to take to complete provisioning.\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/interlink/v1beta1/regions/$SCW_DEFAULT_REGION/links\"
    \\\n     -d '{\n       \"project_id\":\"'\"$SCW_PROJECT_ID\"'\",\n       \"partner_id\":\"'\"$SCW_PARTNER_ID\"'\",\n
    \      \"pop_id\":\"'\"$SCW_POP_ID\"'\",\n       \"bandwidth_mbps\": \"100\",\n
    \      \"name\": \"My Hosted Link\",\n       \"tags\": [\"test\", \"another tag\"]\n
    \    }'\n   ```\n\n   | Parameter      | Description       | Valid values OR Example
    \              |\n   | -------------- | ----------------- | -------------------------------------
    |\n   | project_id     | ID of project     | `any valid project UUID`              |\n
    \  | partner_id     | ID of Partner     | `any valid partner UUID`              |\n
    \  | pop_id         | ID of PoP         | `any valid pop UUID`                  |\n
    \  | bandwidth_mbps | Bandwidth in Mbps | `50` to `25000` depending on capacity
    |\n   | name           | Name for Link     | `desired name for link`               |\n
    \  | tags           | Tags for Link     | `a list of tags`                      |\n\n3.
    **Get a list of your Links**: run the following command to get a list of all the
    links in your account, with their details:\n\n   ```bash\n   curl -X GET \\\n
    \    -H \"Content-Type: application/json\" \\\n     -H \"X-Auth-Token: $SCW_SECRET_KEY\"
    \\\n     \"https://api.scaleway.com/interlink/v1beta1/regions/$SCW_DEFAULT_REGION/links\"
    \\\n   ```\n\n4. **Configure your Link**: When your link has been provisioned
    and has **active** status, you must attach it to a VPC, create and attach a routing
    policy, and enable route propagation. Only when these steps are completed can
    traffic flow across your InterLink.\n\n   Refer to the [documentation](https://www.scaleway.com/en/docs/interlink/)
    for help with these steps if necessary.\n\n5. **Delete your Link**: run the following
    command to delete a link. Ensure that you replace `{link-id}` in the URL with
    the ID of the link you want to delete.\n\n   Note that as well as deleting the
    link here on the Scaleway side, it is also necessary to request deletion from
    the partner on their side. Only when this action has been carried out on both
    sides will the resource be completely deleted.\n\n   ```bash\n   curl -X DELETE
    \\\n     -H \"Content-Type: application/json\" \\\n     -H \"X-Auth-Token: $SCW_SECRET_KEY\"
    \\\n     \"https://api.scaleway.com/interlink/v1beta1/regions/$SCW_DEFAULT_REGION/links/{link-id}\"\n
    \  ```\n\n\n<Message type=\"requirement\">\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
    \ </Message>\n  \n\n## Technical information\n\n- IP routing information between
    your infrastructure & your VPC is propagated using BGP, so be sure to allow incoming
    BGP routes from the configured Scaleway peer to be installed on your side. By
    default, our Interlink switches blocks all routes from being propagated. You must
    manually attach a routing policy and enable route propagation to remove this safety
    net (see step 4 of the Quickstart above).\n\n### Regions\n\nThe Scaleway Interlink
    API is a **regional** API, meaning that each call must specify in its path parameters
    the Region for the resources concerned by the call.\n\nThe following Regions are
    available for Interlink:\n\n| Name   | API ID   |\n| ------ | -------- |\n| Paris
    \ | `fr-par` |\n| Milan  | `it-mil` |\n| Warsaw | `pl-waw` |\n\n## Going further\n\nFor
    more help using Scaleway InterLink, check out the following resources:\n\n- Our
    [main documentation](https://www.scaleway.com/en/docs/interlink/)\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: v1beta1
servers:
- url: https://api.scaleway.com
tags:
- name: Partners
  description: |
    A partner is a third-party service provider who facilitates the connection between the a customer's infrastructure and their Scaleway VPC, via an InterLink connection.
- name: Points Of Presence
  description: "A Point Of Presence (also known as a \"PoP\", or \"location\"), is
    a datacenter location where a InterLink connection is available. They are facilitated
    by partners, providing the means for a customer to create an InterLink session.
    \n"
- name: Connections
  description: |
    A connection represents the physical InterLink resource. This is a physical connection of Scaleway's network equipment with that of a self-hosted user or partner located in the same datacenter. Once created, a partner's connection will then typically be shared, facilitating many logical InterLinks for different hosted users. A self-hosted user's connection is their own dedicated connection, which they can use to create one or many logical InterLinks (links) for themselves.
- name: Links
  description: |
    A link represents the logical InterLink resource. This is a BGP peering session established between peer router (either partners or end customer's) and a Scaleway InterLink switch. Self-hosted links are facilitated by end users' own dedicated physical connections, while hosted links are facilitated via a partner's shared physical connection.
- name: Routing Policies
  description: |
    By default, all routes across the InterLink (between peer and attached VPC) are blocked. Routing policies allow you to set filters to define the IP prefixes to allow.
components:
  schemas:
    scaleway.interlink.v1beta1.DedicatedConnection:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the dedicated connection. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        project_id:
          type: string
          description: Project ID. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        organization_id:
          type: string
          description: Organization ID. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        status:
          type: string
          description: Status of the dedicated connection.
          enum:
          - unknown_status
          - created
          - configuring
          - failed
          - active
          - disabled
          - deleted
          - locked
          default: unknown_status
        name:
          type: string
          description: Name of the dedicated connection.
        tags:
          type: array
          description: List of tags associated with the dedicated connection.
          items:
            type: string
        pop_id:
          type: string
          description: ID of the PoP where the dedicated connection is located. (UUID
            format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        bandwidth_mbps:
          type: integer
          description: Bandwidth size of the dedicated connection.
          format: uint64
        available_link_bandwidths:
          type: array
          description: Size of the links supported on this dedicated connection.
          items:
            type: integer
            format: uint64
        created_at:
          type: string
          description: Creation date of the dedicated connection. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last modification date of the dedicated connection. (RFC 3339
            format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        demarcation_info:
          type: string
          description: Demarcation details required by the data center to set up the
            supporting Cross Connect. This generally includes the physical space in
            the facility, the cabinet or rack the connection should land in, the patch
            panel to go in, the port designation, and the media type.
          nullable: true
        vlan_range:
          type: object
          description: Range in which to pick vlan for self-hosted links on this dedicated
            connection. Both start & end are included. Any range defined here must
            be itself included in the greater allowed range of vlans from 1500 to
            3899 (this range is hardware dependent and can change over time, but actual
            range will be enforced).
          properties:
            start:
              type: integer
              format: uint32
            end:
              type: integer
              format: uint32
          x-properties-order:
          - start
          - end
        region:
          type: string
          description: Region of the dedicated connection.
      x-properties-order:
      - id
      - project_id
      - organization_id
      - status
      - name
      - tags
      - pop_id
      - bandwidth_mbps
      - available_link_bandwidths
      - created_at
      - updated_at
      - demarcation_info
      - vlan_range
      - region
    scaleway.interlink.v1beta1.Link:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the link. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        project_id:
          type: string
          description: Project ID. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        organization_id:
          type: string
          description: Organization ID. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        name:
          type: string
          description: Name of the link.
        tags:
          type: array
          description: List of tags associated with the link.
          items:
            type: string
        pop_id:
          type: string
          description: ID of the PoP where the link's corresponding connection is
            located. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        bandwidth_mbps:
          type: integer
          description: Rate limited bandwidth of the link.
          format: uint64
        status:
          type: string
          description: Status of the link.
          enum:
          - unknown_link_status
          - configuring
          - failed
          - requested
          - refused
          - expired
          - provisioning
          - active
          - limited_connectivity
          - all_down
          - deprovisioning
          - deleted
          - locked
          - ready
          default: unknown_link_status
        bgp_v4_status:
          type: string
          description: Status of the link's BGP IPv4 session.
          enum:
          - unknown_bgp_status
          - up
          - down
          - disabled
          default: unknown_bgp_status
        bgp_v6_status:
          type: string
          description: Status of the link's BGP IPv6 session.
          enum:
          - unknown_bgp_status
          - up
          - down
          - disabled
          default: unknown_bgp_status
        vpc_id:
          type: string
          description: ID of the Scaleway VPC attached to the link. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
        routing_policy_id:
          type: string
          description: Deprecated. Use routing_policy_v4_id or routing_policy_v6_id
            instead. (UUID format)
          deprecated: true
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
        enable_route_propagation:
          type: boolean
          description: Defines whether route propagation is enabled or not. To enable
            or disable route propagation, use the dedicated endpoint.
        created_at:
          type: string
          description: Creation date of the link. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last modification date of the link. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        partner:
          type: object
          description: Partner host information.
          properties:
            partner_id:
              type: string
              description: ID of the partner facilitating the link. (UUID format)
              example: 6170692e-7363-616c-6577-61792e636f6d
            pairing_key:
              type: string
              description: Used to identify a link from a user or partner's point
                of view.
            disapproved_reason:
              type: string
              description: Reason given by partner to explain why they did not approve
                the request for a hosted link.
              nullable: true
          nullable: true
          x-properties-order:
          - partner_id
          - pairing_key
          - disapproved_reason
          x-one-of: host_info
        self:
          type: object
          description: Self-host information.
          properties:
            connection_id:
              type: string
              description: Dedicated physical connection supporting the link. (UUID
                format)
              example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
          x-properties-order:
          - connection_id
          x-one-of: host_info
        vlan:
          type: integer
          description: VLAN of the link.
          format: uint32
        scw_bgp_config:
          type: object
          description: BGP configuration on Scaleway's side.
          properties:
            asn:
              type: integer
              description: AS Number of the BGP peer.
              format: uint32
            ipv4:
              type: string
              description: IPv4 address of the BGP peer. (IP network)
              example: 1.2.3.4/32
            ipv6:
              type: string
              description: IPv6 address of the BGP peer. (IP network)
              example: 1.2.3.4/32
          x-properties-order:
          - asn
          - ipv4
          - ipv6
        peer_bgp_config:
          type: object
          description: BGP configuration on peer's side (on-premises or other hosting
            provider).
          properties:
            asn:
              type: integer
              description: AS Number of the BGP peer.
              format: uint32
            ipv4:
              type: string
              description: IPv4 address of the BGP peer. (IP network)
              example: 1.2.3.4/32
            ipv6:
              type: string
              description: IPv6 address of the BGP peer. (IP network)
              example: 1.2.3.4/32
          x-properties-order:
          - asn
          - ipv4
          - ipv6
        routing_policy_v4_id:
          type: string
          description: ID of the routing policy IPv4 attached to the link. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
        routing_policy_v6_id:
          type: string
          description: ID of the routing policy IPv6 attached to the link. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
          nullable: true
        region:
          type: string
          description: Region of the link.
      x-properties-order:
      - id
      - project_id
      - organization_id
      - name
      - tags
      - pop_id
      - bandwidth_mbps
      - status
      - bgp_v4_status
      - bgp_v6_status
      - vpc_id
      - routing_policy_id
      - enable_route_propagation
      - created_at
      - updated_at
      - partner
      - self
      - vlan
      - scw_bgp_config
      - peer_bgp_config
      - routing_policy_v4_id
      - routing_policy_v6_id
      - region
    scaleway.interlink.v1beta1.ListDedicatedConnectionsResponse:
      type: object
      properties:
        connections:
          type: array
          description: List of connections on current page.
          items:
            $ref: '#/components/schemas/scaleway.interlink.v1beta1.DedicatedConnection'
        total_count:
          type: integer
          description: Total number of connections returned.
          format: uint64
      x-properties-order:
      - connections
      - total_count
    scaleway.interlink.v1beta1.ListLinksResponse:
      type: object
      properties:
        links:
          type: array
          description: List of links on the current page.
          items:
            $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
        total_count:
          type: integer
          description: Total number of links.
          format: uint64
      x-properties-order:
      - links
      - total_count
    scaleway.interlink.v1beta1.ListPartnersResponse:
      type: object
      properties:
        partners:
          type: array
          description: List of partners on current page.
          items:
            $ref: '#/components/schemas/scaleway.interlink.v1beta1.Partner'
        total_count:
          type: integer
          description: Total number of partners returned.
          format: uint64
      x-properties-order:
      - partners
      - total_count
    scaleway.interlink.v1beta1.ListPopsResponse:
      type: object
      properties:
        pops:
          type: array
          description: List of PoPs on the current page.
          items:
            $ref: '#/components/schemas/scaleway.interlink.v1beta1.Pop'
        total_count:
          type: integer
          description: Total number of PoPs.
          format: uint64
      x-properties-order:
      - pops
      - total_count
    scaleway.interlink.v1beta1.ListRoutingPoliciesResponse:
      type: object
      properties:
        routing_policies:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.interlink.v1beta1.RoutingPolicy'
        total_count:
          type: integer
          format: uint64
      x-properties-order:
      - routing_policies
      - total_count
    scaleway.interlink.v1beta1.Partner:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the partner. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        name:
          type: string
          description: Name of the partner.
        contact_email:
          type: string
          description: Contact email address of partner.
        logo_url:
          type: string
          description: Image URL of the partner's logo.
        portal_url:
          type: string
          description: URL of the partner's portal.
        created_at:
          type: string
          description: Creation date of the partner. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last modification date of the partner. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - id
      - name
      - contact_email
      - logo_url
      - portal_url
      - created_at
      - updated_at
    scaleway.interlink.v1beta1.Pop:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the PoP. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        name:
          type: string
          description: 'Name of the PoP. It is the common reference of Hosting DC
            (ex: TH2).'
        hosting_provider_name:
          type: string
          description: Name of the PoP's hosting provider, e.g. Telehouse for TH2
            or OpCore for DC3.
        address:
          type: string
          description: Physical address of the PoP.
        city:
          type: string
          description: City where PoP is located.
        logo_url:
          type: string
          description: Image URL of the PoP's logo.
        available_link_bandwidths_mbps:
          type: array
          description: Available bandwidth in Mbits/s for future hosted links from
            available connections in this PoP.
          items:
            type: integer
            format: uint64
        display_name:
          type: string
          description: 'Pretty name of the PoP. Includes name, hosting provider and
            location information (ex: Paris - TeleHouse TH2).'
        region:
          type: string
          description: Region of the PoP.
      x-properties-order:
      - id
      - name
      - hosting_provider_name
      - address
      - city
      - logo_url
      - available_link_bandwidths_mbps
      - display_name
      - region
    scaleway.interlink.v1beta1.RoutingPolicy:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the routing policy. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        project_id:
          type: string
          description: Project ID. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        organization_id:
          type: string
          description: Organization ID. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        name:
          type: string
          description: Name of the routing policy.
        tags:
          type: array
          description: List of tags associated with the routing policy.
          items:
            type: string
        prefix_filter_in:
          type: array
          description: IP prefixes to accept from the peer (ranges of route announcements
            to accept). (IP network)
          example:
          - 1.2.3.4/32
          items:
            type: string
        prefix_filter_out:
          type: array
          description: IP prefix filters to advertise to the peer (ranges of routes
            to advertise). (IP network)
          example:
          - 1.2.3.4/32
          items:
            type: string
        created_at:
          type: string
          description: Creation date of the routing policy. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last modification date of the routing policy. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        is_ipv6:
          type: boolean
          description: IP prefixes version of the routing policy.
        region:
          type: string
          description: Region of the routing policy.
      x-properties-order:
      - id
      - project_id
      - organization_id
      - name
      - tags
      - prefix_filter_in
      - prefix_filter_out
      - created_at
      - updated_at
      - is_ipv6
      - region
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /interlink/v1beta1/regions/{region}/dedicated-connections:
    get:
      tags:
      - Connections
      operationId: ListDedicatedConnections
      summary: List dedicated connections
      description: For self-hosted users, list their dedicated physical connections
        in a given region. By default, the connections returned in the list are ordered
        by name 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
          - it-mil
          - nl-ams
          - pl-waw
      - in: query
        name: order_by
        description: Order in which to return results.
        schema:
          type: string
          enum:
          - created_at_asc
          - created_at_desc
          - updated_at_asc
          - updated_at_desc
          - name_asc
          - name_desc
          - status_asc
          - status_desc
          default: created_at_asc
      - in: query
        name: page
        description: Page number to return.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of connections to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: project_id
        description: Project ID to filter for. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: organization_id
        description: Organization ID to filter for. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: name
        description: Link name to filter for.
        schema:
          type: string
      - in: query
        name: tags
        description: Tags to filter for.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: status
        description: Connection status to filter for.
        schema:
          type: string
          enum:
          - unknown_status
          - created
          - configuring
          - failed
          - active
          - disabled
          - deleted
          - locked
          default: unknown_status
      - in: query
        name: bandwidth_mbps
        description: Filter for dedicated connections with this bandwidth size.
        schema:
          type: integer
          format: uint64
      - in: query
        name: pop_id
        description: Filter for dedicated connections present in this PoP. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.ListDedicatedConnectionsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/dedicated-connections"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/dedicated-connections" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/dedicated-connections/{connection_id}:
    get:
      tags:
      - Connections
      operationId: GetDedicatedConnection
      summary: Get a dedicated connection
      description: For self-hosted users, get a dedicated physical connection corresponding
        to the given ID. The response object includes information such as the connection's
        name, status and total bandwidth.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: connection_id
        description: ID of connection to get. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.DedicatedConnection'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/dedicated-connections/{connection_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/dedicated-connections/{connection_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/links:
    get:
      tags:
      - Links
      operationId: ListLinks
      summary: List links
      description: List all your links (InterLink connections). A number of filters
        are available, including Project ID, name, tags and status.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: query
        name: order_by
        description: Order in which to return results.
        schema:
          type: string
          enum:
          - created_at_asc
          - created_at_desc
          - name_asc
          - name_desc
          - status_asc
          - status_desc
          default: created_at_asc
      - in: query
        name: page
        description: Page number to return.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of links to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: project_id
        description: Project ID to filter for. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: organization_id
        description: Organization ID to filter for. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: name
        description: Link name to filter for.
        schema:
          type: string
      - in: query
        name: tags
        description: Tags to filter for.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: status
        description: Link status to filter for.
        schema:
          type: string
          enum:
          - unknown_link_status
          - configuring
          - failed
          - requested
          - refused
          - expired
          - provisioning
          - active
          - limited_connectivity
          - all_down
          - deprovisioning
          - deleted
          - locked
          - ready
          default: unknown_link_status
      - in: query
        name: bgp_v4_status
        description: BGP IPv4 status to filter for.
        schema:
          type: string
          enum:
          - unknown_bgp_status
          - up
          - down
          - disabled
          default: unknown_bgp_status
      - in: query
        name: bgp_v6_status
        description: BGP IPv6 status to filter for.
        schema:
          type: string
          enum:
          - unknown_bgp_status
          - up
          - down
          - disabled
          default: unknown_bgp_status
      - in: query
        name: pop_id
        description: Filter for links attached to this PoP (via connections). (UUID
          format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: bandwidth_mbps
        description: Filter for link bandwidth (in Mbps).
        schema:
          type: integer
          format: uint64
      - in: query
        name: partner_id
        description: Filter for links hosted by this partner. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: vpc_id
        description: Filter for links attached to this VPC. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: routing_policy_id
        description: Filter for links using this routing policy. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: pairing_key
        description: Filter for the link with this pairing_key.
        schema:
          type: string
      - in: query
        name: kind
        description: Filter for hosted or self-hosted links.
        schema:
          type: string
          enum:
          - hosted
          - self_hosted
          default: hosted
      - in: query
        name: connection_id
        description: Filter for links self-hosted on this connection. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.ListLinksResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Links
      operationId: CreateLink
      summary: Create a link
      description: Create a link (InterLink session / logical InterLink resource)
        in a given PoP, specifying its various configuration details. Links can either
        be hosted (facilitated by partners' shared physical connections) or self-hosted
        (for users who have purchased a dedicated physical connection).
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: ID of the Project to create the link in. (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                name:
                  type: string
                  description: Name of the link.
                tags:
                  type: array
                  description: List of tags to apply to the link.
                  items:
                    type: string
                pop_id:
                  type: string
                  description: PoP (location) where the link will be created. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                bandwidth_mbps:
                  type: integer
                  description: Desired bandwidth for the link. Must be compatible
                    with available link bandwidths and remaining bandwidth capacity
                    of the connection.
                  format: uint64
                connection_id:
                  type: string
                  description: If set, creates a self-hosted link using this dedicated
                    physical connection. As the customer, specify the ID of the physical
                    connection you already have for this link. (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: host
                partner_id:
                  type: string
                  description: If set, creates a hosted link on a partner's connection.
                    Specify the ID of the chosen partner, who already has a shared
                    connection with available bandwidth. (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                  x-one-of: host
                peer_asn:
                  type: integer
                  description: For self-hosted links we need the peer AS Number to
                    establish BGP session. If not given, a default one will be assigned.
                  format: uint32
                  nullable: true
                vlan:
                  type: integer
                  description: For self-hosted links only, it is possible to choose
                    the VLAN ID. If the VLAN is not available (ie already taken or
                    out of range), an error is returned.
                  format: uint32
                  nullable: true
                routing_policy_v4_id:
                  type: string
                  description: If set, attaches this routing policy containing IPv4
                    prefixes to the Link. Hence, a BGP IPv4 session will be created.
                    (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
                routing_policy_v6_id:
                  type: string
                  description: If set, attaches this routing policy containing IPv6
                    prefixes to the Link. Hence, a BGP IPv6 session will be created.
                    (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                  nullable: true
              required:
              - name
              - pop_id
              - bandwidth_mbps
              x-properties-order:
              - project_id
              - name
              - tags
              - pop_id
              - bandwidth_mbps
              - connection_id
              - partner_id
              - peer_asn
              - vlan
              - routing_policy_v4_id
              - routing_policy_v6_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "bandwidth_mbps": 42,
              "name": "string",
              "pop_id": "6170692e-7363-616c-6577-61792e636f6d",
              "project_id": "6170692e-7363-616c-6577-61792e636f6d"
            }' \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links" \
            X-Auth-Token:$SCW_SECRET_KEY \
            bandwidth_mbps:=42 \
            name="string" \
            pop_id="6170692e-7363-616c-6577-61792e636f6d" \
            project_id="6170692e-7363-616c-6577-61792e636f6d"
  /interlink/v1beta1/regions/{region}/links/{link_id}:
    get:
      tags:
      - Links
      operationId: GetLink
      summary: Get a link
      description: Get a link (InterLink session / logical InterLink resource) for
        the given link ID. The response object includes information about the link's
        various configuration details.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link to get. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Links
      operationId: UpdateLink
      summary: Update a link
      description: Update an existing link, specified by its link ID. Only its name
        and tags can be updated.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link to update. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the link.
                  nullable: true
                tags:
                  type: array
                  description: List of tags to apply to the link.
                  nullable: true
                  items:
                    type: string
                peer_asn:
                  type: integer
                  description: For self-hosted links, AS Number to establish BGP session.
                  format: uint32
                  nullable: true
              x-properties-order:
              - name
              - tags
              - peer_asn
      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/interlink/v1beta1/regions/{region}/links/{link_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Links
      operationId: DeleteLink
      summary: Delete a link
      description: Delete an existing link, specified by its link ID. Note that as
        well as deleting the link here on the Scaleway side, it is also necessary
        to request deletion from the partner on their side. Only when this action
        has been carried out on both sides will the resource be completely deleted.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link to delete. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/links/{link_id}/attach-routing-policy:
    post:
      tags:
      - Links
      operationId: AttachRoutingPolicy
      summary: Attach a routing policy
      description: Attach a routing policy to an existing link. As all routes across
        the link are blocked by default, you must attach a routing policy to set IP
        prefix filters for allowed routes, facilitating traffic flow.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link to attach a routing policy to. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                routing_policy_id:
                  type: string
                  description: ID of the routing policy to be attached. (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
              required:
              - routing_policy_id
              x-properties-order:
              - routing_policy_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"routing_policy_id":"6170692e-7363-616c-6577-61792e636f6d"}' \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/attach-routing-policy"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/attach-routing-policy" \
            X-Auth-Token:$SCW_SECRET_KEY \
            routing_policy_id="6170692e-7363-616c-6577-61792e636f6d"
  /interlink/v1beta1/regions/{region}/links/{link_id}/attach-vpc:
    post:
      tags:
      - Links
      operationId: AttachVpc
      summary: Attach a VPC
      description: Attach a VPC to an existing link. This facilitates communication
        between the resources in your Scaleway VPC, and your on-premises infrastructure.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link to attach VPC to. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vpc_id:
                  type: string
                  description: ID of the VPC to attach. (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
              required:
              - vpc_id
              x-properties-order:
              - 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 '{"vpc_id":"6170692e-7363-616c-6577-61792e636f6d"}' \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/attach-vpc"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/attach-vpc" \
            X-Auth-Token:$SCW_SECRET_KEY \
            vpc_id="6170692e-7363-616c-6577-61792e636f6d"
  /interlink/v1beta1/regions/{region}/links/{link_id}/detach-routing-policy:
    post:
      tags:
      - Links
      operationId: DetachRoutingPolicy
      summary: Detach a routing policy
      description: Detach a routing policy from an existing link. Without a routing
        policy, all routes across the link are blocked by default.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link to detach a routing policy from. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                routing_policy_id:
                  type: string
                  description: ID of the routing policy to be detached. (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
              required:
              - routing_policy_id
              x-properties-order:
              - routing_policy_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"routing_policy_id":"6170692e-7363-616c-6577-61792e636f6d"}' \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/detach-routing-policy"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/detach-routing-policy" \
            X-Auth-Token:$SCW_SECRET_KEY \
            routing_policy_id="6170692e-7363-616c-6577-61792e636f6d"
  /interlink/v1beta1/regions/{region}/links/{link_id}/detach-vpc:
    post:
      tags:
      - Links
      operationId: DetachVpc
      summary: Detach a VPC
      description: Detach a VPC from an existing link.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link to detach the VPC from. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      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/interlink/v1beta1/regions/{region}/links/{link_id}/detach-vpc"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/detach-vpc" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/links/{link_id}/disable-route-propagation:
    post:
      tags:
      - Links
      operationId: DisableRoutePropagation
      summary: Disable route propagation
      description: Prevent any prefixes from being announced in the BGP session. Traffic
        will not be able to flow over the InterLink until route propagation is re-enabled.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link on which to disable route propagation. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      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/interlink/v1beta1/regions/{region}/links/{link_id}/disable-route-propagation"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/disable-route-propagation" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/links/{link_id}/enable-route-propagation:
    post:
      tags:
      - Links
      operationId: EnableRoutePropagation
      summary: Enable route propagation
      description: Enable all allowed prefixes (defined in a routing policy) to be
        announced in the BGP session. This allows traffic to flow between the attached
        VPC and the on-premises infrastructure along the announced routes. Note that
        by default, even when route propagation is enabled, all routes are blocked.
        It is essential to attach a routing policy to define the ranges of routes
        to announce.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link on which to enable route propagation. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      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/interlink/v1beta1/regions/{region}/links/{link_id}/enable-route-propagation"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/enable-route-propagation" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/links/{link_id}/set-routing-policy:
    post:
      tags:
      - Links
      operationId: SetRoutingPolicy
      summary: Set a routing policy
      description: Replace a routing policy from an existing link. This is useful
        when route propagation is enabled because it changes the routing policy "in
        place", without blocking all routes like a attach / detach would do.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: link_id
        description: ID of the link to set a routing policy from. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Link'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                routing_policy_id:
                  type: string
                  description: ID of the routing policy to be set. (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
              required:
              - routing_policy_id
              x-properties-order:
              - routing_policy_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"routing_policy_id":"6170692e-7363-616c-6577-61792e636f6d"}' \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/set-routing-policy"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/interlink/v1beta1/regions/{region}/links/{link_id}/set-routing-policy" \
            X-Auth-Token:$SCW_SECRET_KEY \
            routing_policy_id="6170692e-7363-616c-6577-61792e636f6d"
  /interlink/v1beta1/regions/{region}/partners:
    get:
      tags:
      - Partners
      operationId: ListPartners
      summary: List available partners
      description: List all available partners. By default, the partners returned
        in the list are ordered by name 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
          - it-mil
          - nl-ams
          - pl-waw
      - in: query
        name: order_by
        description: Order in which to return results.
        schema:
          type: string
          enum:
          - name_asc
          - name_desc
          default: name_asc
      - in: query
        name: page
        description: Page number to return.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of partners to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: pop_ids
        description: Filter for partners present (offering a connection) in one of
          these PoPs.
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.ListPartnersResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/partners"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/partners" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/partners/{partner_id}:
    get:
      tags:
      - Partners
      operationId: GetPartner
      summary: Get a partner
      description: Get a partner for the given partner IP. The response object includes
        information such as the partner's name, email address and portal URL.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: partner_id
        description: ID of partner to get. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Partner'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/partners/{partner_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/partners/{partner_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/pops:
    get:
      tags:
      - Points Of Presence
      operationId: ListPops
      summary: List PoPs
      description: List all available PoPs (locations) for a given region. By default,
        the results are returned in ascending alphabetical order by name.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: query
        name: order_by
        description: Order in which to return results.
        schema:
          type: string
          enum:
          - name_asc
          - name_desc
          default: name_asc
      - in: query
        name: page
        description: Page number to return.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of PoPs to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: name
        description: PoP name to filter for.
        schema:
          type: string
      - in: query
        name: hosting_provider_name
        description: Hosting provider name to filter for.
        schema:
          type: string
      - in: query
        name: partner_id
        description: Filter for PoPs hosting an available shared connection from this
          partner. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: link_bandwidth_mbps
        description: Filter for PoPs with a shared connection allowing this bandwidth
          size. Note that we cannot guarantee that PoPs returned will have available
          capacity.
        schema:
          type: integer
          format: uint64
      - in: query
        name: dedicated_available
        description: Filter for PoPs with a dedicated connection available for self-hosted
          links.
        schema:
          type: boolean
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.ListPopsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/pops"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/pops" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/pops/{pop_id}:
    get:
      tags:
      - Points Of Presence
      operationId: GetPop
      summary: Get a PoP
      description: Get a PoP for the given PoP ID. The response object includes the
        PoP's name and information about its physical location.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: pop_id
        description: ID of PoP to get. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.Pop'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/pops/{pop_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/pops/{pop_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /interlink/v1beta1/regions/{region}/routing-policies:
    get:
      tags:
      - Routing Policies
      operationId: ListRoutingPolicies
      summary: List routing policies
      description: List all routing policies in a given region. A routing policy can
        be attached to one or multiple links (InterLink connections).
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: query
        name: order_by
        description: Order in which to return results.
        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.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of routing policies to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: project_id
        description: Project ID to filter for. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: organization_id
        description: Organization ID to filter for. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: name
        description: Routing policy name to filter for.
        schema:
          type: string
      - in: query
        name: tags
        description: Tags to filter for.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: ipv6
        description: Filter for the routing policies based on IP prefixes version.
        schema:
          type: boolean
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.ListRoutingPoliciesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/routing-policies"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/routing-policies" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Routing Policies
      operationId: CreateRoutingPolicy
      summary: Create a routing policy
      description: Create a routing policy. Routing policies allow you to set IP prefix
        filters to define the incoming route announcements to accept from the peer,
        and the outgoing routes to announce to the peer.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.RoutingPolicy'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: ID of the Project to create the routing policy in.
                    (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                name:
                  type: string
                  description: Name of the routing policy.
                tags:
                  type: array
                  description: List of tags to apply to the routing policy.
                  items:
                    type: string
                prefix_filter_in:
                  type: array
                  description: IP prefixes to accept from the peer (ranges of route
                    announcements to accept). (IP network)
                  example:
                  - 1.2.3.4/32
                  items:
                    type: string
                prefix_filter_out:
                  type: array
                  description: IP prefix filters to advertise to the peer (ranges
                    of routes to advertise). (IP network)
                  example:
                  - 1.2.3.4/32
                  items:
                    type: string
                is_ipv6:
                  type: boolean
                  description: IP prefixes version of the routing policy.
              required:
              - project_id
              - name
              x-properties-order:
              - project_id
              - name
              - tags
              - prefix_filter_in
              - prefix_filter_out
              - is_ipv6
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "is_ipv6": false,
              "name": "string",
              "project_id": "6170692e-7363-616c-6577-61792e636f6d"
            }' \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/routing-policies"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/interlink/v1beta1/regions/{region}/routing-policies" \
            X-Auth-Token:$SCW_SECRET_KEY \
            is_ipv6:=false \
            name="string" \
            project_id="6170692e-7363-616c-6577-61792e636f6d"
  /interlink/v1beta1/regions/{region}/routing-policies/{routing_policy_id}:
    get:
      tags:
      - Routing Policies
      operationId: GetRoutingPolicy
      summary: Get routing policy
      description: Get a routing policy for the given routing policy ID. The response
        object gives information including the policy's name, tags and prefix filters.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: routing_policy_id
        description: ID of the routing policy to get. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.RoutingPolicy'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/interlink/v1beta1/regions/{region}/routing-policies/{routing_policy_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/interlink/v1beta1/regions/{region}/routing-policies/{routing_policy_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Routing Policies
      operationId: UpdateRoutingPolicy
      summary: Update a routing policy
      description: Update an existing routing policy, specified by its routing policy
        ID. Its name, tags and incoming/outgoing prefix filters can be updated.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: routing_policy_id
        description: ID of the routing policy to update. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.interlink.v1beta1.RoutingPolicy'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the routing policy.
                  nullable: true
                tags:
                  type: array
                  description: List of tags to apply to the routing policy.
                  nullable: true
                  items:
                    type: string
                prefix_filter_in:
                  type: array
                  description: IP prefixes to accept from the peer (ranges of route
                    announcements to accept).
                  nullable: true
                  items:
                    type: string
                prefix_filter_out:
                  type: array
                  description: IP prefix filters for routes to advertise to the peer
                    (ranges of routes to advertise).
                  nullable: true
                  items:
                    type: string
              x-properties-order:
              - name
              - tags
              - prefix_filter_in
              - prefix_filter_out
      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/interlink/v1beta1/regions/{region}/routing-policies/{routing_policy_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/interlink/v1beta1/regions/{region}/routing-policies/{routing_policy_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Routing Policies
      operationId: DeleteRoutingPolicy
      summary: Delete a routing policy
      description: Delete an existing routing policy, specified by its routing policy
        ID.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - it-mil
          - nl-ams
          - pl-waw
      - in: path
        name: routing_policy_id
        description: ID of the routing policy to delete. (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/interlink/v1beta1/regions/{region}/routing-policies/{routing_policy_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/interlink/v1beta1/regions/{region}/routing-policies/{routing_policy_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
