openapi: 3.0.0
info:
  title: Elastic Metal API
  description: |-
    Scaleway Elastic Metal servers are dedicated physical servers that you can order on-demand, like Instances.
    You can install an OS or other images on your Elastic Metal server and connect to it via SSH to use it as you require.
    You can power off the server when you are not using or delete it from your account once you have finished using it.
    Elastic Metal servers are ideal for large workloads, big data, and applications that require increased security and dedicated resources.

    (switchcolumn)
    <Message type="tip">
      Check out our dedicated APIs to manage [Private Networks](https://www.scaleway.com/en/developers/api/elastic-metal/private-network-api/) and [Flexible IPs](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip) for Elastic Metal servers.
    </Message>
    (switchcolumn)

    ## Concepts

    Refer to our [dedicated concepts](https://www.scaleway.com/en/docs/compute/elastic-metal/concepts/) page to find definitions of the different terms referring to Elastic Metal servers.

    ## Quickstart

    (switchcolumn)
    (switchcolumn)

    1. **Configure your environment variables.**
        ```bash
        export PROJECT_ID="<project-id>"
        export ACCESS_KEY="<access-key>"
        export SECRET_KEY="<secret-key>"
        export ZONE="<availability-zone>"
        ```
        <Message type="note">
          This is an optional step that seeks to simplify your usage of the Bare Metal API.
        </Message>

    2. **Edit the POST request payload** that we will use in the next step to create an Elastic Metal server. Modify the values in the example according to your needs, using the information in the table to help.
        ```json
        {
        "offer_id": "string",
        "project_id": "string",
        "name": "string",
        "description": "string",
        "tags": [
            "tag1", "tag2"
        ],
        "install": {
            "os_id": "string",
            "hostname": "string",
            "ssh_key_ids": [
            "string"
            ],
            "user": "string",
            "password": "string",
            "service_user": "string",
            "service_password": "string"
        },
        "option_ids": [
            "string"
        ]
        }
        ```

        | Parameter        | Description                                                        |
        | :--------------- | :----------------------------------------------------------------- |
        | `offer_id`           | **REQUIRED** UUID of the Elastic Metal offer                                         |
        | `project_id`     | **REQUIRED** UUID of the project you want to create your Elastic Metal in.  |
        | `name`           | **REQUIRED** Name of the Elastic Metal server (≠hostname)                                          |
        | `description`     | **REQUIRED** A description of your server (max 255 characters)                             |
        | `tags`  | **OPTIONAL** An array of tags associated with your server   |
        | `os_id`  | The ID of the operating system image to install on the server   |
        | `hostname`  | Hostname of the server   |
        | `ssh_key_ids`  | SSH key IDs authorized on the server   |
        | `user`  | **NULLABLE** A regular user to be configured on the server   |
        | `password`  | **NULLABLE** The password for the user account   |
        | `service_user`  | **NULLABLE** A service user for third party services (user to login in services such as BigBlueButton)  |
        | `service password`  | **NULLABLE** Password for the service user   |
        | `option_ids`  | IDs of options to enable on server  |

        <Message type="tip">
          To find your Project ID you can either use the [IAM API](https://www.scaleway.com/en/developers/api/account#path-projects-list-all-projects-of-an-organization) or the [Scaleway console](https://console.scaleway.com/project/settings):
        </Message>

    3. **Run the following command** to create an Elastic Metal server. Make sure you include the payload you edited in the previous step.
        ```bash
        curl -X POST \
          -H "Content-Type: application/json" \
          -H "X-Auth-Token: $SECRET_KEY" https://api.scaleway.com//baremetal/v1/zones/$ZONE/servers \
          -d '{
            "offer_id": "bd757ca3-a71b-4158-9ef5-39436b6db2a4",
            "project_id": "cc6d123a-bc09-4e24-b5d9-3310f2104e13",
            "name": "MyElasticMetal",
            "description": "My_Elastic_Metal_Server",
            "tags": [
                "Ubuntu22", "Dedicated"
            ],
            "install": {
                "os_id": "96e5f0f2-d216-4de2-8a15-68730d877885",
                "hostname": "elasticmetal.example.com",
                "ssh_key_ids": [
                "fa05e77f-66b7-43b9-bc21-4dfe3c5bb624"
                ],
                "user": "ubuntu",
                "password": "mySecretPa$$word"
            "option_ids": [
                "string"
            ]
          }"
        ```
    4. **List your Elastic Metal servers.**
        ```bash
        curl -X GET \
          -H "Content-Type: application/json" \
          -H "X-Auth-Token: $SECRET_KEY" https://api.scaleway.com/baremetal/v1/zones/$ZONE/servers
        ```

    5. **Retrieve your Elastic Metal server IP** from the response.

    6. **Connect to your Elastic Metal server** using SSH
        ```bash
        ssh root@my-elastic-metal-server-ip
        ```

    (switchcolumn)
    <Message type="requirement">
    To perform the following steps, you must first ensure that:
      - you have an account and are logged into the [Scaleway console](https://console.scaleway.com/organization)
      - you have created an [API key](https://www.scaleway.com/en/docs/identity-and-access-management/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/identity-and-access-management/iam/reference-content/permission-sets/) to perform the actions described on this page.
      - you have [installed `curl`](https://curl.se/download.html)
    </Message>
    (switchcolumn)

    ## Technical information

    ### Features

    - Installation (Server is installed by preseed [preseed: complete install from a virtual media], you must define at least one ssh key to install your server)
    - Start/Stop/Reboot
    - Rescue Reboot, a rescue image is an operating system image designed to help you diagnose and fix OS experiencing failures. When your server boot on rescue, you can mount your disks and start diagnosing/fixing your image.
    - Billed by the minute (billing starts when the server is delivered and stops when the server is deleted)
    - IPv6, all servers are available with a /128 IPv6 subnet
    - ReverseIP, You can configure your reverse IP (IPv4 and IPv6), you must register the server IP in your DNS records before calling the endpoint
    - Basic monitoring with ping status
    - Flexible IP is available ([documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip))

    ### Availability Zones

    Scaleway's infrastructure is spread across different [regions and Availability Zones](https://www.scaleway.com/en/docs/console/my-account/reference-content/products-availability/).

    Elastic Metal servers are available in Paris, Amsterdam, and Warsaw regions, with product availability in the following AZs:

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

    ## Technical limitations

    - Failover IPs are not available in API `v1`, use the API `v1alpha1`
    ## Going further

    For more help using Scaleway Elastic Metal servers, check out the following resources:
    - Our [main documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/)
    - The #elastic-metal 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/console/my-account/how-to/open-a-support-ticket)
    ### Troubleshooting

    #### How is the installation of Elastic Metal servers done?

    - The installation of Elastic Metal servers is done by preseed (± 10min) (preseed: complete install from a virtual media)
    #### How can I retrieve my secret key and Project ID?

    You can find your [secret key](https://console.scaleway.com/iam/api-keys) and your [Project ID](https://console.scaleway.com/project/credentials) in the Scaleway console.

    #### How can I add my server to a Private Network?

    See [our dedicated documentation](/en/developers/api/elastic-metal-flexible-ip).
  version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Servers
  description: |
    Elastic Metal allow you to order dedicated servers on-demand, like cloud Instances. A server refers to physical server used to provide the service.
- name: Server Actions
  description: |
    Server actions allows you to start, stop or reboot your servers.
- name: BMC Access
  description: |
    The BMC (Baseboard Management Controller) access allow you to access the series console of your Elastic Metal server.
    Access to this feature is available one hour after the installation of the server.
    You need first to create an Remote Access option. Find the ID and the price with a call to [`listOffers`](#path-offers-list-offers). Then you can [add the option](#path-servers-add-server-option).
    Once added, [create remote access](#path-bmc-access-start-bmc-access). Use [Get Remote Access](#path-bmc-access-get-bmc-access) to retrieve the login/password. Do not forget to disable the option after use.
- name: Offers
  description: Lists the IDs of the commercial offers available to deploy.
- name: Options
  description: Lists the optional features available for this Elastic Metal server.
- name: OS
  description: An Operating System (OS) is the underlying software installed on your
    server. This command lists the IDs of the OS available for this server.
- name: Partitioning-schemas
  description: You have the possibility to customize server partitioning schema on
    some offers/os.
components:
  schemas:
    google.protobuf.StringValue:
      type: string
      nullable: true
    scaleway.baremetal.v1.BMCAccess:
      type: object
      properties:
        url:
          type: string
          description: URL to access to the server console.
        login:
          type: string
          description: The login to use for the BMC (Baseboard Management Controller)
            access authentification.
        password:
          type: string
          description: The password to use for the BMC (Baseboard Management Controller)
            access authentification.
        expires_at:
          type: string
          description: The date after which the BMC (Baseboard Management Controller)
            access will be closed. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - url
      - login
      - password
      - expires_at
    scaleway.baremetal.v1.CPU:
      type: object
      properties:
        name:
          type: string
          description: Name of the CPU.
        core_count:
          type: integer
          description: Number of CPU cores.
          format: uint32
        thread_count:
          type: integer
          description: Number CPU threads.
          format: uint32
        frequency:
          type: integer
          description: Frequency of the CPU in MHz.
          format: uint32
        benchmark:
          type: string
          description: Benchmark of the CPU.
      x-properties-order:
      - name
      - core_count
      - thread_count
      - frequency
      - benchmark
    scaleway.baremetal.v1.Disk:
      type: object
      properties:
        capacity:
          type: integer
          description: Capacity of the disk in bytes. (in bytes)
          format: uint64
        type:
          type: string
          description: Type of the disk.
      x-properties-order:
      - capacity
      - type
    scaleway.baremetal.v1.GPU:
      type: object
      properties:
        name:
          type: string
          description: Name of the GPU.
        vram:
          type: integer
          description: Capacity of the vram in bytes.
          format: uint64
      x-properties-order:
      - name
      - vram
    scaleway.baremetal.v1.GetServerMetricsResponse:
      type: object
      properties:
        pings:
          type: object
          description: Timeseries object representing pings on the server.
          properties:
            name:
              type: string
            points:
              type: array
              items:
                $ref: '#/components/schemas/scaleway.std.TimeSeries.Point'
            metadata:
              type: object
              properties:
                <metadataKey>:
                  type: string
              additionalProperties: true
          x-properties-order:
          - name
          - points
          - metadata
      x-properties-order:
      - pings
    scaleway.baremetal.v1.IP:
      type: object
      properties:
        id:
          type: string
          description: ID of the IP.
        address:
          type: string
          description: Address of the IP. (IP address)
          example: 1.2.3.4
        reverse:
          type: string
          description: Reverse IP value.
        version:
          type: string
          description: Version of IP (v4 or v6).
          enum:
          - IPv4
          - IPv6
          default: IPv4
        reverse_status:
          type: string
          description: Status of the reverse.
          enum:
          - unknown
          - pending
          - active
          - error
          default: unknown
        reverse_status_message:
          type: string
          description: A message related to the reverse status, e.g. in case of an
            error.
      x-properties-order:
      - id
      - address
      - reverse
      - version
      - reverse_status
      - reverse_status_message
    scaleway.baremetal.v1.ListOSResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total count of matching OS.
          format: uint32
        os:
          type: array
          description: OS that match filters.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.OS'
      x-properties-order:
      - total_count
      - os
    scaleway.baremetal.v1.ListOffersResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total count of matching offers.
          format: uint32
        offers:
          type: array
          description: Offers that match filters.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Offer'
      x-properties-order:
      - total_count
      - offers
    scaleway.baremetal.v1.ListOptionsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total count of matching options.
          format: uint32
        options:
          type: array
          description: Options that match filters.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Option'
      x-properties-order:
      - total_count
      - options
    scaleway.baremetal.v1.ListServerEventsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total count of matching events.
          format: uint32
        events:
          type: array
          description: Server events that match filters.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.ServerEvent'
      x-properties-order:
      - total_count
      - events
    scaleway.baremetal.v1.ListServersResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total count of matching servers.
          format: uint32
        servers:
          type: array
          description: Array of Elastic Metal server objects matching the filters
            in the request.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      x-properties-order:
      - total_count
      - servers
    scaleway.baremetal.v1.ListSettingsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total count of matching settings.
          format: uint32
        settings:
          type: array
          description: Settings that match filters.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Setting'
      x-properties-order:
      - total_count
      - settings
    scaleway.baremetal.v1.Memory:
      type: object
      properties:
        capacity:
          type: integer
          description: Capacity of the memory in bytes. (in bytes)
          format: uint64
        type:
          type: string
          description: Type of the memory.
        frequency:
          type: integer
          description: Frequency of the memory in MHz.
          format: uint32
        is_ecc:
          type: boolean
          description: True if the memory is an error-correcting code memory.
      x-properties-order:
      - capacity
      - type
      - frequency
      - is_ecc
    scaleway.baremetal.v1.OS:
      type: object
      properties:
        id:
          type: string
          description: ID of the OS.
        name:
          type: string
          description: Name of the OS.
        version:
          type: string
          description: Version of the OS.
        logo_url:
          type: string
          description: URL of this OS's logo.
        ssh:
          type: object
          description: Object defining the SSH requirements to install the OS.
          properties:
            editable:
              type: boolean
            required:
              type: boolean
            default_value:
              $ref: '#/components/schemas/google.protobuf.StringValue'
          x-properties-order:
          - editable
          - required
          - default_value
        user:
          type: object
          description: Object defining the username requirements to install the OS.
          properties:
            editable:
              type: boolean
            required:
              type: boolean
            default_value:
              $ref: '#/components/schemas/google.protobuf.StringValue'
          x-properties-order:
          - editable
          - required
          - default_value
        password:
          type: object
          description: Object defining the password requirements to install the OS.
          properties:
            editable:
              type: boolean
            required:
              type: boolean
            default_value:
              $ref: '#/components/schemas/google.protobuf.StringValue'
          x-properties-order:
          - editable
          - required
          - default_value
        service_user:
          type: object
          description: Object defining the username requirements to install the service.
          properties:
            editable:
              type: boolean
            required:
              type: boolean
            default_value:
              $ref: '#/components/schemas/google.protobuf.StringValue'
          x-properties-order:
          - editable
          - required
          - default_value
        service_password:
          type: object
          description: Object defining the password requirements to install the service.
          properties:
            editable:
              type: boolean
            required:
              type: boolean
            default_value:
              $ref: '#/components/schemas/google.protobuf.StringValue'
          x-properties-order:
          - editable
          - required
          - default_value
        enabled:
          type: boolean
          description: Defines if the operating system is enabled or not.
        license_required:
          type: boolean
          description: License required (check server options for pricing details).
        allowed:
          type: boolean
          description: Defines if a specific Organization is allowed to install this
            OS type.
        custom_partitioning_supported:
          type: boolean
          description: Defines if custom partitioning is supported by this OS.
      x-properties-order:
      - id
      - name
      - version
      - logo_url
      - ssh
      - user
      - password
      - service_user
      - service_password
      - enabled
      - license_required
      - allowed
      - custom_partitioning_supported
    scaleway.baremetal.v1.Offer:
      type: object
      properties:
        id:
          type: string
          description: ID of the offer.
        name:
          type: string
          description: Name of the offer.
        stock:
          type: string
          description: Stock level.
          enum:
          - empty
          - low
          - available
          default: empty
        bandwidth:
          type: integer
          description: Public bandwidth available (in bits/s) with the offer.
          format: uint64
        max_bandwidth:
          type: integer
          description: Maximum public bandwidth available (in bits/s) depending on
            available options.
          format: uint64
        commercial_range:
          type: string
          description: Commercial range of the offer.
        price_per_hour:
          type: object
          description: Price of the offer for the next 60 minutes (a server order
            at 11h32 will be paid until 12h32).
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        price_per_month:
          type: object
          description: Monthly price of the offer, if subscribing on a monthly basis.
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        disks:
          type: array
          description: Disks specifications of the offer.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Disk'
        enable:
          type: boolean
          description: Defines whether the offer is currently available.
        cpus:
          type: array
          description: CPU specifications of the offer.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.CPU'
        memories:
          type: array
          description: Memory specifications of the offer.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Memory'
        quota_name:
          type: string
          description: Name of the quota associated to the offer.
        persistent_memories:
          type: array
          description: Persistent memory specifications of the offer.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.PersistentMemory'
        raid_controllers:
          type: array
          description: Raid controller specifications of the offer.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.RaidController'
        incompatible_os_ids:
          type: array
          description: Array of OS images IDs incompatible with the server.
          items:
            type: string
        subscription_period:
          type: string
          description: Period of subscription for the offer.
          enum:
          - unknown_subscription_period
          - hourly
          - monthly
          default: unknown_subscription_period
        operation_path:
          type: string
          description: Operation path of the service.
        fee:
          type: object
          description: One time fee invoiced by Scaleway for the setup and activation
            of the server.
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        options:
          type: array
          description: Available options for customization of the server.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Offer.OptionOffer'
        private_bandwidth:
          type: integer
          description: Private bandwidth available in bits/s with the offer.
          format: uint64
        shared_bandwidth:
          type: boolean
          description: Defines whether the offer's bandwidth is shared or not.
        tags:
          type: array
          description: Array of tags attached to the offer.
          items:
            type: string
        gpus:
          type: array
          description: GPU specifications of the offer.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.GPU'
        monthly_offer_id:
          type: string
          description: Exist only for hourly offers, to migrate to the monthly offer.
          nullable: true
      x-properties-order:
      - id
      - name
      - stock
      - bandwidth
      - max_bandwidth
      - commercial_range
      - price_per_hour
      - price_per_month
      - disks
      - enable
      - cpus
      - memories
      - quota_name
      - persistent_memories
      - raid_controllers
      - incompatible_os_ids
      - subscription_period
      - operation_path
      - fee
      - options
      - private_bandwidth
      - shared_bandwidth
      - tags
      - gpus
      - monthly_offer_id
    scaleway.baremetal.v1.Offer.OptionOffer:
      type: object
      properties:
        id:
          type: string
          description: ID of the option.
        name:
          type: string
          description: Name of the option.
        enabled:
          type: boolean
          description: |-
            If true the option is enabled and included by default in the offer.
            If true the option is enabled and included by default in the offer
            If false the option is available for the offer but not included by default.
        subscription_period:
          type: string
          description: Period of subscription for the offer.
          enum:
          - unknown_subscription_period
          - hourly
          - monthly
          default: unknown_subscription_period
        price:
          type: object
          description: Price of the option.
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        manageable:
          type: boolean
          description: Boolean to know if option could be managed.
        os_id:
          type: string
          description: Deprecated, use LicenseOptionVars.os_id instead.
          deprecated: true
          nullable: true
        license:
          type: object
          description: License option, contains the ID of the OS linked to the option.
          properties:
            os_id:
              type: string
          nullable: true
          x-properties-order:
          - os_id
          x-one-of: option
        public_bandwidth:
          type: object
          description: Public_bandwidth option, contains the bandwidth_in_bps.
          properties:
            bandwidth_in_bps:
              type: integer
              format: uint64
          nullable: true
          x-properties-order:
          - bandwidth_in_bps
          x-one-of: option
        private_network:
          type: object
          description: Private_network option, contains the bandwidth_in_bps.
          properties:
            bandwidth_in_bps:
              type: integer
              format: uint64
          nullable: true
          x-properties-order:
          - bandwidth_in_bps
          x-one-of: option
        remote_access:
          type: object
          description: Remote_access option.
          nullable: true
          x-one-of: option
        certification:
          type: object
          description: Certification option.
          nullable: true
          x-one-of: option
      x-properties-order:
      - id
      - name
      - enabled
      - subscription_period
      - price
      - manageable
      - os_id
      - license
      - public_bandwidth
      - private_network
      - remote_access
      - certification
    scaleway.baremetal.v1.Option:
      type: object
      properties:
        id:
          type: string
          description: ID of the option.
        name:
          type: string
          description: Name of the option.
        manageable:
          type: boolean
          description: Defines whether the option is manageable (could be added or
            removed).
        license:
          type: object
          description: License option, contains the ID of the OS linked to the option.
          properties:
            os_id:
              type: string
          nullable: true
          x-properties-order:
          - os_id
          x-one-of: option
        public_bandwidth:
          type: object
          description: Public_bandwidth option, contains the bandwidth_in_bps.
          properties:
            bandwidth_in_bps:
              type: integer
              format: uint64
          nullable: true
          x-properties-order:
          - bandwidth_in_bps
          x-one-of: option
        private_network:
          type: object
          description: Private_network option, contains the bandwidth_in_bps.
          properties:
            bandwidth_in_bps:
              type: integer
              format: uint64
          nullable: true
          x-properties-order:
          - bandwidth_in_bps
          x-one-of: option
        remote_access:
          type: object
          description: Remote_access option.
          nullable: true
          x-one-of: option
        certification:
          type: object
          description: Certification option.
          nullable: true
          x-one-of: option
      x-properties-order:
      - id
      - name
      - manageable
      - license
      - public_bandwidth
      - private_network
      - remote_access
      - certification
    scaleway.baremetal.v1.PersistentMemory:
      type: object
      properties:
        capacity:
          type: integer
          description: Capacity of the memory in bytes. (in bytes)
          format: uint64
        type:
          type: string
          description: Type of the memory.
        frequency:
          type: integer
          description: Frequency of the memory in MHz.
          format: uint32
      x-properties-order:
      - capacity
      - type
      - frequency
    scaleway.baremetal.v1.RaidController:
      type: object
      properties:
        model:
          type: string
        raid_level:
          type: array
          items:
            type: string
      x-properties-order:
      - model
      - raid_level
    scaleway.baremetal.v1.Schema:
      type: object
      properties:
        disks:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Disk'
        raids:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.RAID'
        filesystems:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Filesystem'
        zfs:
          $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.ZFS'
      x-properties-order:
      - disks
      - raids
      - filesystems
      - zfs
    scaleway.baremetal.v1.Schema.Disk:
      type: object
      properties:
        device:
          type: string
        partitions:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Partition'
      x-properties-order:
      - device
      - partitions
    scaleway.baremetal.v1.Schema.Filesystem:
      type: object
      properties:
        device:
          type: string
        format:
          $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Filesystem.Format'
        mountpoint:
          type: string
      x-properties-order:
      - device
      - format
      - mountpoint
    scaleway.baremetal.v1.Schema.Filesystem.Format:
      type: string
      enum:
      - unknown_format
      - fat32
      - ext4
      - swap
      - zfs
      - xfs
      default: unknown_format
    scaleway.baremetal.v1.Schema.Partition:
      type: object
      properties:
        label:
          $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Partition.Label'
        number:
          type: integer
          format: uint32
        size:
          type: integer
          description: (in bytes)
          format: uint64
        use_all_available_space:
          type: boolean
      x-properties-order:
      - label
      - number
      - size
      - use_all_available_space
    scaleway.baremetal.v1.Schema.Partition.Label:
      type: string
      enum:
      - unknown_partition_label
      - uefi
      - legacy
      - root
      - boot
      - swap
      - data
      - home
      - raid
      - zfs
      default: unknown_partition_label
    scaleway.baremetal.v1.Schema.Pool:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Pool.Type'
        devices:
          type: array
          items:
            type: string
        options:
          type: array
          items:
            type: string
        filesystem_options:
          type: array
          items:
            type: string
      x-properties-order:
      - name
      - type
      - devices
      - options
      - filesystem_options
    scaleway.baremetal.v1.Schema.Pool.Type:
      type: string
      enum:
      - unknown_type
      - no_raid
      - mirror
      - raidz1
      - raidz2
      default: unknown_type
    scaleway.baremetal.v1.Schema.RAID:
      type: object
      properties:
        name:
          type: string
        level:
          $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.RAID.Level'
        devices:
          type: array
          items:
            type: string
      x-properties-order:
      - name
      - level
      - devices
    scaleway.baremetal.v1.Schema.RAID.Level:
      type: string
      enum:
      - unknown_raid_level
      - raid_level_0
      - raid_level_1
      - raid_level_5
      - raid_level_6
      - raid_level_10
      default: unknown_raid_level
    scaleway.baremetal.v1.Schema.ZFS:
      type: object
      properties:
        pools:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Pool'
      x-properties-order:
      - pools
    scaleway.baremetal.v1.Server:
      type: object
      properties:
        id:
          type: string
          description: ID of the server.
        organization_id:
          type: string
          description: Organization ID the server is attached to.
        project_id:
          type: string
          description: Project ID the server is attached to.
        name:
          type: string
          description: Name of the server.
        description:
          type: string
          description: Description of the server.
        updated_at:
          type: string
          description: Last modification date of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        created_at:
          type: string
          description: Creation date of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        status:
          type: string
          description: Status of the server.
          enum:
          - unknown
          - delivering
          - ready
          - stopping
          - stopped
          - starting
          - error
          - deleting
          - locked
          - out_of_stock
          - ordered
          - resetting
          - migrating
          default: unknown
        offer_id:
          type: string
          description: Offer ID of the server.
        offer_name:
          type: string
          description: Offer name of the server.
        tags:
          type: array
          description: Array of custom tags attached to the server.
          items:
            type: string
        ips:
          type: array
          description: Array of IPs attached to the server.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.IP'
        domain:
          type: string
          description: Domain of the server.
        boot_type:
          type: string
          description: Boot type of the server.
          enum:
          - unknown_boot_type
          - normal
          - rescue
          default: unknown_boot_type
        zone:
          type: string
          description: Zone in which is the server located.
        install:
          type: object
          description: Configuration of the installation.
          properties:
            os_id:
              type: string
              description: ID of the OS.
            hostname:
              type: string
              description: Host defined during the server installation.
            ssh_key_ids:
              type: array
              description: SSH public key IDs defined during server installation.
              items:
                type: string
            status:
              type: string
              description: Status of the server installation.
              enum:
              - unknown
              - to_install
              - installing
              - completed
              - error
              default: unknown
            user:
              type: string
              description: User defined in the server installation, or the default
                user if none were specified.
            service_user:
              type: string
              description: Service user defined in the server installation, or the
                default user if none were specified.
            service_url:
              type: string
              description: Address of the installed service.
            partitioning_schema:
              type: object
              description: Partitioning schema.
              properties:
                disks:
                  type: array
                  items:
                    $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Disk'
                raids:
                  type: array
                  items:
                    $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.RAID'
                filesystems:
                  type: array
                  items:
                    $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Filesystem'
                zfs:
                  $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.ZFS'
              x-properties-order:
              - disks
              - raids
              - filesystems
              - zfs
          x-properties-order:
          - os_id
          - hostname
          - ssh_key_ids
          - status
          - user
          - service_user
          - service_url
          - partitioning_schema
        ping_status:
          type: string
          description: Status of server ping.
          enum:
          - ping_status_unknown
          - ping_status_up
          - ping_status_down
          default: ping_status_unknown
        options:
          type: array
          description: Options enabled on the server.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Server.Option'
        rescue_server:
          type: object
          description: Configuration of rescue boot.
          properties:
            user:
              type: string
              description: Rescue user name.
            password:
              type: string
              description: Rescue password.
          x-properties-order:
          - user
          - password
      x-properties-order:
      - id
      - organization_id
      - project_id
      - name
      - description
      - updated_at
      - created_at
      - status
      - offer_id
      - offer_name
      - tags
      - ips
      - domain
      - boot_type
      - zone
      - install
      - ping_status
      - options
      - rescue_server
    scaleway.baremetal.v1.Server.Option:
      type: object
      properties:
        id:
          type: string
          description: ID of the option.
        name:
          type: string
          description: Name of the option.
        status:
          type: string
          description: Status of the option on this server.
          enum:
          - option_status_unknown
          - option_status_enable
          - option_status_enabling
          - option_status_disabling
          - option_status_error
          default: option_status_unknown
        manageable:
          type: boolean
          description: Defines whether the option can be managed (added or removed).
        expires_at:
          type: string
          description: Auto expiration date for compatible options. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        license:
          type: object
          description: License option, contains the ID of the OS linked to the option.
          properties:
            os_id:
              type: string
          nullable: true
          x-properties-order:
          - os_id
          x-one-of: option
        public_bandwidth:
          type: object
          description: Public_bandwidth option, contains the bandwidth_in_bps.
          properties:
            bandwidth_in_bps:
              type: integer
              format: uint64
          nullable: true
          x-properties-order:
          - bandwidth_in_bps
          x-one-of: option
        private_network:
          type: object
          description: Private_network option, contains the bandwidth_in_bps.
          properties:
            bandwidth_in_bps:
              type: integer
              format: uint64
          nullable: true
          x-properties-order:
          - bandwidth_in_bps
          x-one-of: option
        remote_access:
          type: object
          description: Remote_access option.
          nullable: true
          x-one-of: option
        certification:
          type: object
          description: Certification option.
          nullable: true
          x-one-of: option
      x-properties-order:
      - id
      - name
      - status
      - manageable
      - expires_at
      - license
      - public_bandwidth
      - private_network
      - remote_access
      - certification
    scaleway.baremetal.v1.ServerEvent:
      type: object
      properties:
        id:
          type: string
          description: ID of the server to which the action will be applied.
        action:
          type: string
          description: The action that will be applied to the server.
        updated_at:
          type: string
          description: Date of last modification of the action. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        created_at:
          type: string
          description: Date of creation of the action. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - id
      - action
      - updated_at
      - created_at
    scaleway.baremetal.v1.Setting:
      type: object
      properties:
        id:
          type: string
          description: ID of the setting.
        type:
          type: string
          description: Type of the setting.
          enum:
          - unknown
          - smtp
          default: unknown
        project_id:
          type: string
          description: ID of the Project ID.
        enabled:
          type: boolean
          description: Defines whether the setting is enabled.
      x-properties-order:
      - id
      - type
      - project_id
      - enabled
    scaleway.std.TimeSeries.Point:
      type: array
      items:
        oneOf:
        - type: string
          format: date-time
        - type: number
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /baremetal/v1/zones/{zone}/offers:
    get:
      tags:
      - Offers
      operationId: ListOffers
      summary: List offers
      description: List all available Elastic Metal server configurations.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          description: Page number.
          format: int32
      - in: query
        name: page_size
        description: Number of offers per page.
        schema:
          type: integer
          description: Number of offers per page.
          format: uint32
      - in: query
        name: subscription_period
        description: Subscription period type to filter offers by.
        schema:
          type: string
          description: Subscription period type to filter offers by.
          enum:
          - unknown_subscription_period
          - hourly
          - monthly
          default: unknown_subscription_period
      - in: query
        name: name
        description: Offer name to filter offers by.
        schema:
          type: string
          description: Offer name to filter offers by.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListOffersResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/offers"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/offers" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/offers/{offer_id}:
    get:
      tags:
      - Offers
      operationId: GetOffer
      summary: Get offer
      description: Get details of an offer identified by its offer ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: offer_id
        description: ID of the researched Offer.
        required: true
        schema:
          type: string
          description: ID of the researched Offer.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Offer'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/offers/{offer_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/offers/{offer_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/options:
    get:
      tags:
      - Options
      operationId: ListOptions
      summary: List options
      description: List all options matching with filters.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          description: Page number.
          format: int32
      - in: query
        name: page_size
        description: Number of options per page.
        schema:
          type: integer
          description: Number of options per page.
          format: uint32
      - in: query
        name: offer_id
        description: Offer ID to filter options for.
        schema:
          type: string
          description: Offer ID to filter options for.
      - in: query
        name: name
        description: Name to filter options for.
        schema:
          type: string
          description: Name to filter options for.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListOptionsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/options"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/options" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/options/{option_id}:
    get:
      tags:
      - Options
      operationId: GetOption
      summary: Get option
      description: Return specific option for the ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: option_id
        description: ID of the option.
        required: true
        schema:
          type: string
          description: ID of the option.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Option'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/options/{option_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/options/{option_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/os:
    get:
      tags:
      - OS
      operationId: ListOS
      summary: List available OSes
      description: List all OSes that are available for installation on Elastic Metal
        servers.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          description: Page number.
          format: int32
      - in: query
        name: page_size
        description: Number of OS per page.
        schema:
          type: integer
          description: Number of OS per page.
          format: uint32
      - in: query
        name: offer_id
        description: Offer IDs to filter OSes for.
        schema:
          type: string
          description: Offer IDs to filter OSes for.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListOSResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/os"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/os" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/os/{os_id}:
    get:
      tags:
      - OS
      operationId: GetOS
      summary: Get OS with an ID
      description: Return the specific OS for the ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: os_id
        description: ID of the OS.
        required: true
        schema:
          type: string
          description: ID of the OS.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.OS'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/os/{os_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/os/{os_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/partitioning-schemas/default:
    get:
      tags:
      - Partitioning-schemas
      operationId: GetDefaultPartitioningSchema
      summary: Get default partitioning schema
      description: Get the default partitioning schema for the given offer ID and
        OS ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: query
        name: offer_id
        description: ID of the offer.
        required: true
        schema:
          type: string
          description: ID of the offer.
      - in: query
        name: os_id
        description: ID of the OS.
        required: true
        schema:
          type: string
          description: ID of the OS.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Schema'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/partitioning-schemas/default?offer_id=string&os_id=string"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/partitioning-schemas/default" \
            X-Auth-Token:$SCW_SECRET_KEY \
            offer_id==string \
            os_id==string
  /baremetal/v1/zones/{zone}/partitioning-schemas/validate:
    post:
      tags:
      - Partitioning-schemas
      operationId: ValidatePartitioningSchema
      summary: Validate client partitioning schema
      description: Validate the incoming partitioning schema from a user before installing
        the server. Return default ErrorCode if invalid.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      responses:
        "204":
          description: ""
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                partitioning_schema:
                  type: object
                  description: Partitioning schema.
                  properties:
                    disks:
                      type: array
                      items:
                        $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Disk'
                    raids:
                      type: array
                      items:
                        $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.RAID'
                    filesystems:
                      type: array
                      items:
                        $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Filesystem'
                    zfs:
                      $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.ZFS'
                  x-properties-order:
                  - disks
                  - raids
                  - filesystems
                  - zfs
                offer_id:
                  type: string
                  description: Offer ID of the server.
                os_id:
                  type: string
                  description: OS ID.
              x-properties-order:
              - partitioning_schema
              - offer_id
              - os_id
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"offer_id":"string","os_id":"string"}' \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/partitioning-schemas/validate"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/partitioning-schemas/validate" \
            X-Auth-Token:$SCW_SECRET_KEY \
            offer_id="string" \
            os_id="string"
  /baremetal/v1/zones/{zone}/servers:
    get:
      tags:
      - Servers
      operationId: ListServers
      summary: List Elastic Metal servers for an Organization
      description: List Elastic Metal servers for a specific Organization.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          description: Page number.
          format: int32
      - in: query
        name: page_size
        description: Number of servers per page.
        schema:
          type: integer
          description: Number of servers per page.
          format: uint32
      - in: query
        name: order_by
        description: Order of the servers.
        schema:
          type: string
          description: Order of the servers.
          enum:
          - created_at_asc
          - created_at_desc
          default: created_at_asc
      - in: query
        name: tags
        description: Tags to filter for.
        schema:
          type: array
          description: Tags to filter for.
          items:
            type: string
      - in: query
        name: status
        description: Status to filter for.
        schema:
          type: array
          description: Status to filter for.
          items:
            type: string
      - in: query
        name: name
        description: Names to filter for.
        schema:
          type: string
          description: Names to filter for.
      - in: query
        name: organization_id
        description: Organization ID to filter for.
        schema:
          type: string
          description: Organization ID to filter for.
      - in: query
        name: project_id
        description: Project ID to filter for.
        schema:
          type: string
          description: Project ID to filter for.
      - in: query
        name: option_id
        description: Option ID to filter for.
        schema:
          type: string
          description: Option ID to filter for.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListServersResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Servers
      operationId: CreateServer
      summary: Create an Elastic Metal server
      description: Create a new Elastic Metal server. Once the server is created,
        proceed with the [installation of an OS](#post-3e949e).
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                offer_id:
                  type: string
                  description: Offer ID of the new server.
                organization_id:
                  type: string
                  description: Organization ID with which the server will be created.
                  deprecated: true
                  nullable: true
                  x-one-of: ProjectIdentifier
                project_id:
                  type: string
                  description: Project ID with which the server will be created.
                  nullable: true
                  x-one-of: ProjectIdentifier
                name:
                  type: string
                  description: Name of the server (≠hostname).
                description:
                  type: string
                  description: Description associated with the server, max 255 characters.
                tags:
                  type: array
                  description: Tags to associate to the server.
                  items:
                    type: string
                install:
                  type: object
                  description: Object describing the configuration details of the
                    OS installation on the server.
                  properties:
                    os_id:
                      type: string
                      description: ID of the OS to installation on the server.
                    hostname:
                      type: string
                      description: Hostname of the server.
                    ssh_key_ids:
                      type: array
                      description: SSH key IDs authorized on the server.
                      items:
                        type: string
                    user:
                      type: string
                      description: User for the installation.
                      nullable: true
                    password:
                      type: string
                      description: Password for the installation.
                      nullable: true
                    service_user:
                      type: string
                      description: Regular user that runs the service to be installed
                        on the server.
                      nullable: true
                    service_password:
                      type: string
                      description: Password used for the service to install.
                      nullable: true
                    partitioning_schema:
                      type: object
                      description: Partitioning schema.
                      properties:
                        disks:
                          type: array
                          items:
                            $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Disk'
                        raids:
                          type: array
                          items:
                            $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.RAID'
                        filesystems:
                          type: array
                          items:
                            $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Filesystem'
                        zfs:
                          $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.ZFS'
                      x-properties-order:
                      - disks
                      - raids
                      - filesystems
                      - zfs
                  x-properties-order:
                  - os_id
                  - hostname
                  - ssh_key_ids
                  - user
                  - password
                  - service_user
                  - service_password
                  - partitioning_schema
                option_ids:
                  type: array
                  description: IDs of options to enable on server.
                  items:
                    type: string
              required:
              - offer_id
              - name
              - description
              x-properties-order:
              - offer_id
              - organization_id
              - project_id
              - name
              - description
              - tags
              - install
              - option_ids
      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",
              "name": "string",
              "offer_id": "string"
            }' \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers" \
            X-Auth-Token:$SCW_SECRET_KEY \
            description="string" \
            name="string" \
            offer_id="string"
  /baremetal/v1/zones/{zone}/servers/{server_id}:
    get:
      tags:
      - Servers
      operationId: GetServer
      summary: Get a specific Elastic Metal server
      description: Get full details of an existing Elastic Metal server associated
        with the ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server.
        required: true
        schema:
          type: string
          description: ID of the server.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Servers
      operationId: UpdateServer
      summary: Update an Elastic Metal server
      description: Update the server associated with the ID. You can update parameters
        such as the server's name, tags and description. Any parameters left null
        in the request body are not updated.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server to update.
        required: true
        schema:
          type: string
          description: ID of the server to update.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the server (≠hostname), not updated if null.
                  nullable: true
                description:
                  type: string
                  description: Description associated with the server, max 255 characters,
                    not updated if null.
                  nullable: true
                tags:
                  type: array
                  description: Tags associated with the server, not updated if null.
                  nullable: true
                  items:
                    type: string
              x-properties-order:
              - name
              - description
              - 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/baremetal/v1/zones/{zone}/servers/{server_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Servers
      operationId: DeleteServer
      summary: Delete an Elastic Metal server
      description: Delete the server associated with the ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server to delete.
        required: true
        schema:
          type: string
          description: ID of the server to delete.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access:
    get:
      tags:
      - BMC Access
      operationId: GetBMCAccess
      summary: Get BMC access
      description: Get the BMC (Baseboard Management Controller) access associated
        with the ID, including the URL and login information needed to connect.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server.
        required: true
        schema:
          type: string
          description: ID of the server.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.BMCAccess'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - BMC Access
      operationId: StartBMCAccess
      summary: Start BMC access
      description: |-
        Start BMC (Baseboard Management Controller) access associated with the ID.
        The BMC (Baseboard Management Controller) access is available one hour after the installation of the server.
        You need first to create an option Remote Access. You will find the ID and the price with a call to listOffers (https://developers.scaleway.com/en/products/baremetal/api/#get-78db92). Then add the option https://developers.scaleway.com/en/products/baremetal/api/#post-b14abd.
        After adding the BMC option, you need to Get Remote Access to get the login/password https://developers.scaleway.com/en/products/baremetal/api/#get-cefc0f. Do not forget to delete the Option after use.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server.
        required: true
        schema:
          type: string
          description: ID of the server.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.BMCAccess'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ip:
                  type: string
                  description: The IP authorized to connect to the server. (IPv4 address)
                  example: 1.2.3.4
              required:
              - ip
              x-properties-order:
              - ip
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"ip":"1.2.3.4"}' \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access" \
            X-Auth-Token:$SCW_SECRET_KEY \
            ip="1.2.3.4"
    delete:
      tags:
      - BMC Access
      operationId: StopBMCAccess
      summary: Stop BMC access
      description: Stop BMC (Baseboard Management Controller) access associated with
        the ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server.
        required: true
        schema:
          type: string
          description: ID of the server.
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/servers/{server_id}/events:
    get:
      tags:
      - Servers
      operationId: ListServerEvents
      summary: List server events
      description: List event (i.e. start/stop/reboot) associated to the server ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server events searched.
        required: true
        schema:
          type: string
          description: ID of the server events searched.
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          description: Page number.
          format: int32
      - in: query
        name: page_size
        description: Number of server events per page.
        schema:
          type: integer
          description: Number of server events per page.
          format: uint32
      - in: query
        name: order_by
        description: Order of the server events.
        schema:
          type: string
          description: Order of the server events.
          enum:
          - created_at_asc
          - created_at_desc
          default: created_at_asc
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListServerEventsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/events"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/events" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/servers/{server_id}/install:
    post:
      tags:
      - Servers
      operationId: InstallServer
      summary: Install an Elastic Metal server
      description: Install an Operating System (OS) on the Elastic Metal server with
        a specific ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: Server ID to install.
        required: true
        schema:
          type: string
          description: Server ID to install.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                os_id:
                  type: string
                  description: ID of the OS to installation on the server.
                hostname:
                  type: string
                  description: Hostname of the server.
                ssh_key_ids:
                  type: array
                  description: SSH key IDs authorized on the server.
                  items:
                    type: string
                user:
                  type: string
                  description: User used for the installation.
                  nullable: true
                password:
                  type: string
                  description: Password used for the installation.
                  nullable: true
                service_user:
                  type: string
                  description: User used for the service to install.
                  nullable: true
                service_password:
                  type: string
                  description: Password used for the service to install.
                  nullable: true
                partitioning_schema:
                  type: object
                  description: Partitioning schema.
                  properties:
                    disks:
                      type: array
                      items:
                        $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Disk'
                    raids:
                      type: array
                      items:
                        $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.RAID'
                    filesystems:
                      type: array
                      items:
                        $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.Filesystem'
                    zfs:
                      $ref: '#/components/schemas/scaleway.baremetal.v1.Schema.ZFS'
                  x-properties-order:
                  - disks
                  - raids
                  - filesystems
                  - zfs
              required:
              - os_id
              - hostname
              - ssh_key_ids
              x-properties-order:
              - os_id
              - hostname
              - ssh_key_ids
              - user
              - password
              - service_user
              - service_password
              - partitioning_schema
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "hostname": "string",
              "os_id": "string",
              "ssh_key_ids": [
                  "string"
              ]
            }' \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/install"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/install" \
            X-Auth-Token:$SCW_SECRET_KEY \
            hostname="string" \
            os_id="string" \
            ssh_key_ids:='[
              "string"
            ]'
  /baremetal/v1/zones/{zone}/servers/{server_id}/ips/{ip_id}:
    patch:
      tags:
      - Servers
      operationId: UpdateIP
      summary: Update IP
      description: Configure the IP address associated with the server ID and IP ID.
        You can use this method to set a reverse DNS for an IP address.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server.
        required: true
        schema:
          type: string
          description: ID of the server.
      - in: path
        name: ip_id
        description: ID of the IP to update.
        required: true
        schema:
          type: string
          description: ID of the IP to update.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.IP'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reverse:
                  type: string
                  description: New reverse IP to update, not updated if null.
                  nullable: true
              x-properties-order:
              - reverse
      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/baremetal/v1/zones/{zone}/servers/{server_id}/ips/{ip_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/ips/{ip_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/servers/{server_id}/metrics:
    get:
      tags:
      - Servers
      operationId: GetServerMetrics
      summary: Return server metrics
      description: Get the ping status of the server associated with the ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: Server ID to get the metrics.
        required: true
        schema:
          type: string
          description: Server ID to get the metrics.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.GetServerMetricsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/metrics"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/metrics" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/servers/{server_id}/migrate-offer-monthly:
    post:
      tags:
      - Servers
      operationId: MigrateServerToMonthlyOffer
      summary: Migrate server offer
      description: Migrate server with hourly offer to monthly offer.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server.
        required: true
        schema:
          type: string
          description: ID of the server.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/migrate-offer-monthly"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/migrate-offer-monthly" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}:
    post:
      tags:
      - Servers
      operationId: AddOptionServer
      summary: Add server option
      description: Add an option, such as Private Networks, to a specific server.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server.
        required: true
        schema:
          type: string
          description: ID of the server.
      - in: path
        name: option_id
        description: ID of the option to add.
        required: true
        schema:
          type: string
          description: ID of the option to add.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                expires_at:
                  type: string
                  description: Auto expire the option after this date. (RFC 3339 format)
                  format: date-time
                  example: "2022-03-22T12:34:56.123456Z"
                  nullable: true
              x-properties-order:
              - expires_at
      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/baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Servers
      operationId: DeleteOptionServer
      summary: Delete server option
      description: Delete an option from a specific server.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server.
        required: true
        schema:
          type: string
          description: ID of the server.
      - in: path
        name: option_id
        description: ID of the option to delete.
        required: true
        schema:
          type: string
          description: ID of the option to delete.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/options/{option_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/servers/{server_id}/reboot:
    post:
      tags:
      - Server Actions
      operationId: RebootServer
      summary: Reboot an Elastic Metal server
      description: Reboot the Elastic Metal server associated with the ID, use the
        `boot_type` `rescue` to reboot the server in rescue mode.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server to reboot.
        required: true
        schema:
          type: string
          description: ID of the server to reboot.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                boot_type:
                  type: string
                  description: The type of boot.
                  enum:
                  - unknown_boot_type
                  - normal
                  - rescue
                  default: unknown_boot_type
              x-properties-order:
              - boot_type
      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/baremetal/v1/zones/{zone}/servers/{server_id}/reboot"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/reboot" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/servers/{server_id}/start:
    post:
      tags:
      - Server Actions
      operationId: StartServer
      summary: Start an Elastic Metal server
      description: Start the server associated with the ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server to start.
        required: true
        schema:
          type: string
          description: ID of the server to start.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                boot_type:
                  type: string
                  description: The type of boot.
                  enum:
                  - unknown_boot_type
                  - normal
                  - rescue
                  default: unknown_boot_type
              x-properties-order:
              - boot_type
      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/baremetal/v1/zones/{zone}/servers/{server_id}/start"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/start" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/servers/{server_id}/stop:
    post:
      tags:
      - Server Actions
      operationId: StopServer
      summary: Stop an Elastic Metal server
      description: Stop the server associated with the ID. The server remains allocated
        to your account and all data remains on the local storage of the server.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: server_id
        description: ID of the server to stop.
        required: true
        schema:
          type: string
          description: ID of the server to stop.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.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/baremetal/v1/zones/{zone}/servers/{server_id}/stop"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/servers/{server_id}/stop" \
            X-Auth-Token:$SCW_SECRET_KEY
  /baremetal/v1/zones/{zone}/settings:
    get:
      tags:
      - Options
      operationId: ListSettings
      summary: List all settings
      description: Return all settings for a Project ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          description: Page number.
          format: int32
      - in: query
        name: page_size
        description: Set the maximum list size.
        schema:
          type: integer
          description: Set the maximum list size.
          format: uint32
      - in: query
        name: order_by
        description: Sort order for items in the response.
        schema:
          type: string
          description: Sort order for items in the response.
          enum:
          - created_at_asc
          - created_at_desc
          default: created_at_asc
      - in: query
        name: project_id
        description: ID of the Project. (UUID format)
        schema:
          type: string
          description: ID of the Project. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListSettingsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/settings?project_id=6170692e-7363-616c-6577-61792e636f6d"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/baremetal/v1/zones/{zone}/settings" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==6170692e-7363-616c-6577-61792e636f6d
  /baremetal/v1/zones/{zone}/settings/{setting_id}:
    patch:
      tags:
      - Options
      operationId: UpdateSetting
      summary: Update setting
      description: Update a setting for a Project ID (enable or disable).
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-1
          - fr-par-2
          - nl-ams-1
          - nl-ams-2
          - pl-waw-2
          - pl-waw-3
      - in: path
        name: setting_id
        description: ID of the setting.
        required: true
        schema:
          type: string
          description: ID of the setting.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Setting'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
                  description: Defines whether the setting is enabled.
                  nullable: true
              x-properties-order:
              - enabled
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/baremetal/v1/zones/{zone}/settings/{setting_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/baremetal/v1/zones/{zone}/settings/{setting_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
