openapi: 3.1.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.

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

    ## Concepts

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

    ## Quickstart

    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 [Account API](https://www.scaleway.com/en/developers/api/account/project-api/#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
        ```

    <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/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page.
      - you have [installed `curl`](https://curl.se/download.html)
    </Message>

    ## 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/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/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/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.BytesValue:
      type: object
      properties:
        value:
          type: string
      x-properties-order:
      - value
    google.protobuf.StringValue:
      type:
      - string
      - "null"
    google.type.Money:
      type: object
      properties:
        currency_code:
          type: string
        units:
          type: integer
          format: int64
        nanos:
          type: integer
          format: int32
      x-properties-order:
      - currency_code
      - units
      - nanos
    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 authentication.
        password:
          type: string
          description: The password to use for the BMC (Baseboard Management Controller)
            access authentication.
        expires_at:
          type:
          - string
          - "null"
          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"
      x-properties-order:
      - url
      - login
      - password
      - expires_at
    scaleway.baremetal.v1.BatchCreateServersRequest.ServerConfig:
      type: object
      properties:
        hostname:
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            type: string
      x-properties-order:
      - hostname
      - description
      - tags
    scaleway.baremetal.v1.BatchCreateServersResponse:
      type: object
      properties:
        servers:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      x-properties-order:
      - servers
    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.CertificationOption:
      type: object
    scaleway.baremetal.v1.CreateServerRequest:
      type: object
      properties:
        zone:
          type:
          - string
          - "null"
          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
        offer_id:
          type: string
          description: Offer ID of the new server.
        organization_id:
          type:
          - string
          - "null"
          description: Organization ID with which the server will be created.
          deprecated: true
          x-one-of: ProjectIdentifier
        project_id:
          type:
          - string
          - "null"
          description: Project ID with which the server will be created.
          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:
          description: Object describing the configuration details of the OS installation
            on the server.
          $ref: '#/components/schemas/scaleway.baremetal.v1.CreateServerRequest.Install'
        option_ids:
          type: array
          description: IDs of options to enable on server.
          items:
            type: string
        protected:
          type: boolean
          description: If enabled, the server can not be deleted.
        user_data:
          description: Configuration data to pass to cloud-init such as a YAML cloud
            config data or a user-data script.
          $ref: '#/components/schemas/google.protobuf.BytesValue'
      required:
      - zone
      - offer_id
      - name
      - description
      x-properties-order:
      - zone
      - offer_id
      - organization_id
      - project_id
      - name
      - description
      - tags
      - install
      - option_ids
      - protected
      - user_data
    scaleway.baremetal.v1.CreateServerRequest.Install:
      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
          - "null"
          description: User for the installation.
        password:
          type:
          - string
          - "null"
          description: Password for the installation.
        service_user:
          type:
          - string
          - "null"
          description: Regular user that runs the service to be installed on the server.
        service_password:
          type:
          - string
          - "null"
          description: Password used for the service to install.
        partitioning_schema:
          description: Partitioning schema.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Schema'
        network_boot_url:
          type:
          - string
          - "null"
          description: URL of the network service to which the server should forward
            its boot request.
        network_boot_persistent:
          type:
          - boolean
          - "null"
          description: Defines whether the network boot forwarding should be applied
            at every reboot or only once.
      x-properties-order:
      - os_id
      - hostname
      - ssh_key_ids
      - user
      - password
      - service_user
      - service_password
      - partitioning_schema
      - network_boot_url
      - network_boot_persistent
    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:
          description: Timeseries object representing pings on the server.
          $ref: '#/components/schemas/scaleway.std.TimeSeries'
      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:
          description: Version of IP (v4 or v6).
          $ref: '#/components/schemas/scaleway.baremetal.v1.IP.Version'
        reverse_status:
          description: Status of the reverse.
          $ref: '#/components/schemas/scaleway.baremetal.v1.IP.ReverseStatus'
        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.IP.ReverseStatus:
      type: string
      enum:
      - unknown
      - pending
      - active
      - error
      default: unknown
    scaleway.baremetal.v1.IP.Version:
      type: string
      enum:
      - IPv4
      - IPv6
      default: IPv4
    scaleway.baremetal.v1.LicenseOption:
      type: object
      properties:
        os_id:
          type: string
      x-properties-order:
      - os_id
    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.ListServerEventsRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      default: created_at_asc
    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.ListServersRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      default: created_at_asc
    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.ListSettingsRequest.OrderBy:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      default: created_at_asc
    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.
        ecc_type:
          description: Type of ECC memory.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Memory.EccType'
      x-properties-order:
      - capacity
      - type
      - frequency
      - is_ecc
      - ecc_type
    scaleway.baremetal.v1.Memory.EccType:
      type: string
      enum:
      - unknown_ecc_type
      - none
      - standard
      - on_die
      default: unknown_ecc_type
    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:
          description: Object defining the SSH requirements to install the OS.
          $ref: '#/components/schemas/scaleway.baremetal.v1.OS.OSField'
        user:
          description: Object defining the username requirements to install the OS.
          $ref: '#/components/schemas/scaleway.baremetal.v1.OS.OSField'
        password:
          description: Object defining the password requirements to install the OS.
          $ref: '#/components/schemas/scaleway.baremetal.v1.OS.OSField'
        service_user:
          description: Object defining the username requirements to install the service.
          $ref: '#/components/schemas/scaleway.baremetal.v1.OS.OSField'
        service_password:
          description: Object defining the password requirements to install the service.
          $ref: '#/components/schemas/scaleway.baremetal.v1.OS.OSField'
        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.
        cloud_init_supported:
          type: boolean
          description: Defines if cloud-init is supported by this OS.
        cloud_init_version:
          type:
          - string
          - "null"
          description: Defines the cloud-init API version used by this OS.
        network_boot:
          description: Object defining the network boot requirements for booting server.
          $ref: '#/components/schemas/scaleway.baremetal.v1.OS.OSField'
        network_boot_persistent_editable:
          type: boolean
          description: Defines if the network boot can be persisted or not.
        zone:
          type: string
          description: Zone in which is the OS is available.
      x-properties-order:
      - id
      - name
      - version
      - logo_url
      - ssh
      - user
      - password
      - service_user
      - service_password
      - enabled
      - license_required
      - allowed
      - custom_partitioning_supported
      - cloud_init_supported
      - cloud_init_version
      - network_boot
      - network_boot_persistent_editable
      - zone
    scaleway.baremetal.v1.OS.OSField:
      type: object
      properties:
        editable:
          type: boolean
        required:
          type: boolean
        default_value:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      x-properties-order:
      - editable
      - required
      - default_value
    scaleway.baremetal.v1.Offer:
      type: object
      properties:
        id:
          type: string
          description: ID of the offer.
        name:
          type: string
          description: Name of the offer.
        stock:
          description: Stock level.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Offer.Stock'
        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:
          description: Price of the offer for the next 60 minutes (a server order
            at 11h32 will be paid until 12h32).
          $ref: '#/components/schemas/google.type.Money'
        price_per_month:
          description: Monthly price of the offer, if subscribing on a monthly basis.
          $ref: '#/components/schemas/google.type.Money'
        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:
          description: Period of subscription for the offer.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Offer.SubscriptionPeriod'
        operation_path:
          type: string
          description: Operation path of the service.
        fee:
          description: One time fee invoiced by Scaleway for the setup and activation
            of the server.
          $ref: '#/components/schemas/google.type.Money'
        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
          - "null"
          description: Exist only for hourly offers, to migrate to the monthly offer.
        zone:
          type: string
          description: Zone in which is the offer is available.
        dual_attach:
          type:
          - boolean
          - "null"
          description: Describe the network topology of the offer.
      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
      - zone
      - dual_attach
    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:
          description: Period of subscription for the offer.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Offer.SubscriptionPeriod'
        price:
          description: Price of the option.
          $ref: '#/components/schemas/google.type.Money'
        manageable:
          type: boolean
          description: Boolean to know if option could be managed.
        os_id:
          type:
          - string
          - "null"
          description: Deprecated, use LicenseOptionVars.os_id instead.
          deprecated: true
        license:
          description: License option, contains the ID of the OS linked to the option.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.LicenseOption'
          - type: "null"
        public_bandwidth:
          description: Public_bandwidth option, contains the bandwidth_in_bps.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.PublicBandwidthOption'
          - type: "null"
        private_network:
          description: Private_network option, contains the bandwidth_in_bps.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.PrivateNetworkOption'
          - type: "null"
        remote_access:
          description: Remote_access option.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.RemoteAccessOption'
          - type: "null"
        certification:
          description: Certification option.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.CertificationOption'
          - type: "null"
      x-properties-order:
      - id
      - name
      - enabled
      - subscription_period
      - price
      - manageable
      - os_id
      - license
      - public_bandwidth
      - private_network
      - remote_access
      - certification
    scaleway.baremetal.v1.Offer.Stock:
      type: string
      enum:
      - empty
      - low
      - available
      default: empty
    scaleway.baremetal.v1.Offer.SubscriptionPeriod:
      type: string
      enum:
      - unknown_subscription_period
      - hourly
      - monthly
      default: unknown_subscription_period
    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:
          description: License option, contains the ID of the OS linked to the option.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.LicenseOption'
          - type: "null"
        public_bandwidth:
          description: Public_bandwidth option, contains the bandwidth_in_bps.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.PublicBandwidthOption'
          - type: "null"
        private_network:
          description: Private_network option, contains the bandwidth_in_bps.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.PrivateNetworkOption'
          - type: "null"
        remote_access:
          description: Remote_access option.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.RemoteAccessOption'
          - type: "null"
        certification:
          description: Certification option.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.CertificationOption'
          - type: "null"
      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.PrivateNetworkOption:
      type: object
      properties:
        bandwidth_in_bps:
          type: integer
          format: uint64
      x-properties-order:
      - bandwidth_in_bps
    scaleway.baremetal.v1.PublicBandwidthOption:
      type: object
      properties:
        bandwidth_in_bps:
          type: integer
          format: uint64
      x-properties-order:
      - bandwidth_in_bps
    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.RemoteAccessOption:
      type: object
    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
          - "null"
          description: Last modification date of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        created_at:
          type:
          - string
          - "null"
          description: Creation date of the server. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        status:
          description: Status of the server.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Server.Status'
        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:
          description: Boot type of the server.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Server.BootType'
        zone:
          type: string
          description: Zone in which is the server located.
        install:
          description: Configuration of the installation.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Server.Install'
        ping_status:
          description: Status of server ping.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Server.PingStatus'
        options:
          type: array
          description: Options enabled on the server.
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Server.Option'
        rescue_server:
          description: Configuration of rescue boot.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Server.RescueServer'
        protected:
          type: boolean
          description: If enabled, the server can not be deleted.
        user_data:
          description: Optional configuration data passed to cloud-init.
          $ref: '#/components/schemas/google.protobuf.BytesValue'
      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
      - protected
      - user_data
    scaleway.baremetal.v1.Server.BootType:
      type: string
      enum:
      - unknown_boot_type
      - normal
      - rescue
      default: unknown_boot_type
    scaleway.baremetal.v1.Server.Install:
      type: object
      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:
          description: Status of the server installation.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Server.Install.Status'
        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:
          description: Partitioning schema.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Schema'
        network_boot_url:
          type: string
          description: URL of the network service to which the server should forward
            its boot request.
        network_boot_persistent:
          type: boolean
          description: Defines whether the network boot forwarding should be applied
            at every reboot or only once.
      x-properties-order:
      - os_id
      - hostname
      - ssh_key_ids
      - status
      - user
      - service_user
      - service_url
      - partitioning_schema
      - network_boot_url
      - network_boot_persistent
    scaleway.baremetal.v1.Server.Install.Status:
      type: string
      enum:
      - unknown
      - to_install
      - installing
      - completed
      - error
      default: unknown
    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:
          description: Status of the option on this server.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Server.Option.OptionStatus'
        manageable:
          type: boolean
          description: Defines whether the option can be managed (added or removed).
        expires_at:
          type:
          - string
          - "null"
          description: Auto expiration date for compatible options. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        license:
          description: License option, contains the ID of the OS linked to the option.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.LicenseOption'
          - type: "null"
        public_bandwidth:
          description: Public_bandwidth option, contains the bandwidth_in_bps.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.PublicBandwidthOption'
          - type: "null"
        private_network:
          description: Private_network option, contains the bandwidth_in_bps.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.PrivateNetworkOption'
          - type: "null"
        remote_access:
          description: Remote_access option.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.RemoteAccessOption'
          - type: "null"
        certification:
          description: Certification option.
          x-one-of: option
          oneOf:
          - $ref: '#/components/schemas/scaleway.baremetal.v1.CertificationOption'
          - type: "null"
      x-properties-order:
      - id
      - name
      - status
      - manageable
      - expires_at
      - license
      - public_bandwidth
      - private_network
      - remote_access
      - certification
    scaleway.baremetal.v1.Server.Option.OptionStatus:
      type: string
      enum:
      - option_status_unknown
      - option_status_enable
      - option_status_enabling
      - option_status_disabling
      - option_status_error
      default: option_status_unknown
    scaleway.baremetal.v1.Server.PingStatus:
      type: string
      enum:
      - ping_status_unknown
      - ping_status_up
      - ping_status_down
      default: ping_status_unknown
    scaleway.baremetal.v1.Server.RescueServer:
      type: object
      properties:
        user:
          type: string
          description: Rescue user name.
        password:
          type: string
          description: Rescue password.
      x-properties-order:
      - user
      - password
    scaleway.baremetal.v1.Server.Status:
      type: string
      enum:
      - unknown
      - delivering
      - ready
      - stopping
      - stopped
      - starting
      - error
      - deleting
      - locked
      - out_of_stock
      - ordered
      - resetting
      - migrating
      default: unknown
    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
          - "null"
          description: Date of last modification of the action. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        created_at:
          type:
          - string
          - "null"
          description: Date of creation of the action. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      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:
          description: Type of the setting.
          $ref: '#/components/schemas/scaleway.baremetal.v1.Setting.Type'
        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.baremetal.v1.Setting.Type:
      type: string
      enum:
      - unknown
      - smtp
      default: unknown
    scaleway.std.File:
      type: object
      properties:
        name:
          type: string
        content_type:
          type: string
        content:
          type: string
      x-properties-order:
      - name
      - content_type
      - content
    scaleway.std.TimeSeries:
      type: object
      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
    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}/batch-create-servers:
    post:
      tags:
      - Servers
      operationId: BatchCreateServers
      summary: Create multiple Elastic Metal servers
      description: Create multiple new Elastic Metal servers. Once the servers are
        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
          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.BatchCreateServersResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                common_configuration:
                  description: Configuration wanted for the servers to create.
                  $ref: '#/components/schemas/scaleway.baremetal.v1.CreateServerRequest'
                servers:
                  type: array
                  description: List of servers to create.
                  items:
                    $ref: '#/components/schemas/scaleway.baremetal.v1.BatchCreateServersRequest.ServerConfig'
              x-properties-order:
              - common_configuration
              - servers
      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}/batch-create-servers"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/baremetal/v1/zones/{zone}/batch-create-servers" \
            X-Auth-Token:$SCW_SECRET_KEY
  /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
          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
          format: int32
      - in: query
        name: page_size
        description: Number of offers per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: subscription_period
        description: Subscription period type to filter offers by.
        schema:
          $ref: '#/components/schemas/scaleway.baremetal.v1.Offer.SubscriptionPeriod'
      - in: query
        name: name
        description: Offer name to filter offers by.
        schema:
          type: string
      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
          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
      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
          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
          format: int32
      - in: query
        name: page_size
        description: Number of options per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: offer_id
        description: Offer ID to filter options for.
        schema:
          type: string
      - in: query
        name: name
        description: Name to filter options for.
        schema:
          type: string
      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
          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
      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
          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
          format: int32
      - in: query
        name: page_size
        description: Number of OS per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: offer_id
        description: Offer IDs to filter OSes for.
        schema:
          type: string
      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
          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
      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
          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
      - in: query
        name: os_id
        description: ID of the OS.
        required: true
        schema:
          type: string
      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
          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:
                  description: Partitioning schema.
                  $ref: '#/components/schemas/scaleway.baremetal.v1.Schema'
                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
          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
          format: int32
      - in: query
        name: page_size
        description: Number of servers per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Order of the servers.
        schema:
          $ref: '#/components/schemas/scaleway.baremetal.v1.ListServersRequest.OrderBy'
      - in: query
        name: tags
        description: Tags to filter for.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: status
        description: Status to filter for.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: name
        description: Names to filter for.
        schema:
          type: string
      - in: query
        name: organization_id
        description: Organization ID to filter for.
        schema:
          type: string
      - in: query
        name: project_id
        description: Project ID to filter for.
        schema:
          type: string
      - in: query
        name: option_id
        description: Option ID to filter for.
        schema:
          type: string
      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
          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
                  - "null"
                  description: Organization ID with which the server will be created.
                  deprecated: true
                  x-one-of: ProjectIdentifier
                project_id:
                  type:
                  - string
                  - "null"
                  description: Project ID with which the server will be created.
                  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:
                  description: Object describing the configuration details of the
                    OS installation on the server.
                  $ref: '#/components/schemas/scaleway.baremetal.v1.CreateServerRequest.Install'
                option_ids:
                  type: array
                  description: IDs of options to enable on server.
                  items:
                    type: string
                protected:
                  type: boolean
                  description: If enabled, the server can not be deleted.
                user_data:
                  description: Configuration data to pass to cloud-init such as a
                    YAML cloud config data or a user-data script.
                  $ref: '#/components/schemas/google.protobuf.BytesValue'
              required:
              - offer_id
              - name
              - description
              x-properties-order:
              - offer_id
              - organization_id
              - project_id
              - name
              - description
              - tags
              - install
              - option_ids
              - protected
              - user_data
      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",
              "protected": false
            }' \
            "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" \
            protected:=false
  /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
          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
      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, description and protection flag. 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
          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
      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
                  - "null"
                  description: Name of the server (≠hostname), not updated if null.
                description:
                  type:
                  - string
                  - "null"
                  description: Description associated with the server, max 255 characters,
                    not updated if null.
                tags:
                  type:
                  - array
                  - "null"
                  description: Tags associated with the server, not updated if null.
                protected:
                  type:
                  - boolean
                  - "null"
                  description: If enabled, the server can not be deleted.
                user_data:
                  description: Configuration data to pass to cloud-init such as a
                    YAML cloud config data or a user-data script.
                  $ref: '#/components/schemas/google.protobuf.BytesValue'
              x-properties-order:
              - name
              - description
              - tags
              - protected
              - user_data
      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
          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
      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
          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
      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
          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
      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
          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
      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
          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
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Number of server events per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Order of the server events.
        schema:
          $ref: '#/components/schemas/scaleway.baremetal.v1.ListServerEventsRequest.OrderBy'
      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
          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
      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
                  - "null"
                  description: User used for the installation.
                password:
                  type:
                  - string
                  - "null"
                  description: Password used for the installation.
                service_user:
                  type:
                  - string
                  - "null"
                  description: User used for the service to install.
                service_password:
                  type:
                  - string
                  - "null"
                  description: Password used for the service to install.
                partitioning_schema:
                  description: Partitioning schema.
                  $ref: '#/components/schemas/scaleway.baremetal.v1.Schema'
                user_data:
                  description: Configuration data to pass to cloud-init such as a
                    YAML cloud config data or a user-data script.
                  deprecated: true
                  $ref: '#/components/schemas/scaleway.std.File'
                network_boot_url:
                  type:
                  - string
                  - "null"
                  description: URL of the network service to which the server should
                    forward its boot request.
                network_boot_persistent:
                  type:
                  - boolean
                  - "null"
                  description: Defines whether the network boot forwarding should
                    be applied at every reboot or only once.
              required:
              - os_id
              - hostname
              - ssh_key_ids
              x-properties-order:
              - os_id
              - hostname
              - ssh_key_ids
              - user
              - password
              - service_user
              - service_password
              - partitioning_schema
              - user_data
              - network_boot_url
              - network_boot_persistent
      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
          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
      - in: path
        name: ip_id
        description: ID of the IP to update.
        required: true
        schema:
          type: string
      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
                  - "null"
                  description: New reverse IP to update, not updated if null.
              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
          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
      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
          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
      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
          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
      - in: path
        name: option_id
        description: ID of the option to add.
        required: true
        schema:
          type: string
      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
                  - "null"
                  description: Auto expire the option after this date. (RFC 3339 format)
                  format: date-time
                  example: "2022-03-22T12:34:56.123456Z"
              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
          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
      - in: path
        name: option_id
        description: ID of the option to delete.
        required: true
        schema:
          type: string
      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
          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
      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:
                  description: The type of boot.
                  $ref: '#/components/schemas/scaleway.baremetal.v1.Server.BootType'
                ssh_key_ids:
                  type: array
                  description: Additional SSH public key IDs to configure on rescue
                    image.
                  items:
                    type: string
              x-properties-order:
              - boot_type
              - ssh_key_ids
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/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
          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
      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:
                  description: The type of boot.
                  $ref: '#/components/schemas/scaleway.baremetal.v1.Server.BootType'
                ssh_key_ids:
                  type: array
                  description: Additional SSH public key IDs to configure on rescue
                    image.
                  items:
                    type: string
              x-properties-order:
              - boot_type
              - ssh_key_ids
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/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
          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
      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
          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
          format: int32
      - in: query
        name: page_size
        description: Set the maximum list size.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order for items in the response.
        schema:
          $ref: '#/components/schemas/scaleway.baremetal.v1.ListSettingsRequest.OrderBy'
      - in: query
        name: project_id
        description: ID of the Project. (UUID format)
        schema:
          type: string
          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
          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
      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
                  - "null"
                  description: Defines whether the setting is enabled.
              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
