openapi: 3.1.0
info:
  title: Quantum as a Service API
  description: |-
    Quantum as a Service (QaaS) allows you access and program on diverse Quantum Processing Units (QPUs).




    ## Quickstart

    <Message type="important">
    Take note of Scaleway's QaaS is primary design to be used from dedicated quantum computing SDKs. See our [quickstart section](https://www.scaleway.com/en/docs/quantum-computing/quickstart/).
    </Message>

    1. Configure your environment variables.
        <Message type="note">
        This is an optional step that seeks to simplify your usage of the APIs
        </Message>

        ```bash
        export ACCESS_KEY="<access-key>"
        export SECRET_KEY="<secret-key>"
        ```
    2. List the available Quantum as a service platforms. A platform is a formal definition of an allocable hardware, QPU or GPU with pre-installed emulator, you can select the one that better fits your use-case from our list.
        ```bash
        curl -X GET \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          -H "Content-Type: application/json" \
          "https://api.scaleway.com/qaas/v1alpha1/platforms"
        ```

        You should get a response like the following:

        <Message type="important">
        Take note of the UUID of your platform of choice, as it will be used in the next step.
        </Message>

        ```json
        {
          "total_count": 17,
          "platforms": [
            {
              "id": "282e9874-1761-499d-b0dc-004d0e334837",
              "version": "0.2",
              "name": "QPU-BELENOS-12PQ",
              "provider_name": "quandela",
              "type": "qpu",
              "technology": "photonic",
              "max_qubit_count": 12,
            },
            {
              "id": "5e52c364-03fd-4bf7-93e2-e1597e28fb83",
              "version": "0.1",
              "name": "QPU-EMERALD-54PQ",
              "provider_name": "iqm",
              "type": " qpu",
              "technology": "supraconductor",
              "max_qubit_count": 54,
            },
            {
              "id": "2pai198s-918b-6bf8-13en-y15wqe7epb88",
              "version": "0.17",
              "name": "EMU-AER-8L40S",
              "provider_name": "aer",
              "type": " simulator",
              "technology": "general-purpose",
              "max_qubit_count": 36,
            }
            [...]
          ]
        }
        ```

    3. Run the following command to create a QPU session. A session is a time interval where a user can execute quantum jobs on a specific platform.

        ```bash
        curl -X POST \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          -H "Content-Type: application/json" \
          -d '{
            "project_id": "3j336ee9-dff0-4732-8c5a-bc4f2031ddd3",
            "platform_id": "2pai198s-918b-6bf8-13en-y15wqe7epb88"
          }'\
          "https://api.scaleway.com/qaas/v1alpha1/sessions"
        ```

        You can edit the request payload according to the information below:

        | Parameter        | Description                                                        |
        | :--------------- | :----------------------------------------------------------------- |
        | `project_id`     | **REQUIRED** The ID of the Project you want to create your Database Instance in. To find your Project ID you can **[list the projects](/api/account#path-projects-list-all-projects-of-an-organization)** or consult the **[Scaleway console](https://console.scaleway.com/project/settings)**. |
        | `platform_id`           | ID of your selected platform. |

        If the operation was successful you will see a response like the following:

        ```json
        {
        "id": "6a134dca-5743-4ba6-9999-b84c295d591c",
        "name": "Justina",
        "platform_id": "5e52c364-03fd-4bf7-93e2-e1597e28fb83",
        "started_at": {
            "seconds": "-62135596800",
            "nanos": 0
        },
        "updated_at": {
            "seconds": "1700063831",
            "nanos": 389384664
        },
        "terminated_at": {
            "seconds": "-62135596800",
            "nanos": 0
        },
        "max_idle_duration": {
            "seconds": "600",
            "nanos": 0
        },
        "max_duration": {
            "seconds": "1800",
            "nanos": 0
        },
        "waiting_job_count": "0",
        "finished_job_count": "0",
        "status": "starting",
        "project_id": "3j336ee9-dff0-4732-8c5a-bc4f2031ddd3",
        "tags": {
            "value": []
        },
        "deduplication_id": "",
        "created_at": {
            "seconds": "1700063831",
            "nanos": 389384664
        }
        }
        ```

        <Message type="important">
        Take note of the UUID of your session, as it will be used in the next step.
        </Message>
    4. Create a job to execute your quantum cirtuit.

        ```bash
        curl -X POST \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          -H "Content-Type: application/json" \
          -d '{
              "circuit": {
              "perceval_circuit": ":PCVL:zip:eJyzCnAO87FydM4sSi7NLLFydfTM9K9wdI7MSg52DsyO9AkNCtWu9DANqMj3cg50hAPP9GwvBM+xEKgWwXPxRFELAAdTHXM="
              },
              "name": "my_job",
              "session_id": "3j336ee9-dff0-4732-8c5a-bc4f2031ddd3"
              }'\
          "https://api.scaleway.com/qaas/v1alpha1/jobs"
        ```

        You can edit the request payload according to the information below:

        | Parameter        | Description                                                        |
        | :--------------- | :----------------------------------------------------------------- |
        | `perceval_circuit` | Your [Perceval](https://perceval.quandela.net/docs/providers.html) circuit |
        | `name`           | The name of your job. |
        | `session_id`           | The UUID of the session created in the previous step. |

        If the operation was successful you will see a response like the following:

        ```json
        {
        "id": "f0febf59-14b8-4759-b342-09ab061691a3",
        "name": "Loremipsumconsequatdo",
        "tags": {
            "value": []
        },
        "session_id": "f49a7157-93e9-4125-bd3c-b864bb93f6bc",
        "created_at": {
            "seconds": "1700064966",
            "nanos": 251006133
        },
        "updated_at": {
            "seconds": "1700064966",
            "nanos": 251006133
        },
        "started_at": {
            "seconds": "-62135596800",
            "nanos": 0
        },
        "status": "waiting",
        "progress_message": {
            "value": ""
        },
        "job_duration": {
            "seconds": "0",
            "nanos": 0
        },
        "result_distribution": {
            "value": ""
        }
        }
        ```
    5. Terminate your session once the job is complete. Make sure you specify the `session_ID` in the endpoint.

        <Message type="note">
        This is an optional step, as all sessions have by default a set timeout of 30 minutes.
        </Message>

        ```bash
        curl -X POST \
          -H "X-Auth-Token: $SCW_SECRET_KEY" \
          -H "Content-Type: application/json" \
          "https://api.scaleway.com/qaas/v1alpha1/sessions/$SESSION_ID/terminate"
        ```

        If the operation was successful you will see a response like the following:

        ```json
        {
        "id": "6a134dca-5743-4ba6-9999-b84c295d591c",
        "name": "Justina",
        "platform_id": "5e52c364-03fd-4bf7-93e2-e1597e28fb83",
        "started_at": {
            "seconds": "1700064968",
            "nanos": 219871003
        },
        "updated_at": {
            "seconds": "1700064975",
            "nanos": 489339876
        },
        "terminated_at": {
            "seconds": "1700064975",
            "nanos": 489339876
        },
        "max_idle_duration": {
            "seconds": "600",
            "nanos": 0
        },
        "max_duration": {
            "seconds": "1800",
            "nanos": 0
        },
        "waiting_job_count": "0",
        "finished_job_count": "0",
        "status": "stopping",
        "project_id": "3j336ee9-dff0-4732-8c5a-bc4f2031ddd3",
        "tags": {
            "value": []
        },
        "deduplication_id": "",
        "created_at": {
            "seconds": "1700063831",
            "nanos": 389384664
        }
        }
        ```

    <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

    ### Regions

    Scaleway Quantum as a Service is currently available globally. Refer to our [product availability documentation page](https://www.scaleway.com/en/docs/account/reference-content/products-availability) for more information.

    ### 0% SLA

    We strive to provide you with the best possible experience on our Quantum as a Service. However, this is an experimental service. This is why we are not able to contractually commit to a level of service, hence an SLA of 0%.
    The guarantees of [Labs offers](https://labs.scaleway.com/en/) are detailed in our special conditions for BETA services.

    ### Client

    The Scaleway Quantum as a Service is available from many different SDK to design and run quantum circuits: [Perceval](https://perceval.quandela.net/), [Qiskit](https://github.com/scaleway/qiskit-scaleway), [Cirq](https://github.com/scaleway/cirq-scaleway), [Pulser](https://github.com/scaleway/pulser-scaleway) and [PennyLane](https://github.com/scaleway/pennylane-scaleway).
  version: v1alpha1
servers:
- url: https://api.scaleway.com
tags:
- name: Platforms
  description: |
    A platform is the formal definition of a QPU, either emulated or real hardware
- name: Sessions
  description: |
    A QPU session is a time interval where you can send and execute quantum jobs on a specific platform
- name: Jobs
  description: |
    A job is your quantum computational model to be is executed on a QPU session
- name: Applications
  description: |
    An application is a pre-defined quantum algorithm to solve specific task
- name: Processes
  description: |
    A process is a started application with specific user inputs on a given platform
- name: Bookings
  description: |
    A booking is a reserved timeframe for a platform where only one user could send its jobs
- name: Models
  description: |
    A model is a quantum computation (circuit, sequence, hamiltonian...) to be executed by job
components:
  schemas:
    google.protobuf.Int32Value:
      type: integer
      format: int32
      nullable: true
    google.protobuf.StringValue:
      type: string
      nullable: true
    scaleway.qaas.v1alpha1.Application:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the application.
        name:
          type: string
          description: Name of the application.
        type:
          type: string
          description: Type of the application.
          enum:
          - unknown_type
          - vqe
          x-enum-descriptions:
            values:
              vqe: Variational Quantum Eigensolver is a type hybrid algorithm to find
                the ground state of a given physical system.
          default: unknown_type
        compatible_platform_ids:
          type: array
          description: List of compatible platform (by IDs) able to run this application.
          items:
            type: string
        input_template:
          type: string
          description: JSON format describing the expected input.
      x-properties-order:
      - id
      - name
      - type
      - compatible_platform_ids
      - input_template
    scaleway.qaas.v1alpha1.Booking:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the booking.
        created_at:
          type: string
          description: Time at which the booking was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        started_at:
          type: string
          description: Time at which the booking starts. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Time at which the booking was updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        finished_at:
          type: string
          description: Time at which the booking finishes. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        status:
          type: string
          description: Status of the booking.
          enum:
          - unknown_status
          - waiting
          - validating
          - validated
          - cancelling
          - cancelled
          - error
          default: unknown_status
        description:
          type: string
          description: Description of the booking slot.
        progress_message:
          type: string
          description: Any progress message of the booking.
        time_zone:
          type: string
          description: Time zone for the booking schedule, in tz database format (e.g.
            'Europe/Paris').
          nullable: true
      x-properties-order:
      - id
      - created_at
      - started_at
      - updated_at
      - finished_at
      - status
      - description
      - progress_message
      - time_zone
    scaleway.qaas.v1alpha1.Job:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the job.
        name:
          type: string
          description: Job name.
        tags:
          type: array
          description: Tags of the job.
          nullable: true
          items:
            type: string
        session_id:
          type: string
          description: Session ID in which the job is executed.
        created_at:
          type: string
          description: Time at which the job was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        started_at:
          type: string
          description: Time at which the job was started. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Time at which the job was updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        status:
          type: string
          description: Job status.
          enum:
          - unknown_status
          - waiting
          - error
          - running
          - completed
          - cancelling
          - cancelled
          default: unknown_status
        progress_message:
          type: string
          description: Last progress message, if the job has started.
          nullable: true
        job_duration:
          type: string
          description: Duration of the job, if the job is finished. (in seconds)
          example: 2.5s
          nullable: true
        result_distribution:
          type: string
          description: Result of the job, if the job is finished.
          nullable: true
        model_id:
          type: string
          description: Computation model ID executed by the job.
          nullable: true
        parameters:
          type: string
          description: Execution parameters for this job.
          nullable: true
      x-properties-order:
      - id
      - name
      - tags
      - session_id
      - created_at
      - started_at
      - updated_at
      - status
      - progress_message
      - job_duration
      - result_distribution
      - model_id
      - parameters
    scaleway.qaas.v1alpha1.JobCircuit:
      type: object
      properties:
        perceval_circuit:
          type: string
          description: Circuit generated by Perceval that should be executed.
          nullable: true
          x-one-of: circuit_serialization
        qiskit_circuit:
          type: string
          description: Circuit generated by Qiskit that should be executed.
          nullable: true
          x-one-of: circuit_serialization
      x-properties-order:
      - perceval_circuit
      - qiskit_circuit
    scaleway.qaas.v1alpha1.JobResult:
      type: object
      properties:
        job_id:
          type: string
          description: ID of the parent job.
        result:
          type: string
          description: Result in JSON format.
          nullable: true
        url:
          type: string
          description: URL to download a large result (optional).
          nullable: true
        created_at:
          type: string
          description: Creation time of the result. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - job_id
      - result
      - url
      - created_at
    scaleway.qaas.v1alpha1.ListApplicationsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of applications.
          format: uint64
        applications:
          type: array
          description: List of applications.
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Application'
      x-properties-order:
      - total_count
      - applications
    scaleway.qaas.v1alpha1.ListBookingsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of bookings.
          format: uint64
        bookings:
          type: array
          description: List of bookings.
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Booking'
      x-properties-order:
      - total_count
      - bookings
    scaleway.qaas.v1alpha1.ListJobResultsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of results.
          format: uint64
        job_results:
          type: array
          description: List of results.
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.JobResult'
      x-properties-order:
      - total_count
      - job_results
    scaleway.qaas.v1alpha1.ListJobsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of jobs.
          format: uint64
        jobs:
          type: array
          description: List of jobs.
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Job'
      x-properties-order:
      - total_count
      - jobs
    scaleway.qaas.v1alpha1.ListModelsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of models.
          format: uint64
        models:
          type: array
          description: List of models.
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Model'
      x-properties-order:
      - total_count
      - models
    scaleway.qaas.v1alpha1.ListPlatformsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of platforms.
          format: uint64
        platforms:
          type: array
          description: List of platforms.
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Platform'
      x-properties-order:
      - total_count
      - platforms
    scaleway.qaas.v1alpha1.ListProcessResultsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of results.
          format: uint64
        process_results:
          type: array
          description: List of results.
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ProcessResult'
      x-properties-order:
      - total_count
      - process_results
    scaleway.qaas.v1alpha1.ListProcessesResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of processes.
          format: uint64
        processes:
          type: array
          description: List of processes.
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Process'
      x-properties-order:
      - total_count
      - processes
    scaleway.qaas.v1alpha1.ListSessionACLsRequest.OrderBy:
      type: string
      enum:
      - access_asc
      - access_desc
      default: access_asc
    scaleway.qaas.v1alpha1.ListSessionACLsResponse:
      type: object
      properties:
        total_count:
          type: integer
          format: uint64
        acls:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Session.Access'
      x-properties-order:
      - total_count
      - acls
    scaleway.qaas.v1alpha1.ListSessionsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of sessions.
          format: uint64
        sessions:
          type: array
          description: List of sessions.
          items:
            $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Session'
      x-properties-order:
      - total_count
      - sessions
    scaleway.qaas.v1alpha1.Model:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the model.
        created_at:
          type: string
          description: Time at which the model was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        url:
          type: string
          description: Storage URL of the model.
          nullable: true
        project_id:
          type: string
          description: Project ID in which the model has been created.
      x-properties-order:
      - id
      - created_at
      - url
      - project_id
    scaleway.qaas.v1alpha1.Platform:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the platform.
        version:
          type: string
          description: Version of the platform.
        name:
          type: string
          description: Name of the platform.
        provider_name:
          type: string
          description: Name of the technological provider of the platform in lowercase
            (quandela, pasqal...).
        backend_name:
          type: string
          description: Name of the running emulation backend or QPU model of the platform
            in lowercase (mosaiq, qsim, aer...).
        type:
          type: string
          description: Type of the platform (emulator or qpu).
          enum:
          - unknown_type
          - simulator
          - qpu
          default: unknown_type
        technology:
          type: string
          description: Quantum technology used by the platform (trapped-ion, photonic,
            superconducting qubits...).
          enum:
          - unknown_technology
          - photonic
          - general_purpose
          - trapped_ion
          - superconducting
          - neutral_atom
          default: unknown_technology
        max_qubit_count:
          type: integer
          description: Maximum number of qubits supported by the platform (estimated
            for emulator).
          format: uint32
        max_shot_count:
          type: integer
          description: Maximum number of shots during a circuit execution.
          format: uint32
        max_circuit_count:
          type: integer
          description: Maximum number of circuit that can be executed in one call.
          format: uint32
        availability:
          type: string
          description: Availability of the platform.
          enum:
          - unknown_availability
          - available
          - shortage
          - scarce
          - maintenance
          default: unknown_availability
        metadata:
          type: string
          description: Metadata provided by the platform.
        price_per_hour:
          type: object
          description: Price to be paid per hour (excluding free tiers).
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        price_per_shot:
          type: object
          description: Price to be paid per shot (excluding free tiers).
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        price_per_circuit:
          type: object
          description: Price to be paid per circuit setup before its execution (excluding
            free tiers).
          properties:
            currency_code:
              type: string
            units:
              type: integer
              format: int64
            nanos:
              type: integer
              format: int32
          x-properties-order:
          - currency_code
          - units
          - nanos
        hardware:
          type: object
          description: Specifications of the underlying hardware.
          properties:
            name:
              type: string
              description: Product name of the hardware.
            vcpus:
              type: integer
              description: Number of vCPUs available.
              format: uint32
            gpus:
              type: integer
              description: Number of GPUs available (0 if no GPU).
              format: uint32
            gpus_network:
              type: string
              description: Network topology of GPUs (PCIe, NVLink...).
            ram:
              type: integer
              description: Amount of RAM available in byte.
              format: uint64
            vram:
              type: integer
              description: Amount of VRAM available in byte (0 if no GPU).
              format: uint64
          x-properties-order:
          - name
          - vcpus
          - gpus
          - gpus_network
          - ram
          - vram
        booking_requirement:
          type: object
          description: Booking constraints to fit if the platform is bookable.
          properties:
            min_duration:
              type: string
              description: Minimal duration of any booking based on this platform.
                (in seconds)
              example: 2.5s
              nullable: true
            max_duration:
              type: string
              description: Maximal duration of any bookings based on this platform.
                (in seconds)
              example: 2.5s
              nullable: true
            max_cancellation_duration:
              type: string
              description: Allowed time to cancel a booking attached to this platform
                before the beginning of the session. (in seconds)
              example: 2.5s
              nullable: true
            max_planification_duration:
              type: string
              description: Allowed planification time from now where the platform
                can be booked in the future. (in seconds)
              example: 2.5s
              nullable: true
            min_planification_duration:
              type: string
              description: Minimum planification time before a platform can be booked.
                (in seconds)
              example: 2.5s
              nullable: true
            max_booking_per_week:
              type: integer
              description: Maximum amount of booking allowed for one organization
                per week.
              format: uint32
            max_booking_per_day:
              type: integer
              description: Maximum amount of booking allowed for one organization
                per day.
              format: uint32
          x-properties-order:
          - min_duration
          - max_duration
          - max_cancellation_duration
          - max_planification_duration
          - min_planification_duration
          - max_booking_per_week
          - max_booking_per_day
        description:
          type: string
          description: English description of the platform.
        documentation_url:
          type: string
          description: Documentation link to external documentation to learn more
            on this platform.
        is_bookable:
          type: boolean
          description: Specify if the platform is bookable.
      x-properties-order:
      - id
      - version
      - name
      - provider_name
      - backend_name
      - type
      - technology
      - max_qubit_count
      - max_shot_count
      - max_circuit_count
      - availability
      - metadata
      - price_per_hour
      - price_per_shot
      - price_per_circuit
      - hardware
      - booking_requirement
      - description
      - documentation_url
      - is_bookable
    scaleway.qaas.v1alpha1.Process:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the process.
        name:
          type: string
          description: Name of the process.
        application_id:
          type: string
          description: Application ID for which the process has been created.
          nullable: true
        platform_id:
          type: string
          description: Platform ID for which the process has been created.
          nullable: true
        attached_session_ids:
          type: array
          description: List of sessions generated by the process.
          items:
            type: string
        created_at:
          type: string
          description: Time at which the process was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        started_at:
          type: string
          description: Time at which the process started. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: Time at which the process was updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        finished_at:
          type: string
          description: Time at which the process was finished. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        status:
          type: string
          description: Status of the process.
          enum:
          - unknown_status
          - error
          - starting
          - running
          - completed
          - cancelling
          - cancelled
          default: unknown_status
        project_id:
          type: string
          description: Project ID in which the process has been created. (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        tags:
          type: array
          description: Tags of the process.
          items:
            type: string
        progress:
          type: integer
          description: Progress of the process, from 0 to 1.
          format: uint32
          nullable: true
        progress_message:
          type: string
          description: Any progress of the process.
          nullable: true
        input:
          type: string
          description: Input payload of the process as JSON string.
          nullable: true
      x-properties-order:
      - id
      - name
      - application_id
      - platform_id
      - attached_session_ids
      - created_at
      - started_at
      - updated_at
      - finished_at
      - status
      - project_id
      - tags
      - progress
      - progress_message
      - input
    scaleway.qaas.v1alpha1.ProcessResult:
      type: object
      properties:
        process_id:
          type: string
          description: ID of the parent process.
        result:
          type: string
          description: Result in JSON format.
        created_at:
          type: string
          description: Creation time of the result. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
      x-properties-order:
      - process_id
      - result
      - created_at
    scaleway.qaas.v1alpha1.Session:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the session.
        name:
          type: string
          description: Name of the session.
        platform_id:
          type: string
          description: Platform ID for which the session has been created.
        created_at:
          type: string
          description: The time at which the session was created. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        started_at:
          type: string
          description: The time at which the session started. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        updated_at:
          type: string
          description: The time at which the session was updated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        terminated_at:
          type: string
          description: The time at which the session was terminated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
          nullable: true
        max_idle_duration:
          type: string
          description: Maximum idle time before the session ends. (in seconds)
          example: 2.5s
          nullable: true
        max_duration:
          type: string
          description: Maximum duration before the session ends. (in seconds)
          example: 2.5s
          nullable: true
        waiting_job_count:
          type: integer
          description: Number of waiting jobs linked to the session.
          format: uint64
        finished_job_count:
          type: integer
          description: Number of finished jobs linked to the session.
          format: uint64
        status:
          type: string
          description: Status of the session.
          enum:
          - unknown_status
          - running
          - stopped
          - starting
          - stopping
          default: unknown_status
        project_id:
          type: string
          description: Project ID in which the session has been created.
        tags:
          type: array
          description: Tags of the session.
          nullable: true
          items:
            type: string
        deduplication_id:
          type: string
          description: Deduplication ID of the session.
        origin_type:
          type: string
          description: Resource type that creates the session.
          enum:
          - unknown_origin_type
          - customer
          - process
          default: unknown_origin_type
        origin_id:
          type: string
          description: Unique ID of the session's origin resource (if exists).
          nullable: true
        progress_message:
          type: string
          description: Any progress of the session.
          nullable: true
        booking_id:
          type: string
          description: An optional booking unique ID of an attached booking.
          nullable: true
        model_id:
          type: string
          description: Default computation model ID to be executed by job assigned
            to this session.
          nullable: true
        parameters:
          type: string
          description: Platform configuration parameters applied to this session.
          nullable: true
      x-properties-order:
      - id
      - name
      - platform_id
      - created_at
      - started_at
      - updated_at
      - terminated_at
      - max_idle_duration
      - max_duration
      - waiting_job_count
      - finished_job_count
      - status
      - project_id
      - tags
      - deduplication_id
      - origin_type
      - origin_id
      - progress_message
      - booking_id
      - model_id
      - parameters
    scaleway.qaas.v1alpha1.Session.Access:
      type: string
      enum:
      - unknown_access
      - full
      - read_session
      - read_write_session
      - read_job_result
      - read_job_circuit
      - read_job
      - read_write_job
      default: unknown_access
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /qaas/v1alpha1/applications:
    get:
      tags:
      - Applications
      operationId: ListApplications
      summary: List all available applications
      description: Retrieve information about all applications.
      parameters:
      - in: query
        name: name
        description: List applications with this name.
        schema:
          type: string
      - in: query
        name: application_type
        description: List applications with this type.
        schema:
          type: string
          enum:
          - unknown_type
          - vqe
          x-enum-descriptions:
            values:
              vqe: Variational Quantum Eigensolver is a type hybrid algorithm to find
                the ground state of a given physical system.
          default: unknown_type
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of applications a to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order of the returned applications.
        schema:
          type: string
          enum:
          - name_asc
          - name_desc
          - type_asc
          - type_desc
          default: name_asc
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListApplicationsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/applications"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/applications" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/applications/{application_id}:
    get:
      tags:
      - Applications
      operationId: GetApplication
      summary: Get application information
      description: Retrieve information about the provided **application ID**, such
        as name, type and compatible platforms.
      parameters:
      - in: path
        name: application_id
        description: Unique ID of the application.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Application'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/applications/{application_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/applications/{application_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/bookings:
    get:
      tags:
      - Bookings
      operationId: ListBookings
      summary: List all bookings according the filter
      description: Retrieve information about all bookings of the provided **project
        ID** or ** platform ID**.
      parameters:
      - in: query
        name: project_id
        description: List bookings belonging to this project ID. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: platform_id
        description: List bookings attached to this platform ID.
        schema:
          type: string
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of results to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order of the returned results.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          - started_at_desc
          - started_at_asc
          default: created_at_desc
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListBookingsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/bookings"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/bookings" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/bookings/{booking_id}:
    get:
      tags:
      - Bookings
      operationId: GetBooking
      summary: Get booking information
      description: Retrieve information about the provided **booking ID**, such as
        description, status and progress message.
      parameters:
      - in: path
        name: booking_id
        description: Unique ID of the booking.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Booking'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/bookings/{booking_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/bookings/{booking_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Bookings
      operationId: UpdateBooking
      summary: Update booking information
      description: Update booking information of the provided **booking ID**.
      parameters:
      - in: path
        name: booking_id
        description: Unique ID of the booking.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Booking'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Description of the booking slot.
                  nullable: true
              x-properties-order:
              - description
      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/qaas/v1alpha1/bookings/{booking_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/qaas/v1alpha1/bookings/{booking_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/jobs:
    get:
      tags:
      - Jobs
      operationId: ListJobs
      summary: List all jobs within a project or session
      description: Retrieve information about all jobs within a given session.
      parameters:
      - in: query
        name: tags
        description: List jobs with these tags.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of jobs to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order of the returned jobs.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          - status_asc
          - status_desc
          - platform_name_asc
          - platform_name_desc
          - name_asc
          - name_desc
          - session_name_asc
          - session_name_desc
          default: created_at_desc
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListJobsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/jobs"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/jobs" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Jobs
      operationId: CreateJob
      summary: Create a job
      description: Create a job to be executed inside a QPU session.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Job'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the job.
                tags:
                  type: array
                  description: Tags of the job.
                  nullable: true
                  items:
                    type: string
                session_id:
                  type: string
                  description: Session in which the job is executed.
                circuit:
                  type: object
                  description: Quantum circuit that should be executed.
                  properties:
                    perceval_circuit:
                      type: string
                      description: Circuit generated by Perceval that should be executed.
                      nullable: true
                      x-one-of: circuit_serialization
                    qiskit_circuit:
                      type: string
                      description: Circuit generated by Qiskit that should be executed.
                      nullable: true
                      x-one-of: circuit_serialization
                  x-properties-order:
                  - perceval_circuit
                  - qiskit_circuit
                max_duration:
                  type: string
                  description: Maximum duration of the job. (in seconds)
                  example: 2.5s
                  nullable: true
                model_id:
                  type: string
                  description: Computation model ID to be executed by the job.
                  nullable: true
                parameters:
                  type: string
                  description: Execution parameters for this job.
                  nullable: true
              required:
              - name
              - session_id
              - circuit
              x-properties-order:
              - name
              - tags
              - session_id
              - circuit
              - max_duration
              - model_id
              - parameters
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "circuit": {
                  "perceval_circuit": "string",
                  "qiskit_circuit": "string"
              },
              "name": "string",
              "session_id": "string"
            }' \
            "https://api.scaleway.com/qaas/v1alpha1/jobs"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/qaas/v1alpha1/jobs" \
            X-Auth-Token:$SCW_SECRET_KEY \
            circuit:='{
              "perceval_circuit": "string",
              "qiskit_circuit": "string"
            }' \
            name="string" \
            session_id="string"
  /qaas/v1alpha1/jobs/{job_id}:
    get:
      tags:
      - Jobs
      operationId: GetJob
      summary: Get job information
      description: Retrieve information about the provided **job ID**, mainly used
        to get the current status.
      parameters:
      - in: path
        name: job_id
        description: Unique ID of the job you want to get.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Job'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Jobs
      operationId: UpdateJob
      summary: Update job information
      description: Update job information about the provided **job ID**.
      parameters:
      - in: path
        name: job_id
        description: Unique ID of the job.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Job'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the job.
                  nullable: true
                tags:
                  type: array
                  description: Tags of the job.
                  nullable: true
                  items:
                    type: string
              x-properties-order:
              - name
              - tags
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Jobs
      operationId: DeleteJob
      summary: Delete a job
      description: Delete the job corresponding to the provided **job ID**.
      parameters:
      - in: path
        name: job_id
        description: Unique ID of the job.
        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/qaas/v1alpha1/jobs/{job_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/jobs/{job_id}/cancel:
    post:
      tags:
      - Jobs
      operationId: CancelJob
      summary: Cancel a job
      description: Cancel the job corresponding to the provided **job ID**.
      parameters:
      - in: path
        name: job_id
        description: Unique ID of the job.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Job'
      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/qaas/v1alpha1/jobs/{job_id}/cancel"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}/cancel" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/jobs/{job_id}/circuit:
    get:
      tags:
      - Jobs
      operationId: GetJobCircuit
      summary: Get a job circuit
      description: Retrieve the circuit of the provided **job ID**.
      parameters:
      - in: path
        name: job_id
        description: Unique ID of the job.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.JobCircuit'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}/circuit"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}/circuit" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/jobs/{job_id}/results:
    get:
      tags:
      - Jobs
      operationId: ListJobResults
      summary: List all results of a job
      description: Retrieve all intermediate and final results of a job.
      parameters:
      - in: path
        name: job_id
        description: ID of the job.
        required: true
        schema:
          type: string
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of results to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order of the returned results.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          default: created_at_desc
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListJobResultsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}/results"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/jobs/{job_id}/results" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/models:
    get:
      tags:
      - Models
      operationId: ListModels
      summary: List all models attached to the **project ID**
      description: Retrieve information about all models of the provided **project
        ID**.
      parameters:
      - in: query
        name: project_id
        description: List models belonging to this project ID.
        required: true
        schema:
          type: string
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of results to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order of the returned results.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          default: created_at_desc
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListModelsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/models?project_id=string"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/models" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==string
    post:
      tags:
      - Models
      operationId: CreateModel
      summary: Create a new model
      description: Create and register a new model that can be executed through next
        jobs. A model can also be assigned to a Session.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Model'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: Project ID to attach this model.
                payload:
                  type: string
                  description: The serialized model data.
                  nullable: true
              x-properties-order:
              - project_id
              - payload
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"project_id":"string"}' \
            "https://api.scaleway.com/qaas/v1alpha1/models"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/qaas/v1alpha1/models" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id="string"
  /qaas/v1alpha1/models/{model_id}:
    get:
      tags:
      - Models
      operationId: GetModel
      summary: Get model information
      description: Retrieve information about of the provided **model ID**.
      parameters:
      - in: path
        name: model_id
        description: Unique ID of the model.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Model'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/models/{model_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/models/{model_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/platforms:
    get:
      tags:
      - Platforms
      operationId: ListPlatforms
      summary: List all available platforms
      description: Retrieve information about all platforms.
      parameters:
      - in: query
        name: provider_name
        description: List platforms with this provider name.
        schema:
          type: string
      - in: query
        name: backend_name
        description: List platforms with this backend name.
        schema:
          type: string
      - in: query
        name: name
        description: List platforms with this name.
        schema:
          type: string
      - in: query
        name: platform_type
        description: List platforms with this type.
        schema:
          type: string
          enum:
          - unknown_type
          - simulator
          - qpu
          default: unknown_type
      - in: query
        name: platform_technology
        description: List platforms with this technology.
        schema:
          type: string
          enum:
          - unknown_technology
          - photonic
          - general_purpose
          - trapped_ion
          - superconducting
          - neutral_atom
          default: unknown_technology
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of platforms to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order of the returned platforms.
        schema:
          type: string
          enum:
          - name_asc
          - name_desc
          - provider_name_asc
          - provider_name_desc
          - type_asc
          - type_desc
          - technology_asc
          - technology_desc
          - backend_name_asc
          - backend_name_desc
          default: name_asc
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListPlatformsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/platforms"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/platforms" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/platforms/{platform_id}:
    get:
      tags:
      - Platforms
      operationId: GetPlatform
      summary: Get platform information
      description: Retrieve information about the provided **platform ID**, such as
        provider name, technology, and type.
      parameters:
      - in: path
        name: platform_id
        description: Unique ID of the platform.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Platform'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/platforms/{platform_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/platforms/{platform_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/processes:
    get:
      tags:
      - Processes
      operationId: ListProcesses
      summary: List all processes
      description: Retrieve information about all processes.
      parameters:
      - in: query
        name: application_id
        description: List processes that have been created for this application.
        schema:
          type: string
      - in: query
        name: tags
        description: List processes with these tags.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of processes to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order of the returned processes.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          - name_asc
          - name_desc
          - started_at_asc
          - started_at_desc
          - status_asc
          - status_desc
          default: created_at_desc
      - in: query
        name: project_id
        description: List processes belonging to this project ID. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListProcessesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/processes?project_id=6170692e-7363-616c-6577-61792e636f6d"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/processes" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==6170692e-7363-616c-6577-61792e636f6d
    post:
      tags:
      - Processes
      operationId: CreateProcess
      summary: Create a process
      description: Create a new process for the specified application on a specified
        platform.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Process'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: ID of the project in which the process was created.
                    (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                platform_id:
                  type: string
                  description: ID of the platform for which the process was created.
                  nullable: true
                application_id:
                  type: string
                  description: ID of the application for which the process was created.
                  nullable: true
                name:
                  type: string
                  description: Name of the process.
                input:
                  type: string
                  description: Process parameters in JSON format.
                  nullable: true
                tags:
                  type: array
                  description: Tags of the process.
                  items:
                    type: string
              required:
              - project_id
              - platform_id
              - application_id
              x-properties-order:
              - project_id
              - platform_id
              - application_id
              - name
              - input
              - tags
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "application_id": "string",
              "name": "string",
              "platform_id": "string",
              "project_id": "6170692e-7363-616c-6577-61792e636f6d"
            }' \
            "https://api.scaleway.com/qaas/v1alpha1/processes"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/qaas/v1alpha1/processes" \
            X-Auth-Token:$SCW_SECRET_KEY \
            application_id="string" \
            name="string" \
            platform_id="string" \
            project_id="6170692e-7363-616c-6577-61792e636f6d"
  /qaas/v1alpha1/processes/{process_id}:
    get:
      tags:
      - Processes
      operationId: GetProcess
      summary: Get process information
      description: Retrieve information about the provided **process ID**, such as
        name, status and progress.
      parameters:
      - in: path
        name: process_id
        description: Unique ID of the process.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Process'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/processes/{process_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/processes/{process_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Processes
      operationId: UpdateProcess
      summary: Update process information
      description: Update process information of the provided **process ID**.
      parameters:
      - in: path
        name: process_id
        description: Unique ID of the process.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Process'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the process.
                  nullable: true
                tags:
                  type: array
                  description: Tags of the process.
                  nullable: true
                  items:
                    type: string
              x-properties-order:
              - name
              - tags
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/qaas/v1alpha1/processes/{process_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/qaas/v1alpha1/processes/{process_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Processes
      operationId: DeleteProcess
      summary: Delete an existing process
      description: Delete a process by its unique ID and delete all its data.
      parameters:
      - in: path
        name: process_id
        description: Unique ID of the process.
        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/qaas/v1alpha1/processes/{process_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/qaas/v1alpha1/processes/{process_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/processes/{process_id}/cancel:
    post:
      tags:
      - Processes
      operationId: CancelProcess
      summary: Cancel a running process
      description: Cancel a process by its unique ID. Intermediate results are still
        available.
      parameters:
      - in: path
        name: process_id
        description: Unique ID of the process.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Process'
      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/qaas/v1alpha1/processes/{process_id}/cancel"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/qaas/v1alpha1/processes/{process_id}/cancel" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/processes/{process_id}/results:
    get:
      tags:
      - Processes
      operationId: ListProcessResults
      summary: List all results of a process
      description: Retrieve all intermediate and final result of a process.
      parameters:
      - in: path
        name: process_id
        description: ID of the process.
        required: true
        schema:
          type: string
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of results to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order of the returned results.
        schema:
          type: string
          enum:
          - created_at_desc
          - created_at_asc
          default: created_at_desc
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListProcessResultsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/processes/{process_id}/results"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/processes/{process_id}/results" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/sessions:
    get:
      tags:
      - Sessions
      operationId: ListSessions
      summary: List all sessions
      description: Retrieve information about all QPU sessions.
      parameters:
      - in: query
        name: platform_id
        description: List sessions that have been created for this platform.
        schema:
          type: string
      - in: query
        name: tags
        description: List sessions with these tags.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: page
        description: Page number.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of sessions to return per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        description: Sort order of the returned sessions.
        schema:
          type: string
          enum:
          - name_asc
          - name_desc
          - started_at_asc
          - started_at_desc
          - status_asc
          - status_desc
          - created_at_desc
          - created_at_asc
          default: name_asc
      - in: query
        name: project_id
        description: List sessions belonging to this project ID. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListSessionsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/sessions?project_id=6170692e-7363-616c-6577-61792e636f6d"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/sessions" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==6170692e-7363-616c-6577-61792e636f6d
    post:
      tags:
      - Sessions
      operationId: CreateSession
      summary: Create a session
      description: Create a new QPU session for the specified platform. Once ready,
        jobs can be sent to this session.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Session'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: ID of the Project in which the session was created.
                    (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                platform_id:
                  type: string
                  description: ID of the Platform for which the session was created.
                name:
                  type: string
                  description: Name of the session.
                  nullable: true
                max_idle_duration:
                  type: string
                  description: Maximum idle duration before the session ends. (in
                    seconds)
                  example: 2.5s
                  nullable: true
                max_duration:
                  type: string
                  description: Maximum duration before the session ends. (in seconds)
                  example: 2.5s
                  nullable: true
                tags:
                  type: array
                  description: Tags of the session.
                  nullable: true
                  items:
                    type: string
                deduplication_id:
                  type: string
                  description: Deduplication ID of the session.
                  nullable: true
                booking_demand:
                  type: object
                  description: A booking demand to schedule the session, only applicable
                    if the platform is bookable.
                  properties:
                    started_at:
                      type: string
                      description: (RFC 3339 format)
                      format: date-time
                      example: "2022-03-22T12:34:56.123456Z"
                      nullable: true
                    finished_at:
                      type: string
                      description: (RFC 3339 format)
                      format: date-time
                      example: "2022-03-22T12:34:56.123456Z"
                      nullable: true
                    description:
                      $ref: '#/components/schemas/google.protobuf.StringValue'
                    time_zone:
                      $ref: '#/components/schemas/google.protobuf.StringValue'
                  x-properties-order:
                  - started_at
                  - finished_at
                  - description
                  - time_zone
                model_id:
                  type: string
                  description: Default computation model ID to be executed by job
                    assigned to this session.
                  nullable: true
                parameters:
                  type: string
                  description: Optional platform configuration parameters applied
                    to this session.
                  nullable: true
              required:
              - project_id
              - platform_id
              x-properties-order:
              - project_id
              - platform_id
              - name
              - max_idle_duration
              - max_duration
              - tags
              - deduplication_id
              - booking_demand
              - model_id
              - parameters
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"platform_id":"string","project_id":"6170692e-7363-616c-6577-61792e636f6d"}' \
            "https://api.scaleway.com/qaas/v1alpha1/sessions"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/qaas/v1alpha1/sessions" \
            X-Auth-Token:$SCW_SECRET_KEY \
            platform_id="string" \
            project_id="6170692e-7363-616c-6577-61792e636f6d"
  /qaas/v1alpha1/sessions/{session_id}:
    get:
      tags:
      - Sessions
      operationId: GetSession
      summary: Get session information
      description: Retrieve information about the provided **session ID**, such as
        name and status.
      parameters:
      - in: path
        name: session_id
        description: Unique ID of the session.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Session'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/sessions/{session_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/sessions/{session_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Sessions
      operationId: UpdateSession
      summary: Update session information
      description: Update session information of the provided **session ID**.
      parameters:
      - in: path
        name: session_id
        description: Unique ID of the session.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Session'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the session.
                  nullable: true
                max_idle_duration:
                  type: string
                  description: Maximum idle duration before the session ends. (in
                    seconds)
                  example: 2.5s
                  nullable: true
                max_duration:
                  type: string
                  description: Maximum time before the session ends. (in seconds)
                  example: 2.5s
                  nullable: true
                tags:
                  type: array
                  description: Tags of the session.
                  nullable: true
                  items:
                    type: string
              x-properties-order:
              - name
              - max_idle_duration
              - max_duration
              - tags
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/qaas/v1alpha1/sessions/{session_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/qaas/v1alpha1/sessions/{session_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Sessions
      operationId: DeleteSession
      summary: Delete an existing session
      description: Delete a session by its unique ID and delete all its attached jobs
        and bookings.
      parameters:
      - in: path
        name: session_id
        description: Unique ID of the session.
        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/qaas/v1alpha1/sessions/{session_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/qaas/v1alpha1/sessions/{session_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/sessions/{session_id}/acls:
    get:
      operationId: ListSessionACLs
      parameters:
      - in: path
        name: session_id
        required: true
        schema:
          type: string
      - in: query
        name: page
        schema:
          $ref: '#/components/schemas/google.protobuf.Int32Value'
      - in: query
        name: page_size
        schema:
          type: integer
          format: uint32
      - in: query
        name: order_by
        schema:
          $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListSessionACLsRequest.OrderBy'
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.ListSessionACLsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/qaas/v1alpha1/sessions/{session_id}/acls"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/qaas/v1alpha1/sessions/{session_id}/acls" \
            X-Auth-Token:$SCW_SECRET_KEY
  /qaas/v1alpha1/sessions/{session_id}/terminate:
    post:
      tags:
      - Sessions
      operationId: TerminateSession
      summary: Terminate an existing session
      description: Terminate a session by its unique ID and cancel all its attached
        jobs and bookings.
      parameters:
      - in: path
        name: session_id
        description: Unique ID of the session.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.qaas.v1alpha1.Session'
      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/qaas/v1alpha1/sessions/{session_id}/terminate"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/qaas/v1alpha1/sessions/{session_id}/terminate" \
            X-Auth-Token:$SCW_SECRET_KEY
