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.

    <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>

    ## 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.

    <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>

    ## 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 hyphens, e.g. `"my-new-instance"`. |
    | `project_id` | The Project in which to create the Instance (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` | The IPs to attach to the Instance (list). | 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"` (`"zonal_ipv4"` or `"zonal_ipv6"`). |
    | `volumes` | The storage volumes to attach to the Instance (list). | A list where each item is a dictionary containing the `"volume_type"` key (`"l_ssd"`, `"sbs"`, or `"scratch"`) and either the `"volume_id"` or the `"new_volume"` key. Use `"volume_id"` to attach an existing volume, with the volume ID as its value. Use `"new_volume"` to create a volume from a Scaleway image (`"image_label"`) or a snapshot (`"base_snapshot_id"`). |

    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.

    ## 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`                       |

    ### 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.

    ## 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:
          description: Updated security group.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup'
        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.BookIP:
      type: object
      properties:
        type:
          description: Type of IP to book.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateServerRequest.BookIP.IPType'
        tags:
          type: array
          description: Tags to associate with the IP.
          items:
            type: string
      x-properties-order:
      - type
      - tags
    scaleway.instance.v2alpha1.CreateServerRequest.BookIP.IPType:
      type: string
      enum:
      - unknown_ip_type
      - zonal_ipv4
      - zonal_ipv6
      default: unknown_ip_type
    scaleway.instance.v2alpha1.CreateServerRequest.CreateVolume:
      type: object
      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
          - "null"
          description: Size of the volume. (in bytes)
          format: uint64
        base_snapshot_id:
          type:
          - string
          - "null"
          description: ID of the base snapshot for the volume.
          x-one-of: from
        image_label:
          type:
          - string
          - "null"
          description: Label of the image to use for the volume.
          x-one-of: from
        perf_iops:
          type:
          - integer
          - "null"
          description: Performance IOPS for the volume.
          format: uint32
      x-properties-order:
      - name
      - tags
      - size
      - base_snapshot_id
      - image_label
      - perf_iops
    scaleway.instance.v2alpha1.CreateServerRequest.PublicNetworkInterface:
      type: object
      properties:
        security_group_id:
          type:
          - string
          - "null"
          description: ID of the security group for the interface.
        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
    scaleway.instance.v2alpha1.CreateServerRequest.ServerIP:
      type: object
      properties:
        ipam_ip_id:
          type:
          - string
          - "null"
          description: ID of the IPAM IP to attach.
          x-one-of: server_ip
        new_ip:
          description: Configuration for a new IP to book.
          x-one-of: server_ip
          oneOf:
          - $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateServerRequest.BookIP'
          - type: "null"
      x-properties-order:
      - ipam_ip_id
      - new_ip
    scaleway.instance.v2alpha1.CreateServerRequest.ServerVolume:
      type: object
      properties:
        volume_type:
          description: Type of the volume.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateServerRequest.ServerVolume.VolumeType'
        volume_id:
          type:
          - string
          - "null"
          description: ID of the volume to attach.
          x-one-of: server_volume
        new_volume:
          description: Configuration for a new volume to create.
          x-one-of: server_volume
          oneOf:
          - $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateServerRequest.CreateVolume'
          - type: "null"
      x-properties-order:
      - volume_type
      - volume_id
      - new_volume
    scaleway.instance.v2alpha1.CreateServerRequest.ServerVolume.VolumeType:
      type: string
      enum:
      - unknown_volume_type
      - l_ssd
      - sbs
      - scratch
      default: unknown_volume_type
    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:
          description: Type of the volume.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateServerRequest.ServerVolume.VolumeType'
        name:
          type: string
          description: Name of the volume.
        tags:
          type: array
          description: Tags associated with the volume.
          items:
            type: string
        size:
          type:
          - integer
          - "null"
          description: Size of the volume in bytes. (in bytes)
          format: uint64
        base_snapshot_id:
          type:
          - string
          - "null"
          description: ID of the base snapshot for the volume.
          x-one-of: from
        image_label:
          type:
          - string
          - "null"
          description: Label of the image used as base for the volume.
          x-one-of: from
        perf_iops:
          type:
          - integer
          - "null"
          description: Performance IOPS for the volume.
          format: uint32
      x-properties-order:
      - volume_type
      - name
      - tags
      - size
      - base_snapshot_id
      - image_label
      - perf_iops
    scaleway.instance.v2alpha1.ListPlacementGroupsRequest.OrderBy:
      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
    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
          - "null"
          description: The pagination token, use it to get the next page of results.
        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.ListPrivateNetworkInterfacesRequest.OrderBy:
      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
    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
          - "null"
          description: Token for the next page.
        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.ListSecurityGroupsRequest.OrderBy:
      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
    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
          - "null"
          description: Token for the next page.
        total_count:
          type: integer
          description: Total number of items.
          format: uint64
      x-properties-order:
      - security_groups
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.ListServerCompatibleTypesResponse:
      type: object
      properties:
        server_types:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.ServerType'
        next_page_token:
          type:
          - string
          - "null"
        total_count:
          type: integer
          format: uint64
      x-properties-order:
      - server_types
      - 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
          - "null"
          description: Token for the next page.
        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.ListServersRequest.OrderBy:
      type: string
      enum:
      - created_at_desc
      - created_at_asc
      - updated_at_desc
      - updated_at_asc
      default: created_at_desc
    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
          - "null"
          description: Token for the next page.
        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
          - "null"
          description: Token for the next page.
        total_count:
          type: integer
          description: Total number of items.
          format: uint64
      x-properties-order:
      - keys
      - next_page_token
      - total_count
    scaleway.instance.v2alpha1.ListTemplatesRequest.OrderBy:
      type: string
      enum:
      - created_at_desc
      - created_at_asc
      - updated_at_desc
      - updated_at_asc
      default: created_at_desc
    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
          - "null"
          description: Token for the next page.
        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
          - "null"
          description: Token for the next page.
        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.
        srn:
          type: string
          description: The SRN of the placement group.
        project_id:
          type: string
          description: Placement group Project ID.
        name:
          type: string
          description: Placement group name.
        policy_type:
          description: Select the behavior of the placement group, either low_latency
            (group) or max_availability (spread).
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.PlacementGroup.PolicyType'
        tags:
          type: array
          description: Placement group tags.
          items:
            type: string
        created_at:
          type:
          - string
          - "null"
          description: Placement group creation date. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Placement group modification date. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        zone:
          type: string
          description: Zone in which the placement group is located.
      x-properties-order:
      - id
      - srn
      - project_id
      - name
      - policy_type
      - tags
      - created_at
      - updated_at
      - zone
    scaleway.instance.v2alpha1.PlacementGroup.PolicyType:
      type: string
      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
    scaleway.instance.v2alpha1.PrivateNetworkInterface:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the private network interface.
        srn:
          type: string
          description: The SRN 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:
          description: Current status of the private network interface.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.PrivateNetworkInterface.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
          - "null"
          description: Creation timestamp of the private network interface. (RFC 3339
            format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Last update timestamp of the private network interface. (RFC
            3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        zone:
          type: string
          description: Zone in which the network interface is located.
      x-properties-order:
      - id
      - srn
      - private_network_id
      - project_id
      - server_id
      - mac_address
      - status
      - ip_ids
      - tags
      - created_at
      - updated_at
      - zone
    scaleway.instance.v2alpha1.PrivateNetworkInterface.Status:
      type: string
      enum:
      - unknown_status
      - available
      - attaching
      - detaching
      - syncing
      - deleting
      - detach_error
      - delete_error
      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 syncing when it is attached to a running server while
            a security group is being
          deleting: Interface is being deleted
          detach_error: Interface failed to be detached from the server.
          delete_error: Interface failed to be detached from the server and therefore
            couldn't be deleted.
      default: unknown_status
    scaleway.instance.v2alpha1.PrivateNetworkInterfaceSummary:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the private network interface.
        srn:
          type: string
          description: The SRN 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:
          description: Current status of the private network interface.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.PrivateNetworkInterface.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
          - "null"
          description: Creation timestamp of the private network interface. (RFC 3339
            format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Last update timestamp of the private network interface. (RFC
            3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        zone:
          type: string
          description: Zone in which the network interface is located.
      x-properties-order:
      - id
      - srn
      - private_network_id
      - project_id
      - server_id
      - mac_address
      - status
      - ip_ids
      - tags
      - created_at
      - updated_at
      - zone
    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
        templates:
          type: integer
          description: Number of templates.
          format: uint32
        flexible_ips:
          type: integer
          description: Number of flexible IPs.
          format: uint32
        unused_flexible_ips:
          type: integer
          description: Number of flexible IPs not attached to any server.
          format: uint32
        images:
          type: integer
          description: Number of images.
          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
      - templates
      - flexible_ips
      - unused_flexible_ips
      - images
    scaleway.instance.v2alpha1.SecurityGroup:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the security group.
        srn:
          type: string
          description: The SRN 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:
          description: Default action for inbound rules.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup.Action'
        outbound_default_action:
          description: Default action for outbound rules.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup.Action'
        stateless:
          type: boolean
          description: True if the security group is stateless.
        created_at:
          type:
          - string
          - "null"
          description: Creation timestamp of the security group. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Last update timestamp of the security group. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        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
      - srn
      - 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.SecurityGroup.Action:
      type: string
      enum:
      - unknown_action
      - accept
      - drop
      x-enum-descriptions:
        values:
          unknown_action: Unknown action
          accept: Accept the traffic
          drop: Drop the traffic
      default: unknown_action
    scaleway.instance.v2alpha1.SecurityGroupRule:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the rule.
        protocol:
          description: Protocol this rule applies to.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.Protocol'
        direction:
          description: Direction of traffic this rule applies to.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.Direction'
        action:
          description: Action to take when the rule matches.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.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:
          description: Source port range for the rule.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.PortRange'
        destination_ports:
          description: Destination port range for the rule.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.PortRange'
        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.SecurityGroupRule.Action:
      type: string
      enum:
      - unknown_action
      - accept
      - drop
      x-enum-descriptions:
        values:
          unknown_action: Unknown action
          accept: Accept the traffic
          drop: Drop the traffic
      default: unknown_action
    scaleway.instance.v2alpha1.SecurityGroupRule.Direction:
      type: string
      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
    scaleway.instance.v2alpha1.SecurityGroupRule.PortRange:
      type: object
      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
    scaleway.instance.v2alpha1.SecurityGroupRule.Protocol:
      type: string
      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
    scaleway.instance.v2alpha1.SecurityGroupRuleConfig:
      type: object
      properties:
        protocol:
          description: Protocol for the rule.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.Protocol'
        direction:
          description: Direction of traffic for the rule.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.Direction'
        action:
          description: Action to take when the rule matches.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.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:
          description: Source port range for the rule.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.PortRange'
        destination_ports:
          description: Destination port range for the rule.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.PortRange'
        position:
          type: integer
          description: Position of this rule in the rule list, starting at 1.
          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.
        srn:
          type: string
          description: The SRN 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:
          description: Default action for inbound rules.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup.Action'
        outbound_default_action:
          description: Default action for outbound rules.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup.Action'
        stateless:
          type: boolean
          description: True if the security group is stateless.
        created_at:
          type:
          - string
          - "null"
          description: Creation timestamp of the security group. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Last update timestamp of the security group. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        zone:
          type: string
          description: Zone in which the security group is located.
      x-properties-order:
      - id
      - srn
      - name
      - description
      - project_id
      - tags
      - disable_default_rules
      - project_default
      - inbound_default_action
      - outbound_default_action
      - stateless
      - created_at
      - updated_at
      - zone
    scaleway.instance.v2alpha1.Server:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the server.
        srn:
          type: string
          description: The SRN 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
          - "null"
          description: ID of the placement group the server belongs to.
        status:
          description: Current status of the server.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.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:
          description: Architecture of the server.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.Architecture'
        created_at:
          type:
          - string
          - "null"
          description: Creation timestamp of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Last update timestamp of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        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
          - "null"
          description: ID of the boot volume.
        status_detail:
          type: string
          description: Detailed status information of the server.
        windows_rdp_password:
          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`.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.RDPPassword'
        public_network_interface:
          description: Public network interface of the server.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.PublicNetworkInterface'
        zone:
          type: string
          description: Zone in which the server is located.
        runtime_info:
          description: Runtime information of this server, only available only when
            it is running.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.RuntimeInfo'
      x-properties-order:
      - id
      - srn
      - 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
      - runtime_info
    scaleway.instance.v2alpha1.Server.Architecture:
      type: string
      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
    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
        provisioned_address:
          type: string
          description: (IP network)
          example: 1.2.3.4/32
      x-properties-order:
      - id
      - dynamic
      - status
      - default
      - provisioned_address
    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
      - deleting
      - detach_error
      - delete_error
      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 when a security-group is being attached, detached,
            or when
          deleting: Interface is being deleted
          detach_error: Interface failed to be detached from the server.
          delete_error: Interface failed to be detached from the server and therefore
            couldn't be deleted.
      default: unknown_status
    scaleway.instance.v2alpha1.Server.PublicNetworkInterface:
      type: object
      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
    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 if any of the server's IP is in transient
            state (e.g. pending) or
      default: unknown_status
    scaleway.instance.v2alpha1.Server.RDPPassword:
      type: object
      properties:
        encrypted_password:
          type: string
        rdp_ssh_key_id:
          type: string
      x-properties-order:
      - encrypted_password
      - rdp_ssh_key_id
    scaleway.instance.v2alpha1.Server.RuntimeInfo:
      type: object
      properties:
        spot:
          type: boolean
          description: True if the Instance is running as Spot.
      x-properties-order:
      - spot
    scaleway.instance.v2alpha1.Server.Status:
      type: string
      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
    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.
        srn:
          type: string
          description: The SRN 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
          - "null"
          description: ID of the placement group the server belongs to.
        status:
          description: Current status of the server.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.Status'
        architecture:
          description: Architecture of the server.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.Architecture'
        created_at:
          type:
          - string
          - "null"
          description: Creation timestamp of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Last update timestamp of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        rescue_mode:
          type: boolean
          description: Whether the server is in rescue mode.
        zone:
          type: string
          description: Zone in which the server is located.
      x-properties-order:
      - id
      - srn
      - name
      - project_id
      - tags
      - server_type
      - placement_group_id
      - status
      - architecture
      - created_at
      - updated_at
      - rescue_mode
      - zone
    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:
          description: Architecture of the server type.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ServerType.Architecture'
        availability:
          description: Availability status of the server type.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ServerType.Availability'
        limits:
          description: Limits for the server type.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ServerType.Limits'
        gpu_info:
          description: GPU information for the server type.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ServerType.GpuInfo'
        end_of_service:
          type: boolean
          description: Whether the server type has reached end of service.
        spot_info:
          description: Availability status of the server type as a spot instance.
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ServerType.SpotInfo'
      x-properties-order:
      - name
      - vcpu_count
      - gpu_count
      - memory
      - architecture
      - availability
      - limits
      - gpu_info
      - end_of_service
      - spot_info
    scaleway.instance.v2alpha1.ServerType.Architecture:
      type: string
      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
    scaleway.instance.v2alpha1.ServerType.Availability:
      type: string
      enum:
      - unknown_availability
      - available
      - low_stock
      - out_of_stock
      - unavailable
      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
          unavailable: Server type is not available
      default: unknown_availability
    scaleway.instance.v2alpha1.ServerType.GpuInfo:
      type: object
      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
    scaleway.instance.v2alpha1.ServerType.Limits:
      type: object
      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
    scaleway.instance.v2alpha1.ServerType.SpotInfo:
      type: object
      properties:
        availability:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ServerType.Availability'
      x-properties-order:
      - availability
    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.
        srn:
          type: string
          description: The SRN 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
          - "null"
          description: Security group ID associated with the template.
        placement_group_id:
          type:
          - string
          - "null"
          description: Placement group ID associated with the template.
        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
          - "null"
          description: Creation timestamp of the template. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Last update timestamp of the template. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        windows_rdp_ssh_key_id:
          type:
          - string
          - "null"
          description: IAM ID of the SSH key used to encrypt the Windows `Administrator`
            password for RDP use.
        zone:
          type: string
          description: Zone in which the template is located.
      x-properties-order:
      - project_id
      - id
      - srn
      - 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.
        srn:
          type: string
          description: The SRN 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
          - "null"
          description: Security group ID associated with the template.
        placement_group_id:
          type:
          - string
          - "null"
          description: Placement group ID associated with the template.
        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
          - "null"
          description: Creation timestamp of the template. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Last update timestamp of the template. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        zone:
          type: string
          description: Zone in which the template is located.
      x-properties-order:
      - project_id
      - id
      - srn
      - 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.UpdateServerRequest.PublicNetworkInterface:
      type: object
      properties:
        security_group_id:
          type:
          - string
          - "null"
          description: ID of the security group for the interface.
      x-properties-order:
      - security_group_id
    scaleway.instance.v2alpha1.UpdateTemplateRequest.UpdatePrivateNetworks:
      type: object
      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
    scaleway.instance.v2alpha1.UpdateTemplateRequest.UpdateVolumes:
      type: object
      properties:
        volumes:
          type: array
          description: List of updated volume templates.
          items:
            $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateTemplateRequest.VolumeTemplate'
      x-properties-order:
      - volumes
    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:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListPlacementGroupsRequest.OrderBy'
      - 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:
                  description: Policy type of the placement group.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.PlacementGroup.PolicyType'
                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
                  - "null"
                  description: Name of the placement group.
                policy_type:
                  description: Policy type of the placement group.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.PlacementGroup.PolicyType'
                tags:
                  type:
                  - array
                  - "null"
                  description: Tags of the placement group.
              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:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListPrivateNetworkInterfacesRequest.OrderBy'
      - 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
                  - "null"
                  description: ID of the Instance to attach the interface to.
                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
                  - "null"
                  description: New tags to assign to the private network interface.
              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}/private-network-interfaces/{private_network_interface_id}/detach-and-delete:
    post:
      operationId: DetachAndDeletePrivateNetworkInterface
      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 detach and delete.
        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
      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}/private-network-interfaces/{private_network_interface_id}/detach-and-delete"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/private-network-interfaces/{private_network_interface_id}/detach-and-delete" \
            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:
                  description: New protocol for the rule.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.Protocol'
                direction:
                  description: New direction for the rule.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.Direction'
                action:
                  description: New action for the rule.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.Action'
                source_ip_range:
                  type:
                  - string
                  - "null"
                  description: New source IP range for the rule. (IP network)
                  example: 1.2.3.4/32
                destination_ip_range:
                  type:
                  - string
                  - "null"
                  description: New destination IP range for the rule. (IP network)
                  example: 1.2.3.4/32
                source_ports:
                  description: New source port range for the rule.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.PortRange'
                destination_ports:
                  description: New destination port range for the rule.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroupRule.PortRange'
                position:
                  type:
                  - integer
                  - "null"
                  description: New position for the rule.
                  format: int32
              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:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListSecurityGroupsRequest.OrderBy'
      - 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:
                  description: Default action for inbound rules.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup.Action'
                outbound_default_action:
                  description: Default action for outbound rules.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup.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
                  - "null"
                  description: New name for the security group.
                description:
                  type:
                  - string
                  - "null"
                  description: New description for the security group.
                disable_default_rules:
                  type:
                  - boolean
                  - "null"
                  description: Whether to disable default rules.
                tags:
                  type:
                  - array
                  - "null"
                  description: New tags for the security group.
                project_default:
                  type:
                  - boolean
                  - "null"
                  description: Whether this should be the default security group for
                    the project.
                inbound_default_action:
                  description: New default action for inbound rules.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup.Action'
                outbound_default_action:
                  description: New default action for outbound rules.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.SecurityGroup.Action'
                stateless:
                  type:
                  - boolean
                  - "null"
                  description: Whether the security group should be stateless.
              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:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListServersRequest.OrderBy'
      - 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
                  - "null"
                  description: ID of the placement group the server belongs to.
                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
                  - "null"
                  description: IAM ID of the SSH key used to encrypt the Windows `Administrator`
                    password for RDP use.
                public_network_interface:
                  description: Public network interface configuration.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.CreateServerRequest.PublicNetworkInterface'
              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
                  - "null"
                  description: New name for the server.
                tags:
                  type:
                  - array
                  - "null"
                  description: New tags for the server.
                server_type:
                  type:
                  - string
                  - "null"
                  description: New server type.
                placement_group_id:
                  type:
                  - string
                  - "null"
                  description: New placement group ID.
                rescue_mode:
                  type:
                  - boolean
                  - "null"
                  description: New rescue mode setting.
                boot_volume_id:
                  type:
                  - string
                  - "null"
                  description: New boot volume ID.
                windows_rdp_ssh_key_id:
                  type:
                  - string
                  - "null"
                  description: New IAM ID of the SSH key used to encrypt the Windows
                    `Administrator` password for RDP use.
                protected:
                  type:
                  - boolean
                  - "null"
                  description: Protection status of the server.
                public_network_interface:
                  description: New public network interface configuration.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.UpdateServerRequest.PublicNetworkInterface'
              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:
                  description: Type of the volume.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.Server.Volume.VolumeType'
                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}/compatible-types:
    get:
      tags:
      - Instance Types
      operationId: ListServerCompatibleTypes
      summary: List compatible Instance types
      description: List the Instance types that a given instance could be converted
        to.
      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
        required: true
        schema:
          type: string
      - in: query
        name: page_token
        schema:
          type: string
      - in: query
        name: page_size
        schema:
          type: integer
          format: uint32
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListServerCompatibleTypesResponse'
      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}/compatible-types"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/instance/v2alpha1/zones/{zone}/servers/{server_id}/compatible-types" \
            X-Auth-Token:$SCW_SECRET_KEY
  /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
                  - "null"
                  description: Whether to delete all IPs attached to the server.
                  x-one-of: ips
                delete_ip_ids:
                  type:
                  - array
                  - "null"
                  description: List of IP IDs to delete.
                  x-one-of: ips
                delete_all_volumes:
                  type:
                  - boolean
                  - "null"
                  description: Whether to delete all volumes attached to the server.
                  x-one-of: volumes
                delete_volume_ids:
                  type:
                  - array
                  - "null"
                  description: List of volume IDs to delete.
                  x-one-of: volumes
                keep_all_private_nics:
                  type:
                  - boolean
                  - "null"
                  description: Whether to keep all private network interfaces.
                  x-one-of: private_nics
                delete_private_nic_ids:
                  type:
                  - array
                  - "null"
                  description: List of private network interface IDs to delete.
                  x-one-of: private_nics
              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:
          $ref: '#/components/schemas/scaleway.instance.v2alpha1.ListTemplatesRequest.OrderBy'
      - 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
                  - "null"
                  description: Security group ID for the template.
                placement_group_id:
                  type:
                  - string
                  - "null"
                  description: Placement group ID for the template.
                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
                  - "null"
                  description: IAM ID of the SSH key used to encrypt the Windows `Administrator`
                    password for RDP use.
              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
                  - "null"
                  description: New name for the template.
                tags:
                  type:
                  - array
                  - "null"
                  description: New tags for the template.
                server_tags:
                  type:
                  - array
                  - "null"
                  description: New server tags for the template.
                server_type:
                  type:
                  - string
                  - "null"
                  description: New server type for the template.
                security_group_id:
                  type:
                  - string
                  - "null"
                  description: New security group ID for the template.
                placement_group_id:
                  type:
                  - string
                  - "null"
                  description: New placement group ID for the template.
                update_volumes:
                  description: Updated volume templates for the template.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.UpdateTemplateRequest.UpdateVolumes'
                update_private_networks:
                  description: Updated private networks list for the template.
                  $ref: '#/components/schemas/scaleway.instance.v2alpha1.UpdateTemplateRequest.UpdatePrivateNetworks'
                filesystem_ids:
                  type:
                  - array
                  - "null"
                  description: New list of filesystem IDs for the template.
                public_ip_v4_count:
                  type:
                  - integer
                  - "null"
                  description: New number of IPv4 public IPs to attach to servers.
                  format: uint32
                public_ip_v6_count:
                  type:
                  - integer
                  - "null"
                  description: New number of IPv6 public IPs to attach to servers.
                  format: uint32
                windows_rdp_ssh_key_id:
                  type:
                  - string
                  - "null"
                  description: New IAM ID of the SSH key used to encrypt the Windows
                    `Administrator` password for RDP use.
              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"
