Qovery / scaleway-api-rs

Rust lib for Scaleway API
GNU General Public License v3.0
9 stars 1 forks source link

add `baremetal`open API specs #2

Closed benjaminch closed 3 years ago

benjaminch commented 3 years ago

Seems Baremetal API specs is not valid from openAPI generator stand point:

https://developers.scaleway.com/static/55e3f254c8c01db735e2ee27ff81ad98/scaleway.baremetal.v1.Api.yml

Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI).
 | Error count: 2, Warning count: 0
Errors:
        -attribute components.schemas.scaleway.std.TimeSeries.Point.items is missing
        -attribute components.schemas.scaleway.std.TimeSeries.Point.items is not of type `object`

        at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:546)
        at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:573)
        at org.openapitools.codegen.cmd.Generate.execute(Generate.java:433)
        at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
        at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
remyleone commented 3 years ago

Try with this one:

openapi: 3.0.0
info:
  title: Bare metal API
  description: |
    # Introduction

    Bare metal as a service allows ordering a dedicated server on-demand like a cloud instance.
    Dedicated servers could be used for large workloads, big data, those requiring more security, ….

    This is the `v1` documentation, the `v1alpha1` version is available [here](/en/products/baremetal/api/v1alpha1).

    ## Technical Limitations

    - Bare metal is only available in `fr-par-2` zone

    - Installation is done by preseed (± 10min) (preseed: complete install from a virtual media)

    - The list of OS is limited, you can install your own using the following tutorial: https://www.scaleway.com/en/docs/bare-metal-server-installation-kvm-over-ip/

    ## Features

    - Install (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 an OS experiencing failures. When your server boot on rescue, you can mount your disks and start diagnosing/fixing your image.

    - BMC access: Baseboard Management Controller (BMC) allows you to remotely access the low-level parameters of your dedicated server. For instance, your KVM-IP management console could be accessed with it.

    - Billed by minute (The billing start when the server is delivered and stop when the server is deleted)

    - IPv6, all servers are available with an IPv6 /128

    - 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

    - IP failovers are not available in api v1, use the api v1alpha1

    ## FAQ

    ### How can I get my ssh key id ?

    You can find your `$SCW_SECRET_KEY` and your `SCW_DEFAULT_ORGANIZATION_ID` at the following page: https://console.scaleway.com/project/credentials
  version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Servers
  description: |
    A server represents a dedicated baremetal server.
- name: Servers Actions
  description: |
    Server actions allows you to start, stop or reboot your servers.
- name: BMC access
  description: |
    BMC (Baseboard Management Controller) access allow you to access serie console of your baremetal server.
    The BMC (Baseboard Management Controller) access feature is available one hour after the installation of the server.
- name: Offers
- name: OS
components:
  schemas:
    scaleway.baremetal.v1.BMCAccess:
      type: object
      properties:
        url:
          type: string
          description: URL to access to the server console
        login:
          type: string
          description: The login to use for the BMC (Baseboard Management Controller)
            access authentification
        password:
          type: string
          description: The password to use for the BMC (Baseboard Management Controller)
            access authentification
        expires_at:
          type: string
          description: The date after which the BMC (Baseboard Management Controller)
            access will be closed
          format: date-time
      x-properties-order:
      - url
      - login
      - password
      - expires_at
    scaleway.baremetal.v1.CPU:
      type: object
      properties:
        name:
          type: string
          description: Name of the CPU
        core_count:
          type: number
          description: Number of cores of the CPU
        thread_count:
          type: number
          description: Number of threads of the CPU
        frequency:
          type: number
      x-properties-order:
      - name
      - core_count
      - thread_count
      - frequency
    scaleway.baremetal.v1.CreateServerRequest.Install:
      type: object
      properties:
        os_id:
          type: string
        hostname:
          type: string
        ssh_key_ids:
          type: array
          items:
            type: string
      x-properties-order:
      - os_id
      - hostname
      - ssh_key_ids
    scaleway.baremetal.v1.Disk:
      type: object
      properties:
        capacity:
          type: number
          description: Capacity of the disk in bytes (in bytes)
        type:
          type: string
          description: Type of the disk
      x-properties-order:
      - capacity
      - type
    scaleway.baremetal.v1.GetServerMetricsResponse:
      type: object
      properties:
        pings:
          type: object
          description: Timeseries of ping on the server
          properties:
            name:
              type: string
            points:
              type: array
              items:
                $ref: '#/components/schemas/scaleway.std.TimeSeries.Point'
            metadata:
              type: object
              properties:
                <metadataKey>:
                  type: string
              additionalProperties: true
          x-properties-order:
          - name
          - points
          - metadata
      x-properties-order:
      - pings
    scaleway.baremetal.v1.IP:
      type: object
      properties:
        id:
          type: string
          description: ID of the IP
        address:
          type: string
          description: Address of the IP (IP address)
          example: 1.2.3.4
        reverse:
          type: string
          description: Reverse IP value
        version:
          type: string
          description: Version of IP (v4 or v6)
          enum:
          - IPv4
          - IPv6
          default: IPv4
        reverse_status:
          type: string
          description: Status of the reverse
          enum:
          - unknown
          - pending
          - active
          - error
          default: unknown
        reverse_status_message:
          type: string
          description: A message related to the reverse status, in case of an error
            for example
      x-properties-order:
      - id
      - address
      - reverse
      - version
      - reverse_status
      - reverse_status_message
    scaleway.baremetal.v1.ListOSResponse:
      type: object
      properties:
        total_count:
          type: number
          description: Total count of matching OS
        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: number
          description: Total count of matching offers
        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.ListServerEventsResponse:
      type: object
      properties:
        total_count:
          type: number
          description: Total count of matching events
        events:
          type: array
          description: Server events that match filters
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.ServerEvent'
      x-properties-order:
      - total_count
      - events
    scaleway.baremetal.v1.ListServersResponse:
      type: object
      properties:
        total_count:
          type: number
          description: Total count of matching servers
        servers:
          type: array
          description: Servers that match filters
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      x-properties-order:
      - total_count
      - servers
    scaleway.baremetal.v1.Memory:
      type: object
      properties:
        capacity:
          type: number
          description: (in bytes)
        type:
          type: string
        frequency:
          type: number
        is_ecc:
          type: boolean
      x-properties-order:
      - capacity
      - type
      - frequency
      - is_ecc
    scaleway.baremetal.v1.OS:
      type: object
      properties:
        id:
          type: string
          description: ID of the OS
        name:
          type: string
          description: Name of the OS
        version:
          type: string
          description: Version of the OS
      x-properties-order:
      - id
      - name
      - version
    scaleway.baremetal.v1.Offer:
      type: object
      properties:
        id:
          type: string
          description: ID of the offer
        name:
          type: string
          description: Name of the offer
        stock:
          type: string
          description: Stock level
          enum:
          - empty
          - low
          - available
          default: empty
        bandwidth:
          type: number
          description: Bandwidth available in bits/s with the offer
        commercial_range:
          type: string
          description: Commercial range of the offer
        price_per_hour:
          type: object
          description: Price of the offer for the next 60 minutes (a server order
            at 11h32 will be payed until 12h32)
          properties:
            currency_code:
              type: string
            units:
              type: number
            nanos:
              type: number
          x-properties-order:
          - currency_code
          - units
          - nanos
        price_per_month:
          type: object
          description: Price of the offer per months
          properties:
            currency_code:
              type: string
            units:
              type: number
            nanos:
              type: number
          x-properties-order:
          - currency_code
          - units
          - nanos
        disks:
          type: array
          description: Disks specifications of the offer
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.Disk'
        enable:
          type: boolean
          description: True if 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'
      x-properties-order:
      - id
      - name
      - stock
      - bandwidth
      - commercial_range
      - price_per_hour
      - price_per_month
      - disks
      - enable
      - cpus
      - memories
      - quota_name
      - persistent_memories
      - raid_controllers
    scaleway.baremetal.v1.PersistentMemory:
      type: object
      properties:
        capacity:
          type: number
          description: (in bytes)
        type:
          type: string
        frequency:
          type: number
      x-properties-order:
      - capacity
      - type
      - frequency
    scaleway.baremetal.v1.RaidController:
      type: object
      properties:
        model:
          type: string
        raid_level:
          type: array
          items:
            type: string
      x-properties-order:
      - model
      - raid_level
    scaleway.baremetal.v1.Server:
      type: object
      properties:
        id:
          type: string
          description: ID of the server
        organization_id:
          type: string
          description: Organization ID the server is attached to
        project_id:
          type: string
          description: Project ID the server is attached to
        name:
          type: string
          description: Name of the server
        description:
          type: string
          description: Description of the server
        updated_at:
          type: string
          description: Date of last modification of the server
          format: date-time
        created_at:
          type: string
          description: Date of creation of the server
          format: date-time
        status:
          type: string
          description: Status of the server
          enum:
          - unknown
          - delivering
          - ready
          - stopping
          - stopped
          - starting
          - error
          - deleting
          - locked
          - out_of_stock
          default: unknown
        offer_id:
          type: string
          description: Offer ID of the server
        tags:
          type: array
          description: Array of customs tags attached to the server
          items:
            type: string
        ips:
          type: array
          description: Array of IPs attached to the server
          items:
            $ref: '#/components/schemas/scaleway.baremetal.v1.IP'
        domain:
          type: string
          description: Domain of the server
        boot_type:
          type: string
          description: Boot type of the server
          enum:
          - unknown_boot_type
          - normal
          - rescue
          default: unknown_boot_type
        zone:
          type: string
          description: The zone in which is the server
        install:
          type: object
          description: Configuration of installation
          properties:
            os_id:
              type: string
            hostname:
              type: string
            ssh_key_ids:
              type: array
              items:
                type: string
            status:
              $ref: '#/components/schemas/scaleway.baremetal.v1.Server.Install.Status'
          x-properties-order:
          - os_id
          - hostname
          - ssh_key_ids
          - status
        ping_status:
          type: string
          description: Server status of ping
          enum:
          - ping_status_unknown
          - ping_status_up
          - ping_status_down
          default: ping_status_unknown
      x-properties-order:
      - id
      - organization_id
      - project_id
      - name
      - description
      - updated_at
      - created_at
      - status
      - offer_id
      - tags
      - ips
      - domain
      - boot_type
      - zone
      - install
      - ping_status
    scaleway.baremetal.v1.Server.Install.Status:
      type: string
      enum:
      - unknown
      - to_install
      - installing
      - completed
      - error
      default: unknown
    scaleway.baremetal.v1.ServerEvent:
      type: object
      properties:
        id:
          type: string
          description: ID of the server for whom the action will be applied
        action:
          type: string
          description: The action that will be applied to the server
        updated_at:
          type: string
          description: Date of last modification of the action
          format: date-time
        created_at:
          type: string
          description: Date of creation of the action
          format: date-time
      x-properties-order:
      - id
      - action
      - updated_at
      - created_at
    scaleway.std.TimeSeries.Point:
      type: array
      items:
        oneOf:
          - type: string
            format: date-time
          - type: number
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /baremetal/v1/zones/{zone}/offers:
    get:
      tags:
      - Offers
      operationId: ListOffers
      summary: List offers
      description: List all available server offers.
      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-2
      - in: query
        name: page
        description: Page number
        schema:
          type: number
          description: Page number
          default: 1
      - in: query
        name: page_size
        description: Number of offers per page
        schema:
          type: number
          description: Number of offers per page
          default: 20
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListOffersResponse'
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/offers/{offer_id}:
    get:
      tags:
      - Offers
      operationId: GetOffer
      summary: Get offer
      description: Return specific offer for the given 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-2
      - in: path
        name: offer_id
        description: ID of the researched Offer
        required: true
        schema:
          type: string
          description: ID of the researched Offer
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Offer'
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/os:
    get:
      tags:
      - OS
      operationId: ListOS
      summary: List all available OS that can be install on a baremetal server
      description: List all available OS that can be install on a baremetal server.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-2
      - in: query
        name: page
        description: Page number
        schema:
          type: number
          description: Page number
          default: 1
      - in: query
        name: page_size
        description: Number of OS per page
        schema:
          type: number
          description: Number of OS per page
          default: 20
      - in: query
        name: offer_id
        description: Filter OS by offer ID
        schema:
          type: string
          description: Filter OS by offer ID
          nullable: true
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListOSResponse'
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/os/{os_id}:
    get:
      tags:
      - OS
      operationId: GetOS
      summary: Get an OS with a given ID
      description: Return specific OS for the given 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-2
      - in: path
        name: os_id
        description: ID of the OS
        required: true
        schema:
          type: string
          description: ID of the OS
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.OS'
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers:
    get:
      tags:
      - Servers
      operationId: ListServers
      summary: List baremetal servers for organization
      description: List baremetal servers for organization.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-2
      - in: query
        name: page
        description: Page number
        schema:
          type: number
          description: Page number
          default: 1
      - in: query
        name: page_size
        description: Number of server per page
        schema:
          type: number
          description: Number of server per page
          default: 20
      - in: query
        name: order_by
        description: Order of the servers
        schema:
          type: string
          description: Order of the servers
          enum:
          - created_at_asc
          - created_at_desc
          default: created_at_asc
      - in: query
        name: tags
        description: Filter servers by tags
        schema:
          type: array
          description: Filter servers by tags
          items:
            type: string
      - in: query
        name: status
        description: Filter servers by status
        schema:
          type: array
          description: Filter servers by status
          items:
            type: string
      - in: query
        name: name
        description: Filter servers by name
        schema:
          type: string
          description: Filter servers by name
          nullable: true
      - in: query
        name: organization_id
        description: Filter servers by organization ID
        schema:
          type: string
          description: Filter servers by organization ID
          nullable: true
      - in: query
        name: project_id
        description: Filter servers by project ID
        schema:
          type: string
          description: Filter servers by project ID
          nullable: true
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListServersResponse'
      security:
      - scaleway: []
    post:
      tags:
      - Servers
      operationId: CreateServer
      summary: Create a baremetal server
      description: Create a new baremetal server. Once the server is created, you
        probably want to install an 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-2
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                offer_id:
                  type: string
                  description: Offer ID of the new server
                organization_id:
                  type: string
                  description: Organization ID with which the server will be created
                  deprecated: true
                  x-one-of: ProjectIdentifier
                project_id:
                  type: string
                  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 to the server, max 255 characters
                tags:
                  type: array
                  description: Tags to associate to the server
                  items:
                    type: string
                install:
                  $ref: '#/components/schemas/scaleway.baremetal.v1.CreateServerRequest.Install'
              required:
              - offer_id
              - name
              - description
              x-properties-order:
              - offer_id
              - organization_id
              - project_id
              - name
              - description
              - tags
              - install
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers/{server_id}:
    get:
      tags:
      - Servers
      operationId: GetServer
      summary: Get a specific baremetal server
      description: Get the server associated with the given 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-2
      - in: path
        name: server_id
        description: ID of the server
        required: true
        schema:
          type: string
          description: ID of the server
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      security:
      - scaleway: []
    patch:
      tags:
      - Servers
      operationId: UpdateServer
      summary: Update a baremetal server
      description: Update the server associated with the given 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-2
      - in: path
        name: server_id
        description: ID of the server to update
        required: true
        schema:
          type: string
          description: ID of the server to update
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the server (≠hostname), not updated if null
                  nullable: true
                description:
                  type: string
                  description: Description associated to the server, max 255 characters,
                    not updated if null
                  nullable: true
                tags:
                  type: array
                  description: Tags associated to the server, not updated if null
                  nullable: true
                  items:
                    type: string
              x-properties-order:
              - name
              - description
              - tags
      security:
      - scaleway: []
    delete:
      tags:
      - Servers
      operationId: DeleteServer
      summary: Delete a baremetal server
      description: Delete the server associated with the given 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-2
      - in: path
        name: server_id
        description: ID of the server to delete
        required: true
        schema:
          type: string
          description: ID of the server to delete
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers/{server_id}/bmc-access:
    get:
      tags:
      - BMC access
      operationId: GetBMCAccess
      summary: Get BMC (Baseboard Management Controller) access for a given baremetal
        server
      description: Get the BMC (Baseboard Management Controller) access associated
        with the given 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-2
      - in: path
        name: server_id
        description: ID of the server
        required: true
        schema:
          type: string
          description: ID of the server
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.BMCAccess'
      security:
      - scaleway: []
    post:
      tags:
      - BMC access
      operationId: StartBMCAccess
      summary: Start BMC (Baseboard Management Controller) access for a given baremetal
        server
      description: |
        Start BMC (Baseboard Management Controller) access associated with the given ID.
        The BMC (Baseboard Management Controller) access is available one hour after the installation of the server.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          description: The zone you want to target
          enum:
          - fr-par-2
      - in: path
        name: server_id
        description: ID of the server
        required: true
        schema:
          type: string
          description: ID of the server
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.BMCAccess'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ip:
                  type: string
                  description: The IP authorized to connect to the given server (IPv4
                    address)
                  example: 1.2.3.4
              required:
              - ip
              x-properties-order:
              - ip
      security:
      - scaleway: []
    delete:
      tags:
      - BMC access
      operationId: StopBMCAccess
      summary: Stop BMC (Baseboard Management Controller) access for a given baremetal
        server
      description: Stop BMC (Baseboard Management Controller) access associated with
        the given 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-2
      - in: path
        name: server_id
        description: ID of the server
        required: true
        schema:
          type: string
          description: ID of the server
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers/{server_id}/events:
    get:
      tags:
      - Servers
      operationId: ListServerEvents
      summary: List server events
      description: List events associated to the given 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-2
      - in: path
        name: server_id
        description: ID of the server events searched
        required: true
        schema:
          type: string
          description: ID of the server events searched
      - in: query
        name: page
        description: Page number
        schema:
          type: number
          description: Page number
          default: 1
      - in: query
        name: page_size
        description: Number of server events per page
        schema:
          type: number
          description: Number of server events per page
          default: 20
      - in: query
        name: order_by
        description: Order of the server events
        schema:
          type: string
          description: Order of the server events
          enum:
          - created_at_asc
          - created_at_desc
          default: created_at_asc
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.ListServerEventsResponse'
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers/{server_id}/install:
    post:
      tags:
      - Servers
      operationId: InstallServer
      summary: Install a baremetal server
      description: Install an OS on the server associated with the given 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-2
      - in: path
        name: server_id
        description: Server ID to install
        required: true
        schema:
          type: string
          description: Server ID to install
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                os_id:
                  type: string
                  description: ID of the OS to install 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
              required:
              - os_id
              - hostname
              - ssh_key_ids
              x-properties-order:
              - os_id
              - hostname
              - ssh_key_ids
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers/{server_id}/ips/{ip_id}:
    patch:
      tags:
      - Servers
      operationId: UpdateIP
      summary: Update IP
      description: Configure ip associated with the given server ID and ipID. You
        can use this method to set a reverse dns for an IP.
      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-2
      - in: path
        name: server_id
        description: ID of the server
        required: true
        schema:
          type: string
          description: ID of the server
      - in: path
        name: ip_id
        description: ID of the IP to update
        required: true
        schema:
          type: string
          description: ID of the IP to update
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.IP'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reverse:
                  type: string
                  description: New reverse IP to update, not updated if null
                  nullable: true
              x-properties-order:
              - reverse
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers/{server_id}/metrics:
    get:
      tags:
      - Servers
      operationId: GetServerMetrics
      summary: Return server metrics
      description: Give the ping status on the server associated with the given 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-2
      - in: path
        name: server_id
        description: Server ID to get the metrics
        required: true
        schema:
          type: string
          description: Server ID to get the metrics
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.GetServerMetricsResponse'
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers/{server_id}/reboot:
    post:
      tags:
      - Servers Actions
      operationId: RebootServer
      summary: Reboot a baremetal server
      description: Reboot the server associated with the given ID, use boot param
        to reboot in rescue.
      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-2
      - in: path
        name: server_id
        description: ID of the server to reboot
        required: true
        schema:
          type: string
          description: ID of the server to reboot
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                boot_type:
                  type: string
                  description: The type of boot
                  enum:
                  - unknown_boot_type
                  - normal
                  - rescue
                  default: unknown_boot_type
              x-properties-order:
              - boot_type
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers/{server_id}/start:
    post:
      tags:
      - Servers Actions
      operationId: StartServer
      summary: Start a baremetal server
      description: Start the server associated with the given 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-2
      - in: path
        name: server_id
        description: ID of the server to start
        required: true
        schema:
          type: string
          description: ID of the server to start
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                boot_type:
                  type: string
                  description: The type of boot
                  enum:
                  - unknown_boot_type
                  - normal
                  - rescue
                  default: unknown_boot_type
              x-properties-order:
              - boot_type
      security:
      - scaleway: []
  /baremetal/v1/zones/{zone}/servers/{server_id}/stop:
    post:
      tags:
      - Servers Actions
      operationId: StopServer
      summary: Stop a baremetal server
      description: Stop the server associated with the given 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-2
      - in: path
        name: server_id
        description: ID of the server to stop
        required: true
        schema:
          type: string
          description: ID of the server to stop
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.baremetal.v1.Server'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      security:
      - scaleway: []
benjaminch commented 3 years ago

Fixed with new version: https://developers.scaleway.com/static/53eca7755870a063a29d172455c9a5a3/scaleway.baremetal.v1.Api.yml

 spectral lint https://developers.scaleway.com/static/53eca7755870a063a29d172455c9a5a3/scaleway.baremetal.v1.Api.yml

https://developers.scaleway.com/static/53eca7755870a063a29d172455c9a5a3/scaleway.baremetal.v1.Api.yml
 2:6  warning  info-contact  Info object must have "contact" object.  info

✖ 1 problem (0 errors, 1 warning, 0 infos, 0 hints)