openapi: 3.1.0
info:
  title: Instance API
  description: |-
    Scaleway Instances are virtual machines in the cloud. Different [Instance types](https://www.scaleway.com/en/docs/instances/reference-content/choosing-instance-type/) offer different technical specifications in terms of vCPU, RAM, bandwidth, and storage. Once you have created your Instance and installed your image of choice (e.g. an operating system), you can [connect to your Instance via SSH](https://www.scaleway.com/en/docs/instances/how-to/connect-to-instance/) to use it as you wish. When you are done using the Instance, you can delete it from your account.

    (switchcolumn)
    <Message type="tip">
    To retrieve information about the different [images](#path-images) available to install on Scaleway Instances, check out our [Marketplace API](https://www.scaleway.com/en/developers/api/marketplace/).
    </Message>
    (switchcolumn)


    ## Concepts

    Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/instances/concepts/) to find definitions of all concepts and terminology related to Instances.

    (switchcolumn)
    (switchcolumn)

    ## Quickstart

    1. Configure your environment variables:

        <Message type="note">
        This is an optional step that seeks to simplify your usage of the Instances API. See [Availability Zones](#availability-zones) below for help choosing an Availability Zone. You can find your Project ID in the [Scaleway console](https://console.scaleway.com/project/settings).
        </Message>

        ```bash
        export SCW_SECRET_KEY="<API secret key>"
        export SCW_DEFAULT_ZONE="<Scaleway Availability Zone>"
        export SCW_PROJECT_ID="<Scaleway Project ID>"
        ```

    2. **Create an Instance**: Run the following command to create an Instance. You can customize the details in the payload (name, description, type, tags etc) to your needs: use the information below to adjust the payload as necessary.

        ```bash
        curl -X POST \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          -H "Content-Type: application/json" \
          "https://api.scaleway.com/instance/v2alpha1/zones/$SCW_DEFAULT_ZONE/servers" \
            -d '{
              "name": "my-new-instance",
              "project_id": "'"$SCW_PROJECT_ID"'",
              "server_type": "GP1-S",
              "public_network_interface": {
                "ips": [
                  {
                    "new_ip": {
                      "type": "zonal_ipv4"
                    }
                  },
                  {
                    "ipam_ip_id": "<IP-ID>"
                  }
                ]
              },
              "volumes": [
                {
                  "volume_type": "l_ssd",
                  "new_volume": {
                    "name": "my-new-volume",
                    "image_label": "ubuntu_noble"
                  }
                },
                {
                  "volume_type": "sbs",
                  "volume_id": "<Volume-ID>"
                }
              ]
            }'
        ```

            | Parameter       | Description                                                                                                                                              | Valid values                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
        | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
        | `name`            | A name of your choice for the Instance (string)                                                                                                          | Any string containing only alphanumeric characters, dots, spaces and dashes, e.g. `"my-new-instance"`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
        | `project_id`         | The Project in which the Instance should be created (string)                                                                                             | Any valid Scaleway Project ID (see above), e.g. `"b4bd99e0-b389-11ed-afa1-0242ac120002"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
        | `server_type` | The commercial Instance type to create (string)                                                                                                          | Any valid ID of a Scaleway commercial Instance type, e.g. `"GP1-S"`, `"PRO2-M"`. Use the [List Instance Types](#path-instance-types-list-instance-types) endpoint to get a list of all valid Instance types and their IDs.                                                                                                                                                                                                                                                                               |
        | `public_network_interface`         | A list that specifies the IPs to attach to the Instance. | A list where each item is a dictionary containing either `"ipam_ip_id"` with the IP ID as its value, or `"new_ip"` containing `"type"` (values: `"zonal_ipv4"`, or `"zonal_ipv6"`). |
        | `volumes`         | A list that specifies the storage volumes to attach to the Instance. | A list where each item is a dictionary containing the key `"volume_type"` (values: `"l_ssd"`, `"sbs"`, or `"scratch"`) and either the key `"volume_id"` or `"new_volume"`. `"volume_id"` is used to attach a volume with the volume ID as its value. `"new_volume"` is used to create a volume from a Scaleway image (`"image_label"`) or a snapshot (`"base_snapshot_id"`). Further parameters are available. |

    3. **List your Instances**: Run the following command to get a list of all the Instances in your account, with their details:

        ```bash
        curl -X GET \
          -H "Content-Type: application/json" \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          "https://api.scaleway.com/instance/v2alpha1/zones/$SCW_DEFAULT_ZONE/servers/"
        ```

    4. **Delete an Instance**: Run the following command to delete an Instance, specified by its Instance ID:

        ```bash
        curl -X DELETE \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          -H "Content-Type: application/json" \
          "https://api.scaleway.com/instance/v2alpha1/zones/$SCW_DEFAULT_ZONE/servers/<Instance-ID>"
        ```

        The expected successful response is empty.

    (switchcolumn)
    <Message type="requirement">
    - You have a [Scaleway account](https://console.scaleway.com/)
    - You have created an [API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and 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
    - You have [installed `curl`](https://curl.se/download.html)
    </Message>
    (switchcolumn)

    ## Technical information

    ### Availability Zones

    You can deploy Instances in the following Availability Zones:

    | Name      | API ID                           |
    |-----------|----------------------------------|
    | Paris     | `fr-par-1` `fr-par-2` `fr-par-3` |
    | Amsterdam | `nl-ams-1` `nl-ams-2` `nl-ams-3` |
    | Warsaw    | `pl-waw-1` `pl-waw-2` `pl-waw-3` |
    | Milan     | `it-mil-1`                       |

    (switchcolumn)
    (switchcolumn)

    ### Pagination

    The listing requests receive a paginated response. They accept two `query` arguments:

    - `page_token`, a string representing the wanted page. If it's not provided the first page will be returned.
    - `page_size`, a positive integer lower or equal to 100 to select the number of items to return per page. The default value is `100`.

    Paginated endpoints usually also accept filters to search and sort results. These filters are documented along each endpoint documentation.

    The listing response contain the `next_page_token`, the token to retrieve the next page.

    (switchcolumn)
    (switchcolumn)

    ## Going further

    For more help using Scaleway Instances, check out the following resources:
    - Our [main documentation](https://www.scaleway.com/en/docs/instances/)
    - The #instance channel on our [Slack Community](https://www.scaleway.com/en/docs/tutorials/scaleway-slack-community/)
    - Our [support ticketing system](https://www.scaleway.com/en/docs/account/how-to/open-a-support-ticket/).
  version: v2alpha1
servers:
- url: https://api.scaleway.com
tags:
- name: Resource Counts
  description: |
    Provides a summary of your current resource usage within a project or organization.
    The response includes counts for various Instance-related resources such as numbers of Instances, GPU Instances, Security groups, Placement groups, Snapshots, Volumes, and Private Network interfaces.
- name: Instances
  description: |
    Instances are computing units providing resources to run your applications on.
    Scaleway offers various Instance types including **CPU Instances** and **GPU Instances**.
    **Note: Instances can be referenced as "servers" in API endpoints.**
- name: Instance Types
  description: |
    All Instance types available in a specified zone.
    Each type contains all the features of the Instance (CPU, RAM, storage).
- name: Private Network Interfaces
  description: |
    A Private Network Interface is the network interface that connects an Instance to a
    Private Network. An Instance can have multiple private network interfaces at the same
    time, but each private network interface must belong to a different Private Network.
- name: Placement Groups
  description: |
    Placement groups allow the user to express a preference regarding
    the physical position of a group of Instances. The feature lets the user
    choose to either group Instances on the same physical hardware for
    best network throughput and low latency, or spread Instances across
    physically distanced hardware to reduce the risk of physical failure.

    The operating mode is selected by a `policy_type`. Two policy
    types are available:
      - `low_latency` will group Instances on the same hypervisors
      - `max_availability` will spread Instances across physically distanced hypervisors

    The `policy_type` is set to `max_availability` by default.
- name: Security Groups
  description: |
    A security group is a set of firewall rules on a set of Instances.
    Security groups enable you to create rules that either drop or allow incoming traffic from certain ports of your Instances.

    Security groups are stateful by default, which means that return traffic is automatically allowed, regardless of any rules.
    You can switch to a stateless mode if you want to only allow explicitly defined traffic. That mode may be difficult to use when filtering outgoing flows.
- name: User Data
  description: |
    User data is a key/value store you can use to provide your Instance with introspective data.

    There are two ways of accessing user data:
     - **From within a running Instance**, by requesting the Metadata API at http://169.254.42.42/user_data (or http://[fd00:42::42]/user_data using IPv6).
       The `scaleway-ecosystem` package, installed by default on all OS images provided by Scaleway, ships with the `scw-userdata` helper command that allows you to easily query the user data from the Instance.
       For security reasons, viewing and editing user data is only allowed to queries originating from a port below 1024 (by default, only the super-user can bind to ports below 1024).
       To specify the source port with cURL, use the `--local-port` option (e.g. `curl --local-port 1-1023 http://169.254.42.42/user_data`).
     - **From the Instance API** by using the methods described below.
- name: Templates
  description: |
    Templates are blueprints for creating Instances with predefined configurations.
    A template includes specifications such as Instance type, attached volumes, security groups, placement groups, private networks, and public IP settings.
    Using templates allows you to standardize and automate Instance deployment across your infrastructure.
components:
  schemas:
    scaleway.instance.v2alpha1.AddSecurityGroupRulesResponse:
      type: object
      properties:
        security_group:
          type: object
          description: Updated security group.
          properties:
            id:
              type: string
              description: Unique ID of the security group.
            name:
              type: string
              description: Name of the security group.
            description:
              type: string
              description: Description of the security group.
            project_id:
              type: string
              description: Project ID the security group belongs to.
            tags:
              type: array
              description: Tags associated with the security group.
              items:
                type: string
            disable_default_rules:
              type: boolean
              description: True if default rules are disabled.
            project_default:
              type: boolean
              description: True if this is the default security group for the project.
            inbound_default_action:
              type: string
              description: Default action for inbound rules.
              enum:
              - unknown_action
              - accept
              - drop
              x-enum-descriptions:
                values:
                  unknown_action: Unknown action
                  accept: Accept the traffic
                  drop: Drop the traffic
              default: unknown_action
            outbound_default_action:
              type: string
              description: Default action for outbound rules.
              enum:
              - unknown_action
              - accept
              - drop
              x-enum-descriptions:
                values:
                  unknown_action: Unknown action
                  accept: Accept the traffic
                  drop: Drop the traffic
              default: unknown_action
            stateless:
              type: boolean
              description: True if the security group is stateless.
            created_at:
              type: string
              description: Creation timestamp of the security group. (RFC 3339 format)
              format: date-time
              example: "2022-03-22T12:34:56.123456Z"
              nullable: true
            updated_at:
              type: string
              description: Last update timestamp of the security group. (RFC 3339
                format)
              format: date-time
              example: "2022-03-22T12:34:56.123456Z"
              nullable: true
            default_rules:
              type: array
              description: List of default rules applied to the security group.
              items:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule'
            rules:
              type: array
              description: List of custom rules applied to the security group.
              items:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule'
            zone:
              type: string
              description: Zone in which the security group is located.
          x-properties-order:
          - id
          - name
          - description
          - project_id
          - tags
          - disable_default_rules
          - project_default
          - inbound_default_action
          - outbound_default_action
          - stateless
          - created_at
          - updated_at
          - default_rules
          - rules
          - zone
        added_rules:
          type: array
          description: List of rules that were added.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule'
      x-properties-order:
      - security_group
      - added_rules
    scaleway.instance.v2alpha1.CreateServerRequest.ServerIP:
      type: object
      properties:
        ipam_ip_id:
          type: string
          description: ID of the IPAM IP to attach.
          nullable: true
          x-one-of: server_ip
        new_ip:
          type: object
          description: Configuration for a new IP to book.
          properties:
            type:
              type: string
              description: Type of IP to book.
              enum:
              - unknown_ip_type
              - zonal_ipv4
              - zonal_ipv6
              default: unknown_ip_type
            tags:
              type: array
              description: Tags to associate with the IP.
              items:
                type: string
          nullable: true
          x-properties-order:
          - type
          - tags
          x-one-of: server_ip
      x-properties-order:
      - ipam_ip_id
      - new_ip
    scaleway.instance.v2alpha1.CreateServerRequest.ServerVolume:
      type: object
      properties:
        volume_type:
          type: string
          description: Type of the volume.
          enum:
          - unknown_volume_type
          - l_ssd
          - sbs
          - scratch
          default: unknown_volume_type
        volume_id:
          type: string
          description: ID of the volume to attach.
          nullable: true
          x-one-of: server_volume
        new_volume:
          type: object
          description: Configuration for a new volume to create.
          properties:
            name:
              type: string
              description: Name of the volume.
            tags:
              type: array
              description: Tags to associate with the volume.
              items:
                type: string
            size:
              type: integer
              description: Size of the volume. (in bytes)
              format: uint64
              nullable: true
            base_snapshot_id:
              type: string
              description: ID of the base snapshot for the volume.
              nullable: true
              x-one-of: from
            image_label:
              type: string
              description: Label of the image to use for the volume.
              nullable: true
              x-one-of: from
            perf_iops:
              type: integer
              description: Performance IOPS for the volume.
              format: uint32
              nullable: true
          nullable: true
          x-properties-order:
          - name
          - tags
          - size
          - base_snapshot_id
          - image_label
          - perf_iops
          x-one-of: server_volume
      x-properties-order:
      - volume_type
      - volume_id
      - new_volume
    scaleway.instance.v2alpha1.CreateTemplateRequest.PrivateNetworkTemplate:
      type: object
      properties:
        private_network_id:
          type: string
          description: ID of the private network.
      x-properties-order:
      - private_network_id
    scaleway.instance.v2alpha1.CreateTemplateRequest.VolumeTemplate:
      type: object
      properties:
        volume_type:
          type: string
          description: Type of the volume.
          enum:
          - unknown_volume_type
          - l_ssd
          - sbs
          - scratch
          default: unknown_volume_type
        name:
          type: string
          description: Name of the volume.
        tags:
          type: array
          description: Tags associated with the volume.
          items:
            type: string
        size:
          type: integer
          description: Size of the volume in bytes. (in bytes)
          format: uint64
          nullable: true
        base_snapshot_id:
          type: string
          description: ID of the base snapshot for the volume.
          nullable: true
          x-one-of: from
        image_label:
          type: string
          description: Label of the image used as base for the volume.
          nullable: true
          x-one-of: from
        perf_iops:
          type: integer
          description: Performance IOPS for the volume.
          format: uint32
          nullable: true
      x-properties-order:
      - volume_type
      - name
      - tags
      - size
      - base_snapshot_id
      - image_label
      - perf_iops
    scaleway.instance.v2alpha1.ListPlacementGroupsResponse:
      type: object
      properties:
        placement_groups:
          type: array
          description: List of placement groups.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.PlacementGroup'
        next_page_token:
          type: string
          description: The pagination token, use it to get the next page of results.
          nullable: true
        total_count:
          type: integer
          description: Total number of placement groups.
          format: uint64
      x-properties-order:
      - placement_groups
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.ListPrivateNetworkInterfacesResponse:
      type: object
      properties:
        private_network_interfaces:
          type: array
          description: List of private network interfaces.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.PrivateNetworkInterfaceSummary'
        next_page_token:
          type: string
          description: Token for the next page.
          nullable: true
        total_count:
          type: integer
          description: Total number of items.
          format: uint64
      x-properties-order:
      - private_network_interfaces
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.ListSecurityGroupsResponse:
      type: object
      properties:
        security_groups:
          type: array
          description: List of security groups.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupSummary'
        next_page_token:
          type: string
          description: Token for the next page.
          nullable: true
        total_count:
          type: integer
          description: Total number of items.
          format: uint64
      x-properties-order:
      - security_groups
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.ListServerTypesResponse:
      type: object
      properties:
        server_types:
          type: array
          description: List of server types.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.ServerType'
        next_page_token:
          type: string
          description: Token for the next page.
          nullable: true
        total_count:
          type: integer
          description: Total number of server types.
          format: uint64
      x-properties-order:
      - server_types
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.ListServersResponse:
      type: object
      properties:
        servers:
          type: array
          description: List of servers.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.ServerSummary'
        next_page_token:
          type: string
          description: Token for the next page.
          nullable: true
        total_count:
          type: integer
          description: Total number of servers.
          format: uint64
      x-properties-order:
      - servers
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.ListTemplateUserDataKeysResponse:
      type: object
      properties:
        keys:
          type: array
          description: List of user data keys associated with the template.
          items:
            type: string
        next_page_token:
          type: string
          description: Token for the next page.
          nullable: true
        total_count:
          type: integer
          description: Total number of items.
          format: uint64
      x-properties-order:
      - keys
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.ListTemplatesResponse:
      type: object
      properties:
        templates:
          type: array
          description: List of template summaries.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.TemplateSummary'
        next_page_token:
          type: string
          description: Token for the next page.
          nullable: true
        total_count:
          type: integer
          description: Total number of items.
          format: uint64
      x-properties-order:
      - templates
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.ListUserDataKeysResponse:
      type: object
      properties:
        keys:
          type: array
          description: List of user data keys.
          items:
            type: string
        next_page_token:
          type: string
          description: Token for the next page.
          nullable: true
        total_count:
          type: integer
          description: Total number of items.
          format: uint64
      x-properties-order:
      - keys
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.PlacementGroup:
      type: object
      properties:
        id:
          type: string
          description: Placement group unique ID.
        project_id:
          type: string
          description: Placement group Project ID.
        name:
          type: string
          description: Placement group name.
        policy_type:
          type: string
          description: Select the behavior of the placement group, either low_latency
            (group) or max_availability (spread).
          enum:
          - unknown_policy_type
          - low_latency
          - max_availability
          x-enum-descriptions:
            values:
              unknown_policy_type: Unknown policy type
              low_latency: Ensures that all servers in the placement group are placed
                on the same physical host to minimize latency
              max_availability: Distributes servers across multiple physical hosts
                to maximize availability
          default: unknown_policy_type
        tags:
          type: array
          description: Placement group tags.
          items:
            type: string
        created_at:
          type: string
          description: Placement group creation date. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Placement group modification date. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        zone:
          type: string
          description: Zone in which the placement group is located.
      x-properties-order:
      - id
      - project_id
      - name
      - policy_type
      - tags
      - created_at
      - updated_at
      - zone
    scaleway.instance.v2alpha1.PrivateNetworkInterface:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the private network interface.
        private_network_id:
          type: string
          description: ID of the Private Network this interface is attached to.
        project_id:
          type: string
          description: Project ID the private network interface belongs to.
        server_id:
          type: string
          description: ID of the Instance this interface is attached to.
        mac_address:
          type: string
          description: MAC address of the private network interface.
        status:
          type: string
          description: Current status of the private network interface.
          enum:
          - unknown_status
          - available
          - attaching
          - detaching
          - syncing
          x-enum-descriptions:
            values:
              unknown_status: Unknown status
              available: Interface is available
              attaching: Interface is being attached
              detaching: Interface is being detached
              syncing: Interface is being synchronized
          default: unknown_status
        ip_ids:
          type: array
          description: List of IP IDs attached to this interface.
          items:
            type: string
        tags:
          type: array
          description: Tags associated with the private network interface.
          items:
            type: string
        created_at:
          type: string
          description: Creation timestamp of the private network interface. (RFC 3339
            format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last update timestamp of the private network interface. (RFC
            3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - id
      - private_network_id
      - project_id
      - server_id
      - mac_address
      - status
      - ip_ids
      - tags
      - created_at
      - updated_at
    scaleway.instance.v2alpha1.PrivateNetworkInterfaceSummary:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the private network interface.
        private_network_id:
          type: string
          description: ID of the Private Network this interface is attached to.
        project_id:
          type: string
          description: Project ID the private network interface belongs to.
        server_id:
          type: string
          description: ID of the Instance this interface is attached to.
        mac_address:
          type: string
          description: MAC address of the private network interface.
        status:
          type: string
          description: Current status of the private network interface.
          enum:
          - unknown_status
          - available
          - attaching
          - detaching
          - syncing
          x-enum-descriptions:
            values:
              unknown_status: Unknown status
              available: Interface is available
              attaching: Interface is being attached
              detaching: Interface is being detached
              syncing: Interface is being synchronized
          default: unknown_status
        ip_ids:
          type: array
          description: List of IP IDs attached to this interface.
          items:
            type: string
        tags:
          type: array
          description: Tags associated with the private network interface.
          items:
            type: string
        created_at:
          type: string
          description: Creation timestamp of the private network interface. (RFC 3339
            format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last update timestamp of the private network interface. (RFC
            3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - id
      - private_network_id
      - project_id
      - server_id
      - mac_address
      - status
      - ip_ids
      - tags
      - created_at
      - updated_at
    scaleway.instance.v2alpha1.ResourceCounts:
      type: object
      properties:
        servers:
          type: integer
          description: Number of servers.
          format: uint32
        gpu_servers:
          type: integer
          description: Number of GPU servers.
          format: uint32
        servers_by_type:
          type: object
          description: Map of server types with their counts.
          properties:
            <servers_by_typeKey>:
              type: integer
              description: Map of server types with their counts.
              format: uint32
          additionalProperties: true
        security_groups:
          type: integer
          description: Number of security groups.
          format: uint32
        placement_groups:
          type: integer
          description: Number of placement groups.
          format: uint32
        snapshots:
          type: integer
          description: Number of snapshots.
          format: uint32
        volumes:
          type: integer
          description: Number of volumes.
          format: uint32
        volumes_l_ssd:
          type: integer
          description: Number of local SSD volumes.
          format: uint32
        volumes_l_ssd_total_size:
          type: integer
          description: Total size of local SSD volumes in bytes.
          format: uint64
        volumes_scratch:
          type: integer
          description: Number of scratch volumes.
          format: uint32
        private_network_interfaces:
          type: integer
          description: Number of private network interfaces.
          format: uint32
      x-properties-order:
      - servers
      - gpu_servers
      - servers_by_type
      - security_groups
      - placement_groups
      - snapshots
      - volumes
      - volumes_l_ssd
      - volumes_l_ssd_total_size
      - volumes_scratch
      - private_network_interfaces
    scaleway.instance.v2alpha1.SecurityGroup:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the security group.
        name:
          type: string
          description: Name of the security group.
        description:
          type: string
          description: Description of the security group.
        project_id:
          type: string
          description: Project ID the security group belongs to.
        tags:
          type: array
          description: Tags associated with the security group.
          items:
            type: string
        disable_default_rules:
          type: boolean
          description: True if default rules are disabled.
        project_default:
          type: boolean
          description: True if this is the default security group for the project.
        inbound_default_action:
          type: string
          description: Default action for inbound rules.
          enum:
          - unknown_action
          - accept
          - drop
          x-enum-descriptions:
            values:
              unknown_action: Unknown action
              accept: Accept the traffic
              drop: Drop the traffic
          default: unknown_action
        outbound_default_action:
          type: string
          description: Default action for outbound rules.
          enum:
          - unknown_action
          - accept
          - drop
          x-enum-descriptions:
            values:
              unknown_action: Unknown action
              accept: Accept the traffic
              drop: Drop the traffic
          default: unknown_action
        stateless:
          type: boolean
          description: True if the security group is stateless.
        created_at:
          type: string
          description: Creation timestamp of the security group. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last update timestamp of the security group. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        default_rules:
          type: array
          description: List of default rules applied to the security group.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule'
        rules:
          type: array
          description: List of custom rules applied to the security group.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule'
        zone:
          type: string
          description: Zone in which the security group is located.
      x-properties-order:
      - id
      - name
      - description
      - project_id
      - tags
      - disable_default_rules
      - project_default
      - inbound_default_action
      - outbound_default_action
      - stateless
      - created_at
      - updated_at
      - default_rules
      - rules
      - zone
    scaleway.instance.v2alpha1.SecurityGroupRule:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the rule.
        protocol:
          type: string
          description: Protocol this rule applies to.
          enum:
          - unknown_protocol
          - tcp
          - udp
          - icmp
          - any
          x-enum-descriptions:
            values:
              unknown_protocol: Unknown protocol
              tcp: TCP protocol
              udp: UDP protocol
              icmp: ICMP protocol
              any: Any protocol
          default: unknown_protocol
        direction:
          type: string
          description: Direction of traffic this rule applies to.
          enum:
          - unknown_direction
          - inbound
          - outbound
          - both
          x-enum-descriptions:
            values:
              unknown_direction: Unknown direction
              inbound: Inbound traffic
              outbound: Outbound traffic
              both: Both inbound and outbound traffic
          default: unknown_direction
        action:
          type: string
          description: Action to take when the rule matches.
          enum:
          - unknown_action
          - accept
          - drop
          x-enum-descriptions:
            values:
              unknown_action: Unknown action
              accept: Accept the traffic
              drop: Drop the traffic
          default: unknown_action
        source_ip_range:
          type: string
          description: Source IP range for the rule. (IP network)
          example: 1.2.3.4/32
        destination_ip_range:
          type: string
          description: Destination IP range for the rule. (IP network)
          example: 1.2.3.4/32
        source_ports:
          type: object
          description: Source port range for the rule.
          properties:
            start:
              type: integer
              description: Start of the port range.
              format: uint32
            end:
              type: integer
              description: End of the port range.
              format: uint32
          x-properties-order:
          - start
          - end
        destination_ports:
          type: object
          description: Destination port range for the rule.
          properties:
            start:
              type: integer
              description: Start of the port range.
              format: uint32
            end:
              type: integer
              description: End of the port range.
              format: uint32
          x-properties-order:
          - start
          - end
        position:
          type: integer
          description: Position of the rule in the list.
          format: uint32
      x-properties-order:
      - id
      - protocol
      - direction
      - action
      - source_ip_range
      - destination_ip_range
      - source_ports
      - destination_ports
      - position
    scaleway.instance.v2alpha1.SecurityGroupRuleConfig:
      type: object
      properties:
        protocol:
          type: string
          description: Protocol for the rule.
          enum:
          - unknown_protocol
          - tcp
          - udp
          - icmp
          - any
          x-enum-descriptions:
            values:
              unknown_protocol: Unknown protocol
              tcp: TCP protocol
              udp: UDP protocol
              icmp: ICMP protocol
              any: Any protocol
          default: unknown_protocol
        direction:
          type: string
          description: Direction of traffic for the rule.
          enum:
          - unknown_direction
          - inbound
          - outbound
          - both
          x-enum-descriptions:
            values:
              unknown_direction: Unknown direction
              inbound: Inbound traffic
              outbound: Outbound traffic
              both: Both inbound and outbound traffic
          default: unknown_direction
        action:
          type: string
          description: Action to take when the rule matches.
          enum:
          - unknown_action
          - accept
          - drop
          x-enum-descriptions:
            values:
              unknown_action: Unknown action
              accept: Accept the traffic
              drop: Drop the traffic
          default: unknown_action
        source_ip_range:
          type: string
          description: Source IP range for the rule. (IP network)
          example: 1.2.3.4/32
        destination_ip_range:
          type: string
          description: Destination IP range for the rule. (IP network)
          example: 1.2.3.4/32
        source_ports:
          type: object
          description: Source port range for the rule.
          properties:
            start:
              type: integer
              description: Start of the port range.
              format: uint32
            end:
              type: integer
              description: End of the port range.
              format: uint32
          x-properties-order:
          - start
          - end
        destination_ports:
          type: object
          description: Destination port range for the rule.
          properties:
            start:
              type: integer
              description: Start of the port range.
              format: uint32
            end:
              type: integer
              description: End of the port range.
              format: uint32
          x-properties-order:
          - start
          - end
        position:
          type: integer
          description: Position of the rule in the list.
          format: int32
      x-properties-order:
      - protocol
      - direction
      - action
      - source_ip_range
      - destination_ip_range
      - source_ports
      - destination_ports
      - position
    scaleway.instance.v2alpha1.SecurityGroupSummary:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the security group.
        name:
          type: string
          description: Name of the security group.
        description:
          type: string
          description: Description of the security group.
        project_id:
          type: string
          description: Project ID the security group belongs to.
        tags:
          type: array
          description: Tags associated with the security group.
          items:
            type: string
        disable_default_rules:
          type: boolean
          description: True if default rules are disabled.
        project_default:
          type: boolean
          description: True if this is the default security group for the project.
        inbound_default_action:
          type: string
          description: Default action for inbound rules.
          enum:
          - unknown_action
          - accept
          - drop
          x-enum-descriptions:
            values:
              unknown_action: Unknown action
              accept: Accept the traffic
              drop: Drop the traffic
          default: unknown_action
        outbound_default_action:
          type: string
          description: Default action for outbound rules.
          enum:
          - unknown_action
          - accept
          - drop
          x-enum-descriptions:
            values:
              unknown_action: Unknown action
              accept: Accept the traffic
              drop: Drop the traffic
          default: unknown_action
        stateless:
          type: boolean
          description: True if the security group is stateless.
        created_at:
          type: string
          description: Creation timestamp of the security group. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last update timestamp of the security group. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - id
      - name
      - description
      - project_id
      - tags
      - disable_default_rules
      - project_default
      - inbound_default_action
      - outbound_default_action
      - stateless
      - created_at
      - updated_at
    scaleway.instance.v2alpha1.Server:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the server.
        name:
          type: string
          description: Name of the server.
        project_id:
          type: string
          description: Project ID to which the server belongs.
        tags:
          type: array
          description: Tags associated with the server.
          items:
            type: string
        server_type:
          type: string
          description: Type of the server.
        placement_group_id:
          type: string
          description: ID of the placement group the server belongs to.
          nullable: true
        status:
          type: string
          description: Current status of the server.
          enum:
          - unknown_status
          - started
          - stopped
          - paused
          - starting
          - stopping
          - pausing
          - locked
          - rebooting
          x-enum-descriptions:
            values:
              unknown_status: Status is unknown
              started: Server is running
              stopped: Server is stopped
              paused: Server is paused
              starting: Server is starting
              stopping: Server is stopping
              pausing: Server is pausing
              locked: Server is locked
              rebooting: Server is rebooting
          default: unknown_status
        volumes:
          type: array
          description: List of volumes attached to the server.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.Volume'
        filesystems:
          type: array
          description: List of filesystems attached to the server.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.Filesystem'
        architecture:
          type: string
          description: Architecture of the server.
          enum:
          - unknown_architecture
          - x86_64
          - aarch64
          x-enum-descriptions:
            values:
              unknown_architecture: Architecture is unknown
              x86_64: X86_64 architecture
              aarch64: AArch64 architecture
          default: unknown_architecture
        created_at:
          type: string
          description: Creation timestamp of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last update timestamp of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        private_network_interfaces:
          type: array
          description: List of private network interfaces attached to the server.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.PrivateNetworkInterface'
        rescue_mode:
          type: boolean
          description: Whether the server is in rescue mode.
        boot_volume_id:
          type: string
          description: ID of the boot volume.
          nullable: true
        status_detail:
          type: string
          description: Detailed status information of the server.
        windows_rdp_password:
          type: object
          description: Encrypted RDP password for Windows servers. The encryption
            scheme is RSA-PKCS1-v1_5, using the public part of the SSH key supplied
            in `windows_rdp_ssh_key_id`.
          properties:
            encrypted_password:
              type: string
            rdp_ssh_key_id:
              type: string
          x-properties-order:
          - encrypted_password
          - rdp_ssh_key_id
        public_network_interface:
          type: object
          description: Public network interface of the server.
          properties:
            status:
              $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.PublicNetworkInterface.Status'
            mac_address:
              type: string
            security_group_id:
              type: string
            ips:
              type: array
              items:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.IP'
            dns:
              type: string
          x-properties-order:
          - status
          - mac_address
          - security_group_id
          - ips
          - dns
        zone:
          type: string
          description: Zone in which the server is located.
      x-properties-order:
      - id
      - name
      - project_id
      - tags
      - server_type
      - placement_group_id
      - status
      - volumes
      - filesystems
      - architecture
      - created_at
      - updated_at
      - private_network_interfaces
      - rescue_mode
      - boot_volume_id
      - status_detail
      - windows_rdp_password
      - public_network_interface
      - zone
    scaleway.instance.v2alpha1.Server.Filesystem:
      type: object
      properties:
        id:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        status:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.Filesystem.Status'
      x-properties-order:
      - id
      - status
    scaleway.instance.v2alpha1.Server.Filesystem.Status:
      type: string
      enum:
      - unknown_status
      - attaching
      - available
      - detaching
      default: unknown_status
    scaleway.instance.v2alpha1.Server.IP:
      type: object
      properties:
        id:
          type: string
        dynamic:
          type: boolean
        status:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.IP.Status'
        default:
          type: boolean
      x-properties-order:
      - id
      - dynamic
      - status
      - default
    scaleway.instance.v2alpha1.Server.IP.Status:
      type: string
      enum:
      - unknown_status
      - detached
      - attached
      - pending
      - error
      x-enum-descriptions:
        values:
          unknown_status: Status is unknown
          detached: IP is detached
          attached: IP is attached
          pending: IP is pending
          error: IP is in error state
      default: unknown_status
    scaleway.instance.v2alpha1.Server.PrivateNetworkInterface:
      type: object
      properties:
        id:
          type: string
        private_network_id:
          type: string
        mac_address:
          type: string
        status:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.PrivateNetworkInterface.Status'
        ip_ids:
          type: array
          items:
            type: string
        security_group_id:
          type: string
      x-properties-order:
      - id
      - private_network_id
      - mac_address
      - status
      - ip_ids
      - security_group_id
    scaleway.instance.v2alpha1.Server.PrivateNetworkInterface.Status:
      type: string
      enum:
      - unknown_status
      - available
      - attaching
      - detaching
      - syncing
      x-enum-descriptions:
        values:
          unknown_status: Status is unknown
          available: Interface is available
          attaching: Interface is being attached
          detaching: Interface is being detached
          syncing: Interface is syncing
      default: unknown_status
    scaleway.instance.v2alpha1.Server.PublicNetworkInterface.Status:
      type: string
      enum:
      - unknown_status
      - available
      - syncing
      x-enum-descriptions:
        values:
          unknown_status: Status is unknown
          available: Interface is available
          syncing: Interface is syncing
      default: unknown_status
    scaleway.instance.v2alpha1.Server.Volume:
      type: object
      properties:
        id:
          type: string
        volume_type:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.Volume.VolumeType'
      x-properties-order:
      - id
      - volume_type
    scaleway.instance.v2alpha1.Server.Volume.VolumeType:
      type: string
      enum:
      - unknown_volume_type
      - l_ssd
      - sbs
      - scratch
      x-enum-descriptions:
        values:
          unknown_volume_type: Volume type is unknown
          l_ssd: Local SSD volume
          sbs: Scaleway Block Storage volume
          scratch: Scratch volume
      default: unknown_volume_type
    scaleway.instance.v2alpha1.ServerSummary:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the server.
        name:
          type: string
          description: Name of the server.
        project_id:
          type: string
          description: Project ID to which the server belongs.
        tags:
          type: array
          description: Tags associated with the server.
          items:
            type: string
        server_type:
          type: string
          description: Type of the server.
        placement_group_id:
          type: string
          description: ID of the placement group the server belongs to.
          nullable: true
        status:
          type: string
          description: Current status of the server.
          enum:
          - unknown_status
          - started
          - stopped
          - paused
          - starting
          - stopping
          - pausing
          - locked
          - rebooting
          x-enum-descriptions:
            values:
              unknown_status: Status is unknown
              started: Server is running
              stopped: Server is stopped
              paused: Server is paused
              starting: Server is starting
              stopping: Server is stopping
              pausing: Server is pausing
              locked: Server is locked
              rebooting: Server is rebooting
          default: unknown_status
        architecture:
          type: string
          description: Architecture of the server.
          enum:
          - unknown_architecture
          - x86_64
          - aarch64
          x-enum-descriptions:
            values:
              unknown_architecture: Architecture is unknown
              x86_64: X86_64 architecture
              aarch64: AArch64 architecture
          default: unknown_architecture
        created_at:
          type: string
          description: Creation timestamp of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last update timestamp of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        rescue_mode:
          type: boolean
          description: Whether the server is in rescue mode.
      x-properties-order:
      - id
      - name
      - project_id
      - tags
      - server_type
      - placement_group_id
      - status
      - architecture
      - created_at
      - updated_at
      - rescue_mode
    scaleway.instance.v2alpha1.ServerType:
      type: object
      properties:
        name:
          type: string
          description: Name of the server type.
        vcpu_count:
          type: integer
          description: Number of vCPUs.
          format: uint32
        gpu_count:
          type: integer
          description: Number of GPUs.
          format: uint32
        memory:
          type: integer
          description: Amount of memory. (in bytes)
          format: uint64
        architecture:
          type: string
          description: Architecture of the server type.
          enum:
          - unknown_architecture
          - x86_64
          - aarch64
          x-enum-descriptions:
            values:
              unknown_architecture: Architecture is unknown
              x86_64: X86_64 architecture
              aarch64: AArch64 architecture
          default: unknown_architecture
        availability:
          type: string
          description: Availability status of the server type.
          enum:
          - unknown_availability
          - available
          - low_stock
          - out_of_stock
          x-enum-descriptions:
            values:
              unknown_availability: Availability is unknown
              available: Server type is available
              low_stock: Server type is in low stock
              out_of_stock: Server type is out of stock
          default: unknown_availability
        limits:
          type: object
          description: Limits for the server type.
          properties:
            private_network_count:
              type: integer
              description: Maximum number of Private Networks.
              format: uint32
            file_system_count:
              type: integer
              description: Maximum number of filesystems.
              format: uint32
            private_network_bandwidth:
              type: integer
              description: Maximum Private Network bandwidth.
              format: uint64
            block_bandwidth:
              type: integer
              description: Maximum block storage bandwidth.
              format: uint64
            internet_bandwidth:
              type: integer
              description: Maximum internet bandwidth.
              format: uint64
            l_ssd_size:
              type: integer
              description: Maximum size of local SSD. (in bytes)
              format: uint64
            scratch_size:
              type: integer
              description: Maximum size of scratch storage. (in bytes)
              format: uint64
            scratch_volumes_count:
              type: integer
              description: Maximum number of scratch volumes.
              format: uint32
            ip_count:
              type: integer
              description: Maximum number of IPs.
              format: uint32
            volume_count:
              type: integer
              description: Maximum number of volumes.
              format: uint32
          x-properties-order:
          - private_network_count
          - file_system_count
          - private_network_bandwidth
          - block_bandwidth
          - internet_bandwidth
          - l_ssd_size
          - scratch_size
          - scratch_volumes_count
          - ip_count
          - volume_count
        gpu_info:
          type: object
          description: GPU information for the server type.
          properties:
            manufacturer:
              type: string
              description: Manufacturer of the GPU.
            name:
              type: string
              description: Name of the GPU.
            memory:
              type: integer
              description: Memory of the GPU. (in bytes)
              format: uint64
          x-properties-order:
          - manufacturer
          - name
          - memory
        end_of_service:
          type: boolean
          description: Whether the server type has reached end of service.
      x-properties-order:
      - name
      - vcpu_count
      - gpu_count
      - memory
      - architecture
      - availability
      - limits
      - gpu_info
      - end_of_service
    scaleway.instance.v2alpha1.Template:
      type: object
      properties:
        project_id:
          type: string
          description: Project ID associated with the template.
        id:
          type: string
          description: Unique ID of the template.
        name:
          type: string
          description: Name of the template.
        tags:
          type: array
          description: Tags associated with the template.
          items:
            type: string
        server_tags:
          type: array
          description: Tags associated with servers created from this template.
          items:
            type: string
        server_type:
          type: string
          description: Commercial type of the server defined by the template.
        security_group_id:
          type: string
          description: Security group ID associated with the template.
          nullable: true
        placement_group_id:
          type: string
          description: Placement group ID associated with the template.
          nullable: true
        public_ip_v4_count:
          type: integer
          description: Number of IPv4 public IPs to attach to servers created from
            this template.
          format: uint32
        public_ip_v6_count:
          type: integer
          description: Number of IPv6 public IPs to attach to servers created from
            this template.
          format: uint32
        volumes:
          type: array
          description: List of volume templates used to create volumes for servers.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateTemplateRequest.VolumeTemplate'
        private_networks:
          type: array
          description: List of private network associated with the template.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateTemplateRequest.PrivateNetworkTemplate'
        filesystem_ids:
          type: array
          description: List of filesystem IDs associated with the template.
          items:
            type: string
        created_at:
          type: string
          description: Creation timestamp of the template. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last update timestamp of the template. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        windows_rdp_ssh_key_id:
          type: string
          description: IAM ID of the SSH key used to encrypt the Windows `Administrator`
            password for RDP use.
          nullable: true
        zone:
          type: string
          description: Zone in which the template is located.
      x-properties-order:
      - project_id
      - id
      - name
      - tags
      - server_tags
      - server_type
      - security_group_id
      - placement_group_id
      - public_ip_v4_count
      - public_ip_v6_count
      - volumes
      - private_networks
      - filesystem_ids
      - created_at
      - updated_at
      - windows_rdp_ssh_key_id
      - zone
    scaleway.instance.v2alpha1.TemplateSummary:
      type: object
      properties:
        project_id:
          type: string
          description: Project ID associated with the template.
        id:
          type: string
          description: Unique ID of the template.
        name:
          type: string
          description: Name of the template.
        tags:
          type: array
          description: Tags associated with the template.
          items:
            type: string
        server_tags:
          type: array
          description: Tags associated with servers created from this template.
          items:
            type: string
        server_type:
          type: string
          description: Commercial type of the server defined by the template.
        security_group_id:
          type: string
          description: Security group ID associated with the template.
          nullable: true
        placement_group_id:
          type: string
          description: Placement group ID associated with the template.
          nullable: true
        public_ip_v4_count:
          type: integer
          description: Number of IPv4 public IPs to attach to servers created from
            this template.
          format: uint32
        public_ip_v6_count:
          type: integer
          description: Number of IPv6 public IPs to attach to servers created from
            this template.
          format: uint32
        filesystem_ids:
          type: array
          description: List of Filesystem IDs associated with the template.
          items:
            type: string
        created_at:
          type: string
          description: Creation timestamp of the template. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Last update timestamp of the template. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        zone:
          type: string
          description: Zone in which the template is located.
      x-properties-order:
      - project_id
      - id
      - name
      - tags
      - server_tags
      - server_type
      - security_group_id
      - placement_group_id
      - public_ip_v4_count
      - public_ip_v6_count
      - filesystem_ids
      - created_at
      - updated_at
      - zone
    scaleway.instance.v2alpha1.UserData:
      type: object
      properties:
        key:
          type: string
          description: The key of the user data.
        content:
          type: string
          description: The content of the user data.
      x-properties-order:
      - key
      - content
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /instance/v2alpha1/zones/{zone}/placement-groups:
    get:
      tags:
      - Placement Groups
      operationId: ListPlacementGroups
      summary: List placement groups
      description: List all placement groups.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: query
        name: page_token
        description: The initial pagination token to start from.
        schema:
          type: string
      - in: query
        name: page_size
        description: The maximum number of placement groups to return.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: The field by which to order the result list.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          - updated_at_desc
          - updated_at_asc
          x-enum-descriptions:
            values:
              created_at_desc: Created at descending
              created_at_asc: Created at ascending
              updated_at_desc: Updated at descending
              updated_at_asc: Updated at ascending
          default: created_at_desc
      - in: query
        name: project_id
        description: List only placement groups of this Project ID.
        required: true
        schema:
          type: string
      - in: query
        name: placement_group_ids
        description: List only placement groups with these IDs.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: name
        description: Filter placement groups by name.
        schema:
          type: string
      - in: query
        name: tags
        description: List placement groups with these exact tags.
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListPlacementGroupsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/placement-groups?project_id=string"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/placement-groups" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==string
    post:
      tags:
      - Placement Groups
      operationId: CreatePlacementGroup
      summary: Create a placement group
      description: Create a new placement group.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.PlacementGroup'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: Project ID of the placement group.
                name:
                  type: string
                  description: Name of the placement group.
                policy_type:
                  type: string
                  description: Policy type of the placement group.
                  enum:
                  - unknown_policy_type
                  - low_latency
                  - max_availability
                  x-enum-descriptions:
                    values:
                      unknown_policy_type: Unknown policy type
                      low_latency: Ensures that all servers in the placement group
                        are placed on the same physical host to minimize latency
                      max_availability: Distributes servers across multiple physical
                        hosts to maximize availability
                  default: unknown_policy_type
                tags:
                  type: array
                  description: Tags of the placement group.
                  items:
                    type: string
              x-properties-order:
              - project_id
              - name
              - policy_type
              - tags
      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","project_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/placement-groups"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/placement-groups" \
            X-Auth-Token:$SCW_SECRET_KEY \
            name="string" \
            project_id="string"
  /instance/v2alpha1/zones/{zone}/placement-groups/{placement_group_id}:
    get:
      tags:
      - Placement Groups
      operationId: GetPlacementGroup
      summary: Get a placement group
      description: Get a specified placement group.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: placement_group_id
        description: UUID of the placement group you want to get.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.PlacementGroup'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/placement-groups/{placement_group_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/placement-groups/{placement_group_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Placement Groups
      operationId: UpdatePlacementGroup
      summary: Update a placement group
      description: Update the properties of a specified placement group.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: placement_group_id
        description: UUID of the placement group.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.PlacementGroup'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the placement group.
                  nullable: true
                policy_type:
                  type: string
                  description: Policy type of the placement group.
                  enum:
                  - unknown_policy_type
                  - low_latency
                  - max_availability
                  x-enum-descriptions:
                    values:
                      unknown_policy_type: Unknown policy type
                      low_latency: Ensures that all servers in the placement group
                        are placed on the same physical host to minimize latency
                      max_availability: Distributes servers across multiple physical
                        hosts to maximize availability
                  default: unknown_policy_type
                tags:
                  type: array
                  description: Tags of the placement group.
                  nullable: true
                  items:
                    type: string
              x-properties-order:
              - name
              - policy_type
              - 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/instance/v2alpha1/zones/{zone}/placement-groups/{placement_group_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/placement-groups/{placement_group_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Placement Groups
      operationId: DeletePlacementGroup
      summary: Delete a placement group
      description: Delete a specified placement group.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: placement_group_id
        description: UUID of the placement group you want to delete.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/placement-groups/{placement_group_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/placement-groups/{placement_group_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/private-network-interfaces:
    get:
      tags:
      - Private Network Interfaces
      operationId: ListPrivateNetworkInterfaces
      summary: List private network interfaces
      description: List all private network interfaces.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: query
        name: page_token
        description: Token for pagination.
        schema:
          type: string
      - in: query
        name: page_size
        description: Number of items to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Field to order results by.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          - updated_at_desc
          - updated_at_asc
          x-enum-descriptions:
            values:
              created_at_desc: Created at descending
              created_at_asc: Created at ascending
              updated_at_desc: Updated at descending
              updated_at_asc: Updated at ascending
          default: created_at_desc
      - in: query
        name: project_id
        description: Filter by Project ID.
        required: true
        schema:
          type: string
      - in: query
        name: server_ids
        description: Filter by server IDs.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: private_network_ids
        description: Filter by Private Network IDs.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: tags
        description: Filter by tags.
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListPrivateNetworkInterfacesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces?project_id=string"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==string
    post:
      tags:
      - Private Network Interfaces
      operationId: CreatePrivateNetworkInterface
      summary: Create a private network interface
      description: Create a private network interface linked to a Private Network.
        It can be attached to an Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.PrivateNetworkInterface'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                private_network_id:
                  type: string
                  description: ID of the Private Network to attach to.
                project_id:
                  type: string
                  description: Project ID for the private network interface.
                server_id:
                  type: string
                  description: ID of the Instance to attach the interface to.
                  nullable: true
                ip_ids:
                  type: array
                  description: List of IP IDs to attach to the interface.
                  items:
                    type: string
                tags:
                  type: array
                  description: Tags to assign to the private network interface.
                  items:
                    type: string
              x-properties-order:
              - private_network_id
              - project_id
              - server_id
              - ip_ids
              - tags
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"private_network_id":"string","project_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces" \
            X-Auth-Token:$SCW_SECRET_KEY \
            private_network_id="string" \
            project_id="string"
  /instance/v2alpha1/zones/{zone}/private-network-interfaces/{private_network_interface_id}:
    get:
      tags:
      - Private Network Interfaces
      operationId: GetPrivateNetworkInterface
      summary: Get a private network interface
      description: Get details of a specified private network interface.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: private_network_interface_id
        description: ID of the private network interface to retrieve.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.PrivateNetworkInterface'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces/{private_network_interface_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces/{private_network_interface_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Private Network Interfaces
      operationId: UpdatePrivateNetworkInterface
      summary: Update a private network interface
      description: Update the properties of a specified private network interface.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: private_network_interface_id
        description: ID of the private network interface to update.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.PrivateNetworkInterface'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tags:
                  type: array
                  description: New tags to assign to the private network interface.
                  nullable: true
                  items:
                    type: string
              x-properties-order:
              - 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/instance/v2alpha1/zones/{zone}/private-network-interfaces/{private_network_interface_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces/{private_network_interface_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Private Network Interfaces
      operationId: DeletePrivateNetworkInterface
      summary: Delete a private network interface
      description: Delete a specified private network interface.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: private_network_interface_id
        description: ID of the private network interface to delete.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces/{private_network_interface_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces/{private_network_interface_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/resource-counts:
    get:
      tags:
      - Resource Counts
      operationId: GetResourceCounts
      summary: Get resource counts
      description: Get counts of various resources (e.g. servers, volumes).
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ResourceCounts'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/resource-counts"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/resource-counts" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/security-group-rules:
    post:
      tags:
      - Security Groups
      operationId: AddSecurityGroupRules
      summary: Add rules to a security group
      description: Add one or more rules to a security group.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.AddSecurityGroupRulesResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                security_group_id:
                  type: string
                  description: ID of the security group to add rules to.
                security_group_rules:
                  type: array
                  description: List of rules to add.
                  items:
                    $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRuleConfig'
              x-properties-order:
              - security_group_id
              - security_group_rules
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"security_group_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-group-rules"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-group-rules" \
            X-Auth-Token:$SCW_SECRET_KEY \
            security_group_id="string"
    put:
      tags:
      - Security Groups
      operationId: SetSecurityGroupRules
      summary: Set all rules of a security group
      description: Replace all rules of a specified security group with the provided
        rules.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                security_group_id:
                  type: string
                  description: ID of the security group to set rules for.
                security_group_rules:
                  type: array
                  description: List of rules to set.
                  items:
                    $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRuleConfig'
              x-properties-order:
              - security_group_id
              - security_group_rules
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PUT \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"security_group_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-group-rules"
      - lang: HTTPie
        source: |-
          http PUT "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-group-rules" \
            X-Auth-Token:$SCW_SECRET_KEY \
            security_group_id="string"
    delete:
      tags:
      - Security Groups
      operationId: DeleteSecurityGroupRules
      summary: Delete rules from a security group
      description: Delete specified security groups.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        "204":
          description: ""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                security_group_rule_ids:
                  type: array
                  description: List of rule IDs to delete.
                  items:
                    type: string
              x-properties-order:
              - security_group_rule_ids
      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/instance/v2alpha1/zones/{zone}/security-group-rules"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-group-rules" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/security-group-rules/{security_group_rule_id}:
    patch:
      tags:
      - Security Groups
      operationId: UpdateSecurityGroupRule
      summary: Update a security group rule
      description: Update the properties of a rule from a specified security group.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: security_group_rule_id
        description: ID of the rule to update.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                protocol:
                  type: string
                  description: New protocol for the rule.
                  enum:
                  - unknown_protocol
                  - tcp
                  - udp
                  - icmp
                  - any
                  x-enum-descriptions:
                    values:
                      unknown_protocol: Unknown protocol
                      tcp: TCP protocol
                      udp: UDP protocol
                      icmp: ICMP protocol
                      any: Any protocol
                  default: unknown_protocol
                direction:
                  type: string
                  description: New direction for the rule.
                  enum:
                  - unknown_direction
                  - inbound
                  - outbound
                  - both
                  x-enum-descriptions:
                    values:
                      unknown_direction: Unknown direction
                      inbound: Inbound traffic
                      outbound: Outbound traffic
                      both: Both inbound and outbound traffic
                  default: unknown_direction
                action:
                  type: string
                  description: New action for the rule.
                  enum:
                  - unknown_action
                  - accept
                  - drop
                  x-enum-descriptions:
                    values:
                      unknown_action: Unknown action
                      accept: Accept the traffic
                      drop: Drop the traffic
                  default: unknown_action
                source_ip_range:
                  type: string
                  description: New source IP range for the rule. (IP network)
                  example: 1.2.3.4/32
                  nullable: true
                destination_ip_range:
                  type: string
                  description: New destination IP range for the rule. (IP network)
                  example: 1.2.3.4/32
                  nullable: true
                source_ports:
                  type: object
                  description: New source port range for the rule.
                  properties:
                    start:
                      type: integer
                      description: Start of the port range.
                      format: uint32
                    end:
                      type: integer
                      description: End of the port range.
                      format: uint32
                  x-properties-order:
                  - start
                  - end
                destination_ports:
                  type: object
                  description: New destination port range for the rule.
                  properties:
                    start:
                      type: integer
                      description: Start of the port range.
                      format: uint32
                    end:
                      type: integer
                      description: End of the port range.
                      format: uint32
                  x-properties-order:
                  - start
                  - end
                position:
                  type: integer
                  description: New position for the rule.
                  format: int32
                  nullable: true
              x-properties-order:
              - protocol
              - direction
              - action
              - source_ip_range
              - destination_ip_range
              - source_ports
              - destination_ports
              - position
      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/instance/v2alpha1/zones/{zone}/security-group-rules/{security_group_rule_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-group-rules/{security_group_rule_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/security-groups:
    get:
      tags:
      - Security Groups
      operationId: ListSecurityGroups
      summary: List security groups
      description: List all security groups.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: query
        name: page_token
        description: Token for pagination.
        schema:
          type: string
      - in: query
        name: page_size
        description: Number of items to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Field and direction to sort by.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          - updated_at_desc
          - updated_at_asc
          x-enum-descriptions:
            values:
              created_at_desc: Created at descending
              created_at_asc: Created at ascending
              updated_at_desc: Updated at descending
              updated_at_asc: Updated at ascending
          default: created_at_desc
      - in: query
        name: project_id
        description: Filter by Project ID.
        required: true
        schema:
          type: string
      - in: query
        name: name
        description: Filter by name.
        schema:
          type: string
      - in: query
        name: tags
        description: Filter by tags.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: security_group_ids
        description: Filter by specific security group IDs.
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListSecurityGroupsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-groups?project_id=string"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-groups" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==string
    post:
      tags:
      - Security Groups
      operationId: CreateSecurityGroup
      summary: Create a security group
      description: Create a security group with a specified name and description.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the security group.
                description:
                  type: string
                  description: Description of the security group.
                disable_default_rules:
                  type: boolean
                  description: Whether to disable default rules.
                project_id:
                  type: string
                  description: Project ID the security group belongs to.
                tags:
                  type: array
                  description: Tags for the security group.
                  items:
                    type: string
                project_default:
                  type: boolean
                  description: Whether this should be the default security group for
                    the project.
                inbound_default_action:
                  type: string
                  description: Default action for inbound rules.
                  enum:
                  - unknown_action
                  - accept
                  - drop
                  x-enum-descriptions:
                    values:
                      unknown_action: Unknown action
                      accept: Accept the traffic
                      drop: Drop the traffic
                  default: unknown_action
                outbound_default_action:
                  type: string
                  description: Default action for outbound rules.
                  enum:
                  - unknown_action
                  - accept
                  - drop
                  x-enum-descriptions:
                    values:
                      unknown_action: Unknown action
                      accept: Accept the traffic
                      drop: Drop the traffic
                  default: unknown_action
                stateless:
                  type: boolean
                  description: Whether the security group should be stateless.
              x-properties-order:
              - name
              - description
              - disable_default_rules
              - project_id
              - tags
              - project_default
              - inbound_default_action
              - outbound_default_action
              - stateless
      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",
              "disable_default_rules": false,
              "name": "string",
              "project_default": false,
              "project_id": "string",
              "stateless": false
            }' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-groups"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-groups" \
            X-Auth-Token:$SCW_SECRET_KEY \
            description="string" \
            disable_default_rules:=false \
            name="string" \
            project_default:=false \
            project_id="string" \
            stateless:=false
  /instance/v2alpha1/zones/{zone}/security-groups/{security_group_id}:
    get:
      tags:
      - Security Groups
      operationId: GetSecurityGroup
      summary: Get a security group
      description: Get the details of a specified security group.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: security_group_id
        description: ID of the security group to retrieve.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-groups/{security_group_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-groups/{security_group_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Security Groups
      operationId: UpdateSecurityGroup
      summary: Update a security group
      description: Update the properties of a security group.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: security_group_id
        description: ID of the security group to update.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: New name for the security group.
                  nullable: true
                description:
                  type: string
                  description: New description for the security group.
                  nullable: true
                disable_default_rules:
                  type: boolean
                  description: Whether to disable default rules.
                  nullable: true
                tags:
                  type: array
                  description: New tags for the security group.
                  nullable: true
                  items:
                    type: string
                project_default:
                  type: boolean
                  description: Whether this should be the default security group for
                    the project.
                  nullable: true
                inbound_default_action:
                  type: string
                  description: New default action for inbound rules.
                  enum:
                  - unknown_action
                  - accept
                  - drop
                  x-enum-descriptions:
                    values:
                      unknown_action: Unknown action
                      accept: Accept the traffic
                      drop: Drop the traffic
                  default: unknown_action
                outbound_default_action:
                  type: string
                  description: New default action for outbound rules.
                  enum:
                  - unknown_action
                  - accept
                  - drop
                  x-enum-descriptions:
                    values:
                      unknown_action: Unknown action
                      accept: Accept the traffic
                      drop: Drop the traffic
                  default: unknown_action
                stateless:
                  type: boolean
                  description: Whether the security group should be stateless.
                  nullable: true
              x-properties-order:
              - name
              - description
              - disable_default_rules
              - tags
              - project_default
              - inbound_default_action
              - outbound_default_action
              - stateless
      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/instance/v2alpha1/zones/{zone}/security-groups/{security_group_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-groups/{security_group_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Security Groups
      operationId: DeleteSecurityGroup
      summary: Delete a security group
      description: Delete a specified security group.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: security_group_id
        description: ID of the security group to delete.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-groups/{security_group_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/security-groups/{security_group_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/server-types:
    get:
      tags:
      - Instance Types
      operationId: ListServerTypes
      summary: List Instance types
      description: List available Instance types and their technical details.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: query
        name: page_token
        description: Token for pagination.
        schema:
          type: string
      - in: query
        name: page_size
        description: Number of server types to return per page.
        schema:
          type: integer
          format: uint32
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListServerTypesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/server-types"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/server-types" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/servers:
    get:
      tags:
      - Instances
      operationId: ListServers
      summary: List all Instances
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: query
        name: page_token
        description: Token for pagination.
        schema:
          type: string
      - in: query
        name: page_size
        description: Number of servers to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Order of the returned servers.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          - updated_at_desc
          - updated_at_asc
          default: created_at_desc
      - in: query
        name: project_id
        description: Project ID to filter servers.
        required: true
        schema:
          type: string
      - in: query
        name: server_ids
        description: List of server IDs to filter.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: name
        description: Name to filter servers.
        schema:
          type: string
      - in: query
        name: server_type
        description: Server type to filter.
        schema:
          type: string
      - in: query
        name: tags
        description: Tags to filter servers.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: security_group_ids
        description: Security group IDs to filter servers.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: placement_group_ids
        description: Placement group IDs to filter servers.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: private_network_ids
        description: Private Network IDs to filter servers.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: mac_addresses
        description: MAC addresses to filter servers.
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListServersResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers?project_id=string"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==string
    post:
      tags:
      - Instances
      operationId: CreateServer
      summary: Create an Instance
      description: Create a new Instance of a specified server_type.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: Project ID for the server.
                name:
                  type: string
                  description: Name of the server.
                tags:
                  type: array
                  description: Tags to associate with the server.
                  items:
                    type: string
                server_type:
                  type: string
                  description: Type of the server.
                placement_group_id:
                  type: string
                  description: ID of the placement group the server belongs to.
                  nullable: true
                volumes:
                  type: array
                  description: Volumes to attach to the server.
                  items:
                    $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateServerRequest.ServerVolume'
                windows_rdp_ssh_key_id:
                  type: string
                  description: IAM ID of the SSH key used to encrypt the Windows `Administrator`
                    password for RDP use.
                  nullable: true
                public_network_interface:
                  type: object
                  description: Public network interface configuration.
                  properties:
                    security_group_id:
                      type: string
                      description: ID of the security group for the interface.
                      nullable: true
                    ips:
                      type: array
                      description: List of IPs to attach to the interface.
                      items:
                        $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateServerRequest.ServerIP'
                  x-properties-order:
                  - security_group_id
                  - ips
              x-properties-order:
              - project_id
              - name
              - tags
              - server_type
              - placement_group_id
              - volumes
              - windows_rdp_ssh_key_id
              - public_network_interface
      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",
              "project_id": "string",
              "server_type": "string"
            }' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers" \
            X-Auth-Token:$SCW_SECRET_KEY \
            name="string" \
            project_id="string" \
            server_type="string"
  /instance/v2alpha1/zones/{zone}/servers/{server_id}:
    get:
      tags:
      - Instances
      operationId: GetServer
      summary: Get an Instance
      description: Get the details of a specified Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to retrieve.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Instances
      operationId: UpdateServer
      summary: Update an Instance
      description: Update the properties of a specified Instance information, such
        as name, rescue_mode, or tags.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to update.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: New name for the server.
                  nullable: true
                tags:
                  type: array
                  description: New tags for the server.
                  nullable: true
                  items:
                    type: string
                server_type:
                  type: string
                  description: New server type.
                  nullable: true
                placement_group_id:
                  type: string
                  description: New placement group ID.
                  nullable: true
                rescue_mode:
                  type: boolean
                  description: New rescue mode setting.
                  nullable: true
                boot_volume_id:
                  type: string
                  description: New boot volume ID.
                  nullable: true
                windows_rdp_ssh_key_id:
                  type: string
                  description: New IAM ID of the SSH key used to encrypt the Windows
                    `Administrator` password for RDP use.
                  nullable: true
                protected:
                  type: boolean
                  description: Protection status of the server.
                  nullable: true
                public_network_interface:
                  type: object
                  description: New public network interface configuration.
                  properties:
                    security_group_id:
                      type: string
                      description: ID of the security group for the interface.
                      nullable: true
                  x-properties-order:
                  - security_group_id
              x-properties-order:
              - name
              - tags
              - server_type
              - placement_group_id
              - rescue_mode
              - boot_volume_id
              - windows_rdp_ssh_key_id
              - protected
              - public_network_interface
      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/instance/v2alpha1/zones/{zone}/servers/{server_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Instances
      operationId: DeleteServer
      summary: Delete an Instance
      description: Delete a specified Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to delete.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-filesystem:
    post:
      tags:
      - Instances
      operationId: AttachServerFileSystem
      summary: Attach a filesystem volume to an Instance
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to attach the filesystem to.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                filesystem_id:
                  type: string
                  description: ID of the filesystem to attach.
              x-properties-order:
              - filesystem_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"filesystem_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-filesystem"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-filesystem" \
            X-Auth-Token:$SCW_SECRET_KEY \
            filesystem_id="string"
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-ip:
    post:
      tags:
      - Instances
      operationId: AttachServerIP
      summary: Attach an IP to an Instance
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to attach the IP to.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ip_id:
                  type: string
                  description: ID of the IP to attach.
                default:
                  type: boolean
                  description: Whether the IP should be the default IP.
                move_allowed:
                  type: boolean
                  description: Whether moving the IP is allowed.
              x-properties-order:
              - ip_id
              - default
              - move_allowed
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "default": false,
              "ip_id": "string",
              "move_allowed": false
            }' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-ip"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-ip" \
            X-Auth-Token:$SCW_SECRET_KEY \
            default:=false \
            ip_id="string" \
            move_allowed:=false
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-private-network-interface:
    post:
      tags:
      - Instances
      operationId: AttachServerPrivateNetworkInterface
      summary: Attach a private network interface to an Instance
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to attach the private network interface to.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                private_network_interface_id:
                  type: string
                  description: ID of the private network interface to attach.
              x-properties-order:
              - private_network_interface_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"private_network_interface_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-private-network-interface"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-private-network-interface" \
            X-Auth-Token:$SCW_SECRET_KEY \
            private_network_interface_id="string"
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-volume:
    post:
      tags:
      - Instances
      operationId: AttachServerVolume
      summary: Attach a volume to an Instance
      description: Attach a l_ssd or SBS volume to an Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to attach the volume to.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                volume_id:
                  type: string
                  description: ID of the volume to attach.
                volume_type:
                  type: string
                  description: Type of the volume.
                  enum:
                  - unknown_volume_type
                  - l_ssd
                  - sbs
                  - scratch
                  x-enum-descriptions:
                    values:
                      unknown_volume_type: Volume type is unknown
                      l_ssd: Local SSD volume
                      sbs: Scaleway Block Storage volume
                      scratch: Scratch volume
                  default: unknown_volume_type
                boot_volume:
                  type: boolean
                  description: Whether the volume should be used as the boot volume.
              x-properties-order:
              - volume_id
              - volume_type
              - boot_volume
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"boot_volume":false,"volume_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-volume"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/attach-volume" \
            X-Auth-Token:$SCW_SECRET_KEY \
            boot_volume:=false \
            volume_id="string"
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-filesystem:
    post:
      tags:
      - Instances
      operationId: DetachServerFileSystem
      summary: Detach a filesystem volume from an Instance
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to detach the filesystem from.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                filesystem_id:
                  type: string
                  description: ID of the filesystem to detach.
              x-properties-order:
              - filesystem_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"filesystem_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-filesystem"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-filesystem" \
            X-Auth-Token:$SCW_SECRET_KEY \
            filesystem_id="string"
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-ip:
    post:
      tags:
      - Instances
      operationId: DetachServerIP
      summary: Detach an IP from an Instance
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to detach the IP from.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ip_id:
                  type: string
                  description: ID of the IP to detach.
              x-properties-order:
              - ip_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"ip_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-ip"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-ip" \
            X-Auth-Token:$SCW_SECRET_KEY \
            ip_id="string"
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-private-network-interface:
    post:
      tags:
      - Instances
      operationId: DetachServerPrivateNetworkInterface
      summary: Detach a private network interface from an Instance
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to detach the private network interface from.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                private_network_interface_id:
                  type: string
                  description: ID of the private network interface to detach.
              x-properties-order:
              - private_network_interface_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"private_network_interface_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-private-network-interface"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-private-network-interface" \
            X-Auth-Token:$SCW_SECRET_KEY \
            private_network_interface_id="string"
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-volume:
    post:
      tags:
      - Instances
      operationId: DetachServerVolume
      summary: Detach a volume from an Instance
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to detach the volume from.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                volume_id:
                  type: string
                  description: ID of the volume to detach.
              x-properties-order:
              - volume_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"volume_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-volume"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/detach-volume" \
            X-Auth-Token:$SCW_SECRET_KEY \
            volume_id="string"
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/pause:
    post:
      tags:
      - Instances
      operationId: PauseServer
      summary: Pause an Instance
      description: Pause a running Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to pause.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      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/instance/v2alpha1/zones/{zone}/servers/{server_id}/pause"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/pause" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/reboot:
    post:
      tags:
      - Instances
      operationId: RebootServer
      summary: Reboot an Instance
      description: Reboot a running or paused Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to reboot.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      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/instance/v2alpha1/zones/{zone}/servers/{server_id}/reboot"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/reboot" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/set-default-ip:
    post:
      tags:
      - Instances
      operationId: SetServerDefaultIP
      summary: Set default IP for an Instance
      description: Set the default IP for an Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to set the default IP for.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ip_id:
                  type: string
                  description: ID of the IP to set as default.
              x-properties-order:
              - ip_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"ip_id":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/set-default-ip"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/set-default-ip" \
            X-Auth-Token:$SCW_SECRET_KEY \
            ip_id="string"
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/start:
    post:
      tags:
      - Instances
      operationId: StartServer
      summary: Start an Instance
      description: Start a stopped or paused Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to start.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      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/instance/v2alpha1/zones/{zone}/servers/{server_id}/start"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/start" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/stop:
    post:
      tags:
      - Instances
      operationId: StopServer
      summary: Stop an Instance
      description: Stop a running or paused Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to stop.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      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/instance/v2alpha1/zones/{zone}/servers/{server_id}/stop"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/stop" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/stop-and-delete:
    post:
      tags:
      - Instances
      operationId: StopAndDeleteServer
      summary: Stop and delete an Instance
      description: Stop and delete a running or paused Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: ID of the server to stop and delete.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                delete_all_ips:
                  type: boolean
                  description: Whether to delete all IPs attached to the server.
                  nullable: true
                  x-one-of: ips
                delete_ip_ids:
                  type: array
                  description: List of IP IDs to delete.
                  nullable: true
                  x-one-of: ips
                  items:
                    type: string
                delete_all_volumes:
                  type: boolean
                  description: Whether to delete all volumes attached to the server.
                  nullable: true
                  x-one-of: volumes
                delete_volume_ids:
                  type: array
                  description: List of volume IDs to delete.
                  nullable: true
                  x-one-of: volumes
                  items:
                    type: string
                keep_all_private_nics:
                  type: boolean
                  description: Whether to keep all private network interfaces.
                  nullable: true
                  x-one-of: private_nics
                delete_private_nic_ids:
                  type: array
                  description: List of private network interface IDs to delete.
                  nullable: true
                  x-one-of: private_nics
                  items:
                    type: string
              x-properties-order:
              - delete_all_ips
              - delete_ip_ids
              - delete_all_volumes
              - delete_volume_ids
              - keep_all_private_nics
              - delete_private_nic_ids
      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/instance/v2alpha1/zones/{zone}/servers/{server_id}/stop-and-delete"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/stop-and-delete" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data:
    get:
      tags:
      - User Data
      operationId: ListUserDataKeys
      summary: List user data keys
      description: List all user data keys registered on a specified Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: The ID of the server.
        required: true
        schema:
          type: string
      - in: query
        name: page_token
        description: Page token for pagination.
        schema:
          type: string
      - in: query
        name: page_size
        description: Number of items to return per page.
        schema:
          type: integer
          format: uint32
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListUserDataKeysResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/{key}:
    get:
      tags:
      - User Data
      operationId: GetUserData
      summary: Get user data
      description: Get the content of a user data with a specified key on an Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: The ID of the server.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: The key of the user data to retrieve.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.UserData'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/{key}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/{key}" \
            X-Auth-Token:$SCW_SECRET_KEY
    put:
      tags:
      - User Data
      operationId: SetUserData
      summary: Add/set user data
      description: Add or update a user data with a specified key on an Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: The ID of the server.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: The key of the user data to set.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                  description: The content to set for the user data.
              x-properties-order:
              - content
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PUT \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"content":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/{key}"
      - lang: HTTPie
        source: |-
          http PUT "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/{key}" \
            X-Auth-Token:$SCW_SECRET_KEY \
            content="string"
    delete:
      tags:
      - User Data
      operationId: DeleteUserData
      summary: Delete user data
      description: Delete a specified key from an Instance's user data.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: The ID of the server.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: The key of the user data to delete.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/{key}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/{key}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/cloud-init:
    get:
      tags:
      - User Data
      operationId: GetServerCloudInit
      summary: Get cloud-init user data
      description: Get the cloud-init configuration of a specified Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: The ID of the server.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.UserData'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/cloud-init"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/cloud-init" \
            X-Auth-Token:$SCW_SECRET_KEY
    put:
      tags:
      - User Data
      operationId: SetServerCloudInit
      summary: Set cloud-init user data
      description: Set the cloud-init configuration for a specified Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: server_id
        description: The ID of the server.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                  description: The cloud-init configuration content.
              x-properties-order:
              - content
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PUT \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"content":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/cloud-init"
      - lang: HTTPie
        source: |-
          http PUT "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/user-data/cloud-init" \
            X-Auth-Token:$SCW_SECRET_KEY \
            content="string"
  /instance/v2alpha1/zones/{zone}/templates:
    get:
      tags:
      - Templates
      operationId: ListTemplates
      summary: List templates
      description: List all available templates.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: query
        name: page_token
        description: Token for pagination.
        schema:
          type: string
      - in: query
        name: page_size
        description: Number of items to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Field to sort results by.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          - updated_at_desc
          - updated_at_asc
          default: created_at_desc
      - in: query
        name: project_id
        description: Filter by Project ID.
        required: true
        schema:
          type: string
      - in: query
        name: template_ids
        description: Filter by specific template IDs.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: name
        description: Filter by template name.
        schema:
          type: string
      - in: query
        name: tags
        description: Filter by tags.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: server_tags
        description: Filter by server tags.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: security_group_ids
        description: Filter by security group IDs.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: placement_group_ids
        description: Filter by placement group IDs.
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListTemplatesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates?project_id=string"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==string
    post:
      tags:
      - Templates
      operationId: CreateTemplate
      summary: Create a template
      description: Create a new template from an Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Template'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: Project ID for the template.
                name:
                  type: string
                  description: Name of the template.
                tags:
                  type: array
                  description: Tags to associate with the template.
                  items:
                    type: string
                server_tags:
                  type: array
                  description: Tags to associate with servers created from the template.
                  items:
                    type: string
                server_type:
                  type: string
                  description: Commercial type of the server defined by the template.
                security_group_id:
                  type: string
                  description: Security group ID for the template.
                  nullable: true
                placement_group_id:
                  type: string
                  description: Placement group ID for the template.
                  nullable: true
                volumes:
                  type: array
                  description: List of volume templates to define volumes for servers.
                  items:
                    $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateTemplateRequest.VolumeTemplate'
                private_networks:
                  type: array
                  description: List of private networks to associate with the template.
                  items:
                    $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateTemplateRequest.PrivateNetworkTemplate'
                filesystem_ids:
                  type: array
                  description: List of filesystem IDs to associate with the template.
                  items:
                    type: string
                public_ip_v4_count:
                  type: integer
                  description: Number of IPv4 public IPs to attach to servers created
                    from this template.
                  format: uint32
                public_ip_v6_count:
                  type: integer
                  description: Number of IPv6 public IPs to attach to servers created
                    from this template.
                  format: uint32
                windows_rdp_ssh_key_id:
                  type: string
                  description: IAM ID of the SSH key used to encrypt the Windows `Administrator`
                    password for RDP use.
                  nullable: true
              x-properties-order:
              - project_id
              - name
              - tags
              - server_tags
              - server_type
              - security_group_id
              - placement_group_id
              - volumes
              - private_networks
              - filesystem_ids
              - public_ip_v4_count
              - public_ip_v6_count
              - windows_rdp_ssh_key_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",
              "project_id": "string",
              "public_ip_v4_count": 42,
              "public_ip_v6_count": 42,
              "server_type": "string"
            }' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates" \
            X-Auth-Token:$SCW_SECRET_KEY \
            name="string" \
            project_id="string" \
            public_ip_v4_count:=42 \
            public_ip_v6_count:=42 \
            server_type="string"
  /instance/v2alpha1/zones/{zone}/templates/{template_id}:
    get:
      tags:
      - Templates
      operationId: GetTemplate
      summary: Get a template
      description: Get details of a specified template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template to retrieve.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Template'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Templates
      operationId: UpdateTemplate
      summary: Update a template
      description: Update the properties of a template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template to update.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Template'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: New name for the template.
                  nullable: true
                tags:
                  type: array
                  description: New tags for the template.
                  nullable: true
                  items:
                    type: string
                server_tags:
                  type: array
                  description: New server tags for the template.
                  nullable: true
                  items:
                    type: string
                server_type:
                  type: string
                  description: New server type for the template.
                  nullable: true
                security_group_id:
                  type: string
                  description: New security group ID for the template.
                  nullable: true
                placement_group_id:
                  type: string
                  description: New placement group ID for the template.
                  nullable: true
                update_volumes:
                  type: object
                  description: Updated volume templates for the template.
                  properties:
                    volumes:
                      type: array
                      description: List of updated volume templates.
                      items:
                        $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateTemplateRequest.VolumeTemplate'
                  x-properties-order:
                  - volumes
                update_private_networks:
                  type: object
                  description: Updated private networks list for the template.
                  properties:
                    private_networks:
                      type: array
                      description: List of updated private networks.
                      items:
                        $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateTemplateRequest.PrivateNetworkTemplate'
                  x-properties-order:
                  - private_networks
                filesystem_ids:
                  type: array
                  description: New list of filesystem IDs for the template.
                  nullable: true
                  items:
                    type: string
                public_ip_v4_count:
                  type: integer
                  description: New number of IPv4 public IPs to attach to servers.
                  format: uint32
                  nullable: true
                public_ip_v6_count:
                  type: integer
                  description: New number of IPv6 public IPs to attach to servers.
                  format: uint32
                  nullable: true
                windows_rdp_ssh_key_id:
                  type: string
                  description: New IAM ID of the SSH key used to encrypt the Windows
                    `Administrator` password for RDP use.
                  nullable: true
              x-properties-order:
              - name
              - tags
              - server_tags
              - server_type
              - security_group_id
              - placement_group_id
              - update_volumes
              - update_private_networks
              - filesystem_ids
              - public_ip_v4_count
              - public_ip_v6_count
              - windows_rdp_ssh_key_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/instance/v2alpha1/zones/{zone}/templates/{template_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Templates
      operationId: DeleteTemplate
      summary: Delete a template
      description: Delete a specified template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template to delete.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      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/instance/v2alpha1/zones/{zone}/templates/{template_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/templates/{template_id}/check:
    get:
      tags:
      - Templates
      operationId: CheckTemplate
      summary: Check a template
      description: Validate that a template is usable.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template to check.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/check"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/check" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/templates/{template_id}/create-server:
    post:
      tags:
      - Templates
      operationId: CreateServerFromTemplate
      summary: Create a server from a template
      description: Create a new Instance using a specified template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template to use.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the new server.
              x-properties-order:
              - name
      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"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/create-server"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/create-server" \
            X-Auth-Token:$SCW_SECRET_KEY \
            name="string"
  /instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data:
    get:
      tags:
      - Templates
      operationId: ListTemplateUserDataKeys
      summary: List template user data keys
      description: List all user data keys of a template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template.
        required: true
        schema:
          type: string
      - in: query
        name: page_token
        description: Token for pagination.
        schema:
          type: string
      - in: query
        name: page_size
        description: Number of items to return per page.
        schema:
          type: integer
          format: uint32
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListTemplateUserDataKeysResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/{key}:
    get:
      tags:
      - Templates
      operationId: GetTemplateUserData
      summary: Get template user data
      description: Get a specific user data key of a template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: Key of the user data to retrieve.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.UserData'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/{key}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/{key}" \
            X-Auth-Token:$SCW_SECRET_KEY
    put:
      tags:
      - Templates
      operationId: SetTemplateUserData
      summary: Set template user data
      description: Set a user data key of a template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: Key of the user data to set.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                  description: Content of the user data.
              x-properties-order:
              - content
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PUT \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"content":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/{key}"
      - lang: HTTPie
        source: |-
          http PUT "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/{key}" \
            X-Auth-Token:$SCW_SECRET_KEY \
            content="string"
    delete:
      tags:
      - Templates
      operationId: DeleteTemplateUserData
      summary: Delete template user data
      description: Delete a specific user data key of a template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: Key of the user data to delete.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/{key}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/{key}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/cloud-init:
    get:
      tags:
      - Templates
      operationId: GetTemplateCloudInit
      summary: Get template cloud-init
      description: Get the cloud-init configuration of a template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.UserData'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/cloud-init"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/cloud-init" \
            X-Auth-Token:$SCW_SECRET_KEY
    put:
      tags:
      - Templates
      operationId: SetTemplateCloudInit
      summary: Set template cloud-init
      description: Set the cloud-init configuration of a template.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: template_id
        description: Unique ID of the template.
        required: true
        schema:
          type: string
      responses:
        "204":
          description: ""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
                  description: Cloud-init configuration content.
              x-properties-order:
              - content
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PUT \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"content":"string"}' \
            "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/cloud-init"
      - lang: HTTPie
        source: |-
          http PUT "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/templates/{template_id}/user-data/cloud-init" \
            X-Auth-Token:$SCW_SECRET_KEY \
            content="string"
