openapi: 3.0.0
info:
  title: Apple silicon API
  description: |-
    Step into the future of computing with Apple Silicon, our Mac mini M1, M2, and M2-Pro dedicated machines. Enjoy unparalleled speed and performance to handle all your computing needs with the latest generations of Mac mini hardware.

    A dedicated Mac mini thus allows you to enjoy dazzling performance and speed, enabling you to explore, learn, and build like never before.

    (switchcolumn)
    (switchcolumn)

    ## Concepts

    Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/bare-metal/apple-silicon/concepts/) to find definitions of the different terms referring to Apple silicon.

    (switchcolumn)
    (switchcolumn)

    ## Quickstart

    1. Configure your environment variables.

        <Message type="note">
        This is an optional step that seeks to simplify your usage of the APIs. There are two Availability Zones for Apple silicon, the possible values for zone are `fr-par-1` and `fr-par-3`.
        </Message>

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

    2. Edit the POST request payload that we will use in the next step to create an Apple silicon server.

        Modify the values in the example according to your needs, using the information in the table to help.

        ```json
        {
          "name": "My_AS_Server",
          "project_id": "7281793f-8474-727d-7688-72893f747g7e",
          "type": "M1-M"
        }
        ```

        | Parameter        | Description                                                                                              |
        | :--------------- | :------------------------------------------------------------------------------------------------------- |
        | `project_id`     | ID of the Project you want to create your server in. Your project name can only contain alphanumeric characters, spaces, dots and dashes. To find your Project ID, you can consult the **[Scaleway console](https://console.scaleway.com/project/settings)**                                                                                                       |
        | `name`           | Create a server with this given name.                                                                    |
        | `type`           | Create a server of the given type. The possible values are `M2-L`, `M2-M` and `M1-M`.                                                                                                     |

    3. Run the following command to create a server. Make sure you include the payload you edited in the previous step.

        ```bash
        curl -X POST \
          -H "X-Auth-Token: $SECRET_KEY" \
          -H "Content-Type: application/json" \
          "https://api.scaleway.com/apple-silicon/v1alpha1/zones/$ZONE/servers" \
          -d '{
            "name": "My_Mac_Mini_M1",
            "project_id": "7281793f-8474-727d-7688-72893f747g7e",
            "type": "M1-M"
          }'
        ```

        You should get an output similar to the following one, providing details about your Apple silicon server.

        <Message type="note">
        This is a response example, the UUIDs and IP address displayed are not real.
        </Message>

        ```bash
        {
          "id": "d6877c16-77af-40a2-8b13-514cee3e73f5",
          "type": "M1-M",
          "name": "My_Mac_Mini_M1",
          "project_id": "7281793f-8474-727d-7688-72893f747g7e",
          "organization_id": "b12d5c3g-c612-5674-c1e9-92627f36c5b9",
          "ip": "1.2.3.4",
          "vnc_url": "vnc://m1:password@192.168.1.93:5900",
          "ssh_username": "m1",
          "sudo_password": "password",
          "status": "unknown_status",
          "created_at": "2022-03-22T12:34:56.123456Z",
          "updated_at": "2022-03-22T12:34:56.123456Z",
          "deletable_at": "2022-03-22T12:34:56.123456Z",
          "zone": "fr-par-3"
        }
        ```

    4. Retrieve your Mac mini IP from the response.

    5. Connect to your Mac mini using SSH:

        ```bash
        ssh m1@<your_mac_mini_ip>
        ```

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

    ## Technical information

    Mac mini and macOS are trademarks of Apple Inc., registered in the U.S. and other countries and regions. IOS is a trademark or registered trademark of Cisco in the U.S. and other countries and is used by Apple under license. Scaleway is not affiliated with Apple Inc.

      ### Availability Zones

      Mac mini can be deployed in the following Availability Zones:

      - Paris `fr-par-1`
      - Paris `fr-par-3`

    ## Technical limitations

    The following technical limitations apply when using Apple silicon:

    - Apple silicon-as-a-Service comes with a minimum allocation period of 24 hours.
    - The maximum number of Mac mini allowed per Organization depends on the offer selected. Learn more about account quotas with our dedicated [documentation](https://www.scaleway.com/en/docs/identity-and-access-management/organizations-and-projects/additional-content/organization-quotas/#apple-silicon).

    ## Going further

    For more help using Scaleway Apple silicon, check out the following resources:
    - Our [main documentation](https://www.scaleway.com/en/docs/bare-metal/apple-silicon/)
    - Our [Slack Community](https://slack.scaleway.com)
    - Our [support ticketing system](https://www.scaleway.com/en/docs/console/account/how-to/open-a-support-ticket/).
  version: v1alpha1
servers:
- url: https://api.scaleway.com
tags:
- name: Servers
  description: A server is a dedicated Apple Mac mini server
- name: Server Types
  description: A server type represents the technical specification of an available
    Mac mini server, such as its memory and disk size.
- name: OS
  description: Operating systems (OS) available for a given Mac mini server type.
    The macOS versions available for our Mac mini are macOS 13 Ventura and macOS 14
    Sonoma. Other OSes, e.g. Linux OS or Windows OS are not supported.
components:
  schemas:
    scaleway.apple_silicon.v1alpha1.ListOSResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of OS.
          format: uint32
        os:
          type: array
          description: List of OS.
          items:
            $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.OS'
      x-properties-order:
      - total_count
      - os
    scaleway.apple_silicon.v1alpha1.ListServerTypesResponse:
      type: object
      properties:
        server_types:
          type: array
          description: Available server types.
          items:
            $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.ServerType'
      x-properties-order:
      - server_types
    scaleway.apple_silicon.v1alpha1.ListServersResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of servers.
          format: uint32
        servers:
          type: array
          description: Paginated returned servers.
          items:
            $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.Server'
      x-properties-order:
      - total_count
      - servers
    scaleway.apple_silicon.v1alpha1.OS:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the OS.
        name:
          type: string
          description: OS name.
        label:
          type: string
          description: OS name as it should be displayed.
        image_url:
          type: string
          description: URL of the image.
        family:
          type: string
          description: The OS family to which this OS belongs, eg. 13 or 14.
        is_beta:
          type: boolean
          description: Describes if the OS is in beta.
        version:
          type: string
          description: The OS version number, eg. Sonoma has version number 14.3.
        xcode_version:
          type: string
          description: The current xcode version for this OS.
        compatible_server_types:
          type: array
          description: List of compatible server types.
          items:
            type: string
      x-properties-order:
      - id
      - name
      - label
      - image_url
      - family
      - is_beta
      - version
      - xcode_version
      - compatible_server_types
    scaleway.apple_silicon.v1alpha1.Server:
      type: object
      properties:
        id:
          type: string
          description: UUID of the server.
        type:
          type: string
          description: Type of the server.
        name:
          type: string
          description: Name of the server.
        project_id:
          type: string
          description: Project this server is associated with.
        organization_id:
          type: string
          description: Organization this server is associated with.
        ip:
          type: string
          description: IPv4 address of the server. (IPv4 address)
          example: 1.2.3.4
        vnc_url:
          type: string
          description: Vnc:// URL to access Apple Remote Desktop.
        ssh_username:
          type: string
          description: SSH Username for remote shell.
        sudo_password:
          type: string
          description: Admin password required to execute commands.
        os:
          type: object
          description: |-
            Initially installed OS.
            Initially installed OS, this does not necessarily reflect the current OS version.
          properties:
            id:
              type: string
              description: Unique ID of the OS.
            name:
              type: string
              description: OS name.
            label:
              type: string
              description: OS name as it should be displayed.
            image_url:
              type: string
              description: URL of the image.
            family:
              type: string
              description: The OS family to which this OS belongs, eg. 13 or 14.
            is_beta:
              type: boolean
              description: Describes if the OS is in beta.
            version:
              type: string
              description: The OS version number, eg. Sonoma has version number 14.3.
            xcode_version:
              type: string
              description: The current xcode version for this OS.
            compatible_server_types:
              type: array
              description: List of compatible server types.
              items:
                type: string
          x-properties-order:
          - id
          - name
          - label
          - image_url
          - family
          - is_beta
          - version
          - xcode_version
          - compatible_server_types
        status:
          type: string
          description: Current status of the server.
          enum:
          - unknown_status
          - starting
          - ready
          - error
          - rebooting
          - updating
          - locking
          - locked
          - unlocking
          - reinstalling
          default: unknown_status
        created_at:
          type: string
          description: Date on which the server was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Date on which the server was last updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        deletable_at:
          type: string
          description: Date from which the server can be deleted. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        deletion_scheduled:
          type: boolean
          description: |-
            If true, server will be automatically once deletable_at is reached.
            Set to true to mark the server for automatic deletion depending on `deletable_at` date. Set to false to cancel an existing deletion schedule. Leave unset otherwise.
        zone:
          type: string
          description: Zone of the server.
        delivered:
          type: boolean
          description: |-
            Indicate if the newly ordered server is ready to use.
            Set to true once the server has completed its provisioning steps and is ready to use. Some OS configurations might require a reinstallation of the server before delivery depending on the available stock. A reinstallation after the initial delivery will not change this flag and can be tracked using the server status.
      x-properties-order:
      - id
      - type
      - name
      - project_id
      - organization_id
      - ip
      - vnc_url
      - ssh_username
      - sudo_password
      - os
      - status
      - created_at
      - updated_at
      - deletable_at
      - deletion_scheduled
      - zone
      - delivered
    scaleway.apple_silicon.v1alpha1.ServerType:
      type: object
      properties:
        cpu:
          type: object
          description: CPU description.
          properties:
            name:
              type: string
            core_count:
              type: integer
              format: uint32
            frequency:
              type: integer
              format: uint64
          x-properties-order:
          - name
          - core_count
          - frequency
        disk:
          type: object
          description: Size of the local disk of the server.
          properties:
            capacity:
              type: integer
              description: (in bytes)
              format: uint64
            type:
              type: string
          x-properties-order:
          - capacity
          - type
        name:
          type: string
          description: Name of the type.
        memory:
          type: object
          description: Size of memory available.
          properties:
            capacity:
              type: integer
              description: (in bytes)
              format: uint64
            type:
              type: string
          x-properties-order:
          - capacity
          - type
        stock:
          type: string
          description: Current stock.
          enum:
          - unknown_stock
          - no_stock
          - low_stock
          - high_stock
          default: unknown_stock
        minimum_lease_duration:
          type: string
          description: |-
            Minimum duration of the lease in seconds.
            Minimum duration of the lease in seconds (example. 3.4s). (in seconds)
          example: 2.5s
          nullable: true
        gpu:
          type: object
          description: GPU description.
          properties:
            count:
              type: integer
              format: uint64
          x-properties-order:
          - count
        network:
          type: object
          description: Network description.
          properties:
            public_bandwidth_bps:
              type: integer
              format: uint64
          x-properties-order:
          - public_bandwidth_bps
        default_os:
          type: object
          description: The default OS for this server type.
          properties:
            id:
              type: string
              description: Unique ID of the OS.
            name:
              type: string
              description: OS name.
            label:
              type: string
              description: OS name as it should be displayed.
            image_url:
              type: string
              description: URL of the image.
            family:
              type: string
              description: The OS family to which this OS belongs, eg. 13 or 14.
            is_beta:
              type: boolean
              description: Describes if the OS is in beta.
            version:
              type: string
              description: The OS version number, eg. Sonoma has version number 14.3.
            xcode_version:
              type: string
              description: The current xcode version for this OS.
            compatible_server_types:
              type: array
              description: List of compatible server types.
              items:
                type: string
          x-properties-order:
          - id
          - name
          - label
          - image_url
          - family
          - is_beta
          - version
          - xcode_version
          - compatible_server_types
      x-properties-order:
      - cpu
      - disk
      - name
      - memory
      - stock
      - minimum_lease_duration
      - gpu
      - network
      - default_os
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /apple-silicon/v1alpha1/zones/{zone}/os:
    get:
      tags:
      - OS
      operationId: ListOS
      summary: List all Operating Systems (OS)
      description: List all Operating Systems (OS). The response will include the
        total number of OS as well as their associated IDs, names and labels.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      - in: query
        name: page
        description: Positive integer to choose the page to return.
        schema:
          type: integer
          description: Positive integer to choose the page to return.
          format: int32
      - in: query
        name: page_size
        description: Positive integer lower or equal to 100 to select the number of
          items to return.
        schema:
          type: integer
          description: Positive integer lower or equal to 100 to select the number
            of items to return.
          format: uint32
          default: "50"
      - in: query
        name: server_type
        description: List of compatible server types.
        schema:
          type: string
          description: List of compatible server types.
      - in: query
        name: name
        description: Filter OS by name (note that "11.1" will return "11.1.2" and
          "11.1" but not "12")).
        schema:
          type: string
          description: Filter OS by name (note that "11.1" will return "11.1.2" and
            "11.1" but not "12")).
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.ListOSResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/os"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/os" \
            X-Auth-Token:$SCW_SECRET_KEY
  /apple-silicon/v1alpha1/zones/{zone}/os/{os_id}:
    get:
      tags:
      - OS
      operationId: GetOS
      summary: Get an Operating System (OS)
      description: Get an Operating System (OS).  The response will include the OS's
        unique ID as well as its name and label.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      - in: path
        name: os_id
        description: UUID of the OS you want to get.
        required: true
        schema:
          type: string
          description: UUID of the OS you want to get.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.OS'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/os/{os_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/os/{os_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /apple-silicon/v1alpha1/zones/{zone}/server-type/{server_type}:
    get:
      tags:
      - Server Types
      operationId: GetServerType
      summary: Get a server type
      description: Get technical details (CPU, disk size etc.) of a server type.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      - in: path
        name: server_type
        description: Server type identifier.
        required: true
        schema:
          type: string
          description: Server type identifier.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.ServerType'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/server-type/{server_type}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/server-type/{server_type}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /apple-silicon/v1alpha1/zones/{zone}/server-types:
    get:
      tags:
      - Server Types
      operationId: ListServerTypes
      summary: List server types
      description: List all technical details about Apple silicon server types available
        in the specified zone. Since there is only one Availability Zone for Apple
        silicon servers, the targeted value is `fr-par-3`.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.ListServerTypesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/server-types"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/server-types" \
            X-Auth-Token:$SCW_SECRET_KEY
  /apple-silicon/v1alpha1/zones/{zone}/servers:
    get:
      tags:
      - Servers
      operationId: ListServers
      summary: List all servers
      description: List all servers in the specified zone. By default, returned servers
        in the list are ordered by creation date in ascending order, though this can
        be modified via the `order_by` field.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      - in: query
        name: order_by
        description: Sort order of the returned servers.
        schema:
          type: string
          description: Sort order of the returned servers.
          enum:
          - created_at_asc
          - created_at_desc
          default: created_at_asc
      - in: query
        name: project_id
        description: Only list servers of this project ID.
        schema:
          type: string
          description: Only list servers of this project ID.
      - in: query
        name: organization_id
        description: Only list servers of this Organization ID.
        schema:
          type: string
          description: Only list servers of this Organization ID.
      - in: query
        name: page
        description: Positive integer to choose the page to return.
        schema:
          type: integer
          description: Positive integer to choose the page to return.
          format: int32
      - in: query
        name: page_size
        description: Positive integer lower or equal to 100 to select the number of
          items to return.
        schema:
          type: integer
          description: Positive integer lower or equal to 100 to select the number
            of items to return.
          format: uint32
          default: "50"
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.ListServersResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Servers
      operationId: CreateServer
      summary: Create a server
      description: Create a new server in the targeted zone, specifying its configuration
        including name and type.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Create a server with this given name.
                project_id:
                  type: string
                  description: Create a server in the given project ID.
                type:
                  type: string
                  description: Create a server of the given type.
                os_id:
                  type: string
                  description: |-
                    Create a server with the given os_id.
                    Create a server & install the given os_id, when no os_id provided the default OS for this server type is chosen. Requesting a non-default OS will induce an extended delivery time.
                  nullable: true
              x-properties-order:
              - name
              - project_id
              - type
              - 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 '{
              "name": "string",
              "project_id": "string",
              "type": "string"
            }' \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers" \
            X-Auth-Token:$SCW_SECRET_KEY \
            name="string" \
            project_id="string" \
            type="string"
  /apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}:
    get:
      tags:
      - Servers
      operationId: GetServer
      summary: Get a server
      description: Retrieve information about an existing Apple silicon server, specified
        by its server ID. Its full details, including name, status and IP address,
        are returned in the response object.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      - in: path
        name: server_id
        description: UUID of the server you want to get.
        required: true
        schema:
          type: string
          description: UUID of the server you want to get.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.Server'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Servers
      operationId: UpdateServer
      summary: Update a server
      description: Update the parameters of an existing Apple silicon server, specified
        by its server ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      - in: path
        name: server_id
        description: UUID of the server you want to update.
        required: true
        schema:
          type: string
          description: UUID of the server you want to update.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Updated name for your server.
                  nullable: true
                schedule_deletion:
                  type: boolean
                  description: Specify whether the server should be flagged for automatic
                    deletion.
                  nullable: true
              required:
              - name
              x-properties-order:
              - name
              - schedule_deletion
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"name":"string"}' \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}" \
            X-Auth-Token:$SCW_SECRET_KEY \
            name="string"
    delete:
      tags:
      - Servers
      operationId: DeleteServer
      summary: Delete a server
      description: Delete an existing Apple silicon server, specified by its server
        ID. Deleting a server is permanent, and cannot be undone. Note that the minimum
        allocation period for Apple silicon-as-a-service is 24 hours, meaning you
        cannot delete your server prior to that.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      - in: path
        name: server_id
        description: UUID of the server you want to delete.
        required: true
        schema:
          type: string
          description: UUID of the server you want to delete.
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}/reboot:
    post:
      tags:
      - Servers
      operationId: RebootServer
      summary: Reboot a server
      description: Reboot an existing Apple silicon server, specified by its server
        ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      - in: path
        name: server_id
        description: UUID of the server you want to reboot.
        required: true
        schema:
          type: string
          description: UUID of the server you want to reboot.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.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/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}/reboot"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}/reboot" \
            X-Auth-Token:$SCW_SECRET_KEY
  /apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}/reinstall:
    post:
      tags:
      - Servers
      operationId: ReinstallServer
      summary: Reinstall a server
      description: Reinstall an existing Apple silicon server (specified by its server
        ID) from a new image (OS). All the data on the disk is deleted and all configuration
        is reset to the defailt configuration values of the image (OS).
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-3
      - in: path
        name: server_id
        description: UUID of the server you want to reinstall.
        required: true
        schema:
          type: string
          description: UUID of the server you want to reinstall.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.apple_silicon.v1alpha1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                os_id:
                  type: string
                  description: |-
                    Reinstall the server with the OS corresponding to the os_id.
                    Reinstall the server with the target OS, when no os_id provided the default OS for the server type is used.
                  nullable: true
              x-properties-order:
              - 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 '{}' \
            "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}/reinstall"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/apple-silicon/v1alpha1/zones/{zone}/servers/{server_id}/reinstall" \
            X-Auth-Token:$SCW_SECRET_KEY
