openapi: 3.1.0
info:
  contact:
    email: support@numspot.eu
    name: Numspot
    url: 'https://numspot.com/contact/'
  description: Numspot Public API
  license:
    name: BSD 3 Clause
    url: 'https://opensource.org/licenses/BSD-3-Clause'
  termsOfService: 'https://numspot.com/'
  title: Numspot Public API
  version: european-20250825
servers:
  - url: 'https://api.{region}.numspot.com'
    variables:
      region:
        default: eu-west-2
        description: Region
        enum:
          - eu-west-2
          - cloudgouv-eu-west-1
paths:
  '/compute/spaces/{spaceId}/bulk/loadBalancersTags':
    delete:
      operationId: DeleteLoadBalancerTags
      summary: Delete Load Balancer Tag(s)
      description: Deletes one or more tags from the specified load balancers.
      requestBody:
        $ref: '#/components/requestBodies/DeleteLoadBalancerTagsRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    patch:
      operationId: CreateLoadBalancerTags
      summary: Create Load Balancer Tag(s)
      description: |-
        Adds one or more tags to the specified load balancers.<br />
        If a tag with the same key already exists for the load balancer, its value will be replaced.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateLoadBalancerTagsRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/bulk/tags':
    delete:
      operationId: DeleteTags
      summary: Delete Tag(s)
      description: Deletes one or more tags from the specified resources.
      requestBody:
        $ref: '#/components/requestBodies/DeleteTagsRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    patch:
      operationId: CreateTags
      summary: Create Tag(s)
      description: |-
        Adds one or more tags to the specified resources.<br />
        If a tag with the same key already exists, its value is replaced.<br />
        This tagging functionality applies to following resources identifiable by their IDs:<br /><br />

        * Virtual machines (VMs) (i-xxxxxxxx)<br />
        * Images (ami-xxxxxxxx)<br />
        * Volumes (vol-xxxxxxxx)<br />
        * Snapshots (snap-xxxxxxxx)<br />
        * Public IPs (eipalloc-xxxxxxxx)<br />
        * Security groups (sg-xxxxxxxx)<br />
        * Route tables (rtb-xxxxxxxx)<br />
        * Network interface cards (NIC) (eni-xxxxxxxx)<br />
        * Vpcs (vpc-xxxxxxxx)<br />
        * Subnets (subnet-xxxxxxxx)<br />
        * VPC endpoints (vpce-xxxxxxxx)<br />
        * NAT Gateways (nat-xxxxxxxx)<br />
        * Internet Gateways (igw-xxxxxxxx)<br />
        * DHCP options (dopt-xxxxxxxx)<br />
        * Snapshot export tasks (snap-export-xxxxxxxx)
      requestBody:
        $ref: '#/components/requestBodies/CreateTagsRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/dhcpOptions':
    get:
      operationId: ReadDhcpOptions
      summary: List DHCP option(s)
      description: Lists your DHCP Options.
      parameters:
        - name: default
          in: query
          description: 'If true, lists all default DHCP options set. If false, lists all non-default DHCP options set.'
          schema:
            type: boolean
        - name: domainNameServers
          in: query
          description: The IPs of the domain name servers used for the DHCP options sets.
          schema:
            type: array
            items:
              type: string
        - name: domainNames
          in: query
          description: The domain names used for the DHCP options sets.
          schema:
            type: array
            items:
              type: string
        - name: logServers
          in: query
          description: The IPs of the log servers used for the DHCP options sets.
          schema:
            type: array
            items:
              type: string
        - name: ntpServers
          in: query
          description: The IPs of the Network Time Protocol (NTP) servers used for the DHCP options sets.
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the DHCP options sets.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the DHCP options sets.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the DHCP options sets, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: ids
          in: query
          description: The IDs of the DHCP options sets.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadDhcpOptions200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateDhcpOptions
      summary: Create DHCP options
      description: 'Creates a set of DHCP options, which you can then associate with a VPC using the [UpdateVpc](#updatenet) method.<br /><br />'
      requestBody:
        $ref: '#/components/requestBodies/CreateDhcpOptionsRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateDhcpOptions201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/dhcpOptions/{id}':
    delete:
      operationId: DeleteDhcpOptions
      summary: Delete DHCP options
      description: |-
        Deletes a specified DHCP options set.<br />
        Before deleting a DHCP options set, you must disassociate it from any VPCs it is associated with. To do this, you need to associate each VPC with a new set of DHCP options, or use the default set if you do not wish to associate any DHCP options with the VPC.<br /><br />

        [IMPORTANT]<br />
        You cannot delete the default set.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the DHCP options set you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadDhcpOptionsById
      summary: Get information about DHCP options
      description: Retrieves information about the DHCP Option whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadDhcpOptions
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadDhcpOptionsById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/flexibleGpus':
    get:
      operationId: ReadFlexibleGpus
      summary: List Flexible GPU(s)
      description: Lists your flexible GPUs (fGPUs).
      parameters:
        - name: deleteOnVmDeletion
          in: query
          description: Indicates whether the fGPU is deleted when terminating the VM.
          schema:
            type: boolean
        - name: generations
          in: query
          description: The processor generations that the fGPUs are compatible with.
          schema:
            type: array
            items:
              type: string
        - name: modelNames
          in: query
          description: One or more models of fGPUs.
          schema:
            type: array
            items:
              type: string
        - name: states
          in: query
          description: The states of the fGPUs (`allocated` \| `attaching` \| `attached` \| `detaching`).
          schema:
            type: array
            items:
              type: string
        - name: vmIds
          in: query
          description: One or more IDs of VMs.
          schema:
            type: array
            items:
              type: string
        - name: availabilityZoneNames
          in: query
          description: The names of AZs where the fGPUs are located.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AvailabilityZoneName'
        - name: ids
          in: query
          description: One or more IDs of fGPUs.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadFlexibleGpus200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateFlexibleGpu
      summary: Create Flexible GPU
      description: |-
        Allocates a flexible GPU (fGPU) to your account.<br />
        You can then attach this fGPU to a virtual machine (VM).<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateFlexibleGpuRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateFlexibleGpu201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/flexibleGpus/{id}':
    delete:
      operationId: DeleteFlexibleGpu
      summary: Delete Flexible GPU
      description: |-
        Releases a flexible GPU (fGPU) from your account.<br />
        The fGPU will then be available for use by others.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the fGPU you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadFlexibleGpusById
      summary: Get information about a Flexible GPU
      description: Retrieves information about about the flexible GPUs (fGPUs) whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadFlexibleGpus
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadFlexibleGpusById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateFlexibleGpu
      summary: Update Flexible GPU
      description: Modifies a flexible GPU (fGPU) behavior.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the fGPU you want to modify.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateFlexibleGpuRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateFlexibleGpu200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/flexibleGpus/{id}/vms/link':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: LinkFlexibleGpu
      summary: Link Flexible GPU to a VM
      description: |-
        Attaches one of your allocated flexible GPUs (fGPUs) to a virtual machine (VM).<br />
        The fGPU will remain in the `attaching` state until the VM is stopped, at which point it will transition to the `attached` state.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the fGPU you want to attach.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/LinkFlexibleGpuRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/flexibleGpus/{id}/vms/unlink':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UnlinkFlexibleGpu
      summary: Unlink Flexible GPU from a VM
      description: |-
        Detaches a flexible GPU (fGPU) from a virtual machine (VM).<br />
        The fGPU is in the `detaching` state until the VM is stopped, at which point it will become available for reallocation.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the fGPU you want to detach from your VM.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/images':
    get:
      operationId: ReadImages
      summary: List Image(s)
      description: Lists your images and Numspot images.
      parameters:
        - name: accountAliases
          in: query
          description: The account aliases of the owners of the Images.
          schema:
            type: array
            items:
              type: string
        - name: architectures
          in: query
          description: The architectures of the Images (`i386` \| `x86_64`).
          schema:
            type: array
            items:
              type: string
        - name: blockDeviceMappingDeleteOnVmDeletion
          in: query
          description: Whether the volumes are deleted or not when terminating the VM.
          schema:
            type: boolean
        - name: blockDeviceMappingDeviceNames
          in: query
          description: The device names for the volumes.
          schema:
            type: array
            items:
              type: string
        - name: blockDeviceMappingSnapshotIds
          in: query
          description: The IDs of the snapshots used to create the volumes.
          schema:
            type: array
            items:
              type: string
        - name: blockDeviceMappingVolumeSizes
          in: query
          description: 'The sizes of the volumes, in GB.'
          schema:
            type: array
            items:
              type: integer
        - name: blockDeviceMappingVolumeTypes
          in: query
          description: The types of volumes (`standard` \| `gp2` \| `io1`).
          schema:
            type: array
            items:
              type: string
        - name: descriptions
          in: query
          description: 'The descriptions of the Images, provided when they were created.'
          schema:
            type: array
            items:
              type: string
        - name: fileLocations
          in: query
          description: The locations of the buckets where the Image files are stored.
          schema:
            type: array
            items:
              type: string
        - name: hypervisors
          in: query
          description: The hypervisor type of the Image (always `xen`).
          schema:
            type: array
            items:
              type: string
        - name: imageNames
          in: query
          description: 'The names of the Images, provided when they were created.'
          schema:
            type: array
            items:
              type: string
        - name: productCodeNames
          in: query
          description: The names of the product codes associated with the Image.
          schema:
            type: array
            items:
              type: string
        - name: productCodes
          in: query
          description: The product codes associated with the Image.
          schema:
            type: array
            items:
              type: string
        - name: rootDeviceNames
          in: query
          description: The name of the root device. This value must be /dev/sda1.
          schema:
            type: array
            items:
              type: string
        - name: rootDeviceTypes
          in: query
          description: The types of root device used by the Images (`bsu` or `ebs`).
          schema:
            type: array
            items:
              type: string
        - name: states
          in: query
          description: The states of the Images (`pending` \| `available` \| `failed`).
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the Images.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the Images.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the Images, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: virtualizationTypes
          in: query
          description: The virtualization types (always `hvm`).
          schema:
            type: array
            items:
              type: string
        - name: ids
          in: query
          description: The IDs of the Images.
          schema:
            type: array
            items:
              type: string
        - name: isPublic
          in: query
          description: 'If true, lists all public Images. If false, lists all private Images.'
          schema:
            type: boolean
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadImages200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateImage
      summary: Create Image
      description: |-
        Creates a Numspot image.<br />
        You can use this method in different ways:
        * **Creating from a VM**: You create an Image from one of your virtual machines (VMs).<br>
        * **Copying an Image**: You copy an existing Image. The source Image can be one of your own Images, or an Image owned by another account that has granted you permission via the [UpdateImage](#updateimage) method.<br>
        * **Registering from a snapshot**: You register an Image from an existing snapshot. The source snapshot can be one of your own snapshots, or a snapshot owned by another account that has granted you permission via the [UpdateSnapshot](#updatesnapshot) method.<br>
        * **Registering from a bucket by using a manifest file**: You register an Image from the manifest file of an Image that was exported to an Numspot Object Storage (NOS) bucket. First, the owner of the source Image must export it to the bucket by using the [CreateImageExportTask](#createimageexporttask) method. Then, they must grant you permission to read the manifest file via a pre-signed URL or Access Control Lists.<br />
        * **Registering from a bucket without using a manifest file**: This is similar to the previous case but you manually specify all the information that would be in a manifest file instead of using a manifest file.

        **[TIP]**<br />
        Registering from a bucket enables you to copy an Image across Regions.
      requestBody:
        $ref: '#/components/requestBodies/CreateImageRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateImage201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/images/{id}':
    delete:
      operationId: DeleteImage
      summary: Delete Image
      description: 'Deletes a Numspot image so that you cannot use it anymore to launch virtual machines (VMs). However, you can still use VMs already launched from this Image.'
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the Image you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadImagesById
      summary: Get information about an Image
      description: Retrieves information about the Numspot images whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadImages
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadImagesById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateImage
      summary: Update Image
      description: |-
        Modifies the access permissions for a Numspot image.<br />
        You must specify either the `Additions` or the `Removals` parameter.<br />
        After sharing an Image with an account, the other account can create a copy of it that they own. For more information about copying Images, see [CreateImage](#createimage).
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the Image you want to modify.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateImageRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateImage200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/internetGateways':
    get:
      operationId: ReadInternetGateways
      summary: List Internet Gateway(s)
      description: |-
        Lists your Internet Gateways.<br />
        An Internet Gateway enables your virtual machines (VMs) launched in a Vpc to connect to the Internet. By default, a Vpc includes an Internet Gateway, and each Subnet is public. Every VM launched within a default Subnet has a private IP and a public IP.
      parameters:
        - name: linkStates
          in: query
          description: 'The current states of the attachments between the Internet gateways and the Vpcs (only `available`, if the Internet gateway is attached to a Vpc).'
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the Internet gateways.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the Internet gateways.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the Internet gateways, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: linkVpcIds
          in: query
          description: The IDs of the Vpcs the Internet gateways are attached to.
          schema:
            type: array
            items:
              type: string
        - name: ids
          in: query
          description: The IDs of the Internet gateways.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadInternetGateways200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateInternetGateway
      summary: Create Internet Gateway
      description: |-
        Creates an Internet Gateway that you can associate with a VPC.<br />
        An Internet Gateway allows your virtual machines (VMs) in a VPC to connect to the Internet. By default, a VPC includes an Internet Gateway, and each subnet is public. Every VM launched within a default subnet is assigned both a private IP address and a public IP address.<br /><br />
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateInternetGateway201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/internetGateways/{id}':
    delete:
      operationId: DeleteInternetGateway
      summary: Delete Internet Gateway
      description: |-
        Deletes an Internet Gateway.<br />
        Before deleting an Internet Gateway, you must first detach it from any VPC to which it is attached.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the Internet gateway you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadInternetGatewaysById
      summary: Get information about an Internet Gateway
      description: Retrieves information about the Internet Gateway whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadInternetGateways
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadInternetGatewaysById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/internetGateways/{id}/vpcs/link':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: LinkInternetGateway
      summary: Link an Internet Gateway to a VPC
      description: |-
        Attaches an Internet Gateway to a VPC.<br />
        To enable Internet connectivity for a VPC, you must attach an Internet Gateway to that VPC.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the Internet gateway you want to attach.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/LinkInternetGatewayRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/internetGateways/{id}/vpcs/unlink':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UnlinkInternetGateway
      summary: Unlink an Internet Gateway from a VPC
      description: |-
        Detaches an Internet Gateway from a VPC.<br />
        This action removes and disables the Internet Gateway from the VPC. The VPC must not have any virtual machines (VMs) using public IP addresses or internet-facing load balancers.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the Internet Gateway you want to detach.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UnlinkInternetGatewayRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/keypairs':
    get:
      operationId: ReadKeypairs
      summary: List Keypair(s)
      description: Lists your keypairs.
      parameters:
        - name: keypairFingerprints
          in: query
          description: The fingerprints of the keypairs.
          schema:
            type: array
            items:
              type: string
        - name: keypairNames
          in: query
          description: The names of the keypairs.
          schema:
            type: array
            items:
              type: string
        - name: keypairTypes
          in: query
          description: 'The types of the keypairs (`ssh-rsa`, `ssh-ed25519`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or `ecdsa-sha2-nistp521`).'
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadKeypairs200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateKeypair
      summary: Create Keypair
      description: |-
        Creates a keypair to use with your virtual machines (VMs).<br />
        You can use this method in two different ways:
        * **Creating a keypair**: In that case, Numspot creates a 2048-bit RSA keypair, stores its public key in your account, and returns its private key in the response of the call so that you can save it in a file.<br />
        When you save the returned private key, make sure you replace the `\n` escape sequences with real line breaks.
         * **Importing a keypair created locally**: If you already have a keypair that you have created locally with a third-party tool, you can import its public key in your account. The following types of key can be imported: RSA (2048 bits or preferably 4096 bits), ECDSA (256 bits), and Ed25519. The following formats can be used: PEM, PKCS8, RFC4716, and OpenSSH.
      requestBody:
        $ref: '#/components/requestBodies/CreateKeypairRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateKeypair201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '409':
          $ref: '#/components/responses/Error409'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/keypairs/{id}':
    delete:
      operationId: DeleteKeypair
      summary: Delete Keypair
      description: |-
        Deletes the specified keypair.<br />
        This action deletes the public key stored by Numspot, thus deleting the keypair.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the keypair you want to delete.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadKeypairsById
      summary: Get information about a Keypair
      description: Retrieves information about the keypair whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadKeypairs
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadKeypairsById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/listenerRules':
    get:
      operationId: ReadListenerRules
      summary: List Listener Rule(s)
      description: Lists your listener rules.
      parameters:
        - name: listenerRuleNames
          in: query
          description: The names of the listener rules.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadListenerRules200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateListenerRule
      summary: Create Listener Rule
      description: |-
        Creates a traffic redirection rule for the specified listener. Each rule must include either the `HostNamePattern` or `PathPattern` parameter. Rules are evaluated in priority order, with higher values taking precedence over lower values.<br />
        After creating the rule, you need to link backend VMs with it.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateListenerRuleRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateListenerRule201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/listenerRules/{id}':
    delete:
      operationId: DeleteListenerRule
      summary: Delete Listener Rule
      description: |-
        Deletes a listener rule.<br />
        The rule is disabled upon deletion, ceasing to be active.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the rule you want to delete.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadListenerRulesById
      summary: Get information about a Listener Rule
      description: Retrieves information about the listener rule whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadListenerRules
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadListenerRulesById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateListenerRule
      summary: Update Listener Rule
      description: |-
        Updates the pattern of the listener rule.<br />
        This action modifies the pattern used to match incoming traffic.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the listener rule.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      requestBody:
        $ref: '#/components/requestBodies/UpdateListenerRuleRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateListenerRule200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/loadBalancers':
    get:
      operationId: ReadLoadBalancers
      summary: List Load Balancer(s)
      description: Lists your load balancers.
      parameters:
        - name: loadBalancerNames
          in: query
          description: The names of the load balancers.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadLoadBalancers200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateLoadBalancer
      summary: Create Load Balancer
      description: |-
        Creates a load balancer.<br />
        The load balancer is assigned a unique Domain Name Service (DNS) name and routes incoming traffic to its registered virtual machines (VMs).<br />
        By default, this action creates an Internet-facing load balancer that resolves to public IP addresses. To create an internal load balancer within a VPC, which resolves to private IP addresses, use the `LoadBalancerType` parameter.<br />
        You must specify either the `Subnets` or the `AvailabilityZoneNames` parameters.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateLoadBalancerRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateLoadBalancer201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/loadBalancers/{id}':
    delete:
      operationId: DeleteLoadBalancer
      summary: Delete Load Balancer
      description: Deletes a specified load balancer.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the load balancer you want to delete.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadLoadBalancersById
      summary: Get information about a Load Balancer
      description: Retrieves information about the load balancer whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadLoadBalancers
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadLoadBalancersById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateLoadBalancer
      summary: Update Load Balancer
      description: |-
        Modifies a specified attribute of a load balancer. Only one attribute can be modified at a time.<br /><br />

        You can update the SSL certificate for an SSL or HTTPS listener on the load balancer. This new certificate will replace any existing certificate on the same load balancer and port.<br /><br />

        Additionally, you can replace the currently enabled policy with a new one. If the `PolicyNames` parameter is left empty, the currently enabled policy will be disabled.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the load balancer.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      requestBody:
        $ref: '#/components/requestBodies/UpdateLoadBalancerRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateLoadBalancer200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/loadBalancers/{id}/backendMachines/link':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: LinkLoadBalancerBackendMachines
      summary: Link Load Balancer to a VM
      description: |-
        Attaches virtual machine (VM) to a specified load balancer. You need to specify at least the `BackendIps` or the `BackendVmIds` parameter.<br />
        The VMs can be in different Subnets and different AvailabilityZones than the load balancer, as long as the VMs and load balancers are all in the public Cloud or all in the same Vpc. It may take a little time for a VM to be registered with the load balancer. Once the VM is registered with a load balancer, it receives traffic and requests from this load balancer and is called a back-end VM.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ' The name of the load balancer. '
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      requestBody:
        $ref: '#/components/requestBodies/LinkLoadBalancerBackendMachinesRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/loadBalancers/{id}/backendMachines/unlink':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UnlinkLoadBalancerBackendMachines
      summary: Unlink Load Balancer from a VM
      description: Detaches one or more back-end virtual machines (VMs) from a load balancer. You must specify at least either the `BackendIps` or the `BackendVmIds` parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ' The name of the load balancer.'
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      requestBody:
        $ref: '#/components/requestBodies/UnlinkLoadBalancerBackendMachinesRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/loadBalancers/{id}/listeners':
    delete:
      operationId: DeleteLoadBalancerListeners
      summary: Delete Load Balancer Listener
      description: Deletes listeners of the specified load balancer.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the load balancer for which you want to delete listeners.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      requestBody:
        $ref: '#/components/requestBodies/DeleteLoadBalancerListenersRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateLoadBalancerListeners
      summary: Create Load Balancer Listener
      description: Creates one or more listeners for the specified load balancer.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the load balancer for which you want to create listeners.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      requestBody:
        $ref: '#/components/requestBodies/CreateLoadBalancerListenersRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateLoadBalancerListeners201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/loadBalancers/{id}/policies':
    delete:
      operationId: DeleteLoadBalancerPolicy
      summary: Delete Load Balancer Policy
      description: |-
        Deletes a specified policy from a load balancer.<br />
        To be deleted, the policy must not be enabled for any listeners.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the load balancer for which you want to delete a policy.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      requestBody:
        $ref: '#/components/requestBodies/DeleteLoadBalancerPolicyRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateLoadBalancerPolicy
      summary: Create Load Balancer Policy
      description: |-
        Creates a stickiness policy that defines sticky session lifetimes based on the browser's cookie lifetime.<br />
        This policy is applicable only for HTTP or HTTPS listeners.<br />
        When applied, the load balancer uses this cookie in all incoming requests to route them to the specified backend server virtual machine (VM). If the cookie is not present, the load balancer directs the request to any other server based on its load-balancing algorithm.<br /><br />

        Alternatively, you can create a stickiness policy with session lifetimes tied to an application-generated cookie.<br />
        In this case, the lifetime of the special Load Balancer Unit (LBU) cookie matches the lifetime of the application-generated cookie specified in the policy configuration. The load balancer issues a new stickiness cookie only when the application response includes a new application cookie.<br />
        The session ceases to be sticky if the application cookie is removed or expires, until a new application cookie is issued.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the load balancer for which you want to create a policy.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      requestBody:
        $ref: '#/components/requestBodies/CreateLoadBalancerPolicyRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateLoadBalancerPolicy201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/loadBalancers/{id}/vmsHealth':
    get:
      operationId: ReadVmsHealth
      summary: Read VMs health
      description: Lists the state of one or more backend virtual machines (VMs) registered with a specified load balancer.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The name of the load balancer.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/ReadVmsHealthRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadVmsHealth200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/loadBalancersTags':
    get:
      operationId: ReadLoadBalancerTags
      summary: List Load Balancer Tag(s)
      description: Lists the tags associated with one or more specified load balancers.
      requestBody:
        $ref: '#/components/requestBodies/ReadLoadBalancerTagsRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadLoadBalancerTags200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/natGateways':
    get:
      operationId: ReadNatGateway
      summary: List Nat Gateway(s)
      description: Lists your network address translation (NAT) services.
      parameters:
        - name: states
          in: query
          description: The states of the NAT gateways (`pending` \| `available` \| `deleting` \| `deleted`).
          schema:
            type: array
            items:
              type: string
        - name: subnetIds
          in: query
          description: The IDs of the Subnets in which the NAT gateways are.
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the NAT gateways.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the NAT gateways.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the NAT gateways, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: ids
          in: query
          description: The IDs of the NAT gateways.
          schema:
            type: array
            items:
              type: string
        - name: vpcIds
          in: query
          description: The IDs of the Vpcs in which the NAT gateways are.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadNatGateway200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateNatGateway
      summary: Create NAT Gateway
      description: |-
        Creates a Network Address Translation (NAT) service in the specified public subnet of a VPC.<br />
        A NAT Gateway allows virtual machines (VMs) in the private subnets of this VPC to connect to the Internet while remaining inaccessible from the Internet.<br />
        When creating a NAT Gateway, specify the allocation ID of the public IP that you want to use as the NAT Gateway's public IP. After creation, you need to add a route in the route table of the private subnet, with `0.0.0.0/0` as the destination and the NAT Gateway ID as the target. For more information, see [LinkPublicIP](#linkpublicip) and [CreateRoute](#createroute).<br />
        You can create multiple NAT Gateways in the same VPC, one per public subnet.<br /><br />

        **[IMPORTANT]**<br />
        You cannot modify the public IP associated with a NAT Gateway after its creation. To change the public IP, you must delete the existing NAT Gateway and create a new one with the desired public IP.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateNatGatewayRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateNatGateway201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/natGateways/{id}':
    delete:
      operationId: DeleteNatGateway
      summary: Delete NAT Gateway
      description: |-
        Deletes a specified Network Address Translation (NAT) service.<br />
        This action disassociates the public IP from the NAT Gateway but does not release the public IP from your account. Additionally, it does not remove any NAT Gateway routes from your route tables.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the NAT gateway you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadNatGatewayById
      summary: Get information about a NAT Gateway
      description: Retrieves information about the Network Address Translation (NAT) Gateway whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadNatGateways
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadNatGatewayById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/nics':
    get:
      operationId: ReadNics
      summary: List NIC(s)
      description: |-
        Lists your network interface cards (NICs).<br />
        A NIC is a virtual network interface that you can attach to a virtual machine (VM) within a VPC.
      parameters:
        - name: descriptions
          in: query
          description: The descriptions of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: isSourceDestCheck
          in: query
          description: Whether the source/destination checking is enabled (true) or disabled (false).
          schema:
            type: boolean
        - name: linkNicDeleteOnVmDeletion
          in: query
          description: Whether the NICs are deleted when the VMs they are attached to are terminated.
          schema:
            type: boolean
        - name: linkNicDeviceNumbers
          in: query
          description: The device numbers the NICs are attached to.
          schema:
            type: array
            items:
              type: integer
        - name: linkNicLinkNicIds
          in: query
          description: The attachment IDs of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: linkNicStates
          in: query
          description: The states of the attachments.
          schema:
            type: array
            items:
              type: string
        - name: linkNicVmIds
          in: query
          description: The IDs of the VMs the NICs are attached to.
          schema:
            type: array
            items:
              type: string
        - name: linkPublicIpLinkPublicIpIds
          in: query
          description: The association IDs returned when the public IPs were associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: linkPublicIpPublicIpIds
          in: query
          description: The allocation IDs returned when the public IPs were allocated to their accounts.
          schema:
            type: array
            items:
              type: string
        - name: linkPublicIpPublicIps
          in: query
          description: The public IPs associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: macAddresses
          in: query
          description: The Media Access Control (MAC) addresses of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: privateDnsNames
          in: query
          description: The private DNS names associated with the primary private IPs.
          schema:
            type: array
            items:
              type: string
        - name: privateIpsLinkPublicIpPublicIps
          in: query
          description: The public IPs associated with the private IPs.
          schema:
            type: array
            items:
              type: string
        - name: privateIpsPrimaryIp
          in: query
          description: Whether the private IP is the primary IP associated with the NIC.
          schema:
            type: boolean
        - name: privateIpsPrivateIps
          in: query
          description: The private IPs of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: securityGroupIds
          in: query
          description: The IDs of the security groups associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: securityGroupNames
          in: query
          description: The names of the security groups associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: states
          in: query
          description: The states of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: subnetIds
          in: query
          description: The IDs of the Subnets for the NICs.
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the NICs, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: vpcIds
          in: query
          description: The IDs of the Vpcs where the NICs are located.
          schema:
            type: array
            items:
              type: string
        - name: ids
          in: query
          description: The IDs of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: availabilityZoneNames
          in: query
          description: The names of AZs where the NICs are located.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AvailabilityZoneName'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadNics200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateNic
      summary: Create NIC
      description: Creates a Network Interface Card (NIC) in the specified subnet.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateNicRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateNic201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/nics/{id}':
    delete:
      operationId: DeleteNic
      summary: Delete NIC
      description: |-
        Deletes the specified Network Interface Card (NIC).<br />
        The network interface must not be attached to any virtual machine (VM).
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the NIC you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadNicsById
      summary: Get information about a NIC
      description: Retrieves information about the Network Interface Card (NIC) whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadNics
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadNicsById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateNic
      summary: Update NIC
      description: Modifies the specified Network Interface Card (NIC). Only one attribute can be modified at a time.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the NIC you want to modify.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateNicRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateNic200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/nics/{id}/privateIps/link':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: LinkPrivateIps
      summary: Link a NIC to Private IP(s)
      description: 'Assigns one or more secondary private IP addresses to a specified Network Interface Card (NIC). This action is available only in a VPC. You can either add private IPs individually using the `PrivateIps` parameter or specify the number of private IPs to be automatically assigned from within the subnet range using the `SecondaryPrivateIpCount` parameter. Only one of these parameters can be used at a time. If neither parameter is specified, a private IP will be automatically selected from the subnet range.'
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the NIC.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/LinkPrivateIpsRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/nics/{id}/privateIps/unlink':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UnlinkPrivateIps
      summary: Unlink NIC from Private IP(s)
      description: Unassigns one or more secondary private IP addresses from a Network Interface Card (NIC)
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: Id of Nic
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UnlinkPrivateIpsRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/nics/{id}/vms/link':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: LinkNic
      summary: Link a NIC to a VM
      description: |-
        Attaches a Network Interface Card (NIC) to a virtual machine (VM).<br />
        The NIC and VM must be in the same Availability Zone. The VM can be either `running` or `stopped`, and the NIC must be in the `available` state.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the NIC you want to attach.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/LinkNicRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/LinkNic200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/nics/{id}/vms/unlink':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UnlinkNic
      summary: Unlink a NIC from a VM
      description: |-
        Detaches a Network Interface Card (NIC) from a virtual machine (VM).<br />
        The primary NIC cannot be detached.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: Id of Nic
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UnlinkNicRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/publicIps':
    get:
      operationId: ReadPublicIps
      summary: List Public IP(s)
      description: |-
        Lists your public IPs.<br />
         By default, this action returns information about all your public IPs: available or associated with a virtual machine (VM), a network interface card (NIC) or a NAT Gateway.
      parameters:
        - name: linkPublicIpIds
          in: query
          description: The IDs representing the associations of public IPs with VMs or NICs.
          schema:
            type: array
            items:
              type: string
        - name: nicIds
          in: query
          description: The IDs of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: privateIps
          in: query
          description: The private IPs associated with the public IPs.
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the public IPs.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the public IPs.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the public IPs, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: vmIds
          in: query
          description: The IDs of the VMs.
          schema:
            type: array
            items:
              type: string
        - name: ids
          in: query
          description: The IDs of the public IPs.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadPublicIps200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreatePublicIp
      summary: Create Public IP
      description: |-
        Acquires a public IP address for your account.<br />
        A public IP is a static address designed for dynamic cloud computing. It can be associated with a virtual machine (VM) in the public cloud or in a VPC, a network interface card (NIC), or a NAT Gateway.<br /><br />
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreatePublicIp201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/publicIps/{id}':
    delete:
      operationId: DeletePublicIp
      summary: Delete Public IP
      description: |-
        Releases a public IP address.<br />
        You can release a public IP address. This address is then returned to the public IP pool and can be used by someone else. Before releasing a public IP address, ensure you have updated all your resources communicating with this address.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: 'The ID representing the association of the public IP with the VM or the NIC. In a Vpc, this parameter is required.'
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadPublicIpsById
      summary: Get Information of a Public IP
      description: Retrieves information about the public IPs whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadPublicIps
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadPublicIpsById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/publicIps/{id}/link':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: LinkPublicIp
      summary: Link Public IP to a VM or a NIC
      description: |-
        Associates a public IP address with a virtual machine (VM) or a network interface card (NIC) or a VPC. You can associate a public IP with only one VM or network interface at a time.<br />
        To associate a public IP in a VPC, ensure that the VPC has an Internet Gateway attached. For more information, see the [LinkInternetGateway](#linkinternetservice) method.<br />
        By default, the public IP is disassociated every time you stop and start the VM. For more information, see the [CreateTags](#createtags) method.<br /><br />

        **[IMPORTANT]**<br />
        You can associate a public IP with a network address translation (NAT) service only when creating the NAT Gateway. To modify its public IP, you need to delete the NAT Gateway and re-create it with the new public IP. For more information, see the [CreateNatGateway](#createnatgateway) method.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The allocation ID of the public IP. This parameter is required unless you use the `PublicIp` parameter.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/LinkPublicIpRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/LinkPublicIp200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/publicIps/{id}/unlink':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UnlinkPublicIp
      summary: Unlink a Public IP from a NIC or a VM
      description: |-
        Disassociates a public IP address from the virtual machine (VM) or network interface card (NIC) it is associated with.<br /><br />

        **[IMPORTANT]**<br />
        To disassociate the public IP address from a NAT Gateway, you need to delete the NAT Gateway. For more information, see the [DeleteNatGateway](#deletenatgateway) method.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: Id of the PublicIp
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UnlinkPublicIpRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/routeTables':
    get:
      operationId: ReadRouteTables
      summary: List Route Table(s)
      description: |-
        Lists your route tables.<br />
        In your VPC, each subnet must be associated with a route table. If a subnet is not explicitly associated with a route table, it is implicitly associated with the main route table of the VPC.
      parameters:
        - name: linkRouteTableIds
          in: query
          description: The IDs of the route tables involved in the associations.
          schema:
            type: array
            items:
              type: string
        - name: linkRouteTableLinkRouteTableIds
          in: query
          description: The IDs of the associations between the route tables and the Subnets.
          schema:
            type: array
            items:
              type: string
        - name: linkRouteTableMain
          in: query
          description: 'If true, the route tables are the main ones for their Vpcs.'
          schema:
            type: boolean
        - name: linkSubnetIds
          in: query
          description: The IDs of the Subnets involved in the associations.
          schema:
            type: array
            items:
              type: string
        - name: routeCreationMethods
          in: query
          description: The methods used to create a route.
          schema:
            type: array
            items:
              type: string
        - name: routeDestinationIpRanges
          in: query
          description: The IP ranges specified in routes in the tables.
          schema:
            type: array
            items:
              type: string
        - name: routeDestinationServiceIds
          in: query
          description: The service IDs specified in routes in the tables.
          schema:
            type: array
            items:
              type: string
        - name: routeGatewayIds
          in: query
          description: The IDs of the gateways specified in routes in the tables.
          schema:
            type: array
            items:
              type: string
        - name: routeStates
          in: query
          description: The states of routes in the route tables (always `active`).
          schema:
            type: array
            items:
              type: string
        - name: routeVmIds
          in: query
          description: The IDs of the VMs specified in routes in the tables.
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the route tables.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the route tables.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the route tables, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: vpcIds
          in: query
          description: The IDs of the Vpcs for the route tables.
          schema:
            type: array
            items:
              type: string
        - name: routeNatGatewayIds
          in: query
          description: The IDs of the NAT gateways specified in routes in the tables.
          schema:
            type: array
            items:
              type: string
        - name: routeVpcPeeringIds
          in: query
          description: The IDs of the Vpc peerings specified in routes in the tables.
          schema:
            type: array
            items:
              type: string
        - name: ids
          in: query
          description: The IDs of the route tables.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadRouteTables200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateRouteTable
      summary: Create Route Table
      description: |-
        Creates a route table for a specified VPC.<br />
        You can then add routes and associate this route table with a subnet.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateRouteTableRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateRouteTable201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/routeTables/{id}':
    delete:
      operationId: DeleteRouteTable
      summary: Delete Route Table
      description: |-
        Deletes a specified route table.<br />
        Before deleting a route table, you must disassociate it from any subnet. You cannot delete the main route table.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the route table you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadRouteTablesById
      summary: Get information of a Route Table
      description: Retrieves information about the route table whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadRouteTables
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadRouteTablesById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/routeTables/{id}/routePropagation':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateRouteTableRoutePropagation
      summary: Activate or Deactivate a Route Table propagation
      description: Configures route propagation to a specified route table of a VPC through a virtual gateway.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the route table.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateRouteTableRoutePropagationRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateRouteTableRoutePropagation200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/routeTables/{id}/routes':
    delete:
      operationId: DeleteRoute
      summary: Delete Route from a Route Table
      description: Deletes a route from a specified route table.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the route table from which you want to delete a route.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/DeleteRouteRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateRoute
      summary: Create route in a Route Table
      description: |-
        Creates a route in a specified route table within a specified VPC.<br />
        You must specify one of the following elements as the target:<br /><br />

        * VPC Peering<br />
        * NAT VM<br />
        * Internet Gateway<br />
        * Virtual Gateway<br />
        * NAT Gateway<br />
        * Network Interface Card (NIC)<br /><br />

        The routing algorithm is based on the most specific match.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the route table for which you want to create a route.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/CreateRouteRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateRoute201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    put:
      operationId: UpdateRoute
      summary: Update Route in a Route Table
      description: |-
        Replaces an existing route within a route table in a VPC.<br />
        You must specify one of the following elements as the target:<br /><br />

        * VPC Peering<br />
        * NAT VM<br />
        * Internet Gateway<br />
        * Virtual Gateway<br />
        * NAT Gateway<br />
        * Network Interface Card (NIC)<br /><br />

        The routing algorithm is based on the most specific match.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the route table.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateRouteRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateRoute200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/routeTables/{id}/subnets/link':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: LinkRouteTable
      summary: Link a Route Table to a Subnet
      description: |-
        Associates a subnet with a route table.<br />
        The subnet and the route table must be in the same VPC. Traffic is routed according to the route table associated with this VPC. A route table can be associated with multiple subnets.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the route table.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/LinkRouteTableRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/LinkRouteTable200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/routeTables/{id}/subnets/unlink':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UnlinkRouteTable
      summary: Unlink a Route Table from a Subnet
      description: |-
        Disassociates a subnet from a route table.<br />
        After disassociation, the subnet will no longer use the routes in this route table and will instead use the routes in the main route table of the VPC.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: Id of the RouteTable
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UnlinkRouteTableRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/securityGroups':
    get:
      operationId: ReadSecurityGroups
      summary: List Security Group(s)
      description: |-
        Lists your security groups.<br />
        You can specify either the name of the security groups or their IDs.
      parameters:
        - name: descriptions
          in: query
          description: The descriptions of the security groups.
          schema:
            type: array
            items:
              type: string
        - name: inboundRuleFromPortRanges
          in: query
          description: 'The beginnings of the port ranges for the TCP and UDP protocols, or the ICMP type numbers.'
          schema:
            type: array
            items:
              type: integer
        - name: inboundRuleIpRanges
          in: query
          description: 'The IP ranges that have been granted permissions, in CIDR notation (for example, `10.0.0.0/24`).'
          schema:
            type: array
            items:
              type: string
        - name: inboundRuleProtocols
          in: query
          description: 'The IP protocols for the permissions (`tcp` \| `udp` \| `icmp`, or a protocol number, or `-1` for all protocols).'
          schema:
            type: array
            items:
              type: string
        - name: inboundRuleSecurityGroupIds
          in: query
          description: The IDs of the security groups that have been granted permissions.
          schema:
            type: array
            items:
              type: string
        - name: inboundRuleSecurityGroupNames
          in: query
          description: The names of the security groups that have been granted permissions.
          schema:
            type: array
            items:
              type: string
        - name: inboundRuleToPortRanges
          in: query
          description: 'The ends of the port ranges for the TCP and UDP protocols, or the ICMP code numbers.'
          schema:
            type: array
            items:
              type: integer
        - name: outboundRuleFromPortRanges
          in: query
          description: 'The beginnings of the port ranges for the TCP and UDP protocols, or the ICMP type numbers.'
          schema:
            type: array
            items:
              type: integer
        - name: outboundRuleIpRanges
          in: query
          description: 'The IP ranges that have been granted permissions, in CIDR notation (for example, `10.0.0.0/24`).'
          schema:
            type: array
            items:
              type: string
        - name: outboundRuleProtocols
          in: query
          description: 'The IP protocols for the permissions (`tcp` \| `udp` \| `icmp`, or a protocol number, or `-1` for all protocols).'
          schema:
            type: array
            items:
              type: string
        - name: outboundRuleSecurityGroupIds
          in: query
          description: The IDs of the security groups that have been granted permissions.
          schema:
            type: array
            items:
              type: string
        - name: outboundRuleSecurityGroupNames
          in: query
          description: The names of the security groups that have been granted permissions.
          schema:
            type: array
            items:
              type: string
        - name: outboundRuleToPortRanges
          in: query
          description: 'The ends of the port ranges for the TCP and UDP protocols, or the ICMP code numbers.'
          schema:
            type: array
            items:
              type: integer
        - name: securityGroupIds
          in: query
          description: The IDs of the security groups.
          schema:
            type: array
            items:
              type: string
        - name: securityGroupNames
          in: query
          description: The names of the security groups.
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the security groups.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the security groups.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the security groups, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: vpcIds
          in: query
          description: The IDs of the Vpcs specified when the security groups were created.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadSecurityGroups200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateSecurityGroup
      summary: Create Security Group
      description: |-
        Creates a security group.<br />
        This action creates a security group either in the public cloud or within a specified VPC. By default, a default security group is created for use in a VPC.<br />
        When launching a virtual machine (VM), if no security group is explicitly specified, the appropriate default security group is assigned to the VM. Default security groups include a default rule that allows network access between VMs within the same group.<br />
        When creating a security group, you specify a name. Security groups within a VPC cannot share the same name.<br />
        You can have up to 500 security groups per VPC.<br />
        To add or remove rules, use the [CreateSecurityGroupRule](#createsecuritygrouprule) method.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateSecurityGroupRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateSecurityGroup201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/securityGroups/{id}':
    delete:
      operationId: DeleteSecurityGroup
      summary: Delete Security Group
      description: |-
        Deletes a specified security group.<br />
        You can specify either the name of the security group or its ID.<br />
        This action will fail if the specified group is associated with a virtual machine (VM) or referenced by another security group.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the security group you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadSecurityGroupsById
      summary: Get information about a Security Group
      description: Retrieves information about the security group whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadSecurityGroups
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadSecurityGroupsById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/securityGroups/{id}/rules':
    delete:
      operationId: DeleteSecurityGroupRule
      summary: Delete Security Group Rule(s)
      description: |-
        Deletes one or more inbound or outbound rules from a security group. To successfully delete a rule, the values specified in the deletion request must exactly match the values of the existing rule.<br />
        For TCP and UDP protocols, you must specify the destination port or range of ports. For ICMP protocol, you must specify the ICMP type and code numbers.<br />
        Rules (IP permissions) consist of the protocol, IP range, or source security group.<br />
        To remove outbound access to a destination security group, it is recommended to use a set of IP permissions and to specify the protocol within that set.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the security group you want to delete a rule from.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/DeleteSecurityGroupRuleRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateSecurityGroupRule
      summary: Create Security Group Rule(s)
      description: |-
        Adds one or more rules to a security group.<br />
        Use the `SecurityGroupId` parameter to specify the security group for which you want to create a rule.<br />
        Use the `Flow` parameter to specify whether the rule is inbound or outbound.<br /><br />

        An inbound rule allows the security group to receive traffic from:<br />
        * A specific IP range (`IpRange` parameter) on a particular port range (`FromPortRange` and `ToPortRange` parameters) with a specific protocol (`IpProtocol` parameter).<br />

        (VPC only) An outbound rule functions similarly but allows the security group to send traffic rather than receive it.<br />

        Alternatively, you can use the `Rules` parameter to add multiple rules at once.<br /><br />

        **[NOTE]**<br />
        * Modifications take effect as quickly as possible, but a small delay may occur.<br />
        * To restrict traffic to private IPs only, please contact our support team at support@numspot.com.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the security group for which you want to create a rule.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/CreateSecurityGroupRuleRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateSecurityGroupRule201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/snapshots':
    get:
      operationId: ReadSnapshots
      summary: List Snapshot(s)
      description: Lists your snapshots and the permissions required to create volumes from them.
      parameters:
        - name: descriptions
          in: query
          description: The descriptions of the snapshots.
          schema:
            type: array
            items:
              type: string
        - name: fromCreationDate
          in: query
          description: 'The beginning of the time period, in ISO 8601 date-time format (for example, `2020-06-14T00:00:00.000Z`).'
          schema:
            type: string
        - name: progresses
          in: query
          description: 'The progresses of the snapshots, as a percentage.'
          schema:
            type: array
            items:
              type: integer
        - name: states
          in: query
          description: The states of the snapshots (`in-queue` \| `completed` \| `error`).
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the snapshots.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the snapshots.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the snapshots, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: toCreationDate
          in: query
          description: 'The end of the time period, in ISO 8601 date-time format (for example, `2020-06-30T00:00:00.000Z`).'
          schema:
            type: string
        - name: volumeIds
          in: query
          description: The IDs of the volumes used to create the snapshots.
          schema:
            type: array
            items:
              type: string
        - name: volumeSizes
          in: query
          description: 'The sizes of the volumes used to create the snapshots, in GB.'
          schema:
            type: array
            items:
              type: integer
        - name: isPublic
          in: query
          description: 'If true, lists all public volumes. If false, lists all private volumes.'
          schema:
            type: boolean
        - name: ids
          in: query
          description: The IDs of the snapshots.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadSnapshots200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateSnapshot
      summary: Create Snapshot
      description: |-
        Creates a snapshot. Snapshots are point-in-time images of a volume that you can use to back up your data or create replicas of the volume.<br />
        You can use this method in three different ways:<br />

        * **Creating from a Volume**: Create a snapshot from one of your existing volumes.<br />
        * **Copying a Snapshot**: Copy an existing snapshot. The source snapshot can be one of your own snapshots or a snapshot owned by another account that has granted you permission via the [UpdateSnapshot](#updatesnapshot) method.<br />
      requestBody:
        $ref: '#/components/requestBodies/CreateSnapshotRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateSnapshot201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/snapshots/{id}':
    delete:
      operationId: DeleteSnapshot
      summary: Delete Snapshot
      description: |-
        Deletes a specified snapshot.<br />
        You cannot delete a snapshot that is currently being used by a Numspot image. To delete such a snapshot, you must first delete the corresponding Image. For more information, see the [DeleteImage](#deleteimage) method.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the snapshot you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadSnapshotsById
      summary: Get information about a Snapshot
      description: Retrieves information about the snapshot whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadSnapshots
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadSnapshotsById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/subnets':
    get:
      operationId: ReadSubnets
      summary: List Subnet(s)
      description: Lists your subnets.
      parameters:
        - name: availableIpsCounts
          in: query
          description: The number of available IPs.
          schema:
            type: array
            items:
              type: integer
        - name: ipRanges
          in: query
          description: 'The IP ranges in the Subnets, in CIDR notation (for example, `10.0.0.0/16`).'
          schema:
            type: array
            items:
              type: string
        - name: states
          in: query
          description: The states of the Subnets (`pending` \| `available` \| `deleted`).
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the Subnets.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the Subnets.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the Subnets, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: vpcIds
          in: query
          description: The IDs of the Vpcs in which the Subnets are.
          schema:
            type: array
            items:
              type: string
        - name: ids
          in: query
          description: The IDs of the Subnets.
          schema:
            type: array
            items:
              type: string
        - name: availabilityZoneNames
          in: query
          description: The names of the AZs in which the Subnets are located.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AvailabilityZoneName'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadSubnets200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateSubnet
      summary: Create Subnet
      description: |-
        Creates a subnet in an existing VPC.<br />
        To create a subnet in a VPC, you must provide the ID of the VPC and the IP range for the subnet (its network range). Once the subnet is created, its IP range cannot be modified.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateSubnetRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateSubnet201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '409':
          $ref: '#/components/responses/Error409'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/subnets/{id}':
    delete:
      operationId: DeleteSubnet
      summary: Delete Subnet
      description: |-
        Deletes a specified subnet.<br />
        Before deleting the subnet, you need to remove all resources associated with it:<br /><br />

        * Virtual machines (VMs)<br />
        * Network Interface Cards (NICs)<br />
        * NAT Gateways<br />
        * Load Balancers<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the Subnet you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadSubnetsById
      summary: Get information about a Subnet
      description: Retrieves information about the subnet whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadSubnets
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadSubnetsById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateSubnet
      summary: Update Subnet
      description: Modifies the specified attribute of a subnet.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the Subnet.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateSubnetRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateSubnet200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/tags':
    get:
      operationId: ReadTags
      summary: List Tag(s)
      description: Lists your tags for your resources.
      parameters:
        - name: keys
          in: query
          description: 'The keys of the tags that are assigned to the resources. You can use this filter alongside the `Values` filter. In that case, you filter the resources corresponding to each tag, regardless of the other filter.'
          schema:
            type: array
            items:
              type: string
        - name: resourceIds
          in: query
          description: The IDs of the resources with which the tags are associated.
          schema:
            type: array
            items:
              type: string
        - name: resourceTypes
          in: query
          description: The resource type (`vm` \| `image` \| `volume` \| `snapshot` \| `public-ip` \| `security-group` \| `route-table` \| `nic` \| `vpc` \| `subnet` \| `vpc-peering` \| `vpc-access-point` \| `nat-gateway` \| `internet-gateway` \| `client-gateway` \| `virtual-gateway` \| `vpn-connection` \| `dhcp-options` \| `task`).
          schema:
            type: array
            items:
              type: string
        - name: values
          in: query
          description: 'The values of the tags that are assigned to the resources. You can use this filter alongside the `TagKeys` filter. In that case, you filter the resources corresponding to each tag, regardless of the other filter.'
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadTags200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/vms':
    get:
      operationId: ReadVms
      summary: List Virtual Machine(s)
      description: |-
        Lists your virtual machines (VMs).<br />
        If you provide one or more VM IDs, this action returns descriptions for those specific VMs. If no VM IDs are provided, descriptions for all VMs belonging to you are returned. Providing an invalid VM ID will result in an error. If you provide the ID of a VM that does not belong to you, its description will not be included in the response.<br />
        Please note that the refresh interval for data returned by this action is one hour, so a terminated VM may still appear in the response.<br /><br />
      parameters:
        - name: architectures
          in: query
          description: The architectures of the VMs (`i386` \| `x86_64`).
          schema:
            type: array
            items:
              type: string
        - name: blockDeviceMappingDeleteOnVmDeletion
          in: query
          description: Whether the BSU volumes are deleted when terminating the VMs.
          schema:
            type: boolean
        - name: blockDeviceMappingDeviceNames
          in: query
          description: 'The device names for the BSU volumes (in the format `/dev/sdX`, `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX`).'
          schema:
            type: array
            items:
              type: string
        - name: blockDeviceMappingLinkDates
          in: query
          description: 'The link dates for the BSU volumes mapped to the VMs (for example, `2016-01-23T18:45:30.000Z`).'
          schema:
            type: array
            items:
              oneOf:
                - format: date
                  type: string
                - format: date-time
                  type: string
        - name: blockDeviceMappingStates
          in: query
          description: The states for the BSU volumes (`attaching` \| `attached` \| `detaching` \| `detached`).
          schema:
            type: array
            items:
              type: string
        - name: blockDeviceMappingVolumeIds
          in: query
          description: The volume IDs of the BSU volumes.
          schema:
            type: array
            items:
              type: string
        - name: clientTokens
          in: query
          description: The idempotency tokens provided when launching the VMs.
          schema:
            type: array
            items:
              type: string
        - name: creationDates
          in: query
          description: The dates when the VMs were launched.
          schema:
            type: array
            items:
              oneOf:
                - format: date
                  type: string
                - format: date-time
                  type: string
        - name: imageIds
          in: query
          description: The IDs of the Images used to launch the VMs.
          schema:
            type: array
            items:
              type: string
        - name: isSourceDestChecked
          in: query
          description: Whether the source/destination checking is enabled (true) or disabled (false).
          schema:
            type: boolean
        - name: keypairNames
          in: query
          description: The names of the keypairs used when launching the VMs.
          schema:
            type: array
            items:
              type: string
        - name: launchNumbers
          in: query
          description: 'The numbers for the VMs when launching a group of several VMs (for example, `0`, `1`, `2`, and so on).'
          schema:
            type: array
            items:
              type: integer
        - name: lifecycles
          in: query
          description: Whether the VMs are Spot Instances (spot).
          schema:
            type: array
            items:
              type: string
        - name: nicDescriptions
          in: query
          description: The descriptions of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: nicIsSourceDestChecked
          in: query
          description: Whether the source/destination checking is enabled (true) or disabled (false).
          schema:
            type: boolean
        - name: nicLinkNicDeleteOnVmDeletion
          in: query
          description: Whether the NICs are deleted when the VMs they are attached to are deleted.
          schema:
            type: boolean
        - name: nicLinkNicDeviceNumbers
          in: query
          description: The device numbers the NICs are attached to.
          schema:
            type: array
            items:
              type: integer
        - name: nicLinkNicLinkNicDates
          in: query
          description: The dates and time when the NICs were attached to the VMs.
          schema:
            type: array
            items:
              oneOf:
                - format: date
                  type: string
                - format: date-time
                  type: string
        - name: nicLinkNicLinkNicIds
          in: query
          description: The IDs of the NIC attachments.
          schema:
            type: array
            items:
              type: string
        - name: nicLinkNicStates
          in: query
          description: The states of the attachments.
          schema:
            type: array
            items:
              type: string
        - name: nicLinkNicVmIds
          in: query
          description: The IDs of the VMs the NICs are attached to.
          schema:
            type: array
            items:
              type: string
        - name: nicLinkPublicIpLinkPublicIpIds
          in: query
          description: The association IDs returned when the public IPs were associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: nicLinkPublicIpPublicIpIds
          in: query
          description: The allocation IDs returned when the public IPs were allocated to their accounts.
          schema:
            type: array
            items:
              type: string
        - name: nicLinkPublicIpPublicIps
          in: query
          description: The public IPs associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: nicMacAddresses
          in: query
          description: The Media Access Control (MAC) addresses of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: nicNicIds
          in: query
          description: The IDs of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: nicPrivateIpsLinkPublicIpIds
          in: query
          description: The public IPs associated with the private IPs.
          schema:
            type: array
            items:
              type: string
        - name: nicPrivateIpsPrimaryIp
          in: query
          description: Whether the private IPs are the primary IPs associated with the NICs.
          schema:
            type: boolean
        - name: nicPrivateIpsPrivateIps
          in: query
          description: The private IPs of the NICs.
          schema:
            type: array
            items:
              type: string
        - name: nicSecurityGroupIds
          in: query
          description: The IDs of the security groups associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: nicSecurityGroupNames
          in: query
          description: The names of the security groups associated with the NICs.
          schema:
            type: array
            items:
              type: string
        - name: nicStates
          in: query
          description: The states of the NICs (`available` \| `in-use`).
          schema:
            type: array
            items:
              type: string
        - name: nicSubnetIds
          in: query
          description: The IDs of the Subnets for the NICs.
          schema:
            type: array
            items:
              type: string
        - name: platforms
          in: query
          description: 'The platforms. Use windows if you have Windows VMs. Otherwise, leave this filter blank.'
          schema:
            type: array
            items:
              type: string
        - name: privateIps
          in: query
          description: The private IPs of the VMs.
          schema:
            type: array
            items:
              type: string
        - name: productCodes
          in: query
          description: The product codes associated with the Image used to create the VMs.
          schema:
            type: array
            items:
              type: string
        - name: publicIps
          in: query
          description: The public IPs of the VMs.
          schema:
            type: array
            items:
              type: string
        - name: reservationIds
          in: query
          description: 'The IDs of the reservation of the VMs, created every time you launch VMs. These reservation IDs can be associated with several VMs when you lauch a group of VMs using the same launch request.'
          schema:
            type: array
            items:
              type: string
        - name: rootDeviceNames
          in: query
          description: 'The names of the root devices for the VMs (for example, `/dev/sda1`)'
          schema:
            type: array
            items:
              type: string
        - name: rootDeviceTypes
          in: query
          description: The root devices types used by the VMs (always `ebs`)
          schema:
            type: array
            items:
              type: string
        - name: securityGroupIds
          in: query
          description: The IDs of the security groups for the VMs (only in the public Cloud).
          schema:
            type: array
            items:
              type: string
        - name: securityGroupNames
          in: query
          description: The names of the security groups for the VMs (only in the public Cloud).
          schema:
            type: array
            items:
              type: string
        - name: stateReasonCodes
          in: query
          description: The reason codes for the state changes.
          schema:
            type: array
            items:
              type: integer
        - name: stateReasonMessages
          in: query
          description: The messages describing the state changes.
          schema:
            type: array
            items:
              type: string
        - name: stateReasons
          in: query
          description: The reasons explaining the current states of the VMs. This filter is like the `StateReasonCodes` one.
          schema:
            type: array
            items:
              type: string
        - name: subnetIds
          in: query
          description: The IDs of the Subnets for the VMs.
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the VMs.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the VMs.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the VMs, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: tenancies
          in: query
          description: The tenancies of the VMs (`dedicated` \| `default` \| `host`).
          schema:
            type: array
            items:
              type: string
        - name: vmSecurityGroupIds
          in: query
          description: The IDs of the security groups for the VMs.
          schema:
            type: array
            items:
              type: string
        - name: vmSecurityGroupNames
          in: query
          description: The names of the security group for the VMs.
          schema:
            type: array
            items:
              type: string
        - name: vmStateCodes
          in: query
          description: 'The state codes of the VMs: `-1` (quarantine), `0` (pending), `16` (running), `32` (shutting-down), `48` (terminated), `64` (stopping), and `80` (stopped).'
          schema:
            type: array
            items:
              type: integer
        - name: vmStateNames
          in: query
          description: The state names of the VMs (`pending` \| `running` \| `stopping` \| `stopped` \| `shutting-down` \| `terminated` \| `quarantine`).
          schema:
            type: array
            items:
              type: string
        - name: types
          in: query
          description: The Numspot VM types.
          schema:
            type: array
            items:
              type: string
        - name: vpcIds
          in: query
          description: The IDs of the Vpcs in which the VMs are running.
          schema:
            type: array
            items:
              type: string
        - name: nicVpcIds
          in: query
          description: The IDs of the Vpcs where the NICs are located.
          schema:
            type: array
            items:
              type: string
        - name: nicAvailabilityZoneNames
          in: query
          description: The names of the AZs where the NICs are located.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AvailabilityZoneName'
        - name: availabilityZoneNames
          in: query
          description: The names of the AZs of the VMs.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AvailabilityZoneName'
        - name: ids
          in: query
          description: One or more IDs of VMs.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadVms200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateVms
      summary: Create Virtual Machine
      description: |-
        Creates and launches virtual machines (VMs).<br />
        This action allows you to create a specified number of VMs using a Numspot image that you are authorized to use, and then automatically launch them.<br />
        The VMs remain in the `pending` state until they are fully created and ready for use. Once launched, they transition to the `running` state.<br />
        To check the state of your VMs, call the [ReadVms](#readvms) method.<br />
        If not specified, the security group used will be the default one.<br />
        The metadata server enables you to retrieve the public key provided when the VM is launched. Official Images include a script to retrieve this public key and place it inside the VM, allowing secure access without a password.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateVmsRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateVms201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/vms/{id}':
    delete:
      operationId: DeleteVms
      summary: Delete Virtual Machine
      description: |-
        Terminates a virtual machine (VM).<br />
        This operation is idempotent, meaning that calling it multiple times will have the same effect as calling it once, ensuring that all calls succeed even if you terminate the VM more than once.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: Id of the VM
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadVmsById
      summary: Get information about a Virtual Machine
      description: Retrieves information about the virtual machine whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadVms
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadVmsById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateVm
      summary: Update Virtual Machine
      description: |-
        Modifies the specified attributes of a virtual machine.<br />
        You must stop the VM before modifying the following attributes:<br />
        * `NestedVirtualization`<br />
        * `Performance`<br />
        * `UserData`<br />
        * `Type`<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the VM.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateVmRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateVm200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/vms/{id}/adminPasswords':
    get:
      operationId: ReadAdminPassword
      summary: Get the admin password of a Virtual Machine
      description: |-
        Retrieves the administrator password for a running Windows VM.<br />
        The administrator password is encrypted using the keypair specified when the VM was launched.<br /><br />

        **[IMPORTANT]**<br />
        * Only RSA keypairs can decrypt the password of a Windows VM.<br />
        * The administrator password is generated only on the first boot of the Windows VM and is not returned after the initial boot.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the VM.
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadAdminPassword200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/vms/{id}/consoleOutputs':
    get:
      operationId: ReadConsoleOutput
      summary: Get console output of a Virtual Machine
      description: |-
        Retrieves the console output for a virtual machine. This console provides the most recent 64 KiB of output.<br /><br />

        **[IMPORTANT]**<br />
        On Windows VMs, the console output is only available during the first boot. It will not return any output after the initial boot.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the VM.
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadConsoleOutput200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/vms/{id}/reboot':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: RebootVm
      summary: Reboot a Virtual Machine
      description: |-
        Reboots a virtual machine.<br />
        This operation sends a reboot request to the specified VM. It is an asynchronous action that queues the reboot request. This action only applies to VMs that are valid and belong to you.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: Id of the VM
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/vms/{id}/start':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: StartVm
      summary: Start a Virtual Machine
      description: |-
        Start virtual machine.<br />
        You can start only VM that is valid and that belong to you.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: Id of the VM
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/StartVm200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/vms/{id}/stop':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: StopVm
      summary: Stop a Virtual Machine
      description: |-
        Stops running virtual machine.<br />
        You can stop only VM that is valid and that belong to you. Data stored in the VM RAM is lost.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: Id of the VM
            type: string
      requestBody:
        $ref: '#/components/requestBodies/StopVmRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/StopVm200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/vms/states':
    get:
      operationId: ReadVmsState
      summary: List the states of Virtual Machine
      description: Lists the status of virtual machine
      parameters:
        - name: maintenanceEventCodes
          in: query
          description: The code for the scheduled event (`system-reboot` \| `system-maintenance`).
          schema:
            type: array
            items:
              type: string
        - name: maintenanceEventDescriptions
          in: query
          description: The description of the scheduled event.
          schema:
            type: array
            items:
              type: string
        - name: maintenanceEventsNotAfter
          in: query
          description: The latest time the event can end.
          schema:
            type: array
            items:
              format: date
              type: string
        - name: maintenanceEventsNotBefore
          in: query
          description: The earliest time the event can start.
          schema:
            type: array
            items:
              format: date
              type: string
        - name: vmStates
          in: query
          description: The states of the VMs (`pending` \| `running` \| `stopping` \| `stopped` \| `shutting-down` \| `terminated` \| `quarantine`).
          schema:
            type: array
            items:
              type: string
        - name: availabilityZoneNames
          in: query
          description: The names of the AZs of the VMs.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AvailabilityZoneName'
        - name: ids
          in: query
          description: One or more IDs of VMs.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadVmsState200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  '/compute/spaces/{spaceId}/volumes':
    get:
      operationId: ReadVolumes
      summary: List Volume(s)
      description: Lists your Block Storage Unit (BSU) volumes.
      parameters:
        - name: creationDates
          in: query
          description: 'The dates and times of creation of the volumes, in ISO 8601 date-time format (for example, `2020-06-30T00:00:00.000Z`).'
          schema:
            type: array
            items:
              format: date-time
              type: string
        - name: linkVolumeDeleteOnVmDeletion
          in: query
          description: Whether the volumes are deleted or not when terminating the VMs.
          schema:
            type: boolean
        - name: linkVolumeDeviceNames
          in: query
          description: The VM device names.
          schema:
            type: array
            items:
              type: string
        - name: linkVolumeLinkDates
          in: query
          description: 'The dates and times of creation of the volumes, in ISO 8601 date-time format (for example, `2020-06-30T00:00:00.000Z`).'
          schema:
            type: array
            items:
              format: date-time
              type: string
        - name: linkVolumeLinkStates
          in: query
          description: The attachment states of the volumes (`attaching` \| `detaching` \| `attached` \| `detached`).
          schema:
            type: array
            items:
              type: string
        - name: linkVolumeVmIds
          in: query
          description: One or more IDs of VMs.
          schema:
            type: array
            items:
              type: string
        - name: snapshotIds
          in: query
          description: The snapshots from which the volumes were created.
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the volumes.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the volumes.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the volumes, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: volumeSizes
          in: query
          description: 'The sizes of the volumes, in GB.'
          schema:
            type: array
            items:
              type: integer
        - name: volumeStates
          in: query
          description: The states of the volumes (`creating` \| `available` \| `in-use` \| `updating` \| `deleting` \| `error`).
          schema:
            type: array
            items:
              type: string
        - name: volumeTypes
          in: query
          description: The types of the volumes (`standard` \| `gp2` \| `io1`).
          schema:
            type: array
            items:
              type: string
        - name: availabilityZoneNames
          in: query
          description: The names of the AZs in which the volumes were created.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/AvailabilityZoneName'
        - name: ids
          in: query
          description: The IDs of the volumes.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadVolumes200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateVolume
      summary: Create Volume
      description: |-
        Creates a Block Storage Unit (BSU) volume in a specified region.<br />
        BSU volumes can be attached to a virtual machine (VM) within the same Availability Zone. You can create either an empty volume or restore a volume from an existing snapshot.<br />
        The available volume types are:<br />

        * Enterprise (`io1`) for provisioned IOPS SSD volumes<br />
        * Performance (`gp2`) for general purpose SSD volumes<br />
        * Magnetic (`standard`) for standard HDD volumes<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateVolumeRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateVolume201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/volumes/{id}':
    delete:
      operationId: DeleteVolume
      summary: Delete Volume
      description: |-
        Deletes a specified Block Storage Unit (BSU) volume.<br />
        You can only delete volumes that are in the available state, meaning they are not currently attached to any virtual machine (VM).<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the volume you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadVolumesById
      summary: Get information about a Volume
      description: Retrieves information about the specified Block Storage Unit (BSU) Volume whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadVolumes
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadVolumesById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateVolume
      summary: Update Volume
      description: |-
        Modifies the specified attributes of a volume.<br />
        Cold volumes are those attached to VMs that are stopped, stopping, or detached. Hot volumes are those attached to running VMs.<br /><br />

        **[NOTE]**<br />
        When the modification is not instantaneous, the response will show the previous value. To see the updated value, you can use the [ReadVolumes](#readvolumes) method.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the volume you want to update.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateVolumeRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateVolume200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/volumes/{id}/vms/link':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: LinkVolume
      summary: Link Volume to a Virtual Machine
      description: |-
        Attaches a Block Storage Unit (BSU) volume to a virtual machine (VM).<br />
        The volume and the VM must be in the same Availability Zone. The VM can be either running or stopped. The volume is attached to the specified VM device.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the volume you want to attach.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/LinkVolumeRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/volumes/{id}/vms/unlink':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UnlinkVolume
      summary: Unlink Volume from a Virtual Machine
      description: |-
        Detaches a Block Storage Unit (BSU) volume from a virtual machine (VM).<br />
        To detach the root device of a VM, the VM must be stopped.<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the volume you want to detach.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UnlinkVolumeRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/vpcs':
    get:
      operationId: ReadVpcs
      summary: List VPC(s)
      description: Lists your VPCs.
      parameters:
        - name: dhcpOptionsSetIds
          in: query
          description: The IDs of the DHCP options sets.
          schema:
            type: array
            items:
              type: string
        - name: ipRanges
          in: query
          description: 'The IP ranges for the Vpcs, in CIDR notation (for example, `10.0.0.0/16`).'
          schema:
            type: array
            items:
              type: string
        - name: isDefault
          in: query
          description: 'If true, the Vpc used is the default one.'
          schema:
            type: boolean
        - name: states
          in: query
          description: The states of the Vpcs (`pending` \| `available` \| `deleting`).
          schema:
            type: array
            items:
              type: string
        - name: tagKeys
          in: query
          description: The keys of the tags associated with the Vpcs.
          schema:
            type: array
            items:
              type: string
        - name: tagValues
          in: query
          description: The values of the tags associated with the Vpcs.
          schema:
            type: array
            items:
              type: string
        - name: tags
          in: query
          description: 'The key/value combination of the tags associated with the Vpcs, in the following format: &quot;Filters&quot;:{&quot;Tags&quot;:[&quot;TAGKEY=TAGVALUE&quot;]}.'
          schema:
            type: array
            items:
              type: string
        - name: ids
          in: query
          description: The IDs of the Vpcs.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadVpcs200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateVpc
      summary: Create VPC(s)
      description: |-
        Creates a VPC with a specified IP range.<br />
        The IP range (network range) of your VPC must be between a /28 netmask (16 IPs) and a /16 netmask (65,536 IPs).<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateVpcRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateVpc201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '409':
          $ref: '#/components/responses/Error409'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/vpcs/{id}':
    delete:
      operationId: DeleteVpc
      summary: Delete VPC
      description: |-
        Deletes a specified VPC.<br />
        Before deleting the VPC, you need to remove or detach all resources associated with it:<br /><br />

        * Virtual machines (VMs)<br />
        * VPC peerings<br />
        * Custom route tables<br />
        * Public IPs allocated to resources in the VPC<br />
        * Network Interface Cards (NICs) created in the subnets<br />
        * Virtual gateways, Internet Gateways, and NAT Gateways<br />
        * Load balancers<br />
        * Security groups<br />
        * Subnets<br /><br />
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the Vpc you want to delete.
            type: string
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    get:
      operationId: ReadVpcsById
      summary: Get information about a VPC
      description: Retrieves information about the VPC whose id is given as a parameter.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: ID for ReadVpcs
            type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadVpcsById200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    put:
      operationId: UpdateVpc
      summary: Update VPC
      description: Associates a DHCP options set with a specified VPC.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The ID of the Vpc.
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateVpcRequest'
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/UpdateVpc200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/serverCertificates':
    get:
      operationId: ReadServerCertificates
      summary: List Server Certificate(s)
      description: Lists your server certificates.
      parameters:
        - name: paths
          in: query
          description: The paths to the server certificates.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: No content.
          $ref: '#/components/responses/ReadServerCertificates200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: CreateServerCertificate
      summary: Create Server Certificate
      description: Creates a server certificate along with its matching private key.
      requestBody:
        $ref: '#/components/requestBodies/CreateServerCertificateRequest'
      responses:
        '201':
          description: No content.
          $ref: '#/components/responses/CreateServerCertificate201Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
  '/compute/spaces/{spaceId}/serverCertificates/{id}':
    delete:
      operationId: DeleteServerCertificate
      summary: Delete Server Certificate
      description: Deletes a specified server certificate.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The Name of the server certificate.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    put:
      operationId: UpdateServerCertificate
      summary: Update Server Certificate
      description: Modifies the name and/or the path of a specified server certificate.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            description: The Name of the server certificate.
            type: string
            maxLength: 32
            pattern: '^[a-zA-Z0-9-]+$'
      requestBody:
        $ref: '#/components/requestBodies/UpdateServerCertificateRequest'
      responses:
        '204':
          description: No content.
          $ref: '#/components/responses/UpdateServerCertificate204Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '414':
          $ref: '#/components/responses/Error414'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Compute
    parameters:
      - $ref: '#/components/parameters/SpaceId'
  /kubernetes/versions:
    get:
      operationId: KubernetesListVersions
      summary: List Kubernetes supported version
      description: List all supported Kubernetes versions
      responses:
        '200':
          $ref: '#/components/responses/KubernetesListVersions200Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security: []
      tags:
        - Kubernetes
  /kubernetes/nodeprofiles:
    get:
      operationId: KubernetesListNodeProfiles
      summary: List node profiles
      description: List node profiles
      responses:
        '200':
          $ref: '#/components/responses/KubernetesListNodeProfiles200Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/kubernetes/spaces/{spaceId}/clusters':
    post:
      operationId: KubernetesCreateCluster
      summary: Create cluster
      description: ordered the creation of a cluster with given configuration
      parameters:
        - $ref: '#/components/parameters/SpaceId'
      requestBody:
        $ref: '#/components/requestBodies/KubernetesCreateClusterRequest'
      responses:
        '202':
          $ref: '#/components/responses/KubernetesCreateCluster202Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '409':
          $ref: '#/components/responses/KubernetesConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
    get:
      operationId: KubernetesListClusters
      summary: List clusters
      description: retrieve the list of clusters accessible by the current user
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/KubernetesClusterPage'
      responses:
        '200':
          $ref: '#/components/responses/KubernetesListClusters200Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/kubernetes/spaces/{spaceId}/clusters/{clusterId}':
    get:
      operationId: KubernetesGetCluster
      summary: Get cluster details
      description: retrieve cluster information by it's ID
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ClusterId'
      responses:
        '200':
          $ref: '#/components/responses/KubernetesGetCluster200Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
    delete:
      operationId: KubernetesDeleteCluster
      summary: Delete cluster
      description: ordered the deletion of a cluster by using his name with them dependancies
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ClusterId'
      responses:
        '202':
          $ref: '#/components/responses/KubernetesDeleteCluster202Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '404':
          $ref: '#/components/responses/KubernetesNotFound404Response'
        '409':
          $ref: '#/components/responses/KubernetesConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/kubernetes/spaces/{spaceId}/clusters/{clusterId}/kubeconfig':
    get:
      operationId: KubernetesGetKubeConfig
      summary: Get KubeConfig
      description: retrieve cluster credentials on hex encoded format
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ClusterId'
      responses:
        '200':
          $ref: '#/components/responses/KubernetesGetFileContent200Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/kubernetes/spaces/{spaceId}/clusters/{clusterId}/privatekey':
    get:
      operationId: KubernetesGetPrivateKey
      summary: Get private key
      description: retrieve cluster private key on hex encoded format
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ClusterId'
      responses:
        '200':
          $ref: '#/components/responses/KubernetesGetFileContent200Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/kubernetes/spaces/{spaceId}/clusters/{clusterId}/state':
    get:
      operationId: KubernetesGetClusterState
      summary: Get cluster state
      description: retrieve cluster state by it's id
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ClusterId'
      responses:
        '501':
          $ref: '#/components/responses/Error501'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/kubernetes/spaces/{spaceId}/clusters/{clusterId}/workers/add':
    post:
      operationId: KubernetesAddWorkers
      summary: Add workers
      description: Instanciate workers and add it in a spacified cluster
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ClusterId'
      requestBody:
        $ref: '#/components/requestBodies/KubernetesAddWorkersRequest'
      responses:
        '202':
          $ref: '#/components/responses/KubernetesAddWorkers202Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '409':
          $ref: '#/components/responses/KubernetesConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/kubernetes/spaces/{spaceId}/clusters/{clusterId}/workers/remove':
    post:
      operationId: KubernetesRemoveWorker
      summary: Remove workers
      description: Remove and destroy hasard workers in a spacified cluster
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ClusterId'
      requestBody:
        $ref: '#/components/requestBodies/KubernetesRemoveWorkerRequest'
      responses:
        '202':
          $ref: '#/components/responses/KubernetesRemoveWorker202Response'
        '400':
          $ref: '#/components/responses/KubernetesBadRequest400Response'
        '409':
          $ref: '#/components/responses/KubernetesConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/kubernetes/spaces/{spaceId}/clusters/{clusterId}/workers/upgrade':
    post:
      operationId: KubernetesUpgradeWorkers
      summary: Upgrade workers kubernetes version
      description: Upgrade kubernetes version of workers using masters kubernetes version
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ClusterId'
      requestBody:
        $ref: '#/components/requestBodies/KubernetesUpgradeWorkersRequest'
      responses:
        '501':
          $ref: '#/components/responses/Error501'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/kubernetes/spaces/{spaceId}/clusters/{clusterId}/masters/upgrade':
    post:
      operationId: KubernetesUpgradeMasters
      summary: Upgrade Masters kubernetes version
      description: Upgrade kubernetes version of master nodes
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ClusterId'
      requestBody:
        $ref: '#/components/requestBodies/KubernetesUpgradeMastersRequest'
      responses:
        '501':
          $ref: '#/components/responses/Error501'
      security:
        - BearerAuth: []
      tags:
        - Kubernetes
  '/openshift/spaces/{spaceId}/versions':
    get:
      operationId: ListVersions
      summary: List Openshift versions
      description: List all OpenShift versions
      parameters:
        - $ref: '#/components/parameters/SpaceId'
      responses:
        '200':
          $ref: '#/components/responses/Versions202Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
  '/openshift/spaces/{spaceId}/clusters':
    get:
      operationId: ListClusters
      summary: List clusters
      description: List OpenShift clusters of a space
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OpenShiftPage'
      responses:
        '200':
          $ref: '#/components/responses/Clusters200Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
    post:
      operationId: CreateCluster
      summary: Create a cluster
      description: Create an OpenShift cluster
      parameters:
        - $ref: '#/components/parameters/SpaceId'
      requestBody:
        $ref: '#/components/requestBodies/CreateClusterRequest'
      responses:
        '201':
          $ref: '#/components/responses/ClusterCreate201Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
  '/openshift/spaces/{spaceId}/clusters/{clusterId}':
    get:
      operationId: GetCluster
      summary: Retrieve a cluster by id
      description: Retrieve a cluster's information by ID
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OpenShiftClusterId'
      responses:
        '200':
          $ref: '#/components/responses/ClusterGet200Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '404':
          $ref: '#/components/responses/OpenShiftNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
    delete:
      operationId: DeleteCluster
      summary: Delete a cluster
      description: Delete an cluster
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OpenShiftClusterId'
      responses:
        '202':
          $ref: '#/components/responses/ClusterDelete202Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '404':
          $ref: '#/components/responses/OpenShiftNotFound404Response'
        '409':
          $ref: '#/components/responses/OpenShiftConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
    post:
      operationId: UpdateCluster
      summary: Update a cluster
      description: Update an OpenShift cluster
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OpenShiftClusterId'
      requestBody:
        $ref: '#/components/requestBodies/UpdateClusterRequest'
      responses:
        '200':
          $ref: '#/components/responses/ClusterGet200Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '404':
          $ref: '#/components/responses/OpenShiftNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
  '/openshift/spaces/{spaceId}/clusters/{clusterId}/nodepools':
    get:
      operationId: ListNodepools
      summary: Retrieve cluster's node pools
      description: List node pools of a cluster
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OpenShiftClusterId'
      responses:
        '200':
          $ref: '#/components/responses/Nodepools200Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
    post:
      operationId: CreateNodePool
      summary: Create a node pool
      description: Create node pool
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OpenShiftClusterId'
      requestBody:
        $ref: '#/components/requestBodies/CreateNodepoolRequest'
      responses:
        '201':
          $ref: '#/components/responses/NodepoolCreate201Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
  '/openshift/spaces/{spaceId}/clusters/{clusterId}/nodepools/{nodePoolName}':
    delete:
      operationId: DeleteNodePool
      summary: Delete a node pool
      description: Delete a node pool
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OpenShiftClusterId'
        - $ref: '#/components/parameters/OpenShiftNodepoolName'
      responses:
        '202':
          $ref: '#/components/responses/NodepoolDelete202Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '404':
          $ref: '#/components/responses/OpenShiftNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
    post:
      operationId: UpdateNodepool
      summary: Update a node count for a node pool
      description: Update a nodepool's node count
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OpenShiftClusterId'
        - $ref: '#/components/parameters/OpenShiftNodepoolName'
      requestBody:
        $ref: '#/components/requestBodies/UpdateNodepoolRequest'
      responses:
        '202':
          $ref: '#/components/responses/OpenShiftNodepoolUpdate202Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '404':
          $ref: '#/components/responses/OpenShiftNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
  '/openshift/spaces/{spaceId}/operations':
    get:
      operationId: ListOperations
      summary: List operations
      description: List all operations
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OpenShiftPage'
        - $ref: '#/components/parameters/OpenShiftOperationStatuses'
        - $ref: '#/components/parameters/QueryClusterId'
      responses:
        '200':
          $ref: '#/components/responses/OpenShiftOperations200Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
  '/openshift/spaces/{spaceId}/operations/{operationId}':
    get:
      operationId: GetOperation
      summary: Get an operation by id
      description: Method to get an operation
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/OperationId'
      responses:
        '200':
          $ref: '#/components/responses/OpenShiftOperation200Response'
        '400':
          $ref: '#/components/responses/OpenShiftBadRequest400Response'
        '401':
          $ref: '#/components/responses/OpenShiftUnauthorized401Response'
        '404':
          $ref: '#/components/responses/OpenShiftNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - OpenShift
  '/postgresql/spaces/{spaceId}/backups':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/PostgresTagsParameter'
      - $ref: '#/components/parameters/PostgresPageParameter'
    get:
      operationId: PostgreSQLListBackups
      summary: List backups
      description: List your backups of database clusters.
      responses:
        '200':
          $ref: '#/components/responses/PostgresListBackups200Response'
        '400':
          $ref: '#/components/responses/PostgresInvalidRequestProblem400Response'
        '403':
          $ref: '#/components/responses/PostgresInvalidAuthenticationProblem403Response'
        '500':
          $ref: '#/components/responses/PostgresServiceMalfunctionProblem500Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
  '/postgresql/spaces/{spaceId}/clusters':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      operationId: PostgreSQLCreateCluster
      summary: Create postgres cluster
      description: Create a new database cluster.
      requestBody:
        $ref: '#/components/requestBodies/PostgresClusterCreationRequest'
      responses:
        '201':
          $ref: '#/components/responses/PostgresCreateCluster201Response'
        '400':
          $ref: '#/components/responses/PostgresCreateCluster400Response'
        '403':
          $ref: '#/components/responses/PostgresInvalidAuthenticationProblem403Response'
        '500':
          $ref: '#/components/responses/PostgresServiceMalfunctionProblem500Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
    get:
      operationId: PostgreSQLListClusters
      summary: List postgres clusters
      description: List your postgres clusters.
      responses:
        '200':
          $ref: '#/components/responses/PostgresListClusters200Response'
        '400':
          $ref: '#/components/responses/PostgresInvalidRequestProblem400Response'
        '403':
          $ref: '#/components/responses/PostgresInvalidAuthenticationProblem403Response'
        '500':
          $ref: '#/components/responses/PostgresServiceMalfunctionProblem500Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
  '/postgresql/spaces/{spaceId}/clusters/{clusterId}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/PostgresClusterIdParameter'
    get:
      operationId: PostgreSQLGetCluster
      summary: Read postgres cluster
      description: Retrieve the detailed information of a cluster by its identifier.
      responses:
        '200':
          $ref: '#/components/responses/PostgresGetCluster200Response'
        '400':
          $ref: '#/components/responses/PostgresInvalidRequestProblem400Response'
        '403':
          $ref: '#/components/responses/PostgresInvalidAuthenticationProblem403Response'
        '404':
          $ref: '#/components/responses/PostgresResourceNotFoundProblem404Response'
        '500':
          $ref: '#/components/responses/PostgresServiceMalfunctionProblem500Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
    patch:
      operationId: PostgreSQLModifyCluster
      summary: Modify postgres cluster
      description: Modify the configuration of a cluster by its identifier.
      requestBody:
        $ref: '#/components/requestBodies/PostgresClusterModificationRequest'
      responses:
        '200':
          $ref: '#/components/responses/PostgresPatchCluster200Response'
        '400':
          $ref: '#/components/responses/PostgresInvalidRequestProblem400Response'
        '403':
          $ref: '#/components/responses/PostgresInvalidAuthenticationProblem403Response'
        '404':
          $ref: '#/components/responses/PostgresResourceNotFoundProblem404Response'
        '409':
          $ref: '#/components/responses/PostgresIncompatibleStatusProblem409Response'
        '500':
          $ref: '#/components/responses/PostgresServiceMalfunctionProblem500Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
    delete:
      operationId: PostgreSQLDeleteCluster
      summary: Delete postgres cluster
      description: Delete a cluster by its identifier.
      requestBody:
        required: false
        $ref: '#/components/requestBodies/PostgresClusterDeleteRequest'
      responses:
        '202':
          $ref: '#/components/responses/PostgresDeleteCluster202Response'
        '400':
          $ref: '#/components/responses/PostgresInvalidRequestProblem400Response'
        '403':
          $ref: '#/components/responses/PostgresInvalidAuthenticationProblem403Response'
        '404':
          $ref: '#/components/responses/PostgresResourceNotFoundProblem404Response'
        '409':
          $ref: '#/components/responses/PostgresIncompatibleStatusDeleteProblem409Response'
        '500':
          $ref: '#/components/responses/PostgresServiceMalfunctionProblem500Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
  '/postgresql/spaces/{spaceId}/clusters/{clusterId}/backups':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/PostgresClusterIdParameter'
    get:
      operationId: PostgreSQLListClusterBackups
      summary: List postgres cluster backups
      description: List the backups of a cluster.
      responses:
        '200':
          $ref: '#/components/responses/PostgresListClusterBackups200Response'
        '400':
          $ref: '#/components/responses/PostgresInvalidRequestProblem400Response'
        '403':
          $ref: '#/components/responses/PostgresInvalidAuthenticationProblem403Response'
        '500':
          $ref: '#/components/responses/PostgresServiceMalfunctionProblem500Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
  '/postgresql/spaces/{spaceId}/backups/{backupId}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/PostgresBackupIdParameter'
    delete:
      operationId: PostgreSQLDeleteBackup
      summary: Delete postgres cluster backup
      description: Delete a backup.
      responses:
        '202':
          $ref: '#/components/responses/PostgresDeleteBackup202Response'
        '400':
          $ref: '#/components/responses/PostgresInvalidRequestProblem400Response'
        '403':
          $ref: '#/components/responses/PostgresInvalidAuthenticationProblem403Response'
        '404':
          $ref: '#/components/responses/PostgresResourceNotFoundProblem404Response'
        '500':
          $ref: '#/components/responses/PostgresServiceMalfunctionProblem500Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
  '/postgresql/spaces/{spaceId}/clusters/{clusterId}/password/reset':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/PostgresClusterIdParameter'
    put:
      operationId: PostgreSQLResetClusterAdministrationPassword
      summary: Reset postgres cluster password
      description: Reset the password associated with the cluster administration user.
      responses:
        '202':
          $ref: '#/components/responses/PostgresResetPassword202Response'
        '400':
          $ref: '#/components/responses/PostgresInvalidRequestProblem400Response'
        '403':
          $ref: '#/components/responses/PostgresInvalidAuthenticationProblem403Response'
        '404':
          $ref: '#/components/responses/PostgresResourceNotFoundProblem404Response'
        '409':
          $ref: '#/components/responses/PostgresIncompatibleStatusProblem409Response'
        '500':
          $ref: '#/components/responses/PostgresServiceMalfunctionProblem500Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
  /postgresql/serviceCatalog/clusters:
    get:
      operationId: PostgreSQLGetAvailableClusterConfigurations
      summary: List available postgres cluster configurations
      description: Get the list of available configurations for clusters.
      responses:
        '200':
          $ref: '#/components/responses/PostgresServiceCatalogClustersConfiguration200Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
  /postgresql/serviceCatalog/clusters/automaticBackup:
    get:
      operationId: PostgreSQLGetClusterAutomaticBackupInformation
      summary: Read backup information
      description: Get information regarding the automatic backup of clusters.
      responses:
        '200':
          $ref: '#/components/responses/PostgresServiceCatalogClustersAutomaticBackup200Response'
      security:
        - BearerAuth: []
      tags:
        - PostgreSQL
  '/connectivity/spaces/{spaceId}/computeBridges':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    get:
      operationId: ListComputeBridges
      summary: List compute bridges
      description: List compute bridges
      responses:
        '200':
          $ref: '#/components/responses/ListComputeBridges200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    post:
      operationId: CreateComputeBridge
      summary: Create a compute bridge
      description: Create a Bridge between two compute VPCs
      requestBody:
        $ref: '#/components/requestBodies/CreateComputeBridgeRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateComputeBridge201Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/computeBridges/{id}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    get:
      operationId: ReadComputeBridge
      summary: Read a compute bridge
      description: Read Bridge between two compute VPCs
      responses:
        '200':
          $ref: '#/components/responses/ReadComputeBridge200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    delete:
      operationId: DeleteComputeBridge
      summary: Delete a compute bridge
      description: Delete Bridge between two compute VPCs
      responses:
        '204':
          description: Compute bridge deleted
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/hybridBridges':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    get:
      operationId: ListHybridBridges
      summary: List hybrid bridges
      description: List hybrid bridges
      responses:
        '200':
          $ref: '#/components/responses/ListHybridBridges200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    post:
      operationId: CreateHybridBridge
      summary: Create a hybrid bridge
      description: Create bridge between a managed service and a compute VPC
      requestBody:
        $ref: '#/components/requestBodies/CreateHybridBridgeRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateHybridBridge201Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/hybridBridges/{id}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    get:
      operationId: ReadHybridBridge
      summary: Read a hybrid bridge
      description: Read bridge between a managed service and a compute VPC
      responses:
        '200':
          $ref: '#/components/responses/ReadHybridBridge200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    delete:
      operationId: DeleteHybridBridge
      summary: Delete a hybrid bridge
      description: Delete a bridge between a managed service and a compute VPC
      responses:
        '204':
          description: Hybrid bridge deleted
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/managedServicesBridges':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    get:
      operationId: ListManagedServicesBridges
      summary: List managed services bridges
      description: List bridges between two managed services
      responses:
        '200':
          $ref: '#/components/responses/ListManagedServicesBridges200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    post:
      operationId: CreateManagedServicesBridge
      summary: Create a managed services bridge
      description: Create Bridge between two managed services
      requestBody:
        $ref: '#/components/requestBodies/CreateManagedServicesBridgeRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateManagedServicesBridge201Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/managedServicesBridges/{id}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    get:
      operationId: ReadManagedServicesBridge
      summary: Read managed services bridge
      description: Read Bridge between two managed services
      responses:
        '200':
          $ref: '#/components/responses/ReadManagedServicesBridge200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    delete:
      operationId: DeleteManagedServicesBridge
      summary: Delete a managed services bridge
      description: Delete Bridge between two managed services
      responses:
        '204':
          description: Managed services bridge deleted
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/directLinkInterfaces':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    get:
      operationId: ListDirectLinkInterfaces
      summary: List direct link interfaces
      description: Lists your DirectLink interfaces.
      responses:
        '200':
          $ref: '#/components/responses/ListDirectLinkInterfaces200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    post:
      operationId: CreateDirectLinkInterface
      summary: Create direct link interface
      description: |-
        Creates a DirectLink interface.
        DirectLink interfaces enable you to reach one of your VPCs through a virtual gateway.
      requestBody:
        $ref: '#/components/requestBodies/CreateDirectLinkInterfaceRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateDirectLinkInterface201Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/directLinkInterfaces/{id}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    delete:
      operationId: DeleteDirectLinkInterface
      summary: Delete direct link interface
      description: Deletes a specified DirectLink interface.
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    get:
      operationId: ReadDirectLinkInterface
      summary: Read direct link interface
      description: Retrieves information about the DirectLink Interface whose id is given as a parameter.
      responses:
        '200':
          $ref: '#/components/responses/ReadDirectLinkInterface200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/directLinks':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    get:
      operationId: ListDirectLinks
      summary: List direct links
      description: Lists all DirectLinks in the Region.
      responses:
        '200':
          $ref: '#/components/responses/ListDirectLinks200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    post:
      operationId: CreateDirectLink
      summary: Create direct link
      description: Creates a DirectLink between a customer network and a specified DirectLink location.<br /><br />
      requestBody:
        $ref: '#/components/requestBodies/CreateDirectLinkRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateDirectLink201Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/directLinks/{id}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    delete:
      operationId: DeleteDirectLink
      summary: Delete a direct link
      description: |-
        Deletes a specified DirectLink.
        Before deleting a DirectLink, ensure that all your DirectLink interfaces related to this DirectLink are deleted.
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    get:
      operationId: ReadDirectLink
      summary: Read direct link
      description: Retrieves information about the DirectLink in the Region whose id is given as a parameter.
      responses:
        '200':
          $ref: '#/components/responses/ReadDirectLink200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/readLocations':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    get:
      operationId: ListLocations
      summary: List the locations of an Availability Zones
      description: List locations of your Availability Zones.
      responses:
        '200':
          $ref: '#/components/responses/ReadLocations200Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/clientGateways':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    get:
      operationId: ListClientGateways
      summary: List client gateways
      description: Lists all Client Gateways.
      responses:
        '200':
          $ref: '#/components/responses/ListClientGateways200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    post:
      operationId: CreateClientGateway
      summary: Create a client gateway
      description: Creates a Client Gateway.
      requestBody:
        $ref: '#/components/requestBodies/CreateClientGatewayRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateClientGateway201Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/clientGateways/{id}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    delete:
      operationId: DeleteClientGateway
      summary: Delete a client gateway
      description: Deletes a specified Client Gateway.
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    get:
      operationId: ReadClientGateway
      summary: Read a client gateway
      description: Retrieves information about a Client Gateway.
      responses:
        '200':
          $ref: '#/components/responses/ReadClientGateway200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/virtualGateways':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    get:
      operationId: ListVirtualGateways
      summary: List virtual gateways
      description: Lists all VirtualGateways.
      responses:
        '200':
          $ref: '#/components/responses/ListVirtualGateways200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    post:
      operationId: CreateVirtualGateway
      summary: Create a virtual gateway
      description: Creates a VirtualGateway.
      requestBody:
        $ref: '#/components/requestBodies/CreateVirtualGatewayRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateVirtualGateway201Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/virtualGateways/{id}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    delete:
      operationId: DeleteVirtualGateway
      summary: Delete a virtual gateway
      description: Deletes a specified Virtual Gateway.
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    get:
      operationId: ReadVirtualGateway
      summary: Read virtual gateway
      description: Retrieves information about the VirtualGateway.
      responses:
        '200':
          $ref: '#/components/responses/ReadVirtualGateway200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/virtualGateways/{id}/link':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    post:
      operationId: LinkVirtualGateway
      summary: Link virtual gateway
      description: Link Virtual Gateway to a VPC.
      requestBody:
        $ref: '#/components/requestBodies/LinkUnlinkVirtualGatewayRequest'
      responses:
        '201':
          description: Virtual Gateway linked.
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    delete:
      operationId: UnlinkVirtualGateway
      summary: Unlink virtual gateway
      description: Unlink Virtual Gateway from a VPC.
      requestBody:
        $ref: '#/components/requestBodies/LinkUnlinkVirtualGatewayRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/vpnConnections':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    get:
      operationId: ListVPNConnections
      summary: List VPN connections
      description: Lists all VPN Connections.
      responses:
        '200':
          $ref: '#/components/responses/ListVPNConnections200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    post:
      operationId: CreateVPNConnection
      summary: Create a VPN connection
      description: Creates a VPN Connection.
      requestBody:
        $ref: '#/components/requestBodies/CreateVPNConnectionRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateVPNConnection201Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/vpnConnections/{id}':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    delete:
      operationId: DeleteVPNConnection
      summary: Delete a VPN connection
      description: Deletes a specified VPN Connection
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    put:
      operationId: UpdateVPNConnection
      summary: Update a VPN connection
      description: Updates the specified attributes of a VPN connection
      requestBody:
        $ref: '#/components/requestBodies/UpdateVPNConnectionRequest'
      responses:
        '200':
          $ref: '#/components/responses/UpdateVPNConnection200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    get:
      operationId: ReadVPNConnection
      summary: Read a VPN connection
      description: Retrieves information about the VPNConnection.
      responses:
        '200':
          $ref: '#/components/responses/ReadVPNConnection200Response'
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/connectivity/spaces/{spaceId}/vpnConnections/{id}/routes':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ResourceIdentifier'
    post:
      operationId: CreateVPNConnectionRoute
      summary: Create a VPN connection route
      description: Create a VPN Connection Route.
      requestBody:
        $ref: '#/components/requestBodies/CreateVPNConnectionRouteRequest'
      responses:
        '201':
          description: Route created.
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
    delete:
      operationId: DeleteVPNConnectionRoute
      summary: Delete a VPN connection route
      description: Deletes a VPN Connection Route.
      requestBody:
        $ref: '#/components/requestBodies/DeleteVPNConnectionRouteRequest'
      responses:
        '204':
          description: No content.
        '400':
          $ref: '#/components/responses/ConnectivityBadRequest400Response'
        '401':
          $ref: '#/components/responses/ConnectivityUnauthorized401Response'
        '404':
          $ref: '#/components/responses/ConnectivityNotFound404Response'
        '409':
          $ref: '#/components/responses/ConnectivityConflict409Response'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Connectivity
  '/iam/organisations/{organisationId}/roles':
    get:
      operationId: ListRolesOrganisation
      summary: List all roles for an organisation
      description: List roles
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/RoleName'
        - $ref: '#/components/parameters/ListRolesPage'
      responses:
        '200':
          $ref: '#/components/responses/ListRoles200Response'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/roles/{roleUuid}':
    get:
      operationId: GetRoleOrganisation
      summary: Retrieve a specific role for an organisation
      description: Get role
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/RoleUuid'
      responses:
        '200':
          $ref: '#/components/responses/GetRole200Response'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Role not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/roles/{roleUuid}/permissions':
    get:
      operationId: GetRolePermissionsOrganisation
      summary: Retrieve permissions assigned to a specific role
      description: Get a role's permissions
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/RoleUuid'
        - $ref: '#/components/parameters/ListRolePermissionsPage'
      responses:
        '200':
          $ref: '#/components/responses/GetRolePermissions200Response'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Role not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/permissions':
    get:
      operationId: ListPermissionsOrganisation
      summary: List all permissions for an organisation
      description: List permissions
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/Service'
        - $ref: '#/components/parameters/Resource'
        - $ref: '#/components/parameters/SubResource'
        - $ref: '#/components/parameters/Action'
        - $ref: '#/components/parameters/ListPermissionsPage'
      responses:
        '200':
          $ref: '#/components/responses/ListPermissions200Response'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/permissions/{permissionUuid}':
    get:
      operationId: GetPermissionOrganisation
      summary: Retrieve a specific permission for an organisation
      description: Get permission
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/PermissionUuid'
      responses:
        '200':
          $ref: '#/components/responses/GetPermission200Response'
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Permission not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/serviceAccounts/{serviceAccountId}/bulk/acl':
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/ServiceAccountId'
    post:
      operationId: CreateACLServiceAccountOrganisationBulk
      summary: Create ACLs in bulk for a service account
      description: Create an ACLs between a subject and a resource.
      requestBody:
        $ref: '#/components/requestBodies/SetACLRequest'
      responses:
        '201':
          description: acl created.
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    delete:
      operationId: DeleteACLServiceAccountOrganisationBulk
      summary: Delete ACLs in bulk for a service account
      description: delete an ACLs between a subject and a resource.
      requestBody:
        $ref: '#/components/requestBodies/DeleteACLRequest'
      responses:
        '204':
          description: acl deleted.
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/users/{userId}/bulk/acl':
    parameters:
      - $ref: '#/components/parameters/OrganisationId'
      - $ref: '#/components/parameters/UserId'
    post:
      operationId: CreateACLUserOrganisationBulk
      summary: Create ACLs in bulk for a user
      description: Create an ACLs between a subject and a resource.
      requestBody:
        $ref: '#/components/requestBodies/SetACLRequest'
      responses:
        '201':
          description: acl created.
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    delete:
      operationId: DeleteACLUserOrganisationBulk
      summary: Delete ACLs in bulk for a user
      description: delete an ACLs between a subject and a resource.
      requestBody:
        $ref: '#/components/requestBodies/DeleteACLRequest'
      responses:
        '204':
          description: acl deleted.
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/serviceAccounts/{serviceAccountId}/acl':
    get:
      operationId: GetACLServiceAccountOrganisation
      summary: Retrieve ACLs assigned to a service account
      description: Retrieve the ACLs assigned to a specific subject for a specific object type.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ServiceAccountId'
        - $ref: '#/components/parameters/ListPolicyPage'
        - name: service
          in: query
          required: true
          schema:
            type: string
        - name: resource
          in: query
          required: true
          schema:
            type: string
        - name: subresource
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/GetACL200Response'
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/users/{userId}/acl':
    get:
      operationId: GetACLUserOrganisation
      summary: Retrieve ACLs assigned to a user
      description: Retrieve the ACLs assigned to a specific user for a specific object type.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/UserId'
        - $ref: '#/components/parameters/ListPolicyPage'
        - name: service
          in: query
          required: true
          schema:
            type: string
        - name: resource
          in: query
          required: true
          schema:
            type: string
        - name: subresource
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/GetACL200Response'
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/iampolicy/{subjectType}/{subjectId}':
    get:
      operationId: GetIAMPolicyOrganisation
      summary: Retrieve IAM policy for a subject
      description: Retrieve the policy assigned to a specific subject
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/SubjectTypeParam'
        - $ref: '#/components/parameters/SubjectId'
      responses:
        '200':
          $ref: '#/components/responses/GetIAMPolicy200Response'
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    patch:
      operationId: SetIAMPolicyOrganisation
      summary: Modify IAM policy for a subject
      description: 'Modify the IAM policy by adding or removing roles and permissions. If the policy does not exist, it will be implicitly created'
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/SubjectTypeParam'
        - $ref: '#/components/parameters/SubjectId'
      requestBody:
        $ref: '#/components/requestBodies/SetIAMPolicyRequest'
      responses:
        '204':
          description: policy set
        '400':
          description: Bad request. Invalid input provided.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Subject not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/roles':
    get:
      operationId: ListRolesSpace
      summary: Retrieve all roles in a space
      description: List roles
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/RoleName'
        - $ref: '#/components/parameters/ListRolesPage'
      responses:
        '200':
          $ref: '#/components/responses/ListRoles200Response'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/roles/{roleUuid}':
    get:
      operationId: GetRoleSpace
      summary: Retrieve a specific role by UUID
      description: Get role
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/RoleUuid'
      responses:
        '200':
          $ref: '#/components/responses/GetRole200Response'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Role not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/roles/{roleUuid}/permissions':
    get:
      operationId: GetRolePermissionsSpace
      summary: List all permissions associated with a role
      description: Get a role's permissions
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/RoleUuid'
        - $ref: '#/components/parameters/ListRolePermissionsPage'
      responses:
        '200':
          $ref: '#/components/responses/GetRolePermissions200Response'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Role not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/permissions':
    get:
      operationId: ListPermissionsSpace
      summary: Retrieve all permissions in a space
      description: List permissions
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/Service'
        - $ref: '#/components/parameters/Resource'
        - $ref: '#/components/parameters/SubResource'
        - $ref: '#/components/parameters/Action'
        - $ref: '#/components/parameters/ListPermissionsPage'
      responses:
        '200':
          $ref: '#/components/responses/ListPermissions200Response'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/permissions/{permissionUuid}':
    get:
      operationId: GetPermissionSpace
      summary: Retrieve a specific permission by UUID
      description: Get permission
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/PermissionUuid'
      responses:
        '200':
          $ref: '#/components/responses/GetPermission200Response'
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Permission not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/serviceAccounts/{serviceAccountId}/bulk/acl':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/ServiceAccountId'
    post:
      operationId: CreateACLServiceAccountSpaceBulk
      summary: Create access control lists for a service account
      description: Create an ACLs between a subject and a resource.
      requestBody:
        $ref: '#/components/requestBodies/SetACLRequest'
      responses:
        '201':
          description: acl created.
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    delete:
      operationId: DeleteACLServiceAccountSpaceBulk
      summary: Remove access control lists from a service account
      description: delete an ACLs between a subject and a resource.
      requestBody:
        $ref: '#/components/requestBodies/DeleteACLRequest'
      responses:
        '204':
          description: acl deleted.
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/users/{userId}/bulk/acl':
    parameters:
      - $ref: '#/components/parameters/SpaceId'
      - $ref: '#/components/parameters/UserId'
    post:
      operationId: CreateACLUserSpaceBulk
      summary: Create access control lists for a user
      description: Create an ACLs between a subject and a resource.
      requestBody:
        $ref: '#/components/requestBodies/SetACLRequest'
      responses:
        '201':
          description: acl created.
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    delete:
      operationId: DeleteACLUserSpaceBulk
      summary: Remove access control lists from a user
      description: delete an ACLs between a subject and a resource.
      requestBody:
        $ref: '#/components/requestBodies/DeleteACLRequest'
      responses:
        '204':
          description: acl deleted.
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/serviceAccounts/{serviceAccountId}/acl':
    get:
      operationId: GetACLServiceAccountSpace
      summary: List access control lists for a service account
      description: Retrieve the ACLs assigned to a specific subject for a specific object type.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ServiceAccountId'
        - $ref: '#/components/parameters/ListPolicyPage'
        - name: service
          in: query
          required: true
          schema:
            type: string
        - name: resource
          in: query
          required: true
          schema:
            type: string
        - name: subresource
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/GetACL200Response'
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/users/{userId}/acl':
    get:
      operationId: GetACLUserSpace
      summary: List access control lists for a user
      description: Retrieve the ACLs assigned to a specific subject for a specific object type.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/UserId'
        - $ref: '#/components/parameters/ListPolicyPage'
        - name: service
          in: query
          required: true
          schema:
            type: string
        - name: resource
          in: query
          required: true
          schema:
            type: string
        - name: subresource
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/GetACL200Response'
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/iampolicy/{subjectType}/{subjectId}':
    get:
      operationId: GetIAMPolicySpace
      summary: Retrieve IAM policy for a subject
      description: Retrieve the policy assigned to a specific subject
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/SubjectTypeParam'
        - $ref: '#/components/parameters/SubjectId'
      responses:
        '200':
          $ref: '#/components/responses/GetIAMPolicy200Response'
        '400':
          description: Invalid role
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No IAM policy found for the given subject.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    patch:
      operationId: SetIAMPolicySpace
      summary: Update or create IAM policy for a subject
      description: 'Modify the IAM policy by adding or removing roles and permissions. If the policy does not exist, it will be implicitly created'
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/SubjectTypeParam'
        - $ref: '#/components/parameters/SubjectId'
      requestBody:
        $ref: '#/components/requestBodies/SetIAMPolicyRequest'
      responses:
        '204':
          description: policy set
        '400':
          description: Bad request. Invalid input provided.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthenticated
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Subject not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  /iam/authorize:
    get:
      operationId: Authorize
      summary: Process User Authorization Requests
      description: The endpoint is used to process user authorization requests.
      parameters:
        - $ref: '#/components/parameters/ClientId'
        - $ref: '#/components/parameters/RedirectUri'
        - $ref: '#/components/parameters/ResponseType'
        - $ref: '#/components/parameters/Scope'
        - $ref: '#/components/parameters/State'
        - $ref: '#/components/parameters/CodeChallenge'
        - $ref: '#/components/parameters/CodeChallengeMethod'
      responses:
        '302':
          description: Redirection to the redirect URI with the authorization code.
        '400':
          description: Malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
        '401':
          description: Unauthorized client
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
        '500':
          description: Internal Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
      tags:
        - Identity Access Management
  /iam/consent:
    get:
      operationId: Consent
      summary: Process Authentication Consent
      description: The endpoint is used to process consent for authentication flow.
      parameters:
        - $ref: '#/components/parameters/ConsentChallenge'
      responses:
        '302':
          description: Redirection to the redirect URI with the consent_verifier.
        '500':
          description: Internal server error
      tags:
        - Identity Access Management
  /iam/token:
    post:
      operationId: Token
      summary: Generate Access Token
      description: Generate an access token
      parameters:
        - $ref: '#/components/parameters/Authorization'
      requestBody:
        $ref: '#/components/requestBodies/TokenRequest'
      responses:
        '200':
          $ref: '#/components/responses/Token200Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
        '500':
          description: Internal Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
      security: []
      tags:
        - Identity Access Management
  /iam/token/convert:
    put:
      operationId: ConvertToken
      summary: Convert Token to Access Key and Secret Key
      description: 'This component is a front-end REST api for Numspot S3 service, convert given token to AK SK'
      requestBody:
        $ref: '#/components/requestBodies/ConvertTokenRequest'
      responses:
        '200':
          $ref: '#/components/responses/ConvertToken200Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
        '500':
          description: Internal Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
      security: []
      tags:
        - Identity Access Management
  /iam/revoke:
    post:
      operationId: Revoke
      summary: Revoke Access Token
      description: Revoking an access token means that the tokens will be invalid. A revoked access token can n longer be used to make access requests.
      parameters:
        - $ref: '#/components/parameters/Authorization'
      requestBody:
        $ref: '#/components/requestBodies/RevokeRequest'
      responses:
        '200':
          description: Token revoked successfully
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
      security:
        - BasicAuth: []
      tags:
        - Identity Access Management
  /iam/introspect:
    post:
      operationId: Introspect
      summary: Check Token Status
      description: The introspection endpoint allows to check if a token (both refresh and access) is active or not. An active token is neither expired nor revoked.
      requestBody:
        $ref: '#/components/requestBodies/IntrospectRequest'
      responses:
        '200':
          $ref: '#/components/responses/Introspect200Response'
        '500':
          description: Internal Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
      tags:
        - Identity Access Management
  /iam/.well-known/jwks.json:
    get:
      operationId: JsonWebKeys
      summary: Get JSON Web Keys
      description: This endpoint returns JSON Web Keys required to verifying OpenID Connect ID Tokens.
      responses:
        '200':
          $ref: '#/components/responses/JsonWebKeys200Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
      tags:
        - Identity Access Management
  /iam/.well-known/openid-configuration:
    get:
      operationId: DiscoverOidcConfiguration
      summary: Discover OpenID Connect Configuration
      description: 'A mechanism for an OpenID Connect Relying Party to discover the End-User''s OpenID Provider and obtain information needed to interact with it, including its OAuth 2.0 endpoint locations.'
      responses:
        '200':
          description: oidcConfiguration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OidcConfiguration'
        default:
          description: ErrorOauth2
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
      tags:
        - Identity Access Management
  /iam/.well-known/webauthn.js:
    get:
      operationId: GetWebAuthnJavaScript
      summary: Get WebAuthn JavaScript
      description: This endpoint provides JavaScript which is needed in order to perform WebAuthn login and registration.
      responses:
        '200':
          $ref: '#/components/responses/GetWebAuthnJavaScript200Response'
      tags:
        - Identity Access Management
  /iam/userinfo:
    get:
      operationId: GetUserInfo
      summary: Get User Information
      description: get user info
      parameters:
        - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          $ref: '#/components/responses/GetUserInfo200Response'
        default:
          description: default oidc error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOauth2'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/errors:
    get:
      operationId: GetFlowError
      summary: Get User-Flow Errors
      description: This endpoint returns the error associated with a user-facing self service errors.
      parameters:
        - name: id
          in: query
          description: Error is the error's ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: flowError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowError'
        '403':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '404':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '500':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/login:
    post:
      operationId: UpdateLoginFlow
      summary: Submit a Login Flow
      description: |-
        Use this endpoint to complete a login flow. This endpoint
        behaves differently for API and browser flows.

        API flows expect `application/json` to be sent in the body and responds with
        HTTP 200 and a application/json body with the session token on success;
        HTTP 410 if the original flow expired with the appropriate error messages set and optionally a `use_flow_id` parameter in the body;
        HTTP 400 on form validation errors.

        Browser flows expect a Content-Type of `application/x-www-form-urlencoded` or `application/json` to be sent in the body and respond with
        a HTTP 303 redirect to the post/after login URL or the `return_to` value if it was set and if the login succeeded;
        a HTTP 303 redirect to the login UI URL with the flow ID containing the validation errors otherwise.

        Browser flows with an accept header of `application/json` will not redirect but instead respond with
        HTTP 200 and a application/json body with the signed in identity and a `Set-Cookie` header on success;
        HTTP 303 redirect to a fresh login flow if the original flow expired with the appropriate error messages set;
        HTTP 400 on form validation errors.

        If this endpoint is called with `Accept: application/json` in the header, the response contains the flow without a redirect. In the
        case of an error, the `error.id` of the JSON response body can be one of:

        `session_already_available`: The user is already signed in.
        `security_csrf_violation`: Unable to fetch the flow because a CSRF violation occurred.
        `security_identity_mismatch`: The requested `?return_to` address is not allowed to be used. Adjust this in the configuration!
        `browser_location_change_required`: Usually sent when an AJAX request indicates that the browser needs to open a specific URL.
        Most likely used in Social Sign In flows.
      parameters:
        - name: flow
          in: query
          description: |-
            The Login Flow ID
            The value for this parameter comes from `flow` URL Query parameter sent to your application (`/login?flow=abcde`).
          required: true
          schema:
            type: string
        - name: X-Session-Token
          in: header
          description: The Session Token of the Identity performing the settings flow.
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies
            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateLoginFlowBody'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateLoginFlowBody'
        x-originalParamName: Body
      responses:
        '200':
          description: successfulNativeLogin
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessfulNativeLogin'
        '303':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        '400':
          description: LoginFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginFlow'
        '410':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '422':
          description: errorBrowserLocationChangeRequired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBrowserLocationChangeRequired'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/login/browser:
    get:
      operationId: CreateBrowserLoginFlow
      summary: Create Login Flow for Browsers
      description: |-
        This endpoint initializes a browser-based user login flow. This endpoint will set the appropriate
        cookies and anti-CSRF measures required for browser-based flows.
        If this endpoint is opened as a link in the browser, it will be redirected to
        `selfservice.flows.login.ui_url` with the flow ID set as the query parameter `?flow=`. If a valid user session
        exists already, the browser will be redirected to `urls.default_redirect_url` unless the query parameter
        `?refresh=true` was set.
        If this endpoint is called via an AJAX request, the response contains the flow without a redirect. In the
        case of an error, the `error.id` of the JSON response body can be one of:
        `session_already_available`: The user is already signed in.
        `session_aal1_required`: Multi-factor auth (e.g. 2fa) was requested but the user has no session yet.
        `security_csrf_violation`: Unable to fetch the flow because a CSRF violation occurred.
        `security_identity_mismatch`: The requested `?return_to` address is not allowed to be used. Adjust this in the configuration!
        This endpoint is NOT INTENDED for clients that do not have a browser (Chrome, Firefox, ...) as cookies are needed.
      parameters:
        - name: refresh
          in: query
          description: |-
            Refresh a login session

            If set to true, this will refresh an existing login session by
            asking the user to sign in again. This will reset the
            authenticated_at time of the session.
          schema:
            type: boolean
        - name: aal
          in: query
          description: |-
            Request a Specific AuthenticationMethod Assurance Level

            Use this parameter to upgrade an existing session's authenticator assurance level (AAL). This
            allows you to ask for multi-factor authentication. When an identity sign in using e.g. username+password,
            the AAL is 1. If you wish to "upgrade" the session's security by asking the user to perform TOTP / WebAuth/ ...
            you would set this to "aal2".
          schema:
            type: string
        - name: return_to
          in: query
          description: The URL to return the browser to after the flow was completed.
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies

            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
        - name: login_challenge
          in: query
          description: The value for this parameter comes from `login_challenge` URL Query parameter sent to your application.
          schema:
            type: string
        - name: organization
          in: query
          description: |-
            An optional organization ID that should be used for logging this user in.
            This parameter is only effective in the  Network.
          schema:
            type: string
      responses:
        '200':
          description: LoginFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginFlow'
        '303':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        '400':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/login/flows:
    get:
      operationId: GetLoginFlow
      summary: Get Login Flow
      description: |-
        This endpoint returns a login flow's context with, for example, error details and other information.
        Browser flows expect the anti-CSRF cookie to be included in the request's HTTP Cookie Header.
        For AJAX requests you must ensure that cookies are included in the request or requests will fail.
        If you use the browser-flow for server-side apps, the services need to run on a common top-level-domain
        and you need to forward the incoming HTTP Cookie header to this endpoint:

        ```js
        pseudo-code example
        router.get('/login', async function (req, res) {
        const flow = await client.getLoginFlow(req.header('cookie'), req.query['flow'])

        res.render('login', flow)
        })
        ```

        This request may fail due to several reasons. The `error.id` can be one of:

        `session_already_available`: The user is already signed in.
        `self_service_flow_expired`: The flow is expired and you should request a new one.
      parameters:
        - name: id
          in: query
          description: |-
            The Login Flow ID

            The value for this parameter comes from `flow` URL Query parameter sent to your
            application (e.g. `/login?flow=abcde`).
          required: true
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies
            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
      responses:
        '200':
          description: LoginFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginFlow'
        '403':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '404':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '410':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/logout:
    get:
      operationId: UpdateLogoutFlow
      summary: Update Logout Flow
      description: |-
        This endpoint logs out an identity in a self-service manner.

        If the `Accept` HTTP header is not set to `application/json`, the browser will be redirected (HTTP 303 See Other)
        to the `return_to` parameter of the initial request or fall back to `urls.default_return_to`.

        If the `Accept` HTTP header is set to `application/json`, a 204 No Content response
        will be sent on successful logout instead.

        This endpoint is NOT INTENDED for API clients and only works
        with browsers (Chrome, Firefox, ...). For API clients you can
        call the `/self-service/logout/api` URL directly with the  Session Token.
      parameters:
        - name: token
          in: query
          description: |-
            A Valid Logout Token
            If you do not have a logout token because you only have a session cookie,
            call `/self-service/logout/browser` to generate a URL for this endpoint.
          schema:
            type: string
        - name: return_to
          in: query
          description: The URL to return to after the logout was completed.
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies

            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
      responses:
        '204':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        '303':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/recovery:
    post:
      operationId: UpdateRecoveryFlow
      summary: Update Recovery Flow
      description: |-
        Use this endpoint to update a recovery flow. This endpoint
        behaves differently for API and browser flows and has several states:
        `choose_method` expects `flow` (in the URL query) and `email` (in the body) to be sent
        and works with API- and Browser-initiated flows.
        For API clients and Browser clients with HTTP Header `Accept: application/json` it either returns a HTTP 200 OK when the form is valid and HTTP 400 OK when the form is invalid.
        and a HTTP 303 See Other redirect with a fresh recovery flow if the flow was otherwise invalid (e.g. expired).
        For Browser clients without HTTP Header `Accept` or with `Accept: text/*` it returns a HTTP 303 See Other redirect to the Recovery UI URL with the Recovery Flow ID appended.
        `sent_email` is the success state after `choose_method` for the `link` method and allows the user to request another recovery email. It
        works for both API and Browser-initiated flows and returns the same responses as the flow in `choose_method` state.
        `passed_challenge` expects a `token` to be sent in the URL query and given the nature of the flow ("sending a recovery link")
        does not have any API capabilities. The server responds with a HTTP 303 See Other redirect either to the Settings UI URL
        (if the link was valid) and instructs the user to update their password, or a redirect to the Recover UI URL with
        a new Recovery Flow ID which contains an error message that the recovery link was invalid.
      parameters:
        - name: flow
          in: query
          description: |-
            The Recovery Flow ID

            The value for this parameter comes from `flow` URL Query parameter sent to your
            application (e.g. `/recovery?flow=abcde`).
          required: true
          schema:
            type: string
        - name: token
          in: query
          description: |-
            Recovery Token
            The recovery token which completes the recovery request. If the token
            is invalid (e.g. expired) an error will be shown to the end-user.
            This parameter is usually set in a link and not used by any direct API call.
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies
            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRecoveryFlowBody'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateRecoveryFlowBody'
        x-originalParamName: Body
      responses:
        '200':
          description: RecoveryFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecoveryFlow'
        '303':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        '400':
          description: RecoveryFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecoveryFlow'
        '410':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '422':
          description: errorBrowserLocationChangeRequired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBrowserLocationChangeRequired'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
    get:
      operationId: InitRecoveryFlow
      summary: Update Recovery Flow
      description: Init recovery flow
      parameters:
        - name: flow
          in: query
          description: recovery flowId
          required: true
          schema:
            type: string
        - name: token
          in: query
          description: |-
            Recovery Token
            The recovery token which completes the recovery request. If the token
            is invalid (e.g. expired) an error will be shown to the end-user.
            This parameter is usually set in a link and not used by any direct API call.
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies
            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
      responses:
        '200':
          description: RecoveryFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecoveryFlow'
        '302':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        '303':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        '400':
          description: RecoveryFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecoveryFlow'
        '410':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '422':
          description: errorBrowserLocationChangeRequired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBrowserLocationChangeRequired'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/recovery/browser:
    get:
      operationId: CreateBrowserRecoveryFlow
      summary: Create Recovery Flow for Browsers
      description: |-
        This endpoint initializes a browser-based account recovery flow. Once initialized, the browser will be redirected to
        `selfservice.flows.recovery.ui_url` with the flow ID set as the query parameter `?flow=`. If a valid user session
        exists, the browser is returned to the configured return URL.
        If this endpoint is called via an AJAX request, the response contains the recovery flow without any redirects
        or a 400 bad request error if the user is already authenticated.
        This endpoint is NOT INTENDED for clients that do not have a browser (Chrome, Firefox, ...) as cookies are needed.
      parameters:
        - name: return_to
          in: query
          description: The URL to return the browser to after the flow was completed.
          schema:
            type: string
      responses:
        '200':
          description: RecoveryFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecoveryFlow'
        '303':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        '400':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/recovery/flows:
    get:
      operationId: GetRecoveryFlow
      summary: Get Recovery Flow
      description: |-
        This endpoint returns a recovery flow's context with, for example, error details and other information.
        Browser flows expect the anti-CSRF cookie to be included in the request's HTTP Cookie Header.
        For AJAX requests you must ensure that cookies are included in the request or requests will fail.
        If you use the browser-flow for server-side apps, the services need to run on a common top-level-domain
        and you need to forward the incoming HTTP Cookie header to this endpoint:
        ```js
        pseudo-code example
        router.get('/recovery', async function (req, res) {
        const flow = await client.getRecoveryFlow(req.header('Cookie'), req.query['flow'])

        res.render('recovery', flow)
        })
        ```
      parameters:
        - name: id
          in: query
          description: |-
            The Flow ID
            The value for this parameter comes from `request` URL Query parameter sent to your application (`/recovery?flow=abcde`).
          required: true
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies

            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
      responses:
        '200':
          description: RecoveryFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecoveryFlow'
        '404':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '410':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/settings:
    post:
      operationId: UpdateSettingsFlo
      summary: Complete Settings Flow
      description: |-
        Use this endpoint to complete a settings flow by sending an identity's updated password.This endpoint behaves differently for API and browser flows.
        API-initiated flows expect `application/json` to be sent in the body and respond with
        HTTP 200 and an application/json body with the session token on success;
        HTTP 303 redirect to a fresh settings flow if the original flow expired with the appropriate error messages set;
        HTTP 400 on form validation errors.
        HTTP 401 when the endpoint is called without a valid session token.
        HTTP 403 when `selfservice.flows.settings.privileged_session_max_age` was reached or the session's AAL is too low.
        Implies that the user needs to re-authenticate.
        Browser flows without HTTP Header `Accept` or with `Accept: text/*` respond with
        a HTTP 303 redirect to the post/after settings URL or the `return_to` value if it was set and if the flow succeeded;
        a HTTP 303 redirect to the Settings UI URL with the flow ID containing the validation errors otherwise.
        a HTTP 303 redirect to the login endpoint when `selfservice.flows.settings.privileged_session_max_age` was reached or the session's AAL is too low.
        Browser flows with HTTP Header `Accept: application/json` respond with
        HTTP 200 and a application/json body with the signed in identity and a `Set-Cookie` header on success;
        HTTP 303 redirect to a fresh login flow if the original flow expired with the appropriate error messages set;
        HTTP 401 when the endpoint is called without a valid session cookie.
        HTTP 403 when the page is accessed without a session cookie or the session's AAL is too low.
        HTTP 400 on form validation errors.
        Depending on your configuration this endpoint might return a 403 error if the session has a lower Authenticator
        Assurance Level (AAL) than is possible for the identity. This can happen if the identity has password + webauthn
        credentials (which would result in AAL2) but the session has only AAL1. If this error occurs, ask the user
        to sign in with the second factor (happens automatically for server-side browser flows) or change the configuration.
        If this endpoint is called with a `Accept: application/json` HTTP header, the response contains the flow without a redirect. In the
        case of an error, the `error.id` of the JSON response body can be one of:
        `session_refresh_required`: The identity requested to change something that needs a privileged session. Redirect
        the identity to the login init endpoint with query parameters `?refresh=true&return_to=<the-current-browser-url>`,
        or initiate a refresh login flow otherwise.
        `security_csrf_violation`: Unable to fetch the flow because a CSRF violation occurred.
        `session_inactive`: No  Session was found - sign in a user first.
        `security_identity_mismatch`: The flow was interrupted with `session_refresh_required` but apparently some other
        identity logged in instead.
        `security_identity_mismatch`: The requested `?return_to` address is not allowed to be used. Adjust this in the configuration!
        `browser_location_change_required`: Usually sent when an AJAX request indicates that the browser needs to open a specific URL.
        Most likely used in Social Sign In flows.
      parameters:
        - name: flow
          in: query
          description: |-
            The Settings Flow ID
            The value for this parameter comes from `flow` URL Query parameter sent to your application (e.g. `/settings?flow=abcde`).
          required: true
          schema:
            type: string
        - name: X-Session-Token
          in: header
          description: The Session Token of the Identity performing the settings flow.
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies

            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSettingsFlowBody'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateSettingsFlowBody'
        x-originalParamName: Body
      responses:
        '200':
          description: settingsFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsFlow'
        '303':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        '400':
          description: settingsFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsFlow'
        '401':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '403':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '410':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '422':
          description: errorBrowserLocationChangeRequired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBrowserLocationChangeRequired'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      security: []
      tags:
        - Identity Access Management
  /iam/frontend/self-service/settings/flows:
    get:
      operationId: GetSettingsFlow
      summary: Get Settings Flow
      description: |-
        When accessing this endpoint, you must ensure that either the Session Cookie or the Session Token are set.
        Depending on your configuration this endpoint might return a 403 error if the session has a lower Authenticator
        Assurance Level (AAL) than is possible for the identity. This can happen if the identity has password + webauthn
        credentials (which would result in AAL2) but the session has only AAL1. If this error occurs, ask the user
        to sign in with the second factor or change the configuration.
        If this endpoint is called via an AJAX request, the response contains the flow without a redirect. In the case of an error, the `error.id` of the JSON response body can be one of:
        `security_csrf_violation`: Unable to fetch the flow because a CSRF violation occurred.
        `session_inactive`: No  Session was found - sign in a user first.
        `security_identity_mismatch`: The flow was interrupted with `session_refresh_required` but apparently some other identity logged in instead.
      parameters:
        - name: id
          in: query
          description: |-
            ID is the Settings Flow ID

            The value for this parameter comes from `flow` URL Query parameter sent to your
            application (e.g. `/settings?flow=abcde`).
          required: true
          schema:
            type: string
        - name: X-Session-Token
          in: header
          description: |-
            The Session Token

            When using the SDK in an app without a browser, please include the
            session token here.
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies

            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
      responses:
        '200':
          description: settingsFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsFlow'
        '401':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '403':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '404':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '410':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/sessions/whoami:
    get:
      operationId: ToSession
      summary: Check Who the Current HTTP Session Belongs To
      description: |-
        Uses the HTTP Headers in the GET request to determine (e.g. by using checking the cookies) who is authenticated.
        Returns a session object in the body or 401 if the credentials are invalid or no credentials were sent.
        If you call this endpoint from a server-side application, you must forward the HTTP Cookie Header to this endpoint:

        ```js
        pseudo-code example
        router.get('/protected-endpoint', async function (req, res) {
        const session = await client.toSession(undefined, req.header('cookie'))

        console.log(session)
        })
        ```

        When calling this endpoint from a non-browser application (e.g. mobile app) you must include the session token:

        ```js
        pseudo-code example
        ...
        const session = await client.toSession("the-session-token")

        console.log(session)
        ```

        When using a token template, the token is included in the `tokenized` field of the session.

        ```js
        pseudo-code example
        ...
        const session = await client.toSession("the-session-token", { tokenize_as: "example-jwt-template" })

        console.log(session.tokenized) // The JWT
        ```

        Depending on your configuration this endpoint might return a 403 status code if the session has a lower Authenticator
        Assurance Level (AAL) than is possible for the identity. This can happen if the identity has password + webauthn
        credentials (which would result in AAL2) but the session has only AAL1. If this error occurs, ask the user
        to sign in with the second factor or change the configuration.

        This endpoint is useful for:

        AJAX calls. Remember to send credentials and set up CORS correctly!
        Reverse proxies and API Gateways
        Server-side calls - use the `X-Session-Token` header!

        This endpoint authenticates users by checking:

        if the `Cookie` HTTP header was set containing a Session Cookie;
        if the `Authorization: bearer <session-token>` HTTP header was set with a valid Session Token;
        if the `X-Session-Token` HTTP header was set with a valid Session Token.

        If none of these headers are set or the cookie or token are invalid, the endpoint returns a HTTP 401 status code.

        As explained above, this request may fail due to several reasons. The `error.id` can be one of:

        `session_inactive`: No active session was found in the request (no
         Session Cookie /  Session Token).

        `session_aal2_required`: An active session was found but it does not fulfil the Authenticator Assurance Level, implying that the session must authenticate the second factor.
      parameters:
        - name: X-Session-Token
          in: header
          description: Set the Session Token when calling from non-browser clients.
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            Set the Cookie Header. This is especially useful when calling this endpoint from a server-side application. In that
            scenario you must include the HTTP Cookie Header which originally was included in the request to your server.
            It is ok if more than one cookie are included here as all other cookies will be ignored.
          schema:
            type: string
        - name: tokenize_as
          in: query
          description: 'Returns the session additionally as a token (such as a JWT). The value of this parameter has to be a valid, configured Session token template.'
          schema:
            type: string
      responses:
        '200':
          description: session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Session'
        '401':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '403':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/settings/browser:
    get:
      operationId: CreateBrowserSettingsFlow
      summary: Create Settings Flow for Browsers
      description: |-
        This endpoint initializes a browser-based user settings flow. Once initialized, the browser will be redirected to
        `selfservice.flows.settings.ui_url` with the flow ID set as the query parameter `?flow=`. If no valid
        Session Cookie is included in the request, a login flow will be initialized.
        If this endpoint is opened as a link in the browser, it will be redirected to
        `selfservice.flows.settings.ui_url` with the flow ID set as the query parameter `?flow=`. If no valid user session was set, the browser will be redirected to the login endpoint.
        If this endpoint is called via an AJAX request, the response contains the settings flow without any redirects or a 401 forbidden error if no valid session was set.
        Depending on your configuration this endpoint might return a 403 error if the session has a lower Authenticator
        Assurance Level (AAL) than is possible for the identity. This can happen if the identity has password + webauthn
        credentials (which would result in AAL2) but the session has only AAL1. If this error occurs, ask the user
        to sign in with the second factor (happens automatically for server-side browser flows) or change the configuration.

        If this endpoint is called via an AJAX request, the response contains the flow without a redirect. In the
        case of an error, the `error.id` of the JSON response body can be one of:
        `security_csrf_violation`: Unable to fetch the flow because a CSRF violation occurred.
        `session_inactive`: No  Session was found - sign in a user first.
        `security_identity_mismatch`: The requested `?return_to` address is not allowed to be used. Adjust this in the configuration!
        This endpoint is NOT INTENDED for clients that do not have a browser (Chrome, Firefox, ...) as cookies are needed.
      parameters:
        - name: return_to
          in: query
          description: The URL to return the browser to after the flow was completed.
          schema:
            type: string
        - name: Cookie
          in: header
          description: |-
            HTTP Cookies
            When using the SDK in a browser app, on the server side you must include the HTTP Cookie Header
            sent by the client to your server here. This ensures that CSRF and session cookies are respected.
          schema:
            type: string
      responses:
        '200':
          description: settingsFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsFlow'
        '303':
          description: 'Empty responses are sent when, for example, resources are deleted.'
        '400':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '401':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '403':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        default:
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  /iam/frontend/self-service/logout/browser:
    get:
      operationId: CreateBrowserLogoutFlow
      summary: Create a Logout URL for Browsers
      description: |-
        This endpoint initializes a browser-based user logout flow and a URL which can be used to log out the user.
        This endpoint is NOT INTENDED for API clients and only works
        with browsers (Chrome, Firefox, ...). For API clients you can
        call the `/self-service/logout/api` URL directly with the  Session Token.
        The URL is only valid for the currently signed in user. If no user is signed in, this endpoint returns
        a 401 error.
        When calling this endpoint from a backend, please ensure to properly forward the HTTP cookies.
      parameters:
        - name: cookie
          in: header
          description: |-
            HTTP Cookies

            If you call this endpoint from a backend, please include the
            original Cookie header in the request.
          schema:
            type: string
        - name: return_to
          in: query
          description: |-
            Return to URL

            The URL to which the browser should be redirected to after the logout
            has been performed.
          schema:
            type: string
      responses:
        '200':
          description: LogoutFlow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LogoutFlow'
        '400':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '401':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
        '500':
          description: errorGeneric
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorGeneric'
      tags:
        - Identity Access Management
  '/iam/admin/organisations/{organisationId}/spaces/{spaceId}/serviceAccounts':
    post:
      operationId: CreateAdminServiceAccountSpace
      summary: Create admin service account
      description: Create a new administrator service account.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/SpaceId'
      requestBody:
        $ref: '#/components/requestBodies/CreateServiceAccountRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateServiceAccount201Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  /iam/organisations:
    get:
      operationId: ListOrganisationsIdentity
      summary: List organisations for identity
      description: Get a list of organisations assigned to an identity.
      parameters:
        - $ref: '#/components/parameters/ListUserOrganisations'
      responses:
        '200':
          $ref: '#/components/responses/ListUserOrganisations200Response'
        '400':
          description: UUID in parameters are malformed. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: User or organisation not found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/spaces':
    get:
      operationId: ListSpacesIdentity
      summary: List spaces for identity in organisation
      description: Get a list of spaces assigned to an identity within an organisation.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ListSpacesIdentity'
      responses:
        '200':
          $ref: '#/components/responses/ListSpacesIdentity200Response'
        '400':
          description: UUID in parameters are malformed. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: User or organisation not found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/serviceAccounts':
    post:
      operationId: CreateServiceAccountOrganisation
      summary: Create service account in organisation
      description: Create a new service account.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
      requestBody:
        $ref: '#/components/requestBodies/CreateServiceAccountRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateServiceAccount201Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    get:
      operationId: ListServiceAccountOrganisation
      summary: List service accounts in organisation
      description: List an existing service account.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ListServiceAccounts'
      responses:
        '200':
          $ref: '#/components/responses/ListServiceAccount200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/match/serviceAccounts':
    get:
      operationId: MatchServiceAccountOrganisation
      summary: Match service account name with existing ones
      description: Match a service account's name with existing ones.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/RequiredAuthorization'
        - $ref: '#/components/parameters/ServiceAccountName'
      responses:
        '200':
          $ref: '#/components/responses/MatchServiceAccount200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/serviceAccounts/{serviceAccountId}':
    get:
      operationId: GetServiceAccountOrganisation
      summary: Get service account details
      description: Retrieve an existing service account.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ServiceAccountId'
      responses:
        '200':
          $ref: '#/components/responses/GetServiceAccount200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    put:
      operationId: UpdateServiceAccountOrganisation
      summary: Update service account
      description: Update an existing service account.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ServiceAccountId'
      requestBody:
        $ref: '#/components/requestBodies/UpdateServiceAccountRequest'
      responses:
        '200':
          $ref: '#/components/responses/UpdateServiceAccount200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    delete:
      operationId: DeleteServiceAccountOrganisation
      summary: Delete service account
      description: Delete an existing service account
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ServiceAccountId'
      responses:
        '204':
          description: Service account deleted
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/serviceAccounts/{serviceAccountId}/spaces':
    get:
      operationId: ListSpacesOfServiceAccount
      summary: List spaces assigned to service account
      description: Get a list of spaces assigned to a service account within an organisation.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ServiceAccountId'
        - $ref: '#/components/parameters/ListSpacesOfServiceAccount'
      responses:
        '200':
          $ref: '#/components/responses/ListSpacesServiceAccount200Response'
        '400':
          description: UUID in parameters are malformed. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: User or organisation not found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/serviceAccounts':
    post:
      operationId: CreateServiceAccountSpace
      summary: Create service account in space
      description: Create a new service account.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
      requestBody:
        $ref: '#/components/requestBodies/CreateServiceAccountRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateServiceAccount201Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    get:
      operationId: ListServiceAccountSpace
      summary: List service accounts in space
      description: List an existing service account.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ListServiceAccounts'
      responses:
        '200':
          $ref: '#/components/responses/ListServiceAccount200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/match/serviceAccounts':
    get:
      operationId: MatchServiceAccountSpace
      summary: Search service account by name in space
      description: Search for an existing service account by name.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/RequiredAuthorization'
        - $ref: '#/components/parameters/ServiceAccountName'
      responses:
        '200':
          $ref: '#/components/responses/MatchServiceAccount200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/serviceAccounts/{serviceAccountId}':
    get:
      operationId: GetServiceAccountSpace
      summary: Get service account details in space
      description: Retrieve an existing service account.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ServiceAccountId'
      responses:
        '200':
          $ref: '#/components/responses/GetServiceAccount200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    put:
      operationId: UpdateServiceAccountSpace
      summary: Update service account in space
      description: Update an existing service account.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ServiceAccountId'
      requestBody:
        $ref: '#/components/requestBodies/UpdateServiceAccountRequest'
      responses:
        '200':
          $ref: '#/components/responses/UpdateServiceAccount200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    delete:
      operationId: DeleteServiceAccountSpace
      summary: Delete service account in space
      description: Delete an existing service account
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ServiceAccountId'
      responses:
        '204':
          description: Service account deleted
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    post:
      operationId: AssignServiceAccountToSpace
      summary: Assign service account to space
      description: Assign a service account to a space within an organisation.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ServiceAccountId'
      responses:
        '200':
          description: Successfully assigned service account to space
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/users':
    post:
      operationId: CreateUserOrganisation
      summary: Create user in organisation
      description: Create a new user.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
      requestBody:
        $ref: '#/components/requestBodies/CreateUserRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateUser201Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    get:
      operationId: ListUserOrganisation
      summary: List users in organisation
      description: List users or get an existing user by email.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ListUser'
      responses:
        '200':
          $ref: '#/components/responses/ListUser200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/users/{userId}':
    get:
      operationId: GetUserOrganisation
      summary: Get user details
      description: Retrieve an existing user
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/UserId'
      responses:
        '200':
          $ref: '#/components/responses/GetUser200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    put:
      operationId: UpdateUserOrganisation
      summary: Update user
      description: Update an existing user
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/UserId'
      requestBody:
        $ref: '#/components/requestBodies/UpdateUserRequest'
      responses:
        '200':
          $ref: '#/components/responses/UpdateUser200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    patch:
      operationId: PatchUserStateOrganisation
      summary: Update user state
      description: Patch user state within an space.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/UserId'
      requestBody:
        $ref: '#/components/requestBodies/PatchUserStateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PatchUserState200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    delete:
      operationId: DeleteUserOrganisation
      summary: Delete user
      description: Delete an existing user
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/UserId'
      responses:
        '204':
          description: User deleted
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/match/users':
    get:
      operationId: GetUserOrganisationByEmail
      summary: Find user by email
      description: Get a user by email.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/RequiredAuthorization'
        - $ref: '#/components/parameters/UserEmail'
      responses:
        '200':
          $ref: '#/components/responses/GetUser200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/users/{userId}/spaces':
    get:
      operationId: ListSpacesOfUser
      summary: List spaces assigned to user
      description: Get a list of spaces assigned to a user within an organisation.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/UserId'
        - $ref: '#/components/parameters/ListSpacesOfUser'
      responses:
        '200':
          $ref: '#/components/responses/ListSpacesUser200Response'
        '400':
          description: UUID in parameters are malformed. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: User or organisation not found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/organisations/{organisationId}/users/{userId}/recover':
    post:
      operationId: RecoverUserOrganisation
      summary: Generate user recovery link
      description: Generate a recovery link to let the user set his password / totp
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/UserId'
      responses:
        '200':
          $ref: '#/components/responses/RecoverUser200Response'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/users':
    post:
      operationId: CreateUserSpace
      summary: Create a new user
      description: Create a new user.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
      requestBody:
        $ref: '#/components/requestBodies/CreateUserRequest'
      responses:
        '201':
          $ref: '#/components/responses/CreateUser201Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    get:
      operationId: ListUserSpace
      summary: List users or get an existing user by email
      description: List users or get an existing user by email.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/ListUser'
      responses:
        '200':
          $ref: '#/components/responses/ListUser200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/match/users':
    get:
      operationId: GetUserSpaceByEmail
      summary: Get a user by email
      description: Get a user by email.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/RequiredAuthorization'
        - $ref: '#/components/parameters/UserEmail'
      responses:
        '200':
          $ref: '#/components/responses/GetUser200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/users/{userId}':
    get:
      operationId: GetUserSpace
      summary: Retrieve an existing user
      description: Retrieve an existing user.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/UserId'
      responses:
        '200':
          $ref: '#/components/responses/GetUser200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    put:
      operationId: UpdateUserSpace
      summary: Update an existing user
      description: Update an existing user.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/UserId'
      requestBody:
        $ref: '#/components/requestBodies/UpdateUserRequest'
      responses:
        '200':
          $ref: '#/components/responses/UpdateUser200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    patch:
      operationId: PatchUserStateSpace
      summary: Patch user state within space
      description: Patch user state within space.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/UserId'
      requestBody:
        $ref: '#/components/requestBodies/PatchUserStateRequest'
      responses:
        '200':
          $ref: '#/components/responses/PatchUserState200Response'
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occurred during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    delete:
      operationId: UnassignUserSpace
      summary: Unassign an existing user
      description: Unassign an existing user.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/UserId'
      responses:
        '204':
          description: User unassigned
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    post:
      operationId: AssignUserToSpace
      summary: Assign a user to a space within an organisation
      description: Assign a user to a space within an organisation.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/UserId'
      responses:
        '200':
          description: Successfully assigned user to space
        '400':
          description: Bad request. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/spaces/{spaceId}/users/{userId}/recover':
    post:
      operationId: RecoverUserSpace
      summary: Generate a recovery link to let the user set his password / totp
      description: Generate a recovery link to let the user set his password / totp.
      parameters:
        - $ref: '#/components/parameters/SpaceId'
        - $ref: '#/components/parameters/UserId'
      responses:
        '200':
          $ref: '#/components/responses/RecoverUser200Response'
        '401':
          description: Unauthorized. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error. An error occured during the operation execution. See details in the error response
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/organisations/{organisationId}/spaces':
    post:
      operationId: CreateSpace
      summary: Create a new space within an organisation
      description: Create Space
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
      requestBody:
        $ref: '#/components/requestBodies/CreateSpaceRequest'
      responses:
        '200':
          $ref: '#/components/responses/CreateSpace200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    get:
      operationId: ListSpaces
      summary: Retrieve a list of all spaces within an organisation
      description: List spaces
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ListSpacesPage'
      responses:
        '200':
          $ref: '#/components/responses/ListSpaces200Response'
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/organisations/{organisationId}/spaces/{spaceId}':
    get:
      operationId: GetSpaceById
      summary: Retrieve details of a specific space
      description: Get Space
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/SpaceId'
      responses:
        '200':
          $ref: '#/components/responses/GetSpaceById200Response'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    patch:
      operationId: UpdateSpace
      summary: Modify an existing space's details
      description: Partially update a space
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/SpaceId'
      requestBody:
        $ref: '#/components/requestBodies/UpdateSpaceRequest'
      responses:
        '204':
          description: Space updated
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
    delete:
      operationId: DeleteSpace
      summary: Remove a space from an organisation
      description: Delete Space
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/SpaceId'
      responses:
        '204':
          description: Space deleted
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  /iam/me/organisations:
    get:
      operationId: ListOrganisationsMe
      summary: Retrieve organisations associated with the current user
      description: Get a list of organisations assigned to an identity.
      parameters:
        - $ref: '#/components/parameters/ListMeOrganisations'
      responses:
        '200':
          $ref: '#/components/responses/ListMeOrganisations200Response'
        '400':
          $ref: '#/components/responses/ListMeOrganisations400Response'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
  '/iam/me/organisations/{organisationId}/spaces':
    get:
      operationId: ListSpacesMe
      summary: Retrieve spaces accessible to the current user within an organisation
      description: Get a list of spaces assigned to an identity within an organisation.
      parameters:
        - $ref: '#/components/parameters/OrganisationId'
        - $ref: '#/components/parameters/ListMeSpaces'
      responses:
        '200':
          $ref: '#/components/responses/ListSpacesMe200Response'
        '400':
          $ref: '#/components/responses/ListSpacesMe400Response'
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '500':
          $ref: '#/components/responses/Error500'
      security:
        - BearerAuth: []
      tags:
        - Identity Access Management
components:
  parameters:
    Action:
      name: action
      description: action the permission allows to perform
      in: query
      required: false
      schema:
        type: string
        example: get
    Authorization:
      in: header
      name: Authorization
      required: false
      schema:
        type: string
      description: The client identifier.
    ClientId:
      name: client_id
      in: query
      required: false
      schema:
        type: string
        format: uuid
      description: The client identifier.
    ClusterId:
      name: clusterId
      description: Identifier of the Cluster
      in: path
      required: true
      schema:
        type: string
        format: uuid
    CodeChallenge:
      name: code_challenge
      description: The code challenge generated.
      in: query
      required: false
      schema:
        type: string
    CodeChallengeMethod:
      name: code_challenge_method
      description: 'Either plain or S256, depending on whether the challenge is the plain verifier string or the SHA256 hash of the string.'
      in: query
      required: false
      schema:
        type: string
    ConsentChallenge:
      name: consent_challenge
      in: query
      required: true
      description: token consent challenge
      schema:
        type: string
    KubernetesClusterPage:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        allOf:
          - $ref: '#/components/schemas/Page'
    ListMeOrganisations:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    ListMeSpaces:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    ListPermissionsPage:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
            nullable: true
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
            nullable: true
    ListPolicyPage:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 50
            maximum: 100
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    ListRolePermissionsPage:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
            nullable: true
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
            nullable: true
    ListRolesPage:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
            nullable: true
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
            nullable: true
    ListServiceAccounts:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    ListSpacesIdentity:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    ListSpacesOfServiceAccount:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    ListSpacesOfUser:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    ListSpacesPage:
      name: page
      in: query
      style: deepObject
      description: list spaces paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 30
            maximum: 50
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    ListUser:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    ListUserOrganisations:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 20
            maximum: 50
            minimum: 1
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    OpenShiftClusterId:
      name: clusterId
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Uuid'
    OpenShiftNodepoolName:
      name: nodePoolName
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/StrictLowerCaseSlugMax63'
    OpenShiftOperationStatuses:
      name: status
      in: query
      required: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/State'
    OpenShiftPage:
      name: page
      in: query
      style: deepObject
      description: Paginated request
      required: false
      schema:
        type: object
        properties:
          size:
            description: The maximum number of items to return. The service may return fewer than this value.
            type: integer
            format: int32
            default: 30
            maximum: 50
            minimum: 0
          nextToken:
            description: A page token received from a previous call. Provide this to retrieve the subsequent page.
            type: string
    OperationId:
      name: operationId
      description: Identifier of the Operation
      in: path
      required: true
      schema:
        type: string
        format: uuid
    OrganisationId:
      name: organisationId
      description: Identifier of the Organisation
      in: path
      required: true
      schema:
        type: string
        format: uuid
    PermissionUuid:
      name: permissionUuid
      description: Permission ID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    PostgresBackupIdParameter:
      name: backupId
      in: path
      description: Specify a Backup id.
      required: true
      schema:
        type: string
        format: uuid
    PostgresClusterIdParameter:
      name: clusterId
      in: path
      description: The unique identifier of a cluster.
      required: true
      schema:
        type: string
        format: uuid
    PostgresPageParameter:
      name: page
      in: query
      description: A page configuration.
      required: false
      style: deepObject
      schema:
        $ref: '#/components/schemas/PostgresPageParameter'
    PostgresTagsParameter:
      name: tag
      in: query
      description: Tag to filter on. Repeat to combine filters on several tags.
      required: false
      style: deepObject
      schema:
        $ref: '#/components/schemas/PostgresTagParameter'
    QueryClusterId:
      name: clusterId
      in: query
      required: false
      schema:
        type: string
    RedirectUri:
      name: redirect_uri
      in: query
      required: false
      schema:
        type: string
      description: The client's redirect URI.
    RequiredAuthorization:
      name: Authorization
      description: required authorization token
      in: header
      required: true
      schema:
        type: string
    Resource:
      name: resource
      description: resource the permission is related to
      in: query
      required: false
      schema:
        type: string
        example: bucket
    ResourceIdentifier:
      name: id
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Uuid'
    ResponseType:
      name: response_type
      in: query
      required: true
      schema:
        type: string
      description: The expected response type.
    RoleName:
      in: query
      name: name
      schema:
        type: string
        format: string
      description: Role name
    RoleUuid:
      name: roleUuid
      description: Role ID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    Scope:
      name: scope
      in: query
      required: false
      schema:
        type: string
      description: The requested scopes.
    Service:
      name: service
      description: service the permission is related to
      in: query
      required: false
      schema:
        type: string
        example: storageblock
    ServiceAccountId:
      in: path
      name: serviceAccountId
      required: true
      schema:
        type: string
        format: uuid
      description: Service account ID
    ServiceAccountName:
      in: query
      name: serviceAccountName
      required: true
      schema:
        type: string
        format: string
      description: Service account name
    SpaceId:
      name: spaceId
      description: Identifier of the Space
      in: path
      required: true
      schema:
        type: string
        format: uuid
    State:
      name: state
      in: query
      required: false
      schema:
        type: string
      description: An opaque value passed to the application after authentication.
    SubResource:
      name: subresource
      description: subresource the permission is related to
      in: query
      required: false
      schema:
        type: string
        example: object
    SubjectId:
      name: subjectId
      description: Identifier of the subject of the operation.
      in: path
      required: true
      schema:
        type: string
        format: uuid
    SubjectTypeParam:
      name: subjectType
      description: The Type of the Object holding or destined to hold an IAMPolicy
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/SubjectType'
    UserEmail:
      in: query
      name: email
      required: true
      schema:
        type: string
        format: email
      description: User email
    UserId:
      in: path
      name: userId
      required: true
      schema:
        type: string
        format: uuid
      description: User account ID
  schemas:
    Access:
      description: Permissions for the resource.
      type: object
      properties:
        isPublic:
          description: |-
            A global permission for all accounts.<br />
            (Request) Set this parameter to true to make the resource public (if the parent parameter is `Additions`) or to make the resource private (if the parent parameter is `Removals`).<br />
            (Response) If true, the resource is public. If false, the resource is private.
          type: boolean
          example: false
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Access
    AccessCreation:
      description: |-
        Information about the permissions for the resource.<br />
        Specify either the `Additions` or the `Removals` parameter.
      type: object
      properties:
        additions:
          $ref: '#/components/schemas/Access'
        removals:
          $ref: '#/components/schemas/Access'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: AccessCreation
    ApplicationStickyCookiePolicy:
      description: Information about the stickiness policy.
      type: object
      properties:
        cookieName:
          description: The name of the application cookie used for stickiness.
          type: string
          example: example-cookie
        policyName:
          description: The mnemonic name for the policy being created. The name must be unique within a set of policies for this load balancer.
          type: string
          example: example-app-policy
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ApplicationStickyCookiePolicy
    BackendVmHealth:
      description: Information about the health of a back-end VM.
      type: object
      properties:
        description:
          description: The description of the state of the back-end VM.
          type: string
          example: Instance registration is pending
        state:
          description: The state of the back-end VM (`InService` \| `OutOfService` \| `Unknown`).
          type: string
          example: DOWN
        stateReason:
          description: |-
            Information about the cause of `OutOfService` VMs.<br />
             Specifically, whether the cause is Elastic Load Balancing or the VM (`ELB` \| `Instance` \| `N/A`).
          type: string
          example: ELB
        vmId:
          description: The ID of the back-end VM.
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: BackendVmHealth
    BlockDeviceMappingCreated:
      description: Information about the created block device mapping.
      type: object
      properties:
        bsu:
          $ref: '#/components/schemas/BsuCreated'
        deviceName:
          description: The name of the device.
          type: string
          example: /dev/sda1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: BlockDeviceMappingCreated
    BlockDeviceMappingImage:
      description: One or more parameters used to automatically set up volumes when the VM is created.
      type: object
      properties:
        bsu:
          $ref: '#/components/schemas/BsuToCreate'
        deviceName:
          description: 'The device name for the volume. For a root device, you must use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between `b` and `z`, and the second `X` is a letter between `a` and `z`).'
          type: string
          example: /dev/sda1
        virtualDeviceName:
          description: The name of the virtual device (`ephemeralN`).
          type: string
          example: ephemeralN
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: BlockDeviceMappingImage
    BlockDeviceMappingVmCreation:
      description: Information about the block device mapping.
      type: object
      properties:
        bsu:
          $ref: '#/components/schemas/BsuToCreate'
        deviceName:
          description: 'The device name for the volume. For a root device, you must use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between `b` and `z`, and the second `X` is a letter between `a` and `z`).'
          type: string
          example: /dev/sda1
        noDevice:
          description: Removes the device which is included in the block device mapping of the Image.
          type: string
          example: string
        virtualDeviceName:
          description: The name of the virtual device (`ephemeralN`).
          type: string
          example: ephemeralN
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: BlockDeviceMappingVmCreation
    BlockDeviceMappingVmUpdate:
      description: Information about the block device mapping.
      type: object
      properties:
        bsu:
          $ref: '#/components/schemas/BsuToUpdateVm'
        deviceName:
          description: 'The device name for the volume. For a root device, you must use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between `b` and `z`, and the second `X` is a letter between `a` and `z`).'
          type: string
          example: /dev/sda1
        noDevice:
          description: Removes the device which is included in the block device mapping of the Image.
          type: string
          example: string
        virtualDeviceName:
          description: The name of the virtual device (`ephemeralN`).
          type: string
          example: ephemeralN
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: BlockDeviceMappingVmUpdate
    BsuCreated:
      description: Information about the created BSU volume.
      type: object
      properties:
        deleteOnVmDeletion:
          description: 'If true, the volume is deleted when terminating the VM. If false, the volume is not deleted when terminating the VM.'
          type: boolean
          example: false
        linkDate:
          description: 'The date and time of attachment of the volume to the VM, in ISO 8601 date-time format.'
          type: string
          format: date-time
          example: '2019-08-24 14:15:22+00:00'
        state:
          description: The state of the volume.
          type: string
          example: available
        volumeId:
          description: The ID of the volume.
          type: string
          example: vol-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: BsuCreated
    BsuToCreate:
      description: Information about the BSU volume to create.
      type: object
      properties:
        deleteOnVmDeletion:
          description: 'By default or if set to true, the volume is deleted when terminating the VM. If false, the volume is not deleted when terminating the VM.'
          type: boolean
          default: true
        iops:
          description: The number of I/O operations per second (IOPS). This parameter must be specified only if you create an `io1` volume. The maximum number of IOPS allowed for `io1` volumes is `13000` with a maximum performance ratio of 300 IOPS per GB.
          type: integer
          example: 100
        snapshotId:
          description: The ID of the snapshot used to create the volume.
          type: string
          example: snap-12345678
        volumeSize:
          description: |-
            The size of the volume, in GB.<br />
            If you specify a snapshot ID, the volume size must be at least equal to the snapshot size.<br />
            If you specify a snapshot ID but no volume size, the volume is created with a size similar to the snapshot one.
          type: integer
          example: 10
        volumeType:
          description: 'The type of the volume (`standard` \| `io1` \| `gp2`). If not specified in the request, a `standard` volume is created.<br />'
          type: string
          example: io1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: BsuToCreate
    BsuToUpdateVm:
      description: Information about the BSU volume.
      type: object
      properties:
        deleteOnVmDeletion:
          description: 'If set to true, the volume is deleted when terminating the VM. If set to false, the volume is not deleted when terminating the VM.'
          type: boolean
          example: true
        volumeId:
          description: The ID of the volume.
          type: string
          example: vol-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: BsuToUpdateVm
    CreateDhcpOptions:
      type: object
      properties:
        domainName:
          description: 'Specify a domain name (for example, `MyCompany.com`). You can specify only one domain name. You must specify at least one of the following parameters: `DomainName`, `DomainNameServers`, `LogServers`, or `NtpServers`.'
          type: string
          example: example.com
        domainNameServers:
          description: 'The IPs of domain name servers. You must specify at least one of the following parameters: `DomainName`, `DomainNameServers`, `LogServers`, or `NtpServers`.'
          type: array
          items:
            type: string
          example:
            - 192.0.2.0
            - 198.51.100.0
        logServers:
          description: 'The IPs of the log servers. You must specify at least one of the following parameters: `DomainName`, `DomainNameServers`, `LogServers`, or `NtpServers`.'
          type: array
          items:
            type: string
          example:
            - 203.0.113.0
            - 203.0.113.1
        ntpServers:
          description: 'The IPs of the Network Time Protocol (NTP) servers. You must specify at least one of the following parameters: `DomainName`, `DomainNameServers`, `LogServers`, or `NtpServers`.'
          type: array
          items:
            type: string
          example:
            - 203.0.113.0
            - 203.0.113.1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: CreateDhcpOptions
    CreateFlexibleGpu:
      type: object
      properties:
        availabilityZoneName:
          description: The name of the AZ in which you want to create the fGPU.
          $ref: '#/components/schemas/AvailabilityZoneName'
        deleteOnVmDeletion:
          description: 'If true, the fGPU is deleted when the VM is terminated.'
          type: boolean
          example: true
          default: false
        generation:
          description: 'The processor generation that the fGPU must be compatible with. If not specified, the oldest possible processor generation is selected (as provided by [ReadFlexibleGpuCatalog](#readflexiblegpucatalog) for the specified model of fGPU).'
          type: string
          example: v5
        modelName:
          description: The model of fGPU you want to allocate.
          type: string
          example: nvidia-p100
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - modelName
        - availabilityZoneName
      title: CreateFlexibleGpu
    CreateImage:
      type: object
      properties:
        architecture:
          description: '**(when registering from a snapshot, or from a bucket without using a manifest file)** The architecture of the Image (`i386` or `x84_64`).'
          type: string
          example: x86_64
        blockDeviceMappings:
          description: '**(when registering from a snapshot, or from a bucket without using a manifest file)** One or more block device mappings.'
          type: array
          items:
            $ref: '#/components/schemas/BlockDeviceMappingImage'
        description:
          description: A description for the new Image.
          type: string
          example: description-of-an-image
        name:
          description: |-
            A unique name for the new Image.<br />
            Constraints: 3-128 alphanumeric characters, underscores (`_`), spaces (` `), parentheses (`()`), slashes (`/`), periods (`.`), or dashes (`-`).
          type: string
          example: create-image-example
        noReboot:
          description: '**(when creating from a VM)** If false, the VM shuts down before creating the Image and then reboots. If true, the VM does not.'
          type: boolean
          example: true
        productCodes:
          description: The product codes associated with the Image.
          type: array
          items:
            type: string
          example:
            - '0001'
        rootDeviceName:
          description: '**(when registering from a snapshot, or from a bucket without using a manifest file)** The name of the root device for the new Image.'
          type: string
          example: /dev/sda1
        sourceImageId:
          description: '**(when copying an Image)** The ID of the Image you want to copy.'
          type: string
          example: ami-12345678
        sourceRegionName:
          description: '**(when copying an Image)** The name of the source Region (always the same as the Region of your account).'
          type: string
          example: eu-west-2
        vmId:
          description: '**(when creating from a VM)** The ID of the VM from which you want to create the Image.'
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: CreateImage
    CreateKeypairRequestSchema:
      type: object
      properties:
        name:
          description: 'A unique name for the keypair, with a maximum length of 32 alphanumeric characters and dashes (-).'
          type: string
          example: create-keypair-example
          maxLength: 32
          pattern: '^[a-zA-Z0-9-]+$'
        publicKey:
          description: 'The public key to import in your account, if you are importing an existing keypair. This value must be Base64-encoded.'
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - name
      title: CreateKeypairRequestSchema
    CreateKeypair:
      description: Information about the created keypair.
      type: object
      properties:
        fingerprint:
          description: 'The MD5 public key fingerprint, as specified in section 4 of RFC 4716.'
          type: string
          example: '11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee:ff'
        name:
          description: The name of the keypair.
          type: string
          example: create-keypair-example
        privateKey:
          description: 'The private key, returned only if you are creating a keypair (not if you are importing). When you save this private key in a .rsa file, make sure you replace the `\n` escape sequences with real line breaks.'
          type: string
          example: '-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----'
        type:
          description: 'The type of the keypair (`ssh-rsa`, `ssh-ed25519`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or `ecdsa-sha2-nistp521`).'
          type: string
          example: ssh-rsa
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: CreateKeypair
    CreateListenerRule:
      type: object
      properties:
        listener:
          $ref: '#/components/schemas/LoadBalancerLight'
        listenerRule:
          $ref: '#/components/schemas/ListenerRuleForCreation'
        vmIds:
          description: The IDs of the backend VMs.
          type: array
          items:
            type: string
          example:
            - i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - vmIds
        - listener
        - listenerRule
      title: CreateListenerRule
    CreateLoadBalancer:
      type: object
      properties:
        listeners:
          description: One or more listeners to create.
          type: array
          items:
            $ref: '#/components/schemas/ListenerForCreation'
        name:
          description: 'The unique name of the load balancer (32 alphanumeric or hyphen characters maximum, but cannot start or end with a hyphen).'
          type: string
          example: private-lb-example
          maxLength: 32
          pattern: '^[a-zA-Z0-9-]+$'
        publicIp:
          description: '(internet-facing only) The public IP you want to associate with the load balancer. If not specified, a public IP owned by Numspot is associated.'
          type: string
          example: 192.0.2.0
        securityGroups:
          description: '(Vpc only) One or more IDs of security groups you want to assign to the load balancer. If not specified, the default security group of the Vpc is assigned to the load balancer.'
          type: array
          items:
            type: string
          example:
            - sg-12345678
        subnets:
          description: '(Vpc only) The ID of the Subnet in which you want to create the load balancer. Regardless of this Subnet, the load balancer can distribute traffic to all Subnets. This parameter is required in a Vpc.'
          type: array
          items:
            type: string
          example:
            - subnet-12345678
        tags:
          description: One or more tags assigned to the load balancer.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        type:
          description: 'The type of load balancer: `internet-facing` or `internal`. Use this parameter only for load balancers in a Vpc.'
          type: string
          example: internal
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - listeners
        - name
        - subnets
      title: CreateLoadBalancer
    CreateLoadBalancerListeners:
      type: object
      properties:
        listeners:
          description: One or more listeners for the load balancer.
          type: array
          items:
            $ref: '#/components/schemas/ListenerForCreation'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - listeners
      title: CreateLoadBalancerListeners
    CreateLoadBalancerPolicy:
      type: object
      properties:
        cookieExpirationPeriod:
          description: 'The lifetime of the cookie, in seconds. If not specified, the default value of this parameter is `1`, which means that the sticky session lasts for the duration of the browser session.'
          type: integer
          example: 1
        cookieName:
          description: The name of the application cookie used for stickiness. This parameter is required if you create a stickiness policy based on an application-generated cookie.
          type: string
          example: example-cookie
        policyName:
          description: 'The name of the policy, with a maximum length of 32 alphanumeric characters and dashes (-). Must be unique.'
          type: string
          example: example-browser-policy
          maxLength: 32
          pattern: '^[a-zA-Z0-9-]+$'
        policyType:
          description: 'The type of stickiness policy you want to create: `app` or `load_balancer`.'
          type: string
          example: app
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - policyType
        - policyName
      title: CreateLoadBalancerPolicy
    CreateLoadBalancerTags:
      type: object
      properties:
        names:
          description: One or more load balancer names.
          type: array
          items:
            type: string
          example:
            - private-lb-example
        tags:
          description: One or more tags to add to the specified load balancers.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - tags
        - names
      title: CreateLoadBalancerTags
    CreateNatGateway:
      type: object
      properties:
        publicIpId:
          description: |-
            The allocation ID of the public IP to associate with the NAT gateway.<br />
            If the public IP is already associated with another resource, you must first disassociate it.
          type: string
          example: eipalloc-12345678
        subnetId:
          description: The ID of the Subnet in which you want to create the NAT gateway.
          type: string
          example: subnet-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - publicIpId
        - subnetId
      title: CreateNatGateway
    CreateNic:
      type: object
      properties:
        description:
          description: A description for the NIC.
          type: string
          example: Terraform nic with private IPs
        privateIps:
          description: |-
            The primary private IP for the NIC.<br />
            This IP must be within the IP range of the Subnet that you specify with the `SubnetId` attribute.<br />
            If you do not specify this attribute, a random private IP is selected within the IP range of the Subnet.
          type: array
          items:
            $ref: '#/components/schemas/PrivateIpLight'
        securityGroupIds:
          description: One or more IDs of security groups for the NIC.
          type: array
          items:
            type: string
          example:
            - sg-12345678
        subnetId:
          description: The ID of the Subnet in which you want to create the NIC.
          type: string
          example: subnet-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - subnetId
      title: CreateNic
    CreateRoute:
      type: object
      properties:
        destinationIpRange:
          description: 'The IP range used for the destination match, in CIDR notation (for example, `10.0.0.0/24`).'
          type: string
          example: 10.0.0.0/24
        gatewayId:
          description: The ID of an Internet gateway or virtual gateway attached to your Vpc.
          type: string
          example: igw-12345678
        natGatewayId:
          description: The ID of a NAT gateway.
          type: string
          example: nat-12345678
        nicId:
          description: The ID of a NIC.
          type: string
          example: nic-12345678
        vmId:
          description: The ID of a NAT VM in your Vpc (attached to exactly one NIC).
          type: string
          example: i-12345678
        vpcPeeringId:
          description: The ID of a Vpc peering.
          type: string
          example: pcx-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - destinationIpRange
      title: CreateRoute
    CreateRouteTable:
      type: object
      properties:
        vpcId:
          description: The ID of the Vpc for which you want to create a route table.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - vpcId
      title: CreateRouteTable
    CreateSecurityGroup:
      type: object
      properties:
        description:
          description: |-
            A description for the security group.<br />
            This description can contain between 1 and 255 characters. Allowed characters are `a-z`, `A-Z`, `0-9`, accented letters, spaces, and `_.-:/()#,@[]+=&;{}!$*`.
          type: string
          example: Security group example
        name:
          description: |-
            The name of the security group.<br />
            This name must not start with `sg-`.<br />
            This name must be unique and contain between 1 and 255 characters. Allowed characters are `a-z`, `A-Z`, `0-9`, spaces, and `_.-:/()#,@[]+=&;{}!$*`.
          type: string
          example: security-group-example
        vpcId:
          description: The ID of the Vpc for the security group.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - description
        - name
        - vpcId
      title: CreateSecurityGroup
    CreateSecurityGroupRule:
      type: object
      properties:
        flow:
          description: 'The direction of the flow: `Inbound` or `Outbound`. You can specify `Outbound` for Vpcs only.'
          type: string
          example: Inbound
        fromPortRange:
          description: 'The beginning of the port range for the TCP and UDP protocols, or an ICMP type number. If you specify this parameter, you cannot specify the `Rules` parameter and its subparameters.'
          type: integer
          example: 80
        ipProtocol:
          description: 'The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all protocols). By default, `-1`. In a Vpc, this can also be an IP protocol number. For more information, see the [IANA.org website](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). If you specify this parameter, you cannot specify the `Rules` parameter and its subparameters.'
          type: string
          example: tcp
        ipRange:
          description: 'The IP range for the security group rule, in CIDR notation (for example, 10.0.0.0/16). If you specify this parameter, you cannot specify the `Rules` parameter and its subparameters.'
          type: string
          example: 10.0.0.0/16
        rules:
          description: 'Information about the security group rule to create. If you specify this parent parameter and its subparameters, you cannot specify the following parent parameters: `FromPortRange`, `IpProtocol`, `IpRange`, and `ToPortRange`.'
          type: array
          items:
            $ref: '#/components/schemas/SecurityGroupRule'
        securityGroupNameToLink:
          description: The ID of a source or destination security group that you want to link to the security group of the rule.
          type: string
          example: sg-12345678
        toPortRange:
          description: 'The end of the port range for the TCP and UDP protocols, or an ICMP code number. If you specify this parameter, you cannot specify the `Rules` parameter and its subparameters.'
          type: integer
          example: 80
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - flow
      title: CreateSecurityGroupRule
    CreateSnapshot:
      type: object
      properties:
        description:
          description: A description for the snapshot.
          type: string
          example: Snapshot created from a volume
        sourceRegionName:
          description: '**(when copying a snapshot)** The name of the source Region, which must be the same as the Region of your account.'
          type: string
          example: eu-west-2
        sourceSnapshotId:
          description: '**(when copying a snapshot)** The ID of the snapshot you want to copy.'
          type: string
          example: snap-12345678
        volumeId:
          description: '**(when creating from a volume)** The ID of the volume you want to create a snapshot of.'
          type: string
          example: vol-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: CreateSnapshot
    CreateSubnet:
      type: object
      properties:
        availabilityZoneName:
          description: The name of the AZ in which you want to create the Subnet.
          $ref: '#/components/schemas/AvailabilityZoneName'
        ipRange:
          description: |-
            The IP range in the Subnet, in CIDR notation (for example, `10.0.0.0/16`).<br />
            The IP range of the Subnet can be either the same as the Vpc one if you create only a single Subnet in this Net, or a subset of the Vpc one. In case of several Subnets in a Vpc, their IP ranges must not overlap. The smallest Subnet you can create uses a /29 netmask (eight IPs).
          type: string
          example: 10.0.0.0/18
        vpcId:
          description: The ID of the Vpc for which you want to create a Subnet.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - ipRange
        - vpcId
      title: CreateSubnet
    CreateTags:
      type: object
      properties:
        resourceIds:
          description: One or more resource IDs.
          type: array
          items:
            type: string
          example:
            - i-12345678
        tags:
          description: One or more tags to add to the specified resources.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - resourceIds
        - tags
      title: CreateTags
    CreateVms:
      type: object
      properties:
        blockDeviceMappings:
          description: One or more block device mappings.
          type: array
          items:
            $ref: '#/components/schemas/BlockDeviceMappingVmCreation'
        bootOnCreation:
          description: 'By default or if true, the VM is started on creation. If false, the VM is stopped on creation.'
          type: boolean
          example: true
          default: true
        bsuOptimized:
          description: This parameter is not available. It is present in our API for the sake of historical compatibility with AWS.
          type: boolean
          example: true
        clientToken:
          description: A unique identifier which enables you to manage the idempotency.
          type: string
          example: string
        deletionProtection:
          description: 'If true, you cannot delete the VM unless you change this parameter back to false.'
          type: boolean
          example: true
        imageId:
          description: 'The ID of the Image used to create the VM. You can find the list of Images by calling the [ReadImages](#readimages) method.'
          type: string
          example: ami-12345678
        keypairName:
          description: The name of the keypair.
          type: string
          example: keypair-example
        nestedVirtualization:
          description: '(dedicated tenancy only) If true, nested virtualization is enabled. If false, it is disabled.'
          type: boolean
          example: false
          default: false
        performance:
          description: 'The performance of the VM (`medium` \| `high` \|  `highest`). By default, `high`. This parameter is ignored if you specify a performance flag directly in the `type` parameter.'
          type: string
          example: high
          default: high
          enum:
            - medium
            - high
            - highest
        placement:
          $ref: '#/components/schemas/Placement'
        privateIps:
          description: One or more private IPs of the VM.
          type: array
          items:
            type: string
          example:
            - 10.0.0.4
        securityGroupIds:
          description: One or more IDs of security group for the VMs.
          type: array
          items:
            type: string
          example:
            - sg-12345678
        securityGroups:
          description: One or more names of security groups for the VMs.
          type: array
          items:
            type: string
          example:
            - security-group-name
        subnetId:
          description: 'The ID of the Subnet in which you want to create the VM. If you specify this parameter, you must not specify the `Nics` parameter.'
          type: string
          example: subnet-12345678
        type:
          description: The type of VM.
          type: string
          example: ns-cus6-2c4r
        userData:
          description: Data or script used to add a specific configuration to the VM. It must be Base64-encoded and is limited to 500 kibibytes (KiB).
          type: string
          example: UHV0IHlvdXIgc2NyaXB0IGluIGJhc2UgNjQK
        vmInitiatedShutdownBehavior:
          description: 'The VM behavior when you stop it. By default or if set to `stop`, the VM stops. If set to `restart`, the VM stops then automatically restarts. If set to `terminate`, the VM stops and is terminated.'
          type: string
          example: stop
          default: stop
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - imageId
        - subnetId
        - type
      title: CreateVms
    CreateVolume:
      type: object
      properties:
        availabilityZoneName:
          description: The name of the AZ in which you want to create the volume.
          $ref: '#/components/schemas/AvailabilityZoneName'
        iops:
          description: The number of I/O operations per second (IOPS). This parameter must be specified only if you create an `io1` volume. The maximum number of IOPS allowed for `io1` volumes is `13000` with a maximum performance ratio of 300 IOPS per GB.
          type: integer
          example: 100
        size:
          description: 'The size of the volume, in GB. The maximum allowed size for a volume is 14901 GB. This parameter is required if the volume is not created from a snapshot (`SnapshotId` unspecified). '
          type: integer
          example: 10
        snapshotId:
          description: The ID of the snapshot from which you want to create the volume.
          type: string
          example: snap-12345678
        type:
          description: 'The type of volume you want to create (`io1` \| `gp2` \ | `standard`). If not specified, a `standard` volume is created.<br />'
          type: string
          example: io1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - availabilityZoneName
      title: CreateVolume
    CreateVpc:
      type: object
      properties:
        ipRange:
          description: 'The IP range for the Vpc, in CIDR notation (for example, `10.0.0.0/16`).'
          type: string
          example: 10.0.0.0/16
        tenancy:
          description: |-
            The tenancy options for the VMs:<br />
            - `default` if a VM created in a Vpc can be launched with any tenancy.<br />
            - `dedicated` if it can be launched with dedicated tenancy VMs running on single-tenant hardware.<br />
            - `dedicated group ID`: if it can be launched in a dedicated group on single-tenant hardware.
          type: string
          example: default
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - ipRange
      title: CreateVpc
    CreateServerCertificate:
      type: object
      properties:
        body:
          description: The PEM-encoded X509 certificate.
          type: string
          example: UHV0IHlvdXIgUEVNLWVuY29kZWQgWDUwOSBjZXJ0aWZpY2F0ZSBpbiBiYXNlIDY0Cg==
        chain:
          description: The PEM-encoded intermediate certification authorities.
          type: string
          example: UHV0IHlvdXIgUEVNLWVuY29kZWQgaW50ZXJtZWRpYXRlIGNlcnRpZmljYXRpb24gYXV0aG9yaXRpZXMgaW4gYmFzZSA2NAo=
        name:
          description: 'A unique name for the certificate, with a maximum length of 32 alphanumeric characters and dashes (-)'
          type: string
          example: server-cert-example
          maxLength: 32
          pattern: '^[a-zA-Z0-9-]+$'
        path:
          description: 'The path to the server certificate, set to a slash (/) if not specified.'
          type: string
          example: /example/
        privateKey:
          description: The PEM-encoded private key matching the certificate.
          type: string
          example: UHV0IHlvdXIgIFBFTS1lbmNvZGVkIHByaXZhdGUga2V5IG1hdGNoaW5nIHRoZSBjZXJ0aWZpY2F0ZSBpbiBiYXNlIDY0Cg==
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - body
        - name
        - privateKey
      title: CreateServerCertificate
    DeleteLoadBalancerListeners:
      type: object
      properties:
        loadBalancerPorts:
          description: One or more port numbers of the listeners you want to delete.
          type: array
          items:
            type: integer
          example:
            - 80
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - loadBalancerPorts
      title: DeleteLoadBalancerListeners
    DeleteLoadBalancerPolicy:
      type: object
      properties:
        policyName:
          description: The name of the policy you want to delete.
          type: string
          example: example-browser-policy
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - policyName
      title: DeleteLoadBalancerPolicy
    DeleteLoadBalancerTags:
      type: object
      properties:
        names:
          description: One or more load balancer names.
          type: array
          items:
            type: string
          example:
            - example-lbu
        tags:
          description: One or more tags to delete from the load balancers.
          type: array
          items:
            $ref: '#/components/schemas/ResourceLoadBalancerTag'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - tags
        - names
      title: DeleteLoadBalancerTags
    DeleteRoute:
      type: object
      properties:
        destinationIpRange:
          description: The exact IP range for the route.
          type: string
          example: 198.51.100.0/24
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - destinationIpRange
      title: DeleteRoute
    DeleteSecurityGroupRule:
      type: object
      properties:
        flow:
          description: 'The direction of the flow: `Inbound` or `Outbound`. You can specify `Outbound` for Vpcs only.'
          type: string
          example: Inbound
        fromPortRange:
          description: 'The beginning of the port range for the TCP and UDP protocols, or an ICMP type number.'
          type: integer
          example: 80
        ipProtocol:
          description: 'The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all protocols). By default, `-1`. In a Vpc, this can also be an IP protocol number. For more information, see the [IANA.org website](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).'
          type: string
          example: tcp
        ipRange:
          description: 'The IP range for the security group rule, in CIDR notation (for example, `10.0.0.0/16`).'
          type: string
          example: 10.0.0.0/16
        rules:
          description: One or more rules you want to delete from the security group.
          type: array
          items:
            $ref: '#/components/schemas/SecurityGroupRule'
        securityGroupNameToUnlink:
          description: 'The ID of the source security group. If you are in the Public Cloud, you can also specify the name of the source security group.'
          type: string
          example: sg-12345678
        toPortRange:
          description: 'The end of the port range for the TCP and UDP protocols, or an ICMP code number.'
          type: integer
          example: 80
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - flow
      title: DeleteSecurityGroupRule
    DeleteTags:
      type: object
      properties:
        resourceIds:
          description: One or more resource IDs.
          type: array
          items:
            type: string
          example:
            - i-12345678
        tags:
          description: 'One or more tags to delete (if you set a tag value, only the tags matching exactly this value are deleted).'
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - resourceIds
        - tags
      title: DeleteTags
    DhcpOptionsSet:
      description: Information about the DHCP options set.
      type: object
      properties:
        default:
          description: 'If true, the DHCP options set is a default one. If false, it is not.'
          type: boolean
          example: false
        domainName:
          description: The domain name.
          type: string
          example: example.com
        domainNameServers:
          description: One or more IPs for the domain name servers.
          type: array
          items:
            type: string
          example:
            - 192.0.2.0
            - 198.51.100.0
        id:
          description: The ID of the DHCP options set.
          type: string
          example: dopt-12345678
        logServers:
          description: One or more IPs for the log servers.
          type: array
          items:
            type: string
          example:
            - 203.0.113.0
            - 203.0.113.1
        ntpServers:
          description: One or more IPs for the NTP servers.
          type: array
          items:
            type: string
        tags:
          description: One or more tags associated with the DHCP options set.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: DhcpOptionsSet
    FlexibleGpu:
      description: Information about the flexible GPU (fGPU).
      type: object
      properties:
        availabilityZoneName:
          description: The name of the AZ where the fGPU is located.
          $ref: '#/components/schemas/AvailabilityZoneName'
        deleteOnVmDeletion:
          description: 'If true, the fGPU is deleted when the VM is terminated.'
          type: boolean
          example: true
        generation:
          description: The compatible processor generation.
          type: string
          example: v5
        id:
          description: The ID of the fGPU.
          type: string
          example: fgpu-12345678
        modelName:
          description: The model of fGPU.
          type: string
          example: nvidia-p100
        state:
          description: The state of the fGPU (`allocated` \| `attaching` \| `attached` \| `detaching`).
          type: string
          example: attached
        vmId:
          description: 'The ID of the VM the fGPU is attached to, if any.'
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: FlexibleGpu
    HealthCheck:
      description: Information about the health check configuration.
      type: object
      properties:
        checkInterval:
          description: The number of seconds between two requests (between `5` and `600` both included).
          type: integer
          example: 30
        healthyThreshold:
          description: The number of consecutive successful requests before considering the VM as healthy (between `2` and `10` both included).
          type: integer
          example: 10
        path:
          description: 'If you use the HTTP or HTTPS protocols, the request URL path.'
          type: string
          example: /index.html
        port:
          description: 'The port number (between `1` and `65535`, both included).'
          type: integer
          example: 8080
        protocol:
          description: The protocol for the URL of the VM (`HTTP` \| `HTTPS` \| `TCP` \| `SSL`).
          type: string
          example: HTTPS
        timeout:
          description: 'The maximum waiting time for a response before considering the VM as unhealthy, in seconds (between `2` and `60` both included).'
          type: integer
          example: 5
        unhealthyThreshold:
          description: The number of consecutive failed requests before considering the VM as unhealthy (between `2` and `10` both included).
          type: integer
          example: 5
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - checkInterval
        - healthyThreshold
        - port
        - protocol
        - timeout
        - unhealthyThreshold
      title: HealthCheck
    Image:
      description: Information about the Image.
      type: object
      properties:
        access:
          $ref: '#/components/schemas/Access'
        architecture:
          description: The architecture of the Image.
          type: string
          example: x86_64
        blockDeviceMappings:
          description: One or more block device mappings.
          type: array
          items:
            $ref: '#/components/schemas/BlockDeviceMappingImage'
        creationDate:
          description: 'The date and time of creation of the Image, in ISO 8601 date-time format.'
          type: string
          format: date-time
          example: '2010-10-01 12:34:56.789000+00:00'
        description:
          description: The description of the image.
          type: string
          example: my Image
        id:
          description: The ID of the Image.
          type: string
          example: ami-12345678
        name:
          description: The name of the Image.
          type: string
          example: create-image-example
        productCodes:
          description: The product codes associated with the Image.
          type: array
          items:
            type: string
          example:
            - '0001'
        rootDeviceName:
          description: The name of the root device.
          type: string
          example: /dev/sda1
        rootDeviceType:
          description: The type of root device used by the Image (always `bsu`).
          type: string
          example: bsu
        state:
          description: The state of the Image (`pending` \| `available` \| `failed`).
          type: string
          example: pending
        stateComment:
          $ref: '#/components/schemas/StateComment'
        tags:
          description: One or more tags associated with the Image.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        type:
          description: The type of the Image.
          type: string
          example: machine
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Image
    InternetGateway:
      description: Information about the Internet gateway.
      type: object
      properties:
        id:
          description: The ID of the Internet gateway.
          type: string
          example: igw-12345678
        state:
          description: The state of the attachment of the Internet gateway to the Vpc (always `available`).
          type: string
          example: available
        tags:
          description: One or more tags associated with the Internet gateway.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        vpcId:
          description: The ID of the Vpc attached to the Internet gateway.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: InternetGateway
    Keypair:
      description: Information about the keypair.
      type: object
      properties:
        fingerprint:
          description: The MD5 public key fingerprint as specified in section 4 of RFC 4716.
          type: string
          example: '11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee:ff'
        name:
          description: The name of the keypair.
          type: string
          example: create-keypair-example
        type:
          description: 'The type of the keypair (`ssh-rsa`, `ssh-ed25519`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or `ecdsa-sha2-nistp521`).'
          type: string
          example: ssh-rsa
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Keypair
    LinkFlexibleGpu:
      type: object
      properties:
        vmId:
          description: The ID of the VM you want to attach the fGPU to.
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - vmId
      title: LinkFlexibleGpu
    LinkInternetGateway:
      type: object
      properties:
        vpcId:
          description: The ID of the Vpc to which you want to attach the Internet gateway.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - vpcId
      title: LinkInternetGateway
    LinkLoadBalancerBackendMachines:
      type: object
      properties:
        backendIps:
          description: ' One or more public IPs of back-end VMs.'
          type: array
          items:
            type: string
          example:
            - i-12345678
            - i-87654321
        backendVmIds:
          description: ' One or more IDs of back-end VMs.'
          type: array
          items:
            type: string
          example:
            - 192.0.2.0
            - 198.51.100.0
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LinkLoadBalancerBackendMachines
    LinkNic:
      description: Information about the NIC attachment.
      type: object
      properties:
        deleteOnVmDeletion:
          description: 'If true, the NIC is deleted when the VM is terminated.'
          type: boolean
          example: true
        deviceNumber:
          description: 'The device index for the NIC attachment (between `1` and `7`, both included).'
          type: integer
          example: 1
        id:
          description: The ID of the NIC to attach.
          type: string
          example: eni-12345678
        state:
          description: The state of the attachment (`attaching` \| `attached` \| `detaching` \| `detached`).
          type: string
          example: attached
        vmId:
          description: The ID of the VM.
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LinkNic
    LinkNicLight:
      description: Information about the network interface card (NIC).
      type: object
      properties:
        deleteOnVmDeletion:
          description: 'If true, the NIC is deleted when the VM is terminated.'
          type: boolean
          example: true
        deviceNumber:
          description: 'The device index for the NIC attachment (between `1` and `7`, both included).'
          type: integer
          example: 1
        linkNicId:
          description: The ID of the NIC to attach.
          type: string
          example: eni-12345678
        state:
          description: The state of the attachment (`attaching` \| `attached` \| `detaching` \| `detached`).
          type: string
          example: attached
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LinkNicLight
    LinkNicToUpdate:
      description: 'Information about the NIC attachment. If you are modifying the `DeleteOnVmDeletion` attribute, you must specify the ID of the NIC attachment.'
      type: object
      properties:
        deleteOnVmDeletion:
          description: 'If true, the NIC is deleted when the VM is terminated. If false, the NIC is detached from the VM.'
          type: boolean
          example: true
        linkNicId:
          description: The ID of the NIC attachment.
          type: string
          example: eni-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LinkNicToUpdate
    LinkPrivateIps:
      type: object
      properties:
        allowRelink:
          description: 'If true, allows an IP that is already assigned to another NIC in the same Subnet to be assigned to the NIC you specified.'
          type: boolean
          example: true
        privateIps:
          description: The secondary private IP or IPs you want to assign to the NIC within the IP range of the Subnet.
          type: array
          items:
            type: string
          example:
            - 10.0.0.6
            - 10.0.0.7
        secondaryPrivateIpCount:
          description: The number of secondary private IPs to assign to the NIC.
          type: integer
          example: 1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LinkPrivateIps
    LinkPublicIp:
      description: Information about the public IP association.
      type: object
      properties:
        id:
          description: (Required in a Vpc) The ID representing the association of the public IP with the VM or the NIC.
          type: string
          example: eipassoc-12345678
        publicDnsName:
          description: The name of the public DNS.
          type: string
          example: ip-192-0-2-0.eu-west-2.xxxxx.xxxxxxx
        publicIp:
          description: The public IP associated with the NIC.
          type: string
          example: 192.0.2.0
        publicIpId:
          description: The allocation ID of the public IP.
          type: string
          example: eipalloc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LinkPublicIp
    LinkPublicIpLightForVm:
      description: Information about the public IP associated with the NIC.
      type: object
      properties:
        publicDnsName:
          description: The name of the public DNS.
          type: string
          example: ip-192-0-2-0.eu-west-2.xxxxx.xxxxxxx
        publicIp:
          description: The public IP associated with the NIC.
          type: string
          example: 192.0.2.0
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LinkPublicIpLightForVm
    LinkRouteTable:
      description: One or more associations between the route table and the Subnets.
      type: object
      properties:
        id:
          description: The ID of the association between the route table and the Subnet.
          type: string
          example: rtbassoc-12345678
        main:
          description: 'If true, the route table is the main one.'
          type: boolean
          example: true
        routeTableId:
          description: The ID of the route table.
          type: string
          example: rtb-12345678
        subnetId:
          description: The ID of the Subnet.
          type: string
          example: subnet-12345678
        vpcId:
          description: The ID of the Vpc.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LinkRouteTable
    LinkVolume:
      type: object
      properties:
        deviceName:
          description: 'The name of the device. For a root device, you must use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between `b` and `z`, and the second `X` is a letter between `a` and `z`).'
          type: string
          example: /dev/sda1
        vmId:
          description: The ID of the VM you want to attach the volume to.
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - deviceName
        - vmId
      title: LinkVolume
    LinkedVolume:
      description: Information about volume attachment.
      type: object
      properties:
        deleteOnVmDeletion:
          description: 'If true, the volume is deleted when terminating the VM. If false, the volume is not deleted when terminating the VM.'
          type: boolean
          example: true
        deviceName:
          description: The name of the device.
          type: string
          example: /dev/sda1
        id:
          description: The ID of the volume.
          type: string
          example: vol-12345678
        state:
          description: The state of the attachment of the volume (`attaching` \| `detaching` \| `attached` \| `detached`).
          type: string
          example: attached
        vmId:
          description: The ID of the VM.
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LinkedVolume
    Listener:
      description: Information about the listener.
      type: object
      properties:
        backendPort:
          description: 'The port on which the back-end VM is listening (between `1` and `65535`, both included).'
          type: integer
          example: 80
        backendProtocol:
          description: The protocol for routing traffic to back-end VMs (`HTTP` \| `HTTPS` \| `TCP` \| `SSL`).
          type: string
          example: HTTP
        loadBalancerPort:
          description: 'The port on which the load balancer is listening (between `1` and `65535`, both included).'
          type: integer
          example: 443
        loadBalancerProtocol:
          description: The routing protocol (`HTTP` \| `HTTPS` \| `TCP` \| `SSL`).
          type: string
          example: HTTPS
        policyNames:
          description: 'The names of the policies. If there are no policies enabled, the list is empty.'
          type: array
          items:
            type: string
          example:
            - example-browser-policy
        serverCertificateId:
          description: The Numspot Resource Name of the server certificate.
          type: string
          example: 'orn:ows:idauth::012345678910:server-certificate/Certificate'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Listener
    ListenerForCreation:
      description: Information about the listener to create.
      type: object
      properties:
        backendPort:
          description: 'The port on which the back-end VM is listening (between `1` and `65535`, both included).'
          type: integer
          example: 58
        backendProtocol:
          description: The protocol for routing traffic to back-end VMs (`HTTP` \| `HTTPS` \| `TCP` \| `SSL`).
          type: string
          example: TCP
        loadBalancerPort:
          description: 'The port on which the load balancer is listening (between `1` and `65535`, both included).'
          type: integer
          example: 62
        loadBalancerProtocol:
          description: The routing protocol (`HTTP` \| `HTTPS` \| `TCP` \| `SSL`).
          type: string
          example: TCP
        serverCertificateId:
          description: The server certificate orn
          type: string
          example: 'orn:ows:idauth::012345678910:server-certificate/Certificate'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - backendPort
        - loadBalancerPort
        - loadBalancerProtocol
      title: ListenerForCreation
    ListenerRule:
      description: Information about the listener rule.
      type: object
      properties:
        action:
          description: The type of action for the rule (always `forward`).
          type: string
          example: forward
        hostNamePattern:
          description: 'A host-name pattern for the rule, with a maximum length of 128 characters. This host-name pattern supports maximum three wildcards, and must not contain any special characters except [-.?].'
          type: string
          example: '*.example.com'
        id:
          description: The ID of the listener rule.
          type: integer
          example: 1234
        listenerId:
          description: The ID of the listener.
          type: integer
          example: 123456
        name:
          description: A human-readable name for the listener rule.
          type: string
          example: example-listener-rule
        pathPattern:
          description: 'A path pattern for the rule, with a maximum length of 128 characters. This path pattern supports maximum three wildcards, and must not contain any special characters except [_-.$/~&quot;''@:+?].'
          type: string
          example: /tmp
        priority:
          description: 'The priority level of the listener rule, between `1` and `19999` both included. Each rule must have a unique priority level. Otherwise, an error is returned.'
          type: integer
          example: 10
        vmIds:
          description: The IDs of the backend VMs.
          type: array
          items:
            type: string
          example:
            - i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ListenerRule
    ListenerRuleForCreation:
      description: Information about the listener rule.
      type: object
      properties:
        action:
          description: The type of action for the rule (always `forward`).
          type: string
          example: forward
        hostNamePattern:
          description: 'A host-name pattern for the rule, with a maximum length of 128 characters. This host-name pattern supports maximum three wildcards, and must not contain any special characters except [-.?]. '
          type: string
          example: '*.example.com'
        listenerRuleName:
          description: 'A human-readable name for the listener rule, with a maximum length of 32 alphanumeric characters and dashes (-).'
          type: string
          example: example-listener-rule
          maxLength: 32
          pattern: '^[a-zA-Z0-9-]+$'
        pathPattern:
          description: 'A path pattern for the rule, with a maximum length of 128 characters. This path pattern supports maximum three wildcards, and must not contain any special characters except [_-.$/~&quot;''@:+?].'
          type: string
          example: /tmp
        priority:
          description: 'The priority level of the listener rule, between `1` and `19999` both included. Each rule must have a unique priority level. Otherwise, an error is returned.'
          type: integer
          example: 10
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - listenerRuleName
        - priority
      title: ListenerRuleForCreation
    LoadBalancer:
      description: Information about the load balancer.
      type: object
      properties:
        applicationStickyCookiePolicies:
          description: The stickiness policies defined for the load balancer.
          type: array
          items:
            $ref: '#/components/schemas/ApplicationStickyCookiePolicy'
        availabilityZoneNames:
          description: The ID of the Subregion in which the load balancer was created.
          type: array
          items:
            $ref: '#/components/schemas/AvailabilityZoneName'
          example:
            - eu-west-2a
        backendIps:
          description: One or more public IPs of back-end VMs.
          type: array
          items:
            type: string
          example:
            - 192.0.4.0
        backendVmIds:
          description: One or more IDs of back-end VMs for the load balancer.
          type: array
          items:
            type: string
          example:
            - i-12345678
        dnsName:
          description: The DNS name of the load balancer.
          type: string
          example: private-lb-example.123456789.eu-west-2.lbu.outscale.com
        healthCheck:
          $ref: '#/components/schemas/HealthCheck'
        listeners:
          description: The listeners for the load balancer.
          type: array
          items:
            $ref: '#/components/schemas/Listener'
        name:
          description: The name of the load balancer.
          type: string
          example: private-lb-example
        publicIp:
          description: (internet-facing only) The public IP associated with the load balancer.
          type: string
          example: 192.0.4.0
        securedCookies:
          description: Whether secure cookies are enabled for the load balancer.
          type: boolean
          example: false
        securityGroups:
          description: One or more IDs of security groups for the load balancers. Valid only for load balancers in a Vpc.
          type: array
          items:
            type: string
          example:
            - sg-12345678
        stickyCookiePolicies:
          description: The policies defined for the load balancer.
          type: array
          items:
            $ref: '#/components/schemas/LoadBalancerStickyCookiePolicy'
        subnets:
          description: The ID of the Subnet in which the load balancer was created.
          type: array
          items:
            type: string
          example:
            - subnet-12345678
        tags:
          description: One or more tags associated with the load balancer.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        type:
          description: |-
            The type of load balancer. Valid only for load balancers in a Vpc.<br />
            If `LoadBalancerType` is `internet-facing`, the load balancer has a public DNS name that resolves to a public IP.<br />
            If `LoadBalancerType` is `internal`, the load balancer has a public DNS name that resolves to a private IP.
          type: string
          example: internal
        vpcId:
          description: The ID of the Vpc for the load balancer.
          type: string
          example: vap-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LoadBalancer
    LoadBalancerLight:
      description: Information about the load balancer.
      type: object
      properties:
        loadBalancerName:
          description: The name of the load balancer to which the listener is attached.
          type: string
          example: private-lb-example
        loadBalancerPort:
          description: The port of load balancer on which the load balancer is listening (between `1` and `65535` both included).
          type: integer
          example: 80
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - loadBalancerName
        - loadBalancerPort
      title: LoadBalancerLight
    LoadBalancerStickyCookiePolicy:
      description: Information about the stickiness policy.
      type: object
      properties:
        cookieExpirationPeriod:
          description: |-
            The time period, in seconds, after which the cookie should be considered stale.<br />
            If `1`, the stickiness session lasts for the duration of the browser session.
          type: integer
          example: 1
        policyName:
          description: The name of the stickiness policy.
          type: string
          example: example-browser-policy
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LoadBalancerStickyCookiePolicy
    LoadBalancerTag:
      description: Information about the load balancer tag.
      type: object
      properties:
        key:
          description: The key of the tag.
          type: string
          example: key1
        name:
          description: The name of the load balancer.
          type: string
          example: private-lb-example
        value:
          description: The value of the tag.
          type: string
          example: value1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: LoadBalancerTag
    MaintenanceEvent:
      description: Information about the maintenance event.
      type: object
      properties:
        code:
          description: The code of the event (`system-reboot` \| `system-maintenance`).
          type: string
          example: system-maintenance
        description:
          description: The description of the event.
          type: string
          example: description of the maintenance
        notAfter:
          description: The latest scheduled end time for the event.
          type: string
          format: date
          example: '2019-08-24'
        notBefore:
          description: The earliest scheduled start time for the event.
          type: string
          format: date
          example: '2019-08-24'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: MaintenanceEvent
    NatGateway:
      description: Information about the NAT gateway.
      type: object
      properties:
        id:
          description: The ID of the NAT gateway.
          type: string
          example: nat-12345678
        publicIps:
          description: Information about the public IP or IPs associated with the NAT gateway.
          type: array
          items:
            $ref: '#/components/schemas/PublicIpLight'
        state:
          description: The state of the NAT gateway (`pending` \| `available` \| `deleting` \| `deleted`).
          type: string
          example: available
        subnetId:
          description: The ID of the Subnet in which the NAT gateway is.
          type: string
          example: subnet-12345678
        tags:
          description: One or more tags associated with the NAT gateway.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        vpcId:
          description: The ID of the Vpc in which the NAT gateway is.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: NatGateway
    Nic:
      description: Information about the NIC.
      type: object
      properties:
        availabilityZoneName:
          description: The name of the AZ in which the NIC is located.
          $ref: '#/components/schemas/AvailabilityZoneName'
        description:
          description: The description of the NIC.
          type: string
          example: Primary network interface
        id:
          description: The ID of the NIC.
          type: string
          example: nic-12345678
        isSourceDestChecked:
          description: '(Vpc only) If true, the source/destination check is enabled. If false, it is disabled. This value must be false for a NAT VM to perform network address translation (NAT) in a Vpc.'
          type: boolean
          example: true
        linkNic:
          $ref: '#/components/schemas/LinkNic'
        linkPublicIp:
          $ref: '#/components/schemas/LinkPublicIp'
        macAddress:
          description: The Media Access Control (MAC) address of the NIC.
          type: string
          example: 'A1:B2:C3:D4:E5:F6'
        privateDnsName:
          description: The name of the private DNS.
          type: string
          example: ip-10-0-0-4.eu-west-2.compute.internal
        privateIps:
          description: The private IPs of the NIC.
          type: array
          items:
            $ref: '#/components/schemas/PrivateIp'
        securityGroups:
          description: One or more IDs of security groups for the NIC.
          type: array
          items:
            $ref: '#/components/schemas/SecurityGroupLight'
        state:
          description: The state of the NIC (`available` \| `attaching` \| `in-use` \| `detaching`).
          type: string
          example: attaching
        subnetId:
          description: The ID of the Subnet.
          type: string
          example: subnet-12345678
        tags:
          description: One or more tags associated with the NIC.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        vpcId:
          description: The ID of the Vpc for the NIC.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Nic
    NicLight:
      description: Information about the network interface card (NIC).
      type: object
      properties:
        description:
          description: The description of the NIC.
          type: string
          example: description of the nic
        isSourceDestChecked:
          description: '(Vpc only) If true, the source/destination check is enabled. If false, it is disabled. This value must be false for a NAT VM to perform network address translation (NAT) in a Vpc.'
          type: boolean
          example: true
        linkNic:
          $ref: '#/components/schemas/LinkNicLight'
        linkPublicIp:
          $ref: '#/components/schemas/LinkPublicIpLightForVm'
        macAddress:
          description: The Media Access Control (MAC) address of the NIC.
          type: string
          example: 'A1:B2:C3:D4:E5:F6'
        nicId:
          description: The ID of the NIC.
          type: string
          example: eni-12345678
        privateDnsName:
          description: The name of the private DNS.
          type: string
          example: ip-10-0-0-4.eu-west-2.compute.internal
        privateIps:
          description: The private IP or IPs of the NIC.
          type: array
          items:
            $ref: '#/components/schemas/PrivateIpLightForVm'
        securityGroups:
          description: One or more IDs of security groups for the NIC.
          type: array
          items:
            $ref: '#/components/schemas/SecurityGroupLight'
        state:
          description: The state of the NIC (`available` \| `attaching` \| `in-use` \| `detaching`).
          type: string
          example: available
        subnetId:
          description: The ID of the Subnet for the NIC.
          type: string
          example: subnet-12345678
        vpcId:
          description: The ID of the Vpc for the NIC.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: NicLight
    Placement:
      description: Information about the placement of the VM.
      type: object
      properties:
        availabilityZoneName:
          description: 'The name of the AZ. If you specify this parameter, you must not specify the `Nics` parameter.'
          $ref: '#/components/schemas/AvailabilityZoneName'
        tenancy:
          description: 'The tenancy of the VM (`default`, `dedicated`, or a dedicated group ID).'
          type: string
          example: default
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Placement
    PrivateIp:
      description: Information about the private IP.
      type: object
      properties:
        isPrimary:
          description: 'If true, the IP is the primary private IP of the NIC.'
          type: boolean
          example: true
        linkPublicIp:
          $ref: '#/components/schemas/LinkPublicIp'
        privateDnsName:
          description: The name of the private DNS.
          type: string
          example: ip-10-0-0-4.eu-west-2.compute.internal
        privateIp:
          description: The private IP of the NIC.
          type: string
          example: 10.0.0.6
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: PrivateIp
    PrivateIpLight:
      description: Information about the private IP.
      type: object
      properties:
        isPrimary:
          description: 'If true, the IP is the primary private IP of the NIC.'
          type: boolean
          example: true
        privateIp:
          description: The private IP of the NIC.
          type: string
          example: 10.0.0.6
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: PrivateIpLight
    PrivateIpLightForVm:
      description: Information about the private IP of the NIC.
      type: object
      properties:
        isPrimary:
          description: 'If true, the IP is the primary private IP of the NIC.'
          type: boolean
          example: true
        linkPublicIp:
          $ref: '#/components/schemas/LinkPublicIpLightForVm'
        privateDnsName:
          description: The name of the private DNS.
          type: string
          example: ip-10-0-0-4.eu-west-2.compute.internal
        privateIp:
          description: The private IP.
          type: string
          example: 10.0.0.6
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: PrivateIpLightForVm
    PublicIp:
      description: Information about the public IP.
      type: object
      properties:
        id:
          description: The allocation ID of the public IP.
          type: string
          example: eipalloc-12345678
        linkPublicIpId:
          description: (Required in a Vpc) The ID representing the association of the public IP with the VM or the NIC.
          type: string
          example: eipassoc-12345678
        nicId:
          description: The ID of the NIC the public IP is associated with (if any).
          type: string
          example: eni-12345678
        privateIp:
          description: The private IP associated with the public IP.
          type: string
          example: 10.0.0.4
        publicIp:
          description: The public IP.
          type: string
          example: 192.0.2.0
        tags:
          description: One or more tags associated with the public IP.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        vmId:
          description: The ID of the VM the public IP is associated with (if any).
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: PublicIp
    PublicIpLight:
      description: Information about the public IP.
      type: object
      properties:
        publicIp:
          description: The public IP associated with the NAT gateway.
          type: string
          example: 192.0.4.0
        publicIpId:
          description: The allocation ID of the public IP associated with the NAT gateway.
          type: string
          example: eipalloc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: PublicIpLight
    ReadAdminPassword:
      type: object
      properties:
        adminPassword:
          description: 'The password of the VM. After the first boot, returns an empty string.'
          type: string
          example: the password
        vmId:
          description: The ID of the VM.
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadAdminPassword
    ReadConsoleOutput:
      type: object
      properties:
        consoleOutput:
          description: 'The Base64-encoded output of the console. If a command line tool is used, the output is decoded by the tool.'
          type: string
          example: eW91ciBjb25zb2xlIG91dHB1dA==
        vmId:
          description: The ID of the VM.
          type: string
          example: i-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadConsoleOutput
    ReadDhcpOptions:
      type: object
      properties:
        items:
          description: Information about one or more DHCP options sets.
          type: array
          items:
            $ref: '#/components/schemas/DhcpOptionsSet'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadDhcpOptions
    ReadFlexibleGpus:
      type: object
      properties:
        items:
          description: Information about one or more fGPUs.
          type: array
          items:
            $ref: '#/components/schemas/FlexibleGpu'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadFlexibleGpus
    ReadImages:
      type: object
      properties:
        items:
          description: Information about one or more Images.
          type: array
          items:
            $ref: '#/components/schemas/Image'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadImages
    ReadInternetGateways:
      type: object
      properties:
        items:
          description: Information about one or more Internet gateways.
          type: array
          items:
            $ref: '#/components/schemas/InternetGateway'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadInternetGateways
    ReadKeypairs:
      type: object
      properties:
        items:
          description: Information about one or more keypairs.
          type: array
          items:
            $ref: '#/components/schemas/Keypair'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadKeypairs
    ReadKeypairsById:
      description: Information about the keypair.
      type: object
      properties:
        fingerprint:
          description: The MD5 public key fingerprint as specified in section 4 of RFC 4716.
          type: string
          example: '11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee:ff'
        name:
          description: The name of the keypair.
          type: string
          example: keypair-example
        type:
          description: 'The type of the keypair (`ssh-rsa`, `ssh-ed25519`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or `ecdsa-sha2-nistp521`).'
          type: string
          example: ssh-rsa
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadKeypairsById
    ReadListenerRules:
      type: object
      properties:
        items:
          description: The list of the rules to describe.
          type: array
          items:
            $ref: '#/components/schemas/ListenerRule'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadListenerRules
    ReadLoadBalancerTags:
      type: object
      properties:
        items:
          description: Information about one or more load balancer tags.
          type: array
          items:
            $ref: '#/components/schemas/LoadBalancerTag'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadLoadBalancerTags
    ReadLoadBalancers:
      type: object
      properties:
        items:
          description: Information about one or more load balancers.
          type: array
          items:
            $ref: '#/components/schemas/LoadBalancer'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadLoadBalancers
    ReadNatGateway:
      type: object
      properties:
        items:
          description: Information about one or more NAT gateways.
          type: array
          items:
            $ref: '#/components/schemas/NatGateway'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadNatGateway
    ReadNics:
      type: object
      properties:
        items:
          description: Information about one or more NICs.
          type: array
          items:
            $ref: '#/components/schemas/Nic'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadNics
    ReadPublicIps:
      type: object
      properties:
        items:
          description: Information about one or more public IPs.
          type: array
          items:
            $ref: '#/components/schemas/PublicIp'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadPublicIps
    ReadRouteTables:
      type: object
      properties:
        items:
          description: Information about one or more route tables.
          type: array
          items:
            $ref: '#/components/schemas/RouteTable'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadRouteTables
    ReadSecurityGroups:
      type: object
      properties:
        items:
          description: Information about one or more security groups.
          type: array
          items:
            $ref: '#/components/schemas/SecurityGroup'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadSecurityGroups
    ReadSnapshots:
      type: object
      properties:
        items:
          description: Information about one or more snapshots and their permissions.
          type: array
          items:
            $ref: '#/components/schemas/Snapshot'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadSnapshots
    ReadSubnets:
      type: object
      properties:
        items:
          description: Information about one or more Subnets.
          type: array
          items:
            $ref: '#/components/schemas/Subnet'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadSubnets
    ReadTags:
      type: object
      properties:
        items:
          description: Information about one or more tags.
          type: array
          items:
            $ref: '#/components/schemas/Tag'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadTags
    ReadVms:
      type: object
      properties:
        items:
          description: Information about one or more VMs.
          type: array
          items:
            $ref: '#/components/schemas/Vm'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadVms
    ReadVmsHealth:
      type: object
      properties:
        backendVmHealth:
          description: Information about the health of one or more back-end VMs.
          type: array
          items:
            $ref: '#/components/schemas/BackendVmHealth'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadVmsHealth
    ReadVmsState:
      type: object
      properties:
        items:
          description: Information about one or more VM states.
          type: array
          items:
            $ref: '#/components/schemas/VmStates'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadVmsState
    ReadVolumes:
      type: object
      properties:
        items:
          description: Information about one or more volumes.
          type: array
          items:
            $ref: '#/components/schemas/Volume'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadVolumes
    ReadVpcs:
      type: object
      properties:
        items:
          description: Information about the described Vpcs.
          type: array
          items:
            $ref: '#/components/schemas/Vpc'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadVpcs
    ReadServerCertificates:
      type: object
      properties:
        items:
          description: Information about one or more Server certificates.
          type: array
          items:
            $ref: '#/components/schemas/ServerCertificate'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ReadServerCertificates
    ResourceLoadBalancerTag:
      description: Information about the tag.
      type: object
      properties:
        key:
          description: 'The key of the tag, with a minimum of 1 character.'
          type: string
          example: key1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ResourceLoadBalancerTag
    ResourceTag:
      description: Information about the tag.
      type: object
      properties:
        key:
          description: 'The key of the tag, with a minimum of 1 character.'
          type: string
          example: key1
        value:
          description: 'The value of the tag, between 0 and 255 characters.'
          type: string
          example: value1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - key
        - value
      title: ResourceTag
    Route:
      description: Information about the route.
      type: object
      properties:
        creationMethod:
          description: The method used to create the route.
          type: string
          example: CreateRouteTable
        destinationIpRange:
          description: 'The IP range used for the destination match, in CIDR notation (for example, `10.0.0.0/24`).'
          type: string
          example: 10.0.0.0/16
        destinationServiceId:
          description: The ID of the Numspot service.
          type: string
          example: Service ID
        gatewayId:
          description: The ID of the Internet gateway or virtual gateway attached to the Vpc.
          type: string
          example: igw-12345678
        natGatewayId:
          description: The ID of a NAT gateway attached to the Vpc.
          type: string
          example: nat-12345678
        nicId:
          description: The ID of the NIC.
          type: string
          example: nic-12345678
        state:
          description: 'The state of a route in the route table (always `active`). '
          type: string
          example: active
        vmId:
          description: The ID of a VM specified in a route in the table.
          type: string
          example: i-12345678
        vpcPeeringId:
          description: The ID of the Vpc peering.
          type: string
          example: pcx-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Route
    RoutePropagatingVirtualGateway:
      description: Information about the route propagating virtual gateway.
      type: object
      properties:
        virtualGatewayId:
          description: The ID of the virtual gateway.
          type: string
          example: vgw-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: RoutePropagatingVirtualGateway
    RouteTable:
      description: Information about the route table.
      type: object
      properties:
        id:
          description: The ID of the route table.
          type: string
          example: rtb-12345678
        linkRouteTables:
          description: One or more associations between the route table and Subnets.
          type: array
          items:
            $ref: '#/components/schemas/LinkRouteTable'
        routePropagatingVirtualGateways:
          description: Information about virtual gateways propagating routes.
          type: array
          items:
            $ref: '#/components/schemas/RoutePropagatingVirtualGateway'
        routes:
          description: One or more routes in the route table.
          type: array
          items:
            $ref: '#/components/schemas/Route'
        tags:
          description: One or more tags associated with the route table.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        vpcId:
          description: The ID of the Vpc for the route table.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: RouteTable
    SecurityGroup:
      description: Information about the security group.
      type: object
      properties:
        description:
          description: The description of the security group.
          type: string
          example: Security group example
        id:
          description: The ID of the security group.
          type: string
          example: sg-12345678
        inboundRules:
          description: The inbound rules associated with the security group.
          type: array
          items:
            $ref: '#/components/schemas/SecurityGroupRule'
        name:
          description: The name of the security group.
          type: string
          example: security-group-example
        outboundRules:
          description: The outbound rules associated with the security group.
          type: array
          items:
            $ref: '#/components/schemas/SecurityGroupRule'
        tags:
          description: One or more tags associated with the security group.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        vpcId:
          description: The ID of the Vpc for the security group.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: SecurityGroup
    SecurityGroupLight:
      description: Information about the security group.
      type: object
      properties:
        securityGroupId:
          description: The ID of the security group.
          type: string
          example: sg-12345678
        securityGroupName:
          description: The name of the security group.
          type: string
          example: Security group example
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: SecurityGroupLight
    SecurityGroupRule:
      description: Information about the security group rule.
      type: object
      properties:
        fromPortRange:
          description: 'The beginning of the port range for the TCP and UDP protocols, or an ICMP type number.'
          type: integer
          example: 22
        ipProtocol:
          description: 'The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all protocols). By default, `-1`. In a Vpc, this can also be an IP protocol number. For more information, see the [IANA.org website](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).'
          type: string
          example: tcp
        ipRanges:
          description: 'One or more IP ranges for the security group rules, in CIDR notation (for example, `10.0.0.0/16`).'
          type: array
          items:
            type: string
          example:
            - 10.0.0.0/16
        securityGroupsMembers:
          description: Information about one or more source or destination security groups.
          type: array
          items:
            $ref: '#/components/schemas/SecurityGroupsMember'
        serviceIds:
          description: One or more service IDs to allow traffic from a Vpc to access the corresponding Numspot services.
          type: array
          items:
            type: string
        toPortRange:
          description: 'The end of the port range for the TCP and UDP protocols, or an ICMP code number.'
          type: integer
          example: 22
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: SecurityGroupRule
    SecurityGroupsMember:
      description: Information about a source or destination security group.
      type: object
      properties:
        securityGroupId:
          description: The ID of a source or destination security group that you want to link to the security group of the rule.
          type: string
          example: sg-12345678
        securityGroupName:
          description: (Public Cloud only) The name of a source or destination security group that you want to link to the security group of the rule.
          type: string
          example: security-group-example
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: SecurityGroupsMember
    Snapshot:
      description: Information about the snapshot.
      type: object
      properties:
        access:
          $ref: '#/components/schemas/Access'
        creationDate:
          description: The date and time of creation of the snapshot.
          type: string
          format: date-time
          example: '2010-10-01 12:34:56.789000+00:00'
        description:
          description: The description of the snapshot.
          type: string
          example: Snapshot created from a volume
        id:
          description: The ID of the snapshot.
          type: string
          example: snap-12345678
        progress:
          description: 'The progress of the snapshot, as a percentage.'
          type: integer
          example: 0
        state:
          description: The state of the snapshot (`in-queue` \| `completed` \| `error`).
          type: string
          example: completed
        tags:
          description: One or more tags associated with the snapshot.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        volumeId:
          description: The ID of the volume used to create the snapshot.
          type: string
          example: vol-12345678
        volumeSize:
          description: 'The size of the volume used to create the snapshot, in GB.'
          type: integer
          example: 10
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Snapshot
    StateComment:
      description: Information about the change of state.
      type: object
      properties:
        stateCode:
          description: The code of the change of state.
          type: string
          example: code
        stateMessage:
          description: A message explaining the change of state.
          type: string
          example: message
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: StateComment
    StopVm:
      type: object
      properties:
        forceStop:
          description: Forces the VM to stop.
          type: boolean
          example: true
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: StopVm
    Subnet:
      description: Information about the Subnet.
      type: object
      properties:
        availabilityZoneName:
          description: The name of the AZ in which the Subnet is located.
          $ref: '#/components/schemas/AvailabilityZoneName'
        availableIpsCount:
          description: The number of available IPs in the Subnets.
          type: integer
          example: 16379
        id:
          description: The ID of the Subnet.
          type: string
          example: subnet-12345678
        ipRange:
          description: 'The IP range in the Subnet, in CIDR notation (for example, `10.0.0.0/16`).'
          type: string
          example: 10.0.0.0/16
        mapPublicIpOnLaunch:
          description: 'If true, a public IP is assigned to the network interface cards (NICs) created in the specified Subnet.'
          type: boolean
          example: false
        state:
          description: The state of the Subnet (`pending` \| `available` \| `deleted`).
          type: string
          example: available
        tags:
          description: One or more tags associated with the Subnet.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        vpcId:
          description: The ID of the Vpc in which the Subnet is.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Subnet
    Tag:
      description: Information about the tag.
      type: object
      properties:
        key:
          description: 'The key of the tag, with a minimum of 1 character.'
          type: string
          example: key1
        resourceId:
          description: The ID of the resource.
          type: string
          example: snap-12345678
        resourceType:
          description: The type of the resource.
          type: string
          example: snapshot
        value:
          description: 'The value of the tag, between 0 and 255 characters.'
          type: string
          example: value1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Tag
    UnlinkInternetGateway:
      type: object
      properties:
        vpcId:
          description: The ID of the Vpc from which you want to detach the Internet gateway.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - vpcId
      title: UnlinkInternetGateway
    UnlinkLoadBalancerBackendMachines:
      type: object
      properties:
        backendIps:
          description: ' One or more public IPs of back-end VMs.'
          type: array
          items:
            type: string
          example:
            - 192.0.2.0
            - 198.51.100.0
        backendVmIds:
          description: ' One or more IDs of back-end VMs.'
          type: array
          items:
            type: string
          example:
            - i-12345678
            - i-87654321
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UnlinkLoadBalancerBackendMachines
    UnlinkNic:
      type: object
      properties:
        linkNicId:
          description: The ID of the attachment operation.
          type: string
          example: eni-attach-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - linkNicId
      title: UnlinkNic
    UnlinkPrivateIps:
      type: object
      properties:
        privateIps:
          description: One or more secondary private IPs you want to unassign from the NIC.
          type: array
          items:
            type: string
          example:
            - 10.0.0.6
            - 10.0.0.7
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - privateIps
      title: UnlinkPrivateIps
    UnlinkPublicIp:
      type: object
      properties:
        linkPublicIpId:
          description: The ID representing the association of the public IP with the VM or the NIC. This parameter is required unless you use the `PublicIp` parameter.
          type: string
          example: eipassoc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UnlinkPublicIp
    UnlinkRouteTable:
      type: object
      properties:
        linkRouteTableId:
          description: The ID of the association between the route table and the Subnet.
          type: string
          example: rtbassoc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - linkRouteTableId
      title: UnlinkRouteTable
    UnlinkVolume:
      type: object
      properties:
        forceUnlink:
          description: 'Forces the detachment of the volume in case of previous failure. Important: This action may damage your data or file systems.'
          type: boolean
          example: false
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UnlinkVolume
    UpdateFlexibleGpu:
      type: object
      properties:
        deleteOnVmDeletion:
          description: 'If true, the fGPU is deleted when the VM is terminated.'
          type: boolean
          example: true
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UpdateFlexibleGpu
    UpdateImage:
      type: object
      properties:
        accessCreation:
          $ref: '#/components/schemas/AccessCreation'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - accessCreation
      title: UpdateImage
    UpdateListenerRule:
      type: object
      properties:
        hostPattern:
          description: 'A host-name pattern for the rule, with a maximum length of 128 characters. This host-name pattern supports maximum three wildcards, and must not contain any special characters except [-.?].'
          type: string
          example: '*.example.com'
          nullable: true
        pathPattern:
          description: 'A path pattern for the rule, with a maximum length of 128 characters. This path pattern supports maximum three wildcards, and must not contain any special characters except [_-.$/~&quot;''@:+?].'
          type: string
          example: /docs/*
          nullable: true
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UpdateListenerRule
    UpdateLoadBalancer:
      type: object
      properties:
        healthCheck:
          $ref: '#/components/schemas/HealthCheck'
        loadBalancerPort:
          description: 'The port on which the load balancer is listening (between `1` and `65535`, both included). This parameter is required if you want to update the server certificate.'
          type: integer
          example: 80
        policyNames:
          description: The name of the policy you want to enable for the listener.
          type: array
          items:
            type: string
          example:
            - example-browser-policy
        publicIp:
          description: '(internet-facing only) The public IP you want to associate with the load balancer. The former public IP of the load balancer is then disassociated. If you specify an empty string and the former public IP belonged to you, it is disassociated and replaced by a public IP owned by Numspot.'
          type: string
          example: 192.0.4.0
        securedCookies:
          description: 'If true, secure cookies are enabled for the load balancer.'
          type: boolean
          example: true
        securityGroups:
          description: '(Vpc only) One or more IDs of security groups you want to assign to the load balancer. You need to specify the already assigned security groups that you want to keep along with the new ones you are assigning. If the list is empty, the default security group of the Vpc is assigned to the load balancer.'
          type: array
          items:
            type: string
          example:
            - sg-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UpdateLoadBalancer
    UpdateNic:
      type: object
      properties:
        description:
          description: A new description for the NIC.
          type: string
          example: Example of description
        linkNic:
          $ref: '#/components/schemas/LinkNicToUpdate'
        securityGroupIds:
          description: |-
            One or more IDs of security groups for the NIC.<br />
            You must specify at least one group, even if you use the default security group in the Vpc.
          type: array
          items:
            type: string
          example:
            - sg-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UpdateNic
    UpdateRoute:
      type: object
      properties:
        destinationIpRange:
          description: 'The IP range used for the destination match, in CIDR notation (for example, `10.0.0.0/24`).'
          type: string
          example: 10.0.0.0/24
        gatewayId:
          description: The ID of an Internet gateway or virtual gateway attached to your Vpc.
          type: string
          example: vgw-12345678
        natGatewayId:
          description: The ID of a NAT gateway.
          type: string
          example: nat-12345678
        nicId:
          description: The ID of a network interface card (NIC).
          type: string
          example: eni-12345678
        vmId:
          description: The ID of a NAT VM in your Vpc.
          type: string
          example: i-12345678
        vpcPeeringId:
          description: The ID of a Vpc peering.
          type: string
          example: pcx-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - destinationIpRange
      title: UpdateRoute
    UpdateRouteTableRoutePropagation:
      type: object
      properties:
        enable:
          description: 'If true, a virtual gateway can propagate routes to a specified route table of a Vpc. If false, the propagation is disabled.'
          type: boolean
          example: true
        virtualGatewayId:
          description: The ID of the virtual gateway.
          type: string
          example: vgw-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - enable
        - virtualGatewayId
      title: UpdateRouteTableRoutePropagation
    UpdateSubnet:
      type: object
      properties:
        mapPublicIpOnLaunch:
          description: 'If true, a public IP is assigned to the network interface cards (NICs) created in the specified Subnet.'
          type: boolean
          example: true
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - mapPublicIpOnLaunch
      title: UpdateSubnet
    UpdateVm:
      type: object
      properties:
        blockDeviceMappings:
          description: One or more block device mappings of the VM.
          type: array
          items:
            $ref: '#/components/schemas/BlockDeviceMappingVmUpdate'
        bsuOptimized:
          description: This parameter is not available. It is present in our API for the sake of historical compatibility with AWS.
          type: boolean
          example: true
        deletionProtection:
          description: 'If true, you cannot delete the VM unless you change this parameter back to false.'
          type: boolean
          example: true
        isSourceDestChecked:
          description: '(Vpc only) If true, the source/destination check is enabled. If false, it is disabled. This value must be false for a NAT VM to perform network address translation (NAT) in a Vpc.'
          type: boolean
          example: true
        keypairName:
          description: |-
            The name of a keypair you want to associate with the VM.<br />
            When you replace the keypair of a VM with another one, the metadata of the VM is modified to reflect the new public key, but the replacement is still not effective in the operating system of the VM. To complete the replacement and effectively apply the new keypair, you need to perform other actions inside the VM.
          type: string
          example: keypair-example
        nestedVirtualization:
          description: '(dedicated tenancy only) If true, nested virtualization is enabled. If false, it is disabled.'
          type: boolean
          example: true
        performance:
          description: The performance of the VM (`medium` \| `high` \|  `highest`).
          type: string
          example: medium
          enum:
            - medium
            - high
            - highest
        securityGroupIds:
          description: One or more IDs of security groups for the VM.
          type: array
          items:
            type: string
          example:
            - sg-12345678
        type:
          description: The type of VM.
          type: string
          example: ns-cus6-2c4r
        userData:
          description: 'The Base64-encoded MIME user data, limited to 500 kibibytes (KiB).'
          type: string
        vmInitiatedShutdownBehavior:
          description: 'The VM behavior when you stop it. If set to `stop`, the VM stops. If set to `restart`, the VM stops then automatically restarts. If set to `terminate`, the VM stops and is terminated.'
          type: string
          example: stop
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UpdateVm
    UpdateVolume:
      type: object
      properties:
        iops:
          description: |-
            **Cold volume**: the new number of I/O operations per second (IOPS). This parameter can be specified only if you update an `io1` volume or if you change the type of the volume for an `io1`. This modification is instantaneous. <br />
            **Hot volume**: the new number of I/O operations per second (IOPS). This parameter can be specified only if you update an `io1` volume. This modification is not instantaneous. <br /><br />
             The maximum number of IOPS allowed for `io1` volumes is `13000` with a maximum performance ratio of 300 IOPS per GB.
          type: integer
          example: 200
        size:
          description: |-
            **Cold volume**: the new size of the volume, in GB. This value must be equal to or greater than the current size of the volume. This modification is not instantaneous. <br />
            **Hot volume**: you cannot change the size of a hot volume.
          type: integer
          example: 50
        volumeType:
          description: |-
            **Cold volume**: the new type of the volume (`standard` \ | `io1` \| `gp2`). This modification is instantaneous. If you update to an `io1` volume, you must also specify the `Iops` parameter.<br />
             **Hot volume**: you cannot change the type of a hot volume.
          type: string
          example: io1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UpdateVolume
    UpdateVpc:
      type: object
      properties:
        dhcpOptionsSetId:
          description: The ID of the DHCP options set (or `default` if you want to associate the default one).
          type: string
          example: dopt-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - dhcpOptionsSetId
      title: UpdateVpc
    UpdateServerCertificate:
      type: object
      properties:
        newName:
          description: A new name for the server certificate.
          type: string
          example: new-name
        newPath:
          description: A new path for the server certificate.
          type: string
          example: /example/
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: UpdateServerCertificate
    Vm:
      description: Information about the VM.
      type: object
      properties:
        architecture:
          description: The architecture of the VM (`i386` \| `x86_64`).
          type: string
          example: i386
        blockDeviceMappings:
          description: The block device mapping of the VM.
          type: array
          items:
            $ref: '#/components/schemas/BlockDeviceMappingCreated'
        bsuOptimized:
          description: This parameter is not available. It is present in our API for the sake of historical compatibility with AWS.
          type: boolean
          example: true
        clientToken:
          description: The idempotency token provided when launching the VM.
          type: string
          example: string
        creationDate:
          description: The date and time of creation of the VM.
          type: string
          format: date-time
          example: '2010-10-01 12:34:56.789000+00:00'
        deletionProtection:
          description: 'If true, you cannot delete the VM unless you change this parameter back to false.'
          type: boolean
          example: true
        hypervisor:
          description: The hypervisor type of the VMs (`ovm` \| `xen`).
          type: string
          example: ovm
        id:
          description: The ID of the VM.
          type: string
          example: i-12345678
        imageId:
          description: The ID of the Image used to create the VM.
          type: string
          example: ami-12345678
        initiatedShutdownBehavior:
          description: 'The VM behavior when you stop it. If set to `stop`, the VM stops. If set to `restart`, the VM stops then automatically restarts. If set to `terminate`, the VM stops and is deleted.'
          type: string
          example: stop
        isSourceDestChecked:
          description: '(Vpc only) If true, the source/destination check is enabled. If false, it is disabled. This value must be false for a NAT VM to perform network address translation (NAT) in a Vpc.'
          type: boolean
          example: true
        keypairName:
          description: The name of the keypair used when launching the VM.
          type: string
          example: keypair-name
        launchNumber:
          description: 'The number for the VM when launching a group of several VMs (for example, `0`, `1`, `2`, and so on).'
          type: integer
          example: 0
        nestedVirtualization:
          description: 'If true, nested virtualization is enabled. If false, it is disabled.'
          type: boolean
          example: false
        nics:
          description: (Vpc only) The network interface cards (NICs) the VMs are attached to.
          type: array
          items:
            $ref: '#/components/schemas/NicLight'
        osFamily:
          description: Indicates the operating system (OS) of the VM.
          type: string
          example: operating system
        performance:
          description: The performance of the VM (`medium` \| `high` \|  `highest`).
          type: string
          example: medium
        placement:
          $ref: '#/components/schemas/Placement'
        privateDnsName:
          description: The name of the private DNS.
          type: string
          example: ip-10-0-0-4.eu-west-2.compute.internal
        privateIp:
          description: The primary private IP of the VM.
          type: string
          example: 10.0.0.4
        productCodes:
          description: The product codes associated with the Image used to create the VM.
          type: array
          items:
            type: string
          example:
            - '0001'
        publicDnsName:
          description: The name of the public DNS.
          type: string
          example: ip-192-0-2-0.eu-west-2.xxxxx.xxxxxxx
        publicIp:
          description: The public IP of the VM.
          type: string
          example: 192.0.4.0
        reservationId:
          description: The reservation ID of the VM.
          type: string
        rootDeviceName:
          description: 'The name of the root device for the VM (for example, `/dev/sda1`).'
          type: string
          example: /dev/sda1
        rootDeviceType:
          description: The type of root device used by the VM (always `bsu`).
          type: string
          example: bsu
        securityGroups:
          description: One or more security groups associated with the VM.
          type: array
          items:
            $ref: '#/components/schemas/SecurityGroupLight'
        state:
          description: The state of the VM (`pending` \| `running` \| `stopping` \| `stopped` \| `shutting-down` \| `terminated` \| `quarantine`).
          type: string
          example: pending
        stateReason:
          description: The reason explaining the current state of the VM.
          type: string
          example: state reason
        subnetId:
          description: The ID of the Subnet for the VM.
          type: string
          example: subnet-12345678
        tags:
          description: One or more tags associated with the VM.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        type:
          description: The type of VM.
          type: string
          example: ns-cus6-2c4r
        userData:
          description: The Base64-encoded MIME user data.
          type: string
          example: dXNlciBkYXRh
        vpcId:
          description: The ID of the Vpc in which the VM is running.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Vm
    VmState:
      description: Information about the state of the VM.
      type: object
      properties:
        currentState:
          description: The current state of the VM (`InService` \| `OutOfService` \| `Unknown`).
          type: string
          example: InService
        id:
          description: The ID of the VM.
          type: string
          example: i-12345678
        previousState:
          description: The previous state of the VM (`InService` \| `OutOfService` \| `Unknown`).
          type: string
          example: Unknown
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: VmState
    VmStates:
      description: Information about the states of the VMs.
      type: object
      properties:
        availabilityZoneName:
          description: The name of the AZ of the VM.
          $ref: '#/components/schemas/AvailabilityZoneName'
        id:
          description: The ID of the VM.
          type: string
          example: i-12345678
        maintenanceEvents:
          description: One or more scheduled events associated with the VM.
          type: array
          items:
            $ref: '#/components/schemas/MaintenanceEvent'
        vmState:
          description: The state of the VM (`pending` \| `running` \| `stopping` \| `stopped` \| `shutting-down` \| `terminated` \| `quarantine`).
          type: string
          example: pending
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: VmStates
    Volume:
      description: Information about the volume.
      type: object
      properties:
        availabilityZoneName:
          description: The name of the AZ in which the volume was created.
          $ref: '#/components/schemas/AvailabilityZoneName'
        creationDate:
          description: The date and time of creation of the volume.
          type: string
          format: date-time
          example: '2010-10-01 12:34:56.789000+00:00'
        id:
          description: The ID of the volume.
          type: string
          example: vol-12345678
        iops:
          description: |-
            The number of I/O operations per second (IOPS):<br />
            - For `io1` volumes, the number of provisioned IOPS<br />
            - For `gp2` volumes, the baseline performance of the volume
          type: integer
          example: 100
        linkedVolumes:
          description: Information about your volume attachment.
          type: array
          items:
            $ref: '#/components/schemas/LinkedVolume'
        size:
          description: 'The size of the volume, in GB.'
          type: integer
          example: 10
        snapshotId:
          description: The snapshot from which the volume was created.
          type: string
          example: snap-12345678
        state:
          description: The state of the volume (`creating` \| `available` \| `in-use` \| `updating` \| `deleting` \| `error`).
          type: string
          example: creating
        tags:
          description: One or more tags associated with the volume.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        type:
          description: The type of the volume (`standard` \| `gp2` \| `io1`).
          type: string
          example: io1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Volume
    Vpc:
      description: Information about the Vpc.
      type: object
      properties:
        dhcpOptionsSetId:
          description: The ID of the DHCP options set (or `default` if you want to associate the default one).
          type: string
          example: dopt-12345678
        id:
          description: The ID of the Vpc.
          type: string
          example: vpc-12345678
        ipRange:
          description: 'The IP range for the Vpc, in CIDR notation (for example, `10.0.0.0/16`).'
          type: string
          example: 10.0.0.0/16
        state:
          description: The state of the Vpc (`pending` \| `available` \| `deleting`).
          type: string
          example: pending
        tags:
          description: One or more tags associated with the Vpc.
          type: array
          items:
            $ref: '#/components/schemas/ResourceTag'
        tenancy:
          description: The VM tenancy in a Vpc.
          type: string
          example: deafult
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Vpc
    ServerCertificate:
      description: Information about the Server Certificates.
      type: object
      properties:
        expirationDate:
          description: The date on which the server certificate expires.
          type: string
          example: '2019-08-24'
        id:
          description: The ID of the server certificate.
          type: string
          example: 'orn:ows:idauth::012345678910:server-certificate/example/server-cert-example'
        name:
          description: The name of the server certificate.
          type: string
          example: server-cert-example
        path:
          description: The path to the server certificate.
          type: string
          example: /example/
        uploadDate:
          description: The date on which the server certificate has been uploaded.
          type: string
          example: '2019-08-24'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: ServerCertificate
    Urn:
      description: Type defining an Uniform Resource Name (URN) according to the URN syntax defined in RFC 8141
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - 'urn:example:my-resource'
        - 'urn:example:resource?+param1=value1'
        - 'urn:example:resource#section2'
      pattern: '^[Uu][Rr][Nn]:(?<nid>[a-zA-Z0-9][a-zA-Z0-9-]{1,31}):(?<nss>(?:[-a-zA-Z0-9()+,.:=@;$_!*''&~/]|%[0-9a-fA-F]{2})+)(?:\?\+(?<rcomponent>.*?))?(?:\?=(?<qcomponent>.*?))?(?:#(?<fcomponent>.*?))?$'
      title: Urn
    Url:
      description: URL type
      type: string
      format: uri
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - 'https://domain.org/path/'
      title: Url
    Error:
      description: 'For HTTP errors, we implement the https://datatracker.ietf.org/doc/html/rfc9457'
      type: object
      properties:
        type:
          description: A Uniform Resource Name defining the error type.
          $ref: '#/components/schemas/Urn'
        title:
          description: Human-readable summary of the problem type.
          type: string
        detail:
          description: Human-readable explanation specific to this occurrence of the problem.
          type: string
        instance:
          description: Url to fetch more information about this problem type.
          $ref: '#/components/schemas/Url'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      examples:
        - type: 'urn:numspot:errors#unauthenticated_access'
          title: Unauthorized attempt to access a resource without proper authentication.
          detail: Ensure valid credentials are provided.
          instance: /foo/23c5f747-4b9f-4b14-a250-6d460673989c/bar/7666f8e3-71df-40e8-b533-006807ee0c19
      required:
        - type
        - title
      title: Error
    Violation:
      description: The violation definition.
      type: object
      properties:
        field:
          description: The field impacted by the violation.
          type: string
        description:
          description: A description of why the field is violated.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - field
        - description
      title: Violation
    BadRequestError:
      description: 'For HTTP 400 bad request errors, we implement the https://datatracker.ietf.org/doc/html/rfc9457'
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          additionalProperties: false
          properties:
            violations:
              description: Array of violations to provide a per-field detail.
              type: array
              items:
                $ref: '#/components/schemas/Violation'
      title: BadRequestError
    InternalServerError:
      description: 'For HTTP 500 Internal Server errors. Implements https://datatracker.ietf.org/doc/html/rfc9457'
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          additionalProperties: false
          description: Type for Internal Server Error
          properties:
            type:
              description: URN that identifies this as an internal server error.
              type: string
              enum:
                - 'urn:numspot:errors#internal_error'
          required:
            - type
      title: InternalServerError
    AvailabilityZoneName:
      description: List of all Availability Zones name.
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - eu-west-2a
        - eu-west-2b
        - eu-west-2c
        - cloudgouv-eu-west-1a
        - cloudgouv-eu-west-1b
        - cloudgouv-eu-west-1c
      examples:
        - eu-west-2c
      title: AvailabilityZoneName
    CloudServiceName:
      description: List of all Cloud Service names
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - postgresql
        - kubernetes
        - openshift
        - objectstorage
        - compute
        - connectivity
      examples:
        - kubernetes
      title: CloudServiceName
    ConflictDependency:
      type: object
      properties:
        resourceId:
          description: Identifier of the conflicting resource
          type: string
          format: uuid
          examples:
            - 01957f50-2730-71f5-9ea9-d8fc3575443a
        origin:
          description: From where the conflict is originating
          $ref: '#/components/schemas/CloudServiceName'
          examples:
            - compute
        resourceType:
          description: What type of resource is concerned by the conflict
          type: string
          examples:
            - vpc
        detail:
          description: Explanation of why this resource causes a conflict
          type: string
          examples:
            - Removing this resource is not possible if it is attached to a VPC
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - resourceId
        - origin
        - resourceType
      title: ConflictDependency
    ConflictError:
      description: 'For HTTP 409 Conflict errors, listing resources that cause the conflict. Implements https://datatracker.ietf.org/doc/html/rfc9457'
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          description: Type for Conflict
          additionalProperties: false
          properties:
            type:
              description: URN that identifies this as a conflict.
              type: string
              enum:
                - 'urn:numspot:errors#conflict'
          required:
            - type
        - type: object
          additionalProperties: false
          properties:
            dependencies:
              description: Array of conflicting dependencies that prevent the operation
              type: array
              items:
                $ref: '#/components/schemas/ConflictDependency'
              minItems: 1
      title: ConflictError
    KubernetesBadRequestError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/BadRequestError'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#invalid_parameter'
          required:
            - type
      title: KubernetesBadRequestError
    KubernetesNotFoundError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#resource_not_found'
          required:
            - type
      title: KubernetesNotFoundError
    Cidr:
      description: Type defining a CIDR (Classless Inter-Domain Routing) according to the CIDR syntax defined in RFC 4632
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - 192.168.1.1/24
        - 10.0.0.5/8
        - 172.16.0.0/16
        - 255.255.255.0/32
        - 0.0.0.0/0
      pattern: '^((25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9][0-9]?)/(3[0-2]|[12]?[0-9])$'
      title: Cidr
    KubernetesVersions:
      type: object
      properties:
        versions:
          type: array
          items:
            type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - versions
      title: KubernetesVersions
    KubernetesNodeProfiles:
      type: object
      properties:
        nodesProfiles:
          type: array
          items:
            type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - nodesProfiles
      title: NodeProfiles
    Page:
      type: object
      properties:
        size:
          description: The maximum number of items to return. The service may return fewer than this value.
          type: integer
          format: int32
          default: 50
          maximum: 50
          minimum: 0
        nextToken:
          description: A page token received from a previous call. Provide this to retrieve the subsequent page.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Page
    PaginatedList:
      description: Common attributes of a paginated list. This schema is intended to be combined with specific item schemas using allOf.
      type: object
      properties:
        nextPageToken:
          description: 'Token to retrieve the next page. If omitted or empty, there are no subsequent pages.'
          type: string
          examples:
            - eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
        totalSize:
          description: 'Total number of items across all pages, if known.'
          type: integer
          examples:
            - 0
            - 100
            - 2500
          minimum: 0
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      examples:
        - nextPageToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
          totalSize: 150
        - nextPageToken: token123
        - totalSize: 42
      title: PaginatedList
    Uuid:
      description: A string representing uuid.
      type: string
      format: uuid
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - 14b26347-4eb3-4fda-960f-1d77dbd078ca
      title: Uuid
    StrictSlug:
      description: 'A strict slug: starts and ends with an alphanumeric character, allows hyphens or underscores in between but not consecutively or at the edges.'
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - my-awesome-cluster_Name-with-unlimited_Length
      pattern: '^[a-zA-Z0-9]+(?:[-_][a-zA-Z0-9]+)*$'
      title: StrictSlug
    StrictSlugMax63:
      description: 'A string that inherits rules from StrictSlug: lowercase letters, digits, hyphens, and underscores, and must start and end with a letter or digit.'
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/StrictSlug'
        - type: string
          minLength: 3
          maxLength: 63
      examples:
        - my-awesome-cluster_Name-limited-to_63_Characters
      title: StrictSlug63
    SemanticVersion:
      description: 'A string that follows Semantic Versioning format: MAJOR.MINOR.PATCH, optionally with pre-release and build metadata.'
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - 1.23.4
      pattern: '^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'
      title: SemanticVersion
    KubernetesNodeCount:
      description: The number of workers
      type: integer
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      minimum: 1
      title: KubernetesNodeCount
    KubernetesNodeProfileName:
      description: The profile defining the size and characteristics of the worker
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - VERY_SMALL
        - SMALL
        - MEDIUM
        - LARGE
        - VERY_LARGE
      title: KubernetesNodeProfileName
    KubernetesNodeProfile:
      type: object
      properties:
        name:
          description: the name of the node profile
          allOf:
            - $ref: '#/components/schemas/KubernetesNodeProfileName'
        memory:
          description: 'amount of memory (RAM) allocated, express in Gio'
          type: integer
        cpu:
          description: amount of vCPU allocated
          type: integer
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - memory
        - cpu
      title: NodeProfile
    KubernetesNodePool:
      type: object
      properties:
        name:
          description: the name of the node pool
          $ref: '#/components/schemas/StrictSlugMax63'
        nodeCount:
          description: number of nodes/workers in this node pool
          $ref: '#/components/schemas/KubernetesNodeCount'
        kubernetesVersion:
          description: Kubernetes version want on all nodes into this node pool
          $ref: '#/components/schemas/SemanticVersion'
        nodeProfile:
          $ref: '#/components/schemas/KubernetesNodeProfile'
        gpuType:
          description: 'if node profile contains gpu, it indicate which specific GPU is instanciated'
          type: string
          enum:
            - P6
            - P100
            - V100
            - A100-80
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - nodeCount
        - kubernetesVersion
        - nodeProfile
      title: NodePool
    KubernetesTag:
      type: object
      properties:
        key:
          description: key of the tag
          $ref: '#/components/schemas/StrictSlugMax63'
        value:
          description: value of the tag
          $ref: '#/components/schemas/StrictSlugMax63'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - key
        - value
      title: Tag
    DateTime:
      description: 'A string representing a date, time and timezone information.'
      type: string
      format: date-time
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - '2018-11-13T20:20:39+00:00'
      title: DateTime
    ActiveState:
      description: 'Active states are lifecycle states that typically resolve on their own into a single expected resting state. Note: Remember only to expose states that are useful to customers. Active states are valuable only if the resource will be in that state for a sufficient period of time. If state changes are immediate, active states are not necessary.'
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - CREATING
        - DELETING
        - PENDING
        - REPAIRING
        - RUNNING
        - SUSPENDING
      examples:
        - CREATING
      title: ActiveState
    RestingState:
      description: 'Resting states are lifecycle states that, absent user action, are expected to remain indefinitely. However, the user can initiate an action to move a resource in a resting state into certain other states (resting or active).'
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - ACCEPTED
        - ACTIVE
        - CANCELLED
        - DELETED
        - FAILED
        - SUCCEEDED
        - SUSPENDED
        - VERIFIED
      examples:
        - ACTIVE
      title: RestingState
    State:
      description: 'The following is a list of states in common use. APIs should consider prior art when determining state names, and should value local consistency above global consistency in the case of conflicting precedent. It encompasses the two possible kinds of States; Resting and Active.'
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - CREATING
      oneOf:
        - $ref: '#/components/schemas/ActiveState'
        - $ref: '#/components/schemas/RestingState'
      title: State
    KubernetesCluster:
      type: object
      properties:
        id:
          description: the identifier of the cluster
          $ref: '#/components/schemas/Uuid'
        spaceId:
          description: the space identifier of the cluster
          $ref: '#/components/schemas/Uuid'
        clientBastionPublicIP:
          description: client bastion public ip
          type: string
        apiUrl:
          description: the corresponding url api
          $ref: '#/components/schemas/Url'
        ingressUrl:
          description: ingress public url
          $ref: '#/components/schemas/Url'
        name:
          description: the name of the cluster
          $ref: '#/components/schemas/StrictSlugMax63'
        description:
          description: Sample description of the cluster given by the user
          type: string
        selfLink:
          description: the URL that allow you to retrieve cluster information
          $ref: '#/components/schemas/Url'
        version:
          description: Kubernetes version want on all nodes
          $ref: '#/components/schemas/SemanticVersion'
        nodePools:
          type: array
          items:
            $ref: '#/components/schemas/KubernetesNodePool'
        cidr:
          description: The IP network mask handling by the cluster
          type: string
          format: cidr
          pattern: '^10\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)\.0\.0/16$'
        tags:
          description: tags associated to the resource
          type: array
          items:
            $ref: '#/components/schemas/KubernetesTag'
        createdAt:
          description: creation date of the cluster
          $ref: '#/components/schemas/DateTime'
        status:
          description: The current state of the cluster
          $ref: '#/components/schemas/State'
        statusMessage:
          description: The detail about the current state of the cluster
          $ref: '#/components/schemas/StrictSlugMax63'
        updatedAt:
          description: date of the last update or the cluster resource
          $ref: '#/components/schemas/DateTime'
        availabilityZone:
          description: Availability zone of the Control Plane
          $ref: '#/components/schemas/AvailabilityZoneName'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - name
        - description
        - clientBastionPublicIP
        - urls
        - selfLink
        - version
        - nodePools
        - cidr
        - spaceId
        - status
        - tags
        - createdAt
        - updatedAt
        - availabilityZone
      title: Cluster
    KubernetesListClusters:
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          required:
            - items
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/KubernetesCluster'
      title: ClustersList
    KubernetesClusterConfiguration:
      type: object
      properties:
        name:
          description: the name of the cluster
          $ref: '#/components/schemas/StrictSlugMax63'
        version:
          $ref: '#/components/schemas/SemanticVersion'
        cidr:
          type: string
          pattern: '^10\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)\.0\.0/16$'
        nodeProfile:
          $ref: '#/components/schemas/KubernetesNodeProfileName'
        nodeCount:
          description: The number of workers with given profile you want in your cluster initialisation
          allOf:
            - $ref: '#/components/schemas/KubernetesNodeCount'
        availabilityZone:
          description: Selected availability zones for control plane deployment
          $ref: '#/components/schemas/AvailabilityZoneName'
          examples:
            - value: cloudgouv-eu-west-1a
              summary: Example selecting first availability zone of region cloudgouv-eu-west1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - version
        - nodeProfile
        - nodeCount
        - cidr
      title: ClusterConfiguration
    KubernetesConflictError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/ConflictError'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#duplicated_resource'
          required:
            - type
      title: KubernetesConflictError
    KubernetesBinaryContent:
      type: string
      format: binary
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: BinaryContent
    KubernetesWorkersAddition:
      type: object
      properties:
        version:
          description: The version of the node to add
          $ref: '#/components/schemas/SemanticVersion'
        nodeProfile:
          $ref: '#/components/schemas/KubernetesNodeProfileName'
        nodeCount:
          description: the number of worker you want add in your cluster when was correctly setup
          allOf:
            - $ref: '#/components/schemas/KubernetesNodeCount'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - nodeProfile
        - nodeCount
        - version
      title: WorkersAddition
    KubernetesWorkerRemoval:
      type: object
      properties:
        nodeProfile:
          description: type of node profile wanted to remove
          $ref: '#/components/schemas/KubernetesNodeProfileName'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - nodeProfile
      title: WorkerRemoval
    KubernetesWorkerUpgrade:
      type: object
      properties:
        version:
          description: Targeted Kubernetes version to upgrade
          $ref: '#/components/schemas/SemanticVersion'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - version
      title: WorkerUpgrade
    KubernetesMasterUpgrade:
      type: object
      properties:
        version:
          description: Targeted Kubernetes version to upgrade
          $ref: '#/components/schemas/SemanticVersion'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - version
      title: MasterUpgrade
    OpenShiftVersion:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/StrictSlugMax63'
        version:
          $ref: '#/components/schemas/SemanticVersion'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - version
      title: OpenShifVersion
    OpenShiftVersions:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/OpenShiftVersion'
      title: OpenShiftVersions
    OpenShiftBadRequestError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/BadRequestError'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#invalid_parameter'
          required:
            - type
      title: OpenShiftBadRequestError
    StrictLowerCaseSlug:
      description: 'A lower case strict slug: starts and ends with only lower case alphanumeric character, allows hyphens or underscores in between but not consecutively or at the edges.'
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - my-awesome-name-with-unlimited_length_in-lower-case
      pattern: '^[a-z0-9]+(?:[-_][a-z0-9]+)*$'
      title: StrictLowerCaseSlug
    StrictLowerCaseSlugMax63:
      description: 'A lowercase slug identifier (letters, digits, dashes, and underscores only), contain no uppercase letters.'
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/StrictLowerCaseSlug'
        - type: string
          minLength: 3
          maxLength: 63
      examples:
        - my-awesome-name-lower-case-limited-to_63_characters
      title: StrictLowerCaseSlugMax63
    NodeProfile:
      description: Node profiles
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      enum:
        - SMALL
        - MEDIUM
        - LARGE
        - VERY_LARGE
      title: NodeProfile
    Gpu:
      description: GPU values
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      enum:
        - P6
        - P100
        - V100
        - A100-80
      title: GPU
    OpenShiftNodepool:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/StrictLowerCaseSlugMax63'
        availabilityZoneName:
          description: The Subregion where the workers of the NodePool should be located.
          type: string
          $ref: '#/components/schemas/AvailabilityZoneName'
        nodeCount:
          type: integer
          example: 3
          minimum: 1
        nodeProfile:
          $ref: '#/components/schemas/NodeProfile'
        tina:
          type: string
        gpu:
          $ref: '#/components/schemas/Gpu'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - nodeProfile
        - nodeCount
      title: OpenShiftNodepool
    OpenShiftClusterUrls:
      type: object
      properties:
        console:
          $ref: '#/components/schemas/Url'
        api:
          $ref: '#/components/schemas/Url'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: ClusterUrls
    OpenShiftCluster:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        name:
          $ref: '#/components/schemas/StrictSlugMax63'
        state:
          description: |
            Cluster accepts 3 states:
            -"CREATING": Cluster is being created
            -"DELETING": Cluster is being terminated
            -"ACTIVE": Cluster is up and healthy
            -"FAILED": Cluster has failed and is not healthy
          example: CREATING
          default: CREATING
          $ref: '#/components/schemas/State'
        availabilityZoneName:
          description: 'the Subregion where the the cluster components should be located.(default: cloudgouv-eu-west-1b)'
          default: cloudgouv-eu-west-1b
          $ref: '#/components/schemas/AvailabilityZoneName'
          deprecated: true
        description:
          type: string
        version:
          $ref: '#/components/schemas/SemanticVersion'
        cidr:
          type: string
        nodePools:
          type: array
          items:
            $ref: '#/components/schemas/OpenShiftNodepool'
        urls:
          $ref: '#/components/schemas/OpenShiftClusterUrls'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: OpenShiftCluster
    OpenShiftClusters:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/OpenShiftCluster'
            totalSize:
              type: integer
      title: OpenShiftClusters
    OpenShiftClusterCreate:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/StrictSlugMax63'
        availabilityZoneName:
          description: 'the Subregion where the cluster components should be located. (default: cloudgouv-eu-west-1b)'
          default: cloudgouv-eu-west-1b
          $ref: '#/components/schemas/AvailabilityZoneName'
          deprecated: true
        description:
          type: string
          maxLength: 255
        nodePools:
          type: array
          items:
            $ref: '#/components/schemas/OpenShiftNodepool'
        version:
          $ref: '#/components/schemas/SemanticVersion'
        cidr:
          description: IP addresses in CIDR notation
          type: string
          example: 172.16.0.0/12
        ocpAdminUserId:
          $ref: '#/components/schemas/Uuid'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - cidr
        - name
        - nodePools
        - version
      title: ClusterCreate
    OperationTypes:
      description: Operation types
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      enum:
        - CREATE_CLUSTER
        - DELETE_CLUSTER
        - CREATE_NODE_POOL
        - DELETE_NODE_POOL
        - UPDATE_NODE_POOL
      title: OperationTypes
    StringOrObject:
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      oneOf:
        - type: string
        - type: object
          additionalProperties: true
      title: StringOrObject
    OpenShiftOperation:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        type:
          $ref: '#/components/schemas/OperationTypes'
        status:
          description: |
            Operation accepts 4 states:
            -"PENDING": Operation is waiting to be taken care of
            -"RUNNING": Operation is been taken care of
            -"FAILED": Operation has failed
            -"SUCCEEDED": Operation has finished successfully
          example: PENDING
          default: PENDING
          $ref: '#/components/schemas/State'
        data:
          $ref: '#/components/schemas/StringOrObject'
        progress:
          $ref: '#/components/schemas/StringOrObject'
        selfLink:
          $ref: '#/components/schemas/Url'
        targetLink:
          $ref: '#/components/schemas/Url'
        createTime:
          $ref: '#/components/schemas/DateTime'
        startTime:
          $ref: '#/components/schemas/DateTime'
        endTime:
          $ref: '#/components/schemas/DateTime'
        result:
          $ref: '#/components/schemas/StringOrObject'
        error:
          $ref: '#/components/schemas/StringOrObject'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: OpenShiftOperation
    OpenShiftClusterCreated:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Uuid'
        name:
          $ref: '#/components/schemas/StrictSlugMax63'
        operation:
          $ref: '#/components/schemas/OpenShiftOperation'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: ClusterCreated
    OpenShiftNotFoundError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#resource_not_found'
          required:
            - type
      title: OpensShiftNotFoundError
    OpenShiftClusterUpdate:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/StrictSlugMax63'
        description:
          type: string
          maxLength: 255
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: ClusterUpdate
    OpenShiftClusterDeleted:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/StrictSlugMax63'
        operation:
          $ref: '#/components/schemas/OpenShiftOperation'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: ClusterDeleted
    OpenShiftConflictError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/ConflictError'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#duplicated_resource'
          required:
            - type
      title: OpenShiftConflictError
    OpenShiftUnauthorizedError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#unauthenticated_access'
                - 'urn:numspot:errors#forbidden_access'
          required:
            - type
      title: OpenShiftUnauthorizedError
    OpenShiftNodepools:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/OpenShiftNodepool'
      title: Nodepools
    OpenShiftNodepoolCreated:
      type: object
      properties:
        clusterId:
          $ref: '#/components/schemas/Uuid'
        nodePoolName:
          $ref: '#/components/schemas/StrictLowerCaseSlugMax63'
        operation:
          $ref: '#/components/schemas/OpenShiftOperation'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: NodepoolCreated
    OpenShiftNodepoolUpdate:
      type: object
      properties:
        count:
          type: integer
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - count
      title: NodepoolUpdate
    OpenShiftNodepoolUpdated:
      type: object
      properties:
        clusterId:
          $ref: '#/components/schemas/Uuid'
        nodePoolName:
          $ref: '#/components/schemas/StrictLowerCaseSlugMax63'
        operation:
          $ref: '#/components/schemas/OpenShiftOperation'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: NodepoolUpdated
    OpenShiftOperations:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/OpenShiftOperation'
      title: OpenShiftOperations
    PostgresAllowedIpRanges:
      type: array
      items:
        $ref: '#/components/schemas/Cidr'
        description: |-
          An IPv4 CIDR representing a network.

          All host bits must be set to 0. 0.0.0.0/0 may be used to allow all IPs.
        example: 8.0.0.0/8
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      maxItems: 50
      minItems: 1
      title: PostgresAllowedIpRanges
    PostgresBackupDeleteOption:
      description: 'What to do with existing backups, if any, of the cluster upon deleting it.'
      type: string
      default: KEEP_NEWEST_INDEFINITELY
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - KEEP_NEWEST_INDEFINITELY
        - DELETE_ALL
      title: PostgresBackupDeleteOption
    PostgresCluster:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/PostgresClusterId'
        name:
          $ref: '#/components/schemas/StrictSlugMax63'
        user:
          $ref: '#/components/schemas/PostgresUser'
        nodeConfiguration:
          $ref: '#/components/schemas/PostgresNodeConfiguration'
        volume:
          $ref: '#/components/schemas/PostgresVolume'
        status:
          $ref: '#/components/schemas/PostgresClusterStatus'
        host:
          description: Where connections to the cluster must be made to.
          type: string
        privateHost:
          description: Where connections to the cluster must be made for interconnected services.
          type: string
        port:
          description: On which port connections to the host must be made.
          type: integer
        errorReason:
          description: 'Detailed information regarding what went wrong, available when status is Error.'
          type: string
        createdOn:
          description: When the cluster has been created.
          type: string
          format: datetime
        tags:
          description: Tags to identify resources
          $ref: '#/components/schemas/PostgresTags'
        allowedIpRanges:
          description: List of IPv4 ranges allowed.
          $ref: '#/components/schemas/PostgresAllowedIpRanges'
        automaticBackup:
          $ref: '#/components/schemas/PostgresClusterAutomaticBackup'
        lastOperationName:
          $ref: '#/components/schemas/PostgresClusterOperationName'
        lastOperationResult:
          $ref: '#/components/schemas/PostgresClusterOperationResult'
        maintenanceSchedule:
          $ref: '#/components/schemas/PostgresClusterMaintenanceSchedule'
        availableOperations:
          $ref: '#/components/schemas/PostgresClusterOperationNames'
        netCidr:
          $ref: '#/components/schemas/PostgresClusterNetCIDR'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - name
        - user
        - nodeConfiguration
        - volume
        - status
        - createdOn
        - tags
        - allowedIpRanges
        - automaticBackup
        - lastOperationName
        - lastOperationResult
        - availableOperations
      title: PostgresCluster
    PostgresBackups:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PostgresClusterBackup'
        pageNumber:
          description: The page number.
          type: integer
          format: int32
        totalItems:
          description: The total number of items that match the request.
          type: integer
          format: int32
        nextToken:
          description: Token to provide in order to get the next page. Absent when the last page has been reached.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
        - pageNumber
        - totalItems
      title: PostgresBackups
    PostgresClusterCreationRequest:
      type: object
      properties:
        name:
          description: The cluster's name. It **MUST** be unique amongst all your clusters.
          $ref: '#/components/schemas/StrictSlugMax63'
        user:
          description: The name of the user to be created with administration privileges for the cluster.
          $ref: '#/components/schemas/PostgresUser'
        nodeConfiguration:
          $ref: '#/components/schemas/PostgresNodeConfiguration'
        volume:
          $ref: '#/components/schemas/PostgresVolume'
        tags:
          description: Tags to identify resources
          $ref: '#/components/schemas/PostgresTags'
        allowedIpRanges:
          description: List of unique IPv4 ranges allowed.
          $ref: '#/components/schemas/PostgresAllowedIpRanges'
        automaticBackup:
          description: Whether automatic backup is enabled for this cluster.
          type: boolean
          nullable: true
        isPublic:
          description: Whether public exposition is enabled for this cluster.
          type: boolean
          nullable: true
        sourceBackupId:
          description: Initialize the cluster with data from this backup.
          $ref: '#/components/schemas/PostgresBackupId'
        netCidr:
          $ref: '#/components/schemas/PostgresClusterNetCIDR'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - user
        - nodeConfiguration
        - allowedIpRanges
        - automaticBackup
        - volume
      title: PostgresClusterCreationRequest
    PostgresClusters:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PostgresCluster'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: PostgresClusters
    PostgresClusterAutomaticBackup:
      description: Whether automatic backups are enabled for this cluster.
      type: boolean
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: PostgresClusterAutomaticBackup
    PostgresClusterCatalogItem:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        type:
          type: string
          enum:
            - STRING
            - INTEGER
        minValue:
          type: integer
        maxValue:
          type: integer
        values:
          type: array
          items:
            type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - description
        - type
      title: PostgresClusterCatalogItem
    PostgresClusterWithPassword:
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PostgresCluster'
        - type: object
          properties:
            password:
              description: |-
                The password associated with the cluster administration user.

                **Warning**: Keep it safely, we don't store it in any retrievable way.
              type: string
              format: password
          required:
            - password
      title: PostgresClusterWithPassword
    PostgresClusterBackup:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/PostgresBackupId'
        clusterId:
          $ref: '#/components/schemas/PostgresClusterId'
        clusterName:
          $ref: '#/components/schemas/StrictSlugMax63'
        tags:
          description: Tags to identify resources
          $ref: '#/components/schemas/PostgresTags'
        startedAt:
          description: When the backup process started.
          type: string
          format: datetime
        dataSizeGiB:
          description: The size of the backup in GiB.
          type: integer
        storageSizeGiB:
          description: 'The storage capacity occupied by this backup, in GiB.'
          type: integer
        status:
          $ref: '#/components/schemas/PostgresBackupStatus'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - clusterId
        - clusterName
        - tags
        - status
      title: PostgresClusterBackup
    PostgresClusterBackups:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PostgresClusterBackup'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: PostgresClusterBackups
    PostgresClusterId:
      description: A cluster unique identifier.
      type: string
      format: uuid
      example: e592a4f6-2e49-46e7-b6d0-248a7711197a
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: PostgresClusterId
    PostgresClusterOperationName:
      description: Name of an operation
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - CREATE
        - DELETE
        - MODIFY
        - RESET_PASSWORD
      title: PostgresClusterOperationName
    PostgresClusterOperationNames:
      description: List of operation names
      type: array
      items:
        $ref: '#/components/schemas/PostgresClusterOperationName'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: PostgresClusterOperationNames
    PostgresClusterOperationResult:
      description: Result of an operation
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - IN_PROGRESS
        - FAILED
        - SUCCEEDED
      title: PostgresClusterOperationResult
    PostgresClusterMaintenanceSchedule:
      description: 'Postgres maintenance schedule object. It describes the upcoming maintenance operation for a PostgreSQL cluster, including its timing, type, and potential impact.'
      type: object
      properties:
        beginAt:
          description: 'The start date and time of the maintenance window, in ISO 8601 format.'
          type: string
          format: datetime
        endAt:
          description: 'The end date and time of the maintenance window, in ISO 8601 format.'
          type: string
          format: datetime
        type:
          description: 'The type of maintenance operation being performed (e.g., software upgrade, hardware replacement).'
          type: string
          enum:
            - UPDATE
        potentialImpact:
          description: A description of the potential impact on the cluster's availability and performance during the maintenance window.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - beginAt
        - endAt
        - type
        - potentialImpact
      title: PostgresClusterMaintenanceSchedule
    PostgresClusterStatus:
      description: |-
        The last known status of a cluster.

        - CREATING: means the cluster is being created.
        - CONFIGURING: means the cluster is being configured according to requested changes.
        - READY: means the cluster is available and accepts connections.
        - FAILED: means that the cluster creation has failed, see errorMessage for details.
        - DELETING: means the cluster has been marked for deletion, it will be deleted soon.
        - DELETED: means the cluster has been deleted successfully, it will disappear from query and search results soon.
        - ERROR: means that an operation went wrong on the cluster, see errorMessage for details.
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - CREATING
        - CONFIGURING
        - READY
        - FAILED
        - DELETING
        - DELETED
        - ERROR
      title: PostgresClusterStatus
    PostgresClusterNetCIDR:
      description: |-
        The CIDR of the network where the cluster will be created.

        **Warning**: The CIDR must be in the following three blocks:
        - 10.*.0.0/16
        - 172.(16-31).0.0/16
        - 192.168.0.0/16
        The mask mut not be greater than /24.
      type: string
      example: 10.10.0.0/16
      default: 10.10.0.0/16
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      pattern: '^(?:10\.(?:25[0-5]|2[0-4]\d|1?\d\d?)\.(?:25[0-5]|2[0-4]\d|1?\d\d?)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|1?\d\d?)|192\.168\.(?:25[0-5]|2[0-4]\d|1?\d\d?))\.0/(?:1[6-9]|2[0-4])$'
      title: PostgresClusterNetCIDR
    PostgresBackupId:
      description: A backup unique identifier.
      type: string
      format: uuid
      example: e592a4f6-2e49-46e7-b6d0-248a7711197a
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: PostgresBackupId
    PostgresBackupStatus:
      description: |-
        The last known status of a backup.

        - PENDING: means the backup is scheduled for creation.
        - CREATING: means the backup is being created.
        - CREATED: means the backup is created.
        - DELETING: means the backup has been marked for deletion, it will be deleted soon.
        - FAILED: means that an operation went wrong during creation of the backup, see errorMessage for details.
        - ERROR: means that an operation went wrong when tried to update backup, See errorMessage for details
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - PENDING
        - CREATING
        - CREATED
        - DELETING
        - FAILED
        - ERROR
      title: PostgresBackupStatus
    PostgresDuplicatedResourceProblem:
      description: The resource you tried to create already exists.
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PostgresProblem'
        - type: object
          properties:
            type:
              type: string
              enum:
                - 'urn:numspot:errors#duplicated_resource'
          required:
            - type
      title: PostgresDuplicatedResourceProblem
    PostgresInvalidRequestProblem:
      description: Some of the parameters you have provided are invalid.
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PostgresProblem'
        - type: object
          properties:
            type:
              type: string
              enum:
                - 'urn:numspot:errors#invalid_request'
          required:
            - type
      title: PostgresInvalidRequestProblem
    PostgresNodeConfiguration:
      description: The configuration used to provision the cluster nodes.
      type: object
      properties:
        vcpuCount:
          description: The number of Virtual CPU provisioned.
          type: integer
          maximum: 78
          minimum: 1
        performanceLevel:
          description: |-
            The performance level of the VCPUs.

            - HIGHEST: for computationally intensive applications
            - HIGH: the performance level may fluctuate slightly over time
            - MEDIUM: the performance level may fluctuate moderately over time
          type: string
          enum:
            - HIGHEST
            - HIGH
            - MEDIUM
        memorySizeGiB:
          description: 'The allocated memory size, in GiB.'
          type: integer
          maximum: 1039
          minimum: 1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - vcpuCount
        - performanceLevel
        - memorySizeGiB
      title: PostgresNodeConfiguration
    PostgresServiceCatalogClusterAutomaticBackupConfiguration:
      type: object
      properties:
        startTimeSlot:
          description: The time slot during which automatic backup of clusters are started.
          $ref: '#/components/schemas/PostgresTimeSlot'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - startTimeSlot
      title: PostgresServiceCatalogClusterAutomaticBackupConfiguration
    PostgresServiceCatalogConfiguration:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PostgresClusterCatalogItem'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: PostgresServiceCatalogConfiguration
    PostgresTimeSlot:
      type: object
      properties:
        begin:
          description: Time of the day at which the start time slot begins.
          type: string
          format: time
        end:
          description: Time of the day at which the start time slot ends.
          type: string
          format: time
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - begin
        - end
      title: PostgresTimeSlot
    PostgresVolume:
      description: The configuration for a data storage volume.
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      discriminator:
        propertyName: type
        mapping:
          IO1: '#/components/schemas/PostgresVolumeIo1'
          GP2: '#/components/schemas/PostgresVolumeGp2'
      oneOf:
        - $ref: '#/components/schemas/PostgresVolumeIo1'
        - $ref: '#/components/schemas/PostgresVolumeGp2'
      title: PostgresVolume
    PostgresBaseVolume:
      description: Common properties to all volume types.
      type: object
      properties:
        sizeGiB:
          description: The size of the volume in GiB.
          type: integer
          maximum: 500
          minimum: 10
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - type
        - sizeGiB
      title: PostgresBaseVolume
    PostgresVolumeIo1:
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - description: |-
            An IOPS-configurable volume.

            The iops/sizeGiB ratio MUST be less or equal to 300.
          type: object
          properties:
            type:
              description: The type of the volume.
              type: string
              enum:
                - IO1
            iops:
              description: The number of IOPS to allocate to the volume.
              type: integer
              maximum: 13000
              minimum: 100
          required:
            - iops
        - $ref: '#/components/schemas/PostgresBaseVolume'
      title: PostgresVolumeIo1
    PostgresVolumeGp2:
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - description: An IOPS-burstable volume.
          type: object
          properties:
            type:
              description: The type of the volume.
              type: string
              enum:
                - GP2
        - $ref: '#/components/schemas/PostgresBaseVolume'
      title: PostgresVolumeGp2
    PostgresPageParameter:
      type: object
      properties:
        size:
          description: The maximum number of items to return. The service may return fewer than this value.
          type: integer
          format: int32
          default: 50
          maximum: 50
          minimum: 1
        nextToken:
          description: A page token received from a previous call. Provide this to retrieve the subsequent page.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: PostgresPageParameter
    PostgresProblem:
      description: 'A problem, compatible with [RFC 9457](https://datatracker.ietf.org/doc/html/rfc9457#name-members-of-a-problem-detail).'
      type: object
      properties:
        type:
          description: 'Identifier of the problem, in the form of a urn.'
          type: string
        title:
          description: 'Short, human-readable summary of the problem type.'
          type: string
        detail:
          description: Human-readable explanation specific to this occurrence of the problem.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - type
        - title
      title: PostgresProblem
    PostgresUser:
      description: The name of the user with administration privileges on the cluster.
      type: string
      example: john
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: PostgresUser
    PostgresTag:
      description: A key-value tag.
      type: object
      properties:
        key:
          description: 'The key for the tag, must be unique amongst all tags associated with a given resource.'
          type: string
          pattern: '^[-_a-zA-Z0-9]{1,40}$'
        value:
          description: The value associated with the tag.
          type: string
          pattern: '^[-_a-zA-Z0-9]{1,40}$'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - key
        - value
      title: PostgresTag
    PostgresTagParameter:
      description: A map of tags.
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      patternProperties:
        '^[-_a-zA-Z0-9]{1,40}$':
          type: string
          description: The tag value.
          pattern: '^[-_a-zA-Z0-9]{1,40}$'
      title: PostgresTagParameter
    PostgresTags:
      description: Tags to identify resources
      type: array
      items:
        $ref: '#/components/schemas/PostgresTag'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: PostgresTags
    CreateComputeBridge:
      description: Schema request to bridge two compute VPCs.
      type: object
      properties:
        sourceVpcId:
          description: Source VPC identifier.
          type: string
          examples:
            - vpc-12345678
        destinationVpcId:
          description: Destination VPC identifier.
          type: string
          examples:
            - vpc-87654321
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - sourceVpcId
        - destinationVpcId
      title: CreateComputeBridge
    ComputeBridges:
      description: List of compute bridges.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ComputeBridge'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: ComputeBridges
    ComputeBridge:
      description: The bridge object representation between two compute VPCs.
      type: object
      properties:
        id:
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        source:
          type: string
          examples:
            - compute
        destination:
          type: string
          examples:
            - compute
        sourceId:
          type: string
          examples:
            - vpc-12345678
        destinationId:
          type: string
          examples:
            - vpc-87654321
        gatewayId:
          type: string
          examples:
            - pcx-12345678
        sourceIpRange:
          $ref: '#/components/schemas/Cidr'
        destinationIpRange:
          $ref: '#/components/schemas/Cidr'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - source
        - destination
        - sourceId
        - destinationId
        - gatewayId
        - sourceIpRange
        - destinationIpRange
      title: ComputeBridge
    CreateHybridBridge:
      description: Schema request to bridge a managed service and a compute VPC.
      type: object
      properties:
        managedServiceId:
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        vpcId:
          type: string
          examples:
            - vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - managedServiceId
        - vpcId
      title: CreateHybridBridge
    HybridBridges:
      description: List of hybrid bridges.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/HybridBridge'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: HybridBridges
    HybridBridge:
      description: The bridge object representation between a managed service and a standalone compute VPC.
      type: object
      properties:
        id:
          type: string
          format: uuid
        source:
          type: string
          examples:
            - postgresql
        destination:
          type: string
          examples:
            - compute
        sourceId:
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        destinationId:
          type: string
          examples:
            - vpc-12345678
        route:
          $ref: '#/components/schemas/RouteConnectivity'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - source
        - destination
        - sourceId
        - destinationId
        - route
      title: HybridBridge
    RouteConnectivity:
      description: The route object representation.
      type: object
      properties:
        destinationIpRange:
          $ref: '#/components/schemas/Cidr'
        gatewayId:
          type: string
          examples:
            - pcx-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - destinationIpRange
        - gatewayId
      title: RouteConnectivity
    CreateManagedServicesBridge:
      description: Schema request to bridge two managed services.
      type: object
      properties:
        sourceManagedServiceId:
          description: Managed service source identifier
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        destinationManagedServiceId:
          description: Managed service destination identifier
          type: string
          format: uuid
          examples:
            - 0194f0c9-c8c5-76b1-9255-f96d2c1cf746
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - sourceManagedServiceId
        - destinationManagedServiceId
      title: CreateManagedServicesBridge
    ManagedServicesBridges:
      description: List of bridges.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ManagedServicesBridge'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: ManagedServicesBridges
    ManagedServicesBridge:
      description: The bridge object representation between two managed services.
      type: object
      properties:
        id:
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        source:
          type: string
          examples:
            - postgresql
        destination:
          type: string
          examples:
            - openshift
        sourceId:
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        destinationId:
          type: string
          format: uuid
          examples:
            - 84c3f94d-40ef-4bad-b612-5a9dde8ed454
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - source
        - destination
        - sourceId
        - destinationId
      title: ManagedServicesBridge
    CreateDirectLinkInterface:
      description: Create a Direct Link Interface.
      type: object
      properties:
        directLinkId:
          description: The ID of the existing DirectLink for which you want to create the DirectLink interface.
          type: string
        bgpAsn:
          description: The BGP (Border Gateway Protocol) ASN (Autonomous System Number) on the customer's side of the DirectLink interface. This number must be between `64512` and `65534`.
          type: integer
        bgpKey:
          description: The BGP authentication key.
          type: string
        clientPrivateIp:
          description: The IP on the customer's side of the DirectLink interface.
          type: string
        name:
          description: The name of the DirectLink interface.
          type: string
        numspotPrivateIp:
          description: The IP on the Numspot side of the DirectLink interface.
          type: string
        virtualGatewayId:
          description: The ID of the target virtual gateway.
          type: string
        vlan:
          description: The VLAN number associated with the DirectLink interface. This number must be unique and be between `2` and `4094`.
          type: integer
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - bgpAsn
        - virtualGatewayId
        - vlan
        - name
        - directLinkId
      title: CreateDirectLinkInterface
    DirectLinkInterfaces:
      description: Information about one or more DirectLink interfaces.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/DirectLinkInterface'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: DirectLinkInterfaces
    DirectLinkInterface:
      description: Information about the DirectLink interfaces.
      type: object
      properties:
        vlan:
          description: The VLAN number associated with the DirectLink interface.
          type: integer
        numspotPrivateIp:
          description: The IP on the Numspot side of the DirectLink interface.
          type: string
        id:
          description: The ID of the DirectLink interface.
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        bgpAsn:
          description: The BGP (Border Gateway Protocol) ASN (Autonomous System Number) on the customer's side of the DirectLink interface.
          type: integer
        clientPrivateIp:
          description: The IP on the customer's side of the DirectLink interface.
          type: string
        virtualGatewayId:
          description: The ID of the target virtual gateway.
          type: string
        directLinkInterfaceName:
          description: The name of the DirectLink interface.
          type: string
        directLinkId:
          description: The ID of the DirectLink.
          type: string
        mtu:
          description: 'The maximum transmission unit (MTU) of the DirectLink interface, in bytes (always `1500`).'
          type: integer
        state:
          description: The state of the DirectLink interface (`pending` \| `available` \| `deleting` \| `deleted` \| `confirming` \| `rejected` \| `expired`).
          type: string
        interfaceType:
          description: The type of the DirectLink interface (always `private`).
          type: string
        location:
          description: The datacenter where the DirectLink interface is located.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - vlan
        - numspotPrivateIp
        - id
        - bgpAsn
        - clientPrivateIp
        - virtualGatewayId
        - directLinkInterfaceName
        - directLinkId
        - mtu
        - state
        - interfaceType
        - location
      title: DirectLinkInterface
    CreateDirectLink:
      description: Create a Direct Link.
      type: object
      properties:
        bandwidth:
          description: The bandwidth of the DirectLink (`1Gbps` \| `10Gbps`).
          type: string
        location:
          description: 'The code of the requested location for the DirectLink, returned by the [ReadLocations](#readlocations) method.'
          type: string
        name:
          description: The name of the DirectLink.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - bandwidth
        - location
        - name
      title: CreateDirectLink
    DirectLinks:
      description: Information about one or more DirectLinks.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/DirectLink'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: DirectLinks
    DirectLink:
      description: Information about the DirectLink.
      type: object
      properties:
        bandwidth:
          description: The physical link bandwidth (either 1 Gbps or 10 Gbps).
          type: string
        id:
          description: The ID of the DirectLink.
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        location:
          description: The datacenter where the DirectLink is located.
          type: string
        name:
          description: 'The name of the DirectLink (for example, `dxcon-xxxxxxxx`).'
          type: string
        regionName:
          description: The Region in which the DirectLink has been created.
          type: string
        state:
          description: |-
            The state of the DirectLink.<br />
            * `requested`: The DirectLink is requested but the request has not been validated yet.<br />
            * `pending`: The DirectLink request has been validated. It remains in the `pending` state until you establish the physical link.<br />
            * `available`: The physical link is established and the connection is ready to use.<br />
             * `deleting`: The deletion process is in progress.<br />
            * `deleted`: The DirectLink is deleted.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - bandwidth
        - id
        - location
        - name
        - regionName
        - state
      title: DirectLink
    CreateClientGateway:
      description: Create a Client Gateway.
      type: object
      properties:
        bgpAsn:
          description: |-
            The Autonomous System Number (ASN) used by the Border Gateway Protocol (BGP) to find the path to your client gateway through the Internet. <br/>
            This number must be between `1` and `4294967295`. If you do not have an ASN, you can choose one between 64512 and 65534, or between 4200000000 and 4294967294.
          type: integer
          example: 65000
        connectionType:
          description: The communication protocol used to establish tunnel with your client gateway (only `ipsec.1` is supported).
          type: string
          example: ipsec.1
        publicIp:
          description: The public fixed IPv4 address of your client gateway.
          type: string
          example: 192.0.2.0
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - bgpAsn
        - publicIp
        - connectionType
      title: CreateClientGateway
    ClientGateways:
      description: Information about one or more ClientGateways.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ClientGateway'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: ClientGateways
    ClientGateway:
      description: Information about the client gateway.
      type: object
      properties:
        bgpAsn:
          description: The Autonomous System Number (ASN) used by the Border Gateway Protocol (BGP) to find the path to your client gateway through the Internet.
          type: integer
          example: 65000
        connectionType:
          description: The type of communication tunnel used by the client gateway (only `ipsec.1` is supported).
          type: string
          example: ipsec.1
        id:
          description: The ID of the client gateway.
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        publicIp:
          description: The public IPv4 address of the client gateway (must be a fixed address into a NATed network).
          type: string
          example: 192.0.2.0
        state:
          description: The state of the client gateway (`pending` \| `available` \| `deleting` \| `deleted`).
          type: string
          example: available
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - bgpAsn
        - connectionType
        - id
        - publicIp
        - state
      title: ClientGateway
    CreateVirtualGateway:
      description: Create a Virtual Gateway.
      type: object
      properties:
        connectionType:
          description: The type of VPN connection supported by the virtual gateway (only `ipsec.1` is supported).
          type: string
          example: ipsec.1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - connectionType
      title: CreateVirtualGateway
    LinkUnlinkVirtualGateway:
      description: Link or Unlink a Virtual Gateway.
      type: object
      properties:
        vpcId:
          description: ID of the VPC to Link or Unlink.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - vpcId
      title: LinkUnlinkVirtualGateway
    VirtualGateways:
      description: Information about one or more VirtualGateways.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/VirtualGateway'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: VirtualGateways
    VirtualGateway:
      description: Information about the client gateway.
      type: object
      properties:
        connectionType:
          description: The type of VPN connection supported by the virtual gateway (only `ipsec.1` is supported).
          type: string
          example: ipsec.1
        id:
          description: The ID of the virtual gateway.
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        state:
          description: The state of the virtual gateway (`pending` \| `available` \| `deleting` \| `deleted`).
          type: string
          example: pending
        vpcToVirtualGatewayLinks:
          description: the Vpc to which the virtual gateway is attached.
          type: array
          items:
            $ref: '#/components/schemas/VpcToVirtualGatewayLink'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - connectionType
        - id
        - state
        - vpcToVirtualGatewayLinks
      title: VirtualGateway
    VpcToVirtualGatewayLink:
      description: Information about the attachment.
      type: object
      properties:
        state:
          description: The state of the attachment (`attaching` \| `attached` \| `detaching` \| `detached`).
          type: string
          example: attaching
        vpcId:
          description: The ID of the Vpc to which the virtual gateway is attached.
          type: string
          example: vpc-12345678
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - state
        - vpcId
      title: VpcToVirtualGatewayLink
    CreateVPNConnection:
      description: Create a VPN Connection.
      type: object
      properties:
        clientGatewayId:
          $ref: '#/components/schemas/Uuid'
        virtualGatewayId:
          $ref: '#/components/schemas/Uuid'
        connectionType:
          description: The type of VPN connection (only `ipsec.1` is supported).
          type: string
          example: ipsec.1
        staticRoutesOnly:
          description: 'By default or if false, the VPN connection uses dynamic routing with Border Gateway Protocol (BGP). If true, routing is controlled using static routes. For more information about how to create and delete static routes, see [CreateVpnConnectionRoute](#createvpnconnectionroute) and [DeleteVpnConnectionRoute](#deletevpnconnectionroute).'
          type: boolean
          example: true
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - clientGatewayId
        - connectionType
        - virtualGatewayId
      title: CreateVPNConnection
    UpdateVPNConnection:
      description: Update a VPN Connection.
      type: object
      properties:
        vpnOptions:
          $ref: '#/components/schemas/VpnOptions'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: UpdateVPNConnection
    VPNConnections:
      description: Information about one or more VPNConnections.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/VPNConnection'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: VPNConnections
    VPNConnection:
      description: Information about the vpn connection.
      type: object
      properties:
        clientGatewayId:
          description: The ID of the client gateway used on the client end of the connection.
          $ref: '#/components/schemas/Uuid'
        virtualGatewayId:
          description: The ID of the virtual gateway used on the Numspot end of the connection.
          $ref: '#/components/schemas/Uuid'
        clientGatewayConfiguration:
          description: Example configuration for the client gateway.
          type: string
          example: Example of configuration
        connectionType:
          description: The type of VPN connection (always `ipsec.1`).
          type: string
          example: ipsec.1
        id:
          description: The ID of the VPN connection.
          type: string
          format: uuid
          examples:
            - 0194f0c4-8452-77d1-aaaf-516a9731ce9e
        routes:
          description: 'Information about one or more static routes associated with the VPN connection, if any.'
          type: array
          items:
            $ref: '#/components/schemas/RouteLight'
        state:
          description: The state of the VPN connection (`pending` \| `available` \| `deleting` \| `deleted`).
          type: string
          example: pending
        staticRoutesOnly:
          description: 'If false, the VPN connection uses dynamic routing with Border Gateway Protocol (BGP). If true, routing is controlled using static routes. For more information about how to create and delete static routes, see [CreateVpnConnectionRoute](#createvpnconnectionroute) and [DeleteVpnConnectionRoute](#deletevpnconnectionroute).'
          type: boolean
          example: false
        vgwTelemetries:
          description: Information about the current state of one or more of the VPN tunnels.
          type: array
          items:
            $ref: '#/components/schemas/VgwTelemetry'
        vpnOptions:
          $ref: '#/components/schemas/VpnOptions'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - clientGatewayConfiguration
        - clientGatewayId
        - connectionType
        - id
        - routes
        - state
        - staticRoutesOnly
        - vgwTelemetries
        - virtualGatewayId
      title: VPNConnection
    RouteLight:
      description: Information about the route.
      type: object
      properties:
        destinationIpRange:
          description: 'The IP range used for the destination match, in CIDR notation (for example, `10.0.0.0/24`).'
          type: string
          example: 0.0.0.0/0
        routeType:
          description: The type of route (always `static`).
          type: string
          example: static
        state:
          description: The current state of the static route (`pending` \| `available` \| `deleting` \| `deleted`).
          type: string
          example: available
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - destinationIpRange
        - routeType
        - state
      title: RouteLight
    VgwTelemetry:
      description: Information about the current state of a VPN tunnel.
      type: object
      properties:
        acceptedRouteCount:
          description: The number of routes accepted through BGP (Border Gateway Protocol) route exchanges.
          type: integer
          example: 0
        lastStateChangeDate:
          description: The date and time (UTC) of the latest state update.
          type: string
          format: date-time
          example: '2017-05-10 12:34:56.789000+00:00'
        outsideIpAddress:
          description: The IP on the Numspot side of the tunnel.
          type: string
          example: 192.0.2.0
        state:
          description: The state of the IPSEC tunnel (`UP` \| `DOWN`).
          type: string
          example: UP
        stateDescription:
          description: A description of the current state of the tunnel.
          type: string
          example: IPSEC IS DOWN
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - acceptedRouteCount
        - lastStateChangeDate
        - outsideIpAddress
        - state
        - stateDescription
      title: VgwTelemetry
    VpnOptions:
      description: Information about the VPN options.
      type: object
      properties:
        phase1Options:
          $ref: '#/components/schemas/Phase1Options'
        phase2Options:
          $ref: '#/components/schemas/Phase2Options'
        tunnelInsideIpRange:
          description: The range of inside IPs for the tunnel. This must be a /30 CIDR block from the 169.254.254.0/24 range.
          type: string
          example: 169.254.254.0/26
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: VpnOptions
    Phase1Options:
      description: 'Information about Phase 1 of the Internet Key Exchange (IKE) negotiation. When Phase 1 finishes successfully, peers proceed to Phase 2 negotiations. '
      type: object
      properties:
        dpdTimeoutAction:
          description: The action to carry out after a Dead Peer Detection (DPD) timeout occurs.
          type: string
          example: string
        dpdTimeoutSeconds:
          description: 'The maximum waiting time for a Dead Peer Detection (DPD) response before considering the peer as dead, in seconds.'
          type: integer
          example: 0
        ikeVersions:
          description: The Internet Key Exchange (IKE) versions allowed for the VPN tunnel.
          type: array
          items:
            type: string
          example:
            - string
        phase1DhGroupNumbers:
          description: The Diffie-Hellman (DH) group numbers allowed for the VPN tunnel for phase 1.
          type: array
          items:
            type: integer
          example:
            - 0
        phase1EncryptionAlgorithms:
          description: The encryption algorithms allowed for the VPN tunnel for phase 1.
          type: array
          items:
            type: string
          example:
            - string
        phase1IntegrityAlgorithms:
          description: The integrity algorithms allowed for the VPN tunnel for phase 1.
          type: array
          items:
            type: string
          example:
            - string
        phase1LifetimeSeconds:
          description: 'The lifetime for phase 1 of the IKE negotiation process, in seconds.'
          type: integer
          example: 0
        replayWindowSize:
          description: The number of packets in an IKE replay window.
          type: integer
          example: 0
        startupAction:
          description: The action to carry out when establishing tunnels for a VPN connection.
          type: string
          example: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Phase1Options
    Phase2Options:
      description: 'Information about Phase 2 of the Internet Key Exchange (IKE) negotiation. '
      type: object
      properties:
        phase2DhGroupNumbers:
          description: The Diffie-Hellman (DH) group numbers allowed for the VPN tunnel for phase 2.
          type: array
          items:
            type: integer
          example:
            - 0
        phase2EncryptionAlgorithms:
          description: The encryption algorithms allowed for the VPN tunnel for phase 2.
          type: array
          items:
            type: string
          example:
            - string
        phase2IntegrityAlgorithms:
          description: The integrity algorithms allowed for the VPN tunnel for phase 2.
          type: array
          items:
            type: string
          example:
            - string
        phase2LifetimeSeconds:
          description: 'The lifetime for phase 2 of the Internet Key Exchange (IKE) negociation process, in seconds.'
          type: integer
          example: 0
        preSharedKey:
          description: The pre-shared key to establish the initial authentication between the client gateway and the virtual gateway. This key can contain any character except line breaks and double quotes (&quot;).
          type: string
          example: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: Phase2Options
    CreateVPNConnectionRoute:
      description: Create a VPN Connection Route.
      type: object
      properties:
        destinationIpRange:
          description: 'The network prefix of the route, in CIDR notation (for example, `10.12.0.0/16`).'
          type: string
          example: 10.0.0.0/16
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - destinationIpRange
      title: CreateVPNConnectionRoute
    DeleteVPNConnectionRoute:
      description: Delete a VPN Connection Route.
      type: object
      properties:
        destinationIpRange:
          description: 'The network prefix of the route to delete, in CIDR notation (for example, `10.12.0.0/16`).'
          type: string
          example: 10.12.0.0/16
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - destinationIpRange
      title: DeleteVPNConnectionRoute
    Locations:
      description: Locations of your availability zones.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Location'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: Locations
    Location:
      description: Locations of your availability zones.
      type: object
      properties:
        region:
          type: string
        subRegionName:
          type: string
        locationCode:
          type: string
        locationName:
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - region
        - subRegionName
        - locationCode
        - locationName
      title: Locations
    ConnectivityNotFoundError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#resource_not_found'
          required:
            - type
      title: ConnectivityNotFoundError
    ConnectivityConflictError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/ConflictError'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#duplicated_resource'
          required:
            - type
      title: ConnectivityConflictError
    ConnectivityBadRequestError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/BadRequestError'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#invalid_parameter'
          required:
            - type
      title: ConnectivityBadRequestError
    ConnectivityUnauthorizedError:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#unauthenticated_access'
                - 'urn:numspot:errors#forbidden_access'
          required:
            - type
      title: ConnectivityUnauthorizedError
    HttpDate:
      description: A timestamp formatted according to RFC 7231
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - 'Fri, 21 Mar 2025 00:00:00 GMT'
        - 'Mon, 01 Jan 2024 12:34:56 GMT'
      pattern: '^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} GMT$'
      title: HttpDate
    RateLimit:
      description: 'RateLimit communicates quota policies. It contains a `limit` to convey the expiring limit, `remaining` to convey the remaining quota units, and `reset` to convey the time window reset time. It corresponds to the rate-limit headers defined in https://datatracker.ietf.org/doc/draft-ietf-httpapi-ratelimit-headers.'
      type: object
      properties:
        limit:
          description: Maximum allowed quota.
          type: integer
          examples:
            - 100
        remaining:
          description: Remaining quota before this request.
          type: integer
          examples:
            - 0
          minimum: 0
        reset:
          description: Timestamp when the quota resets.
          type: string
          format: date-time
          examples:
            - '2025-03-21T00:00:00Z'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      title: RateLimit
    Quota:
      description: 'Represents a specific quota exhaustion event affecting a resource. This includes details on the affected resource, the type of quota exceeded, and recommendations for resolution. The object provides structured information about rate limits, origin, and potential actions for the client to take.'
      type: object
      properties:
        resourceId:
          description: Identifier of the resource affected by the quota exhaustion.
          type: string
          format: uuid
          examples:
            - 01957f50-2730-71f5-9ea9-d8fc3575443a
        resourceType:
          description: What type of resource is affected.
          type: string
          examples:
            - vm
            - storage
        origin:
          description: 'From where the quota exhaustion originates (e.g., a specific cloud service).'
          $ref: '#/components/schemas/CloudServiceName'
          examples:
            - compute
        rateLimit:
          $ref: '#/components/schemas/RateLimit'
        recommendedAction:
          description: Recommended action for the client to resolve the quota issue.
          type: string
          examples:
            - Please contact support
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      required:
        - resourceId
        - resourceType
        - rateLimit
      title: Quota
    TooManyRequestsError:
      description: 'For HTTP 429 Too Many Requests errors, detailing quota exhaustion. Implements https://datatracker.ietf.org/doc/html/rfc9457'
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      additionalProperties: false
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          description: Too many Request Type
          additionalProperties: false
          properties:
            type:
              description: URN that identifies this as a Too many Request.
              type: string
              enum:
                - 'urn:numspot:errors#too_many_requests'
          required:
            - type
        - type: object
          additionalProperties: false
          properties:
            quota:
              description: 'Array of quota exhaustion details, listing each resource type that prevents the operation. Multiple quota types may apply simultaneously.'
              type: array
              items:
                $ref: '#/components/schemas/Quota'
              minItems: 1
      title: TooManyRequestsError
    Token:
      type: object
      properties:
        token:
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - token
      title: Token
    SubjectType:
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - users
        - serviceAccounts
      title: SubjectType
    ACLList:
      description: List of ACLs.
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ACL'
          maxItems: 100
          minItems: 1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - items
      title: ACLList
    ACLListName:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/ACL'
        - type: object
          properties:
            name:
              description: Name of the permission
              type: string
          required:
            - name
      title: ACLListName
    ACLPaginatedList:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/ACLListName'
          required:
            - items
      title: ACLPaginatedList
    ACL:
      type: object
      properties:
        service:
          description: Name of the service making the call
          type: string
        resource:
          description: Type of the resource being accessed
          type: string
        resourceId:
          description: Unique identifier of a resource
          type: string
        permissionId:
          description: id of the permission
          type: string
          format: uuid
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - permissionId
        - service
        - resource
        - resourceId
      title: ACL
    PermissionsPaginatedList:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/RegisteredPermission'
          required:
            - items
      title: PermissionsPaginatedList
    RolesPaginatedList:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/RegisteredRole'
          required:
            - items
      title: RolesPaginatedList
    IAMPolicy:
      type: object
      properties:
        roles:
          description: List of role UUIDs
          type: array
          items:
            allOf:
              - type: string
                format: uuid
                description: role ID
        permissions:
          description: List of permission UUIDs
          type: array
          items:
            allOf:
              - type: string
                format: uuid
                description: permission ID
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: IAMPolicy
    Registered:
      type: object
      properties:
        uuid:
          description: Internal ID
          type: string
          format: uuid
        createdOn:
          description: creation date
          type: string
          format: date-time
        updatedOn:
          description: last update
          type: string
          format: date-time
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - uuid
        - createdOn
        - updatedOn
      title: Registered
    Role:
      description: 'A role, linked to 1 or more permissions'
      type: object
      properties:
        name:
          description: Human-readable name
          type: string
          example: Storage Object Admin
        description:
          description: Human-readable description
          type: string
          example: Manage the resourcemanager.storage domain
        tenantType:
          description: Array of tenant's type
          type: array
          items:
            $ref: '#/components/schemas/TenantType'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - description
        - tenantType
      title: Role
    RegisteredRole:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/Role'
        - $ref: '#/components/schemas/Registered'
        - type: object
          properties:
            custom:
              description: if its a custom role
              type: boolean
          required:
            - custom
      title: RegisteredRole
    Permission:
      description: 'A permission in the <service>[.<resource>.[<subResource>](0,1)](0,1).<action> form'
      type: object
      properties:
        name:
          description: Human-readable name
          type: string
        description:
          description: Human-readable description
          type: string
        service:
          description: Service name
          type: string
          example: resourcemanager
          pattern: '^[a-z]+$'
        resource:
          type: string
          example: storage
          pattern: '^[a-zA-Z]+$'
        subResource:
          type: string
          example: buckets
          pattern: '^[a-zA-Z]+$'
        action:
          description: Allowed operation type
          type: string
          example: delete
          pattern: '^[a-zA-Z]+$'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - description
        - service
        - action
      title: Permission
    RegisteredPermission:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/Permission'
        - $ref: '#/components/schemas/Registered'
      title: RegisteredPermission
    TenantType:
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - organisation
        - space
      title: TenantType
    WebAuthnJavaScript:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        id:
          type: string
          format: uuid
        name:
          type: string
        subscription_id:
          $ref: '#/components/schemas/NullUUID'
        updated_at:
          type: string
          format: date-time
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - name
        - created_at
        - updated_at
      title: WebAuthnJavaScript
    OidcConfiguration:
      description: Includes links to several endpoints and exposes information on supported signature algorithms among others.
      type: object
      properties:
        authorization_endpoint:
          description: OAuth 2.0 Authorization Endpoint URL
          type: string
        backchannel_logout_session_supported:
          description: |-
            OpenID Connect Back-Channel Logout Session Required
            Boolean value specifying whether the OP can pass a sid (session ID) Claim in the Logout Token to identify the RP session with the OP. If supported, the sid Claim is also included in ID Tokens issued by the OP.
          type: boolean
        backchannel_logout_supported:
          description: |-
            OpenID Connect Back-Channel Logout Supported
            Boolean value specifying whether the OP supports back-channel logout, with true indicating support.
          type: boolean
        claims_parameter_supported:
          description: |-
            OpenID Connect Claims Parameter Parameter Supported
            Boolean value specifying whether the OP supports use of the claims parameter, with true indicating support.
          type: boolean
        claims_supported:
          description: |-
            OpenID Connect Supported Claims
            JSON array containing a list of the Claim Names of the Claims that the OpenID Provider MAY be able to supply values for. Note that for privacy or other reasons, this might not be an exhaustive list.
          type: array
          items:
            type: string
        code_challenge_methods_supported:
          description: |-
            OAuth 2.0 PKCE Supported Code Challenge Methods
            JSON array containing a list of Proof Key for Code Exchange (PKCE) [RFC7636] code challenge methods supported by this authorization server.
          type: array
          items:
            type: string
        credentials_endpoint_draft_00:
          description: |-
            OpenID Connect Verifiable Credentials Endpoint

            Contains the URL of the Verifiable Credentials Endpoint.
          type: string
        credentials_supported_draft_00:
          description: |-
            OpenID Connect Verifiable Credentials Supported
            JSON array containing a list of the Verifiable Credentials supported by this authorization server.
          type: array
          items:
            $ref: '#/components/schemas/CredentialSupportedDraft00'
        end_session_endpoint:
          description: |-
            OpenID Connect End-Session Endpoint
            An URL provided by the OpenID Provider (OP) that a Relying Party (RP) can redirect to, to initiate a logout process for the End-User at the OP. This is part of the OpenID Connect session management functionality,  allowing for single sign-out across applications.
          type: string
        frontchannel_logout_session_supported:
          description: |-
            OpenID Connect Front-Channel Logout Session Required
            The boolean indicates if the OpenID Provider (OP) can use issuer (iss) and session ID (sid) parameters to identify the Relying Party (RP) session during logout via the  frontchannel_logout_uri. If this is supported, the sid claim is also included in ID Tokens issued by the OP.
          type: boolean
        frontchannel_logout_supported:
          description: |-
            OpenID Connect Front-Channel Logout Supported
            Boolean value specifying whether the OP supports HTTP-based logout, with true indicating support.
          type: boolean
        grant_types_supported:
          description: |-
            OAuth 2.0 Supported Grant Types
            JSON array containing a list of the OAuth 2.0 Grant Type values that this OP supports.
          type: array
          items:
            type: string
        id_token_signed_response_alg:
          description: |-
            OpenID Connect Default ID Token Signing Algorithms

            Algorithm used to sign OpenID Connect ID Tokens.
          type: array
          items:
            type: string
        id_token_signing_alg_values_supported:
          description: |-
            OpenID Connect Supported ID Token Signing Algorithms

            JSON array containing a list of the JWS signing algorithms (alg values) supported by the OP for the ID Token to encode the Claims in a JWT.
          type: array
          items:
            type: string
        issuer:
          description: |-
            OpenID Connect Issuer URL
            An URL using the https scheme with no query or fragment component that the OP asserts as its IssuerURL Identifier. If IssuerURL discovery is supported, this value MUST be identical to the issuer value returned by WebFinger. This also MUST be identical to the iss Claim value in ID Tokens issued from this IssuerURL.
          type: string
        jwks_uri:
          description: |-
            OpenID Connect Well-Known JSON Web Keys URL
            The jwks_uri is the URL for the OpenID Provider's (OP) JSON Web Key Set (JWK) document, which contains the keys used by the Relying Party (RP) to validate the OP's signatures and, optionally, encrypt requests. Each key must specify its use (signing or encryption) for security purposes. The JWK set may include X.509  representations of keys via the x5c parameter, but the bare key values must still be present and match those in the certificate.
          type: string
        registration_endpoint:
          description: OpenID Connect Dynamic Client Registration Endpoint URL
          type: string
        request_object_signing_alg_values_supported:
          description: |-
            OpenID Connect Supported Request Object Signing Algorithms
            JSON array containing a list of the JWS signing algorithms (alg values) supported by the OP for Request Objects, which are described in Section 6.1 of OpenID Connect Core 1.0 [OpenID.Core]. These algorithms are used both when the Request Object is passed by value (using the request parameter) and when it is passed by reference (using the request_uri parameter).
          type: array
          items:
            type: string
        request_parameter_supported:
          description: |-
            OpenID Connect Request Parameter Supported
            Boolean value specifying whether the OP supports use of the request parameter, with true indicating support.
          type: boolean
        request_uri_parameter_supported:
          description: |-
            OpenID Connect Request URI Parameter Supported
            Boolean value specifying whether the OP supports use of the request_uri parameter, with true indicating support.
          type: boolean
        require_request_uri_registration:
          description: |-
            OpenID Connect Requires Request URI Registration
            Boolean value specifying whether the OP requires any request_uri values used to be pre-registered using the request_uris registration parameter.
          type: boolean
        response_modes_supported:
          description: |-
            OAuth 2.0 Supported Response Modes
            JSON array containing a list of the OAuth 2.0 response_mode values that this OP supports.
          type: array
          items:
            type: string
        response_types_supported:
          description: |-
            OAuth 2.0 Supported Response Types
            JSON array containing a list of the OAuth 2.0 response_type values that this OP supports. Dynamic OpenID Providers MUST support the code, id_token, and the token id_token Response Type values.
          type: array
          items:
            type: string
        revocation_endpoint:
          description: |-
            OAuth 2.0 Token Revocation URL

            URL of the authorization server's OAuth 2.0 revocation endpoint.
          type: string
        scopes_supported:
          description: |-
            OAuth 2.0 Supported Scope Values
            JSON array containing a list of the OAuth 2.0 [RFC6749] scope values that this server supports. The server MUST support the openid scope value. Servers MAY choose not to advertise some supported scope values even when this parameter is used
          type: array
          items:
            type: string
        subject_types_supported:
          description: |-
            OpenID Connect Supported Subject Types
            JSON array containing a list of the Subject Identifier types that this OP supports. Valid types include pairwise and public.
          type: array
          items:
            type: string
        token_endpoint:
          description: OAuth 2.0 Token Endpoint URL
          type: string
        token_endpoint_auth_methods_supported:
          description: |-
            OAuth 2.0 Supported Client Authentication Methods

            JSON array containing a list of Client Authentication methods supported by this Token Endpoint. The options are client_secret_post, client_secret_basic, client_secret_jwt, and private_key_jwt, as described in Section 9 of OpenID Connect Core 1.0
          type: array
          items:
            type: string
        userinfo_endpoint:
          description: |-
            OpenID Connect Userinfo URL

            URL of the OP's UserInfo Endpoint.
          type: string
        userinfo_signed_response_alg:
          description: |-
            OpenID Connect User Userinfo Signing Algorithm

            Algorithm used to sign OpenID Connect Userinfo Responses.
          type: array
          items:
            type: string
        userinfo_signing_alg_values_supported:
          description: |-
            OpenID Connect Supported Userinfo Signing Algorithm
            JSON array containing a list of the JWS [JWS] signing algorithms (alg values) [JWA] supported by the UserInfo Endpoint to encode the Claims in a JWT [JWT].
          type: array
          items:
            type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - issuer
        - authorization_endpoint
        - token_endpoint
        - jwks_uri
        - subject_types_supported
        - response_types_supported
        - id_token_signing_alg_values_supported
        - id_token_signed_response_alg
        - userinfo_signed_response_alg
      title: OpenID Connect Discovery Metadata
    CredentialSupportedDraft00:
      description: Includes information about the supported verifiable credentials.
      type: object
      properties:
        cryptographic_binding_methods_supported:
          description: |-
            OpenID Connect Verifiable Credentials Cryptographic Binding Methods Supported

            Contains a list of cryptographic binding methods supported for signing the proof.
          type: array
          items:
            type: string
        cryptographic_suites_supported:
          description: |-
            OpenID Connect Verifiable Credentials Cryptographic Suites Supported

            Contains a list of cryptographic suites methods supported for signing the proof.
          type: array
          items:
            type: string
        format:
          description: |-
            OpenID Connect Verifiable Credentials Format

            Contains the format that is supported by this authorization server.
          type: string
        types:
          description: |-
            OpenID Connect Verifiable Credentials Types

            Contains the types of verifiable credentials supported.
          type: array
          items:
            type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Verifiable Credentials Metadata (Draft 00)
    JsonWebKey:
      type: object
      properties:
        alg:
          description: 'The "alg" (algorithm) parameter identifies the algorithm intended for use with the key.  The values used should either be registered in the IANA "JSON Web Signature and Encryption Algorithms" registry established by [JWA] or be a value that contains a Collision-Resistant Name.'
          type: string
          example: RS256
        crv:
          type: string
          example: P-256
        d:
          type: string
        dp:
          type: string
        dq:
          type: string
        e:
          type: string
        k:
          type: string
        kid:
          description: 'The "kid" (key ID) parameter is used to match a specific key. This is used, for instance, to choose among a set of keys within a JWK Set during key rollover.  The structure of the "kid" value is unspecified. When "kid" values are used within a JWK Set, different keys within the JWK Set SHOULD use distinct "kid" values. (One example in which different keys might use the same "kid" value is if they have different "kty" (key type) values but are considered to be equivalent alternatives by the application using them.)  The "kid" value is a case-sensitive string.'
          type: string
        kty:
          description: 'The "kty" parameter in JSON Web Keys (JWK) specifies the cryptographic algorithm family,such as "RSA" or "EC". It must be a case-sensitive string and is required in a JWK. The value should be registered in the IANA "JSON Web Key Types" registry or be a Collision-Resistant Name'
          type: string
        'n':
          type: string
        p:
          type: string
        q:
          type: string
        qi:
          type: string
        use:
          description: Use ("public key use") identifies the intended use of the public key. The "use" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data. Values are commonly "sig" (signature) or "enc" (encryption).
          type: string
          example: sig
        x:
          type: string
        x5c:
          description: 'The "x5c" parameter in JSON Web Keys (JWK) includes a chain of one or more PKIX certificates, represented as a JSON array of base64-encoded DER certificate values. The first certificate must contain the key value and must match the public key represented by other JWK members. Additional certificates can follow, with each certifying the previous one. This parameter is optional.'
          type: array
          items:
            type: string
        'y':
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - use
        - kty
        - kid
        - alg
      title: JsonWebKey
    JsonWebKeySet:
      description: JSON Web Key Set
      type: object
      properties:
        keys:
          description: 'List of JSON Web Keys The value of the "keys" parameter is an array of JSON Web Key (JWK) values. By default, the order of the JWK values within the array does not imply an order of preference among them, although applications  of JWK Sets can choose to assign a meaning to the order for their  purposes, if desired.'
          type: array
          items:
            $ref: '#/components/schemas/JsonWebKey'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Json Web Key Set
    TokenReq:
      type: object
      properties:
        client_id:
          description: The client id.
          type: string
          format: uuid
        client_secret:
          description: The client secret.
          type: string
        grant_type:
          description: The grant type.
          type: string
        code:
          description: The code authorization.
          type: string
        redirect_uri:
          description: The URLs redirection
          type: string
        refresh_token:
          description: The refresh Token
          type: string
        code_verifier:
          description: 'The code verifier for the PKCE request, that the app originally generated before the authorization request.'
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - grant_type
      title: TokenReq
    TokenBody:
      type: object
      properties:
        token:
          description: The token to provide.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - token
      title: TokenBody
    UserInfo:
      type: object
      properties:
        sub:
          type: string
        firstname:
          type: string
        lastname:
          type: string
        email:
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - sub
      title: UserInfo
    TokenResp:
      type: object
      properties:
        access_token:
          description: The access token.
          type: string
        refresh_token:
          description: The refresh token.
          type: string
        expires_in:
          description: The lifetime in seconds of the access token.
          type: integer
        token_type:
          description: The type of the token issued.
          type: string
        id_token:
          description: The id token.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - access_token
        - expires_in
        - token_type
      title: TokenResp
    ErrorOauth2:
      type: object
      properties:
        error:
          description: The error type.
          type: string
        error_description:
          description: A human-readable explanation specific to this occurrence of the problem.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - error
      title: ErrorOauth2
    IntrospectResp:
      type: object
      properties:
        active:
          description: A boolean value indicating whether the token is active or not.
          type: boolean
        scope:
          description: 'The scope of the token, defining the permissions it grants.'
          type: string
        client_id:
          description: The unique identifier of the client application that requested the token.
          type: string
        sub:
          description: 'The subject of the token, typically the user or resource the token is issued for.'
          type: string
        exp:
          description: The expiration time of the token in seconds since the Unix epoch.
          type: integer
        iat:
          description: The issued-at time of the token in seconds since the Unix epoch.
          type: integer
        nbf:
          description: 'The not-before time of the token in seconds since the Unix epoch, indicating the earliest time the token can be used.'
          type: integer
        aud:
          description: 'The intended audience of the token, specifying who the token is intended for.'
          type: array
          items:
            type: string
        iss:
          description: 'The issuer of the token, identify the authorization server that issued the token.'
          type: string
        token_type:
          description: 'Indicate the type of the token, such as "Bearer".'
          type: string
        token_use:
          description: 'Specify the intended use of the token, such as "access" or "refresh".'
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - active
      title: IntrospectResp
    ID:
      type: integer
      format: int64
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: ID
    JSONRawMessage:
      description: 'JSONRawMessage represents a json.RawMessage that works well with JSON, SQL, and Swagger.'
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: JSON Raw Message
    NullTime:
      type: string
      format: date-time
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      nullable: true
      title: Null Time
    NullUUID:
      type: string
      format: uuid4
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      nullable: true
      title: Null UUID
    OAuth2Client:
      description: 'OAuth2Client OAuth 2.0 Clients are used to perform OAuth 2.0 and OpenID Connect flows. Usually, OAuth 2.0 clients are generated for applications which want to consume your OAuth 2.0 or OpenID Connect capabilities.'
      type: object
      properties:
        access_token_strategy:
          description: OAuth 2.0 Access Token Strategy  AccessTokenStrategy is the strategy used to generate access tokens. Valid options are `jwt` and `opaque`. `jwt` is a bad idea.
          type: string
        allowed_cors_origins:
          type: array
          items:
            type: string
        audience:
          type: array
          items:
            type: string
        authorization_code_grant_access_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        authorization_code_grant_id_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        authorization_code_grant_refresh_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        backchannel_logout_session_required:
          description: 'OpenID Connect Back-Channel Logout Session Required  Boolean value specifying whether the RP requires that a sid (session ID) Claim be included in the Logout Token to identify the RP session with the OP when the backchannel_logout_uri is used. If omitted, the default value is false.'
          type: boolean
        backchannel_logout_uri:
          description: OpenID Connect Back-Channel Logout URI  RP URL that will cause the RP to log itself out when sent a Logout Token by the OP.
          type: string
        client_credentials_grant_access_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        client_id:
          description: 'OAuth 2.0 Client ID  The ID is immutable. If no ID is provided, a UUID4 will be generated.'
          type: string
        client_name:
          description: OAuth 2.0 Client Name  The human-readable name of the client to be presented to the end-user during authorization.
          type: string
        client_secret:
          description: 'OAuth 2.0 Client Secret  The secret will be included in the create request as cleartext, and then never again. The secret is kept in hashed format and is not recoverable once lost.'
          type: string
        client_secret_expires_at:
          description: OAuth 2.0 Client Secret Expires At  The field is currently not supported and its value is always 0.
          type: integer
          format: int64
        client_uri:
          description: 'OAuth 2.0 Client URI  ClientURI is a URL string of a web page providing information about the client. If present, the server SHOULD display this URL to the end-user in a clickable fashion.'
          type: string
        contacts:
          type: array
          items:
            type: string
        created_at:
          description: OAuth 2.0 Client Creation Date  CreatedAt returns the timestamp of the client's creation.
          type: string
          format: date-time
        frontchannel_logout_session_required:
          description: 'OpenID Connect Front-Channel Logout Session Required  Boolean value specifying whether the RP requires that iss (issuer) and sid (session ID) query parameters be included to identify the RP session with the OP when the frontchannel_logout_uri is used. If omitted, the default value is false.'
          type: boolean
        frontchannel_logout_uri:
          description: 'OpenID Connect Front-Channel Logout URI  RP URL that will cause the RP to log itself out when rendered in an iframe by the OP. An iss (issuer) query parameter and a sid (session ID) query parameter MAY be included by the OP to enable the RP to validate the request and to determine which of the potentially multiple sessions is to be logged out; if either is included, both MUST be.'
          type: string
        grant_types:
          type: array
          items:
            type: string
        implicit_grant_access_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        implicit_grant_id_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        jwks:
          description: 'OAuth 2.0 Client JSON Web Key Set  Client''s JSON Web Key Set [JWK] document, passed by value. The semantics of the jwks parameter are the same as the jwks_uri parameter, other than that the JWK Set is passed by value, rather than by reference. This parameter is intended only to be used by Clients that, for some reason, are unable to use the jwks_uri parameter, for instance, by native applications that might not have a location to host the contents of the JWK Set. If a Client can use jwks_uri, it MUST NOT use jwks. One significant downside of jwks is that it does not enable key rotation (which jwks_uri does, as described in Section 10 of OpenID Connect Core 1.0 [OpenID.Core]). The jwks_uri and jwks parameters MUST NOT be used together.'
        jwks_uri:
          description: 'OAuth 2.0 Client JSON Web Key Set URL  URL for the Client''s JSON Web Key Set [JWK] document. If the Client signs requests to the Server, it contains the signing key(s) the Server uses to validate signatures from the Client. The JWK Set MAY also contain the Client''s encryption keys(s), which are used by the Server to encrypt responses to the Client. When both signing and encryption keys are made available, a use (Key Use) parameter value is REQUIRED for all keys in the referenced JWK Set to indicate each key''s intended usage. Although some algorithms allow the same key to be used for both signatures and encryption, doing so is NOT RECOMMENDED, as it is less secure. The JWK x5c parameter MAY be used to provide X.509 representations of keys provided. When used, the bare key values MUST still be present and MUST match those in the certificate.'
          type: string
        jwt_bearer_grant_access_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        logo_uri:
          description: OAuth 2.0 Client Logo URI  A URL string referencing the client's logo.
          type: string
        owner:
          description: OAuth 2.0 Client Owner  Owner is a string identifying the owner of the OAuth 2.0 Client.
          type: string
        policy_uri:
          description: 'OAuth 2.0 Client Policy URI  PolicyURI is a URL string that points to a human-readable privacy policy document that describes how the deployment organization collects, uses, retains, and discloses personal data.'
          type: string
        post_logout_redirect_uris:
          type: array
          items:
            type: string
        redirect_uris:
          type: array
          items:
            type: string
        refresh_token_grant_access_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        refresh_token_grant_id_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        refresh_token_grant_refresh_token_lifespan:
          description: 'Specify a time duration in milliseconds, seconds, minutes, hours.'
          type: string
        registration_access_token:
          description: 'OpenID Connect Dynamic Client Registration Access Token  RegistrationAccessToken can be used to update, get, or delete the OAuth2 Client. It is sent when creating a client using Dynamic Client Registration.'
          type: string
        registration_client_uri:
          description: 'OpenID Connect Dynamic Client Registration URL  RegistrationClientURI is the URL used to update, get, or delete the OAuth2 Client.'
          type: string
        request_object_signing_alg:
          description: 'OpenID Connect Request Object Signing Algorithm  JWS [JWS] alg algorithm [JWA] that MUST be used for signing Request Objects sent to the OP. All Request Objects from this Client MUST be rejected, if not signed with this algorithm.'
          type: string
        request_uris:
          type: array
          items:
            type: string
        response_types:
          type: array
          items:
            type: string
        scope:
          description: 'OAuth 2.0 Client Scope  Scope is a string containing a space-separated list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting access tokens.'
          type: string
        sector_identifier_uri:
          description: OpenID Connect Sector Identifier URI  URL using the https scheme to be used in calculating Pseudonymous Identifiers by the OP. The URL references a file with a single JSON array of redirect_uri values.
          type: string
        skip_consent:
          description: SkipConsent skips the consent screen for this client. This field can only be set from the admin API.
          type: boolean
        skip_logout_consent:
          description: SkipLogoutConsent skips the logout consent screen for this client. This field can only be set from the admin API.
          type: boolean
        subject_type:
          description: OpenID Connect Subject Type  The `subject_types_supported` Discovery parameter contains a list of the supported subject_type values for this server. Valid types include `pairwise` and `public`.
          type: string
        token_endpoint_auth_method:
          description: 'OAuth 2.0 Token Endpoint Authentication Method  Requested Client Authentication method for the Token Endpoint. The options are:  `client_secret_basic`: (default) Send `client_id` and `client_secret` as `application/x-www-form-urlencoded` encoded in the HTTP Authorization header. `client_secret_post`: Send `client_id` and `client_secret` as `application/x-www-form-urlencoded` in the HTTP body. `private_key_jwt`: Use JSON Web Tokens to authenticate the client. `none`: Used for public clients (native apps, mobile apps) which can not have secrets.'
          type: string
        token_endpoint_auth_signing_alg:
          description: OAuth 2.0 Token Endpoint Signing Algorithm  Requested Client Authentication signing algorithm for the Token Endpoint.
          type: string
        tos_uri:
          description: OAuth 2.0 Client Terms of Service URI  A URL string pointing to a human-readable terms of service document for the client that describes a contractual relationship between the end-user and the client that the end-user accepts when authorizing the client.
          type: string
        updated_at:
          description: OAuth 2.0 Client Last Update Date  UpdatedAt returns the timestamp of the last update.
          type: string
          format: date-time
        userinfo_signed_response_alg:
          description: 'OpenID Connect Request Userinfo Signed Response Algorithm  JWS alg algorithm [JWA] REQUIRED for signing UserInfo Responses. If this is specified, the response will be JWT [JWT] serialized, and signed using JWS. The default, if omitted, is for the UserInfo Response to return the Claims as a UTF-8 encoded JSON object using the application/json content-type.'
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: OAuth2 Client
    OAuth2ConsentRequestOpenIDConnectContext:
      description: OAuth2ConsentRequestOpenIDConnectContext struct
      type: object
      properties:
        acr_values:
          description: 'ACRValues is the Authentication AuthorizationContext Class Reference requested in the OAuth 2.0 Authorization request. It is a parameter defined by OpenID Connect and expresses which level of authentication (e.g. 2FA) is required.  OpenID Connect defines it as follows: > Requested Authentication AuthorizationContext Class Reference values. Space-separated string that specifies the acr values that the Authorization Server is being requested to use for processing this Authentication Request, with the values appearing in order of preference. The Authentication AuthorizationContext Class satisfied by the authentication performed is returned as the acr Claim Value, as specified in Section 2. The acr Claim is requested as a Voluntary Claim by this parameter.'
          type: array
          items:
            type: string
        display:
          description: 'Display is a string value that specifies how the Authorization Server displays the authentication and consent user interface pages to the End-User. The defined values are: page: The Authorization Server SHOULD display the authentication and consent UI consistent with a full User Agent page view. If the display parameter is not specified, this is the default display mode. popup: The Authorization Server SHOULD display the authentication and consent UI consistent with a popup User Agent window. The popup User Agent window should be of an appropriate size for a login-focused dialog and should not obscure the entire window that it is popping up over. touch: The Authorization Server SHOULD display the authentication and consent UI consistent with a device that leverages a touch interface. wap: The Authorization Server SHOULD display the authentication and consent UI consistent with a \"feature phone\" type display.  The Authorization Server MAY also attempt to detect the capabilities of the User Agent and present an appropriate display.'
          type: string
        id_token_hint_claims:
          description: IDTokenHintClaims are the claims of the ID Token previously issued by the Authorization Server being passed as a hint about the End-User's current or past authenticated session with the Client.
          type: object
        login_hint:
          description: LoginHint hints about the login identifier the End-User might use to log in (if necessary). This hint can be used by an RP if it first asks the End-User for their e-mail address (or other identifier) and then wants to pass that value as a hint to the discovered authorization service. This value MAY also be a phone number in the format specified for the phone_number Claim. The use of this parameter is optional.
          type: string
        ui_locales:
          description: 'UILocales is the End-User''id preferred languages and scripts for the user interface, represented as a space-separated list of BCP47 [RFC5646] language tag values, ordered by preference. For instance, the value \"fr-CA fr en\" represents a preference for French as spoken in Canada, then French (without a region designation), followed by English (without a region designation). An error SHOULD NOT result if some or all of the requested locales are not supported by the OpenID Provider.'
          type: array
          items:
            type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: OAuth2 Consent Request OpenIDConnect Context
    OAuth2LoginRequest:
      description: OAuth2LoginRequest struct for OAuth2LoginRequest
      type: object
      properties:
        challenge:
          description: ID is the identifier (\"login challenge\") of the login request. It is used to identify the session.
          type: string
        client:
          $ref: '#/components/schemas/OAuth2Client'
        oidc_context:
          $ref: '#/components/schemas/OAuth2ConsentRequestOpenIDConnectContext'
        request_url:
          description: 'RequestURL is the original OAuth 2.0 Authorization URL requested by the OAuth 2.0 client. It is the URL which initiates the OAuth 2.0 Authorization Code or OAuth 2.0 Implicit flow. This URL is typically not needed, but might come in handy if you want to deal with additional request parameters.'
          type: string
        requested_access_token_audience:
          type: array
          items:
            type: string
        requested_scope:
          type: array
          items:
            type: string
        session_id:
          description: SessionID is the login session ID. If the user-agent reuses a login session (via cookie / remember flag) this ID will remain the same. If the user-agent did not have an existing authentication session (e.g. remember is false) this will be a new random value. This value is used as the \"sid\" parameter in the ID Token and in OIDC Front-/Back- channel logout. It's value can generally be used to associate consecutive login requests by a certain user.
          type: string
        skip:
          description: 'Skip, if true, implies that the client has requested the same scopes from the same user previously. If true, you can skip asking the user to grant the requested scopes, and simply forward the user to the redirect URL.  This feature allows you to update / set session information.'
          type: boolean
        subject:
          description: 'Subject is the user ID of the end-user that authenticated. Now, that end user needs to grant or deny the scope requested by the OAuth 2.0 client. If this value is set and `skip` is true, you MUST include this subject type when accepting the login request, or the request will fail.'
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: OAuth2 Login Request
    RecoveryAddressType:
      description: RecoveryAddressType must not exceed 16 characters as that is the limitation in the SQL Schema.
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Recovery Address Type
    AuthenticatorAssuranceLevel:
      description: |-
        The authenticator assurance level can be one of "aal1", "aal2", or "aal3". A higher number means that it is harder
        for an attacker to compromise the account.
        Generally, "aal1" implies that one authentication factor was used while AAL2 implies that two factors (password + TOTP) have been used.
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      enum:
        - aal0
        - aal1
        - aal2
        - aal3
      title: Authenticator Assurance Level (AAL)
    ContinueWith:
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      discriminator:
        mapping:
          set_session_token: '#/components/schemas/ContinueWithSetSessionToken'
          show_recovery_ui: '#/components/schemas/ContinueWithRecoveryUi'
          show_settings_ui: '#/components/schemas/ContinueWithSettingsUi'
          show_verification_ui: '#/components/schemas/ContinueWithVerificationUi'
        propertyName: action
      oneOf:
        - $ref: '#/components/schemas/ContinueWithVerificationUi'
        - $ref: '#/components/schemas/ContinueWithSetSessionToken'
        - $ref: '#/components/schemas/ContinueWithSettingsUi'
        - $ref: '#/components/schemas/ContinueWithRecoveryUi'
      title: Continue With
    ContinueWithRecoveryUi:
      description: 'Indicates, that the UI flow could be continued by showing a recovery ui'
      type: object
      properties:
        action:
          description: |-
            Action will always be `show_recovery_ui`
            show_recovery_ui ContinueWithActionShowRecoveryUIString
          type: string
          enum:
            - show_recovery_ui
          x-go-enum-desc: show_recovery_ui ContinueWithActionShowRecoveryUIString
        flow:
          $ref: '#/components/schemas/ContinueWithRecoveryUiFlow'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - action
        - flow
      title: Continue With Recovery Ui
    ContinueWithRecoveryUiFlow:
      type: object
      properties:
        id:
          description: The ID of the recovery flow
          type: string
          format: uuid
        url:
          description: The URL of the recovery flow
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
      title: Continue With Recovery Ui Flow
    ContinueWithSetSessionToken:
      description: 'Indicates that a session was issued, and the application should use this token for authenticated requests'
      type: object
      properties:
        action:
          description: |-
            Action will always be `set_session_token`
            set_session_token ContinueWithActionSetSessionTokenString
          type: string
          enum:
            - set_session_token
          x-go-enum-desc: set_session_token ContinueWithActionSetSessionTokenString
        session_token:
          description: Token is the token of the session
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - action
        - session_token
      title: Continue With Set Session Token
    ContinueWithSettingsUi:
      description: 'Indicates, that the UI flow could be continued by showing a settings ui'
      type: object
      properties:
        action:
          description: |-
            Action will always be `show_settings_ui`
            show_settings_ui ContinueWithActionShowSettingsUIString
          type: string
          enum:
            - show_settings_ui
          x-go-enum-desc: show_settings_ui ContinueWithActionShowSettingsUIString
        flow:
          $ref: '#/components/schemas/ContinueWithSettingsUiFlow'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - action
        - flow
      title: Continue With Settings Ui
    ContinueWithSettingsUiFlow:
      type: object
      properties:
        id:
          description: The ID of the settings flow
          type: string
          format: uuid
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
      title: Continue With Settings Ui Flow
    ContinueWithVerificationUi:
      description: 'Indicates, that the UI flow could be continued by showing a verification ui'
      type: object
      properties:
        action:
          description: |-
            Action will always be `show_verification_ui`
            show_verification_ui ContinueWithActionShowVerificationUIString
          type: string
          enum:
            - show_verification_ui
          x-go-enum-desc: show_verification_ui ContinueWithActionShowVerificationUIString
        flow:
          $ref: '#/components/schemas/ContinueWithVerificationUiFlow'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - action
        - flow
      title: Continue With Verification Ui
    ContinueWithVerificationUiFlow:
      type: object
      properties:
        id:
          description: The ID of the verification flow
          type: string
          format: uuid
        url:
          description: The URL of the verification flow
          type: string
        verifiable_address:
          description: The address that should be verified in this flow
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - verifiable_address
      title: Continue With Verification Ui Flow
    ErrorBrowserLocationChangeRequired:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ErrorGeneric'
        redirect_browser_to:
          description: Points to where to redirect the user to next.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Is sent when a flow requires a browser to change its location.
    ErrorGeneric:
      description: The standard  JSON API error format.
      type: object
      properties:
        error:
          $ref: '#/components/schemas/GenericError'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - error
      title: JSON API Error Response
    FlowError:
      type: object
      properties:
        created_at:
          description: CreatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
        error:
          type: object
        id:
          description: ID of the error container.
          type: string
          format: uuid
        updated_at:
          description: UpdatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
      title: Flow Error
    GenericError:
      type: object
      properties:
        code:
          description: The status code
          type: integer
          format: int64
          example: 404
        debug:
          description: |-
            Debug information

            This field is often not exposed to protect against leaking
            sensitive information.
          type: string
          example: SQL field "foo" is not a bool.
        details:
          description: Further error details
          type: object
          additionalProperties: false
        id:
          description: |-
            The error ID

            Useful when trying to identify various errors in application logic.
          type: string
        message:
          description: |-
            Error message

            The error's message.
          type: string
          example: The resource could not be found
        reason:
          description: A human-readable reason for the error
          type: string
          example: User with ID 1234 does not exist.
        request:
          description: |-
            The request ID

            The request ID is often exposed internally in order to trace
            errors across service architectures. This is often a UUID.
          type: string
          example: d7ef54b1-ec15-46e6-bccb-524b82c035e6
        status:
          description: The status description
          type: string
          example: Not Found
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - message
      title: JSON API Error Response
    Identity:
      description: An identity represents a (human) user.
      type: object
      properties:
        created_at:
          description: CreatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
        credentials:
          description: Credentials represents all credentials that can be used for authenticating this identity.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/IdentityCredentials'
        id:
          description: |-
            ID is the identity's unique identifier.
            The Identity ID can not be changed and can not be chosen. This ensures future
            compatibility and optimization for distributed stores such as CockroachDB.
          type: string
          format: uuid
        metadata_admin:
          $ref: '#/components/schemas/NullJsonRawMessage'
        metadata_public:
          $ref: '#/components/schemas/NullJsonRawMessage'
        organization_id:
          $ref: '#/components/schemas/NullUUID'
        recovery_addresses:
          description: RecoveryAddresses contains all the addresses that can be used to recover an identity.
          type: array
          items:
            $ref: '#/components/schemas/RecoveryIdentityAddress'
        schema_id:
          description: SchemaID is the ID of the JSON Schema to be used for validating the identity's traits.
          type: string
        schema_url:
          description: SchemaURL is the URL of the endpoint where the identity's traits schema can be fetched from.
          type: string
        state:
          description: |-
            State is the identity's state.

            This value has currently no effect.
            active StateActive
            inactive StateInactive
          type: string
          enum:
            - active
            - inactive
          x-go-enum-desc: |-
            active StateActive
            inactive StateInactive
        state_changed_at:
          $ref: '#/components/schemas/NullTime'
        traits:
          $ref: '#/components/schemas/IdentityTraits'
        updated_at:
          description: UpdatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
        verifiable_addresses:
          description: VerifiableAddresses contains all the addresses that can be verified by the user.
          type: array
          items:
            $ref: '#/components/schemas/VerifiableIdentityAddress'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - schema_id
        - schema_url
        - traits
      title: Identity represents an identity
    IdentityCredentials:
      description: Credentials represents a specific credential type
      type: object
      properties:
        config:
          $ref: '#/components/schemas/JSONRawMessage'
        created_at:
          description: CreatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
        identifiers:
          description: Identifiers represents a list of unique identifiers this credential type matches.
          type: array
          items:
            type: string
        type:
          description: |-
            Type discriminates between different types of credentials.
            password CredentialsTypePassword
            oidc CredentialsTypeOIDC
            totp CredentialsTypeTOTP
            lookup_secret CredentialsTypeLookup
            webauthn CredentialsTypeWebAuthn
            code CredentialsTypeCodeAuth
            link_recovery CredentialsTypeRecoveryLink  CredentialsTypeRecoveryLink is a special credential type linked to the link strategy (recovery flow).  It is not used within the credentials object itself.
            code_recovery CredentialsTypeRecoveryCode
          type: string
          enum:
            - password
            - oidc
            - totp
            - lookup_secret
            - webauthn
            - code
            - link_recovery
            - code_recovery
          x-go-enum-desc: |-
            password CredentialsTypePassword
            oidc CredentialsTypeOIDC
            totp CredentialsTypeTOTP
            lookup_secret CredentialsTypeLookup
            webauthn CredentialsTypeWebAuthn
            code CredentialsTypeCodeAuth
            link_recovery CredentialsTypeRecoveryLink  CredentialsTypeRecoveryLink is a special credential type linked to the link strategy (recovery flow).  It is not used within the credentials object itself.
            code_recovery CredentialsTypeRecoveryCode
        updated_at:
          description: UpdatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
        version:
          description: Version refers to the version of the credential. Useful when changing the config schema.
          type: integer
          format: int64
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Identity Credentials
    IdentityTraits:
      description: 'Traits represent an identity''s traits. The identity is able to create, modify, and delete traits in a self-service manner. The input will always be validated against the JSON Schema defined in `schema_url`.'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Identity Traits
    IdentityVerifiableAddressStatus:
      description: VerifiableAddressStatus must not exceed 16 characters as that is the limitation in the SQL Schema
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Identity Verifiable Address Status
    LoginFlow:
      description: |-
        This object represents a login flow. A login flow is initiated at the "Initiate Login API / Browser Flow"
        endpoint by a client.

        Once a login flow is completed successfully, a session cookie or session token will be issued.
      type: object
      properties:
        active:
          description: |-
            The active login method

            If set contains the login method used. If the flow is new, it is unset.
            password CredentialsTypePassword
            oidc CredentialsTypeOIDC
            totp CredentialsTypeTOTP
            lookup_secret CredentialsTypeLookup
            webauthn CredentialsTypeWebAuthn
            code CredentialsTypeCodeAuth
            link_recovery CredentialsTypeRecoveryLink  CredentialsTypeRecoveryLink is a special credential type linked to the link strategy (recovery flow).  It is not used within the credentials object itself.
            code_recovery CredentialsTypeRecoveryCode
          type: string
          enum:
            - password
            - oidc
            - totp
            - lookup_secret
            - webauthn
            - code
            - link_recovery
            - code_recovery
          x-go-enum-desc: |-
            password CredentialsTypePassword
            oidc CredentialsTypeOIDC
            totp CredentialsTypeTOTP
            lookup_secret CredentialsTypeLookup
            webauthn CredentialsTypeWebAuthn
            code CredentialsTypeCodeAuth
            link_recovery CredentialsTypeRecoveryLink  CredentialsTypeRecoveryLink is a special credential type linked to the link strategy (recovery flow).  It is not used within the credentials object itself.
            code_recovery CredentialsTypeRecoveryCode
        created_at:
          description: CreatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
        expires_at:
          description: |-
            ExpiresAt is the time (UTC) when the flow expires. If the user still wishes to log in,
            a new flow has to be initiated.
          type: string
          format: date-time
        id:
          description: |-
            ID represents the flow's unique ID. When performing the login flow, this
            represents the id in the login UI's query parameter: http://<selfservice.flows.login.ui_url>/?flow=<flow_id>
          type: string
          format: uuid
        issued_at:
          description: IssuedAt is the time (UTC) when the flow started.
          type: string
          format: date-time
        oauth2_login_challenge:
          type: string
        oauth2_login_request:
          $ref: '#/components/schemas/OAuth2LoginRequest'
        organization_id:
          $ref: '#/components/schemas/NullUUID'
        refresh:
          description: Refresh stores whether this login flow should enforce re-authentication.
          type: boolean
        request_url:
          description: |-
            RequestURL is the initial URL that was requested. It can be used
            to forward information contained in the URL's path or query for example.
          type: string
        requested_aal:
          $ref: '#/components/schemas/AuthenticatorAssuranceLevel'
        return_to:
          description: ReturnTo contains the requested return_to URL.
          type: string
        session_token_exchange_code:
          description: |-
            SessionTokenExchangeCode holds the secret code that the client can use to retrieve a session token after the login flow has been completed.
            This is only set if the client has requested a session token exchange code, and if the flow is of type "api",
            and only on creating the login flow.
          type: string
        state:
          description: |-
            State represents the state of this request:

            choose_method: ask the user to choose a method to sign in with
            sent_email: the email has been sent to the user
            passed_challenge: the request was successful and the login challenge was passed.
        type:
          $ref: '#/components/schemas/SelfServiceFlowType'
        ui:
          $ref: '#/components/schemas/UiContainer'
        updated_at:
          description: UpdatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - type
        - expires_at
        - issued_at
        - request_url
        - ui
        - state
      title: Login Flow
    LogoutFlow:
      description: Logout Flow
      type: object
      properties:
        logout_token:
          description: LogoutToken can be used to perform logout using AJAX.
          type: string
        logout_url:
          description: |-
            LogoutURL can be opened in a browser to sign the user out.

            format: uri
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - logout_url
        - logout_token
      title: Logout Flow
    NullJsonRawMessage:
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      nullable: true
      title: Null Json RawMessage
    RecoveryFlow:
      description: This request is used when an identity wants to recover their account.
      type: object
      properties:
        active:
          description: 'Active, if set, contains the recovery method that is being used. It is initially not set.'
          type: string
        continue_with:
          description: Contains possible actions that could follow this flow
          type: array
          items:
            $ref: '#/components/schemas/ContinueWith'
        expires_at:
          description: 'ExpiresAt is the time (UTC) when the request expires. If the user still wishes to update the setting, a new request has to be initiated.'
          type: string
          format: date-time
        id:
          description: ID represents the request's unique ID.
          type: string
          format: uuid
        issued_at:
          description: IssuedAt is the time (UTC) when the request occurred.
          type: string
          format: date-time
        request_url:
          description: |-
            RequestURL is the initial URL that was requested. It can be used
            to forward information contained in the URL's path or query for example.
          type: string
        return_to:
          description: ReturnTo contains the requested return_to URL.
          type: string
        state:
          description: |-
            State represents the state of this request:
            choose_method: ask the user to choose a method (e.g. recover account via email)
            sent_email: the email has been sent to the user
            passed_challenge: the request was successful and the recovery challenge was passed.
        type:
          $ref: '#/components/schemas/SelfServiceFlowType'
        ui:
          $ref: '#/components/schemas/UiContainer'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - type
        - expires_at
        - issued_at
        - request_url
        - ui
        - state
      title: A Recovery Flow
    RecoveryIdentityAddress:
      type: object
      properties:
        created_at:
          description: CreatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
        id:
          type: string
          format: uuid
        updated_at:
          description: UpdatedAt is a helper struct field for gobuffalo.pop.
          type: string
          format: date-time
        value:
          type: string
        via:
          $ref: '#/components/schemas/RecoveryAddressType'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - value
        - via
      title: Recovery Identity Address
    SelfServiceFlowType:
      description: The flow type can either be `api` or `browser`.
      type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Type is the flow type.
    Session:
      description: A Session
      type: object
      properties:
        active:
          description: Active state. If false the session is no longer active.
          type: boolean
        authenticated_at:
          description: |-
            The Session Authentication Timestamp

            When this session was authenticated at. If multi-factor authentication was used this
            is the time when the last factor was authenticated (e.g. the TOTP code challenge was completed).
          type: string
          format: date-time
        authentication_methods:
          $ref: '#/components/schemas/SessionAuthenticationMethods'
        authenticator_assurance_level:
          $ref: '#/components/schemas/AuthenticatorAssuranceLevel'
        devices:
          description: Devices has history of all endpoints where the session was used
          type: array
          items:
            $ref: '#/components/schemas/SessionDevice'
        expires_at:
          description: |-
            The Session Expiry

            When this session expires at.
          type: string
          format: date-time
        id:
          description: Session ID
          type: string
          format: uuid
        identity:
          $ref: '#/components/schemas/Identity'
        issued_at:
          description: |-
            The Session Issuance Timestamp

            When this session was issued at. Usually equal or close to `authenticated_at`.
          type: string
          format: date-time
        tokenized:
          description: |-
            Tokenized is the tokenized (e.g. JWT) version of the session.

            It is only set when the `tokenize` query parameter was set to a valid tokenize template during calls to `/session/whoami`.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
      title: AuthenticationMethod identifies an authentication method
    SessionAuthenticationMethod:
      description: A singular authenticator used during authentication / login.
      type: object
      properties:
        aal:
          $ref: '#/components/schemas/AuthenticatorAssuranceLevel'
        completed_at:
          description: When the authentication challenge was completed.
          type: string
          format: date-time
        method:
          type: string
          enum:
            - link_recovery
            - code_recovery
            - password
            - code
            - totp
            - oidc
            - webauthn
            - lookup_secret
            - v0.6_legacy_session
          title: The method used
        organization:
          description: The Organization id used for authentication
          type: string
        provider:
          description: OIDC or SAML provider id used for authentication
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: AuthenticationMethod identifies an authentication method
    SessionAuthenticationMethods:
      description: A list of authenticators which were used to authenticate the session.
      type: array
      items:
        $ref: '#/components/schemas/SessionAuthenticationMethod'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: List of (Used) AuthenticationMethods
    SessionDevice:
      description: Device corresponding to a Session
      type: object
      properties:
        id:
          description: Device record ID
          type: string
          format: uuid
        ip_address:
          description: IPAddress of the client
          type: string
        location:
          description: Geo Location corresponding to the IP Address
          type: string
        user_agent:
          description: UserAgent of the client
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
      title: Session Device
    SettingsFlow:
      description: This flow is used when an identity wants to update settings
      type: object
      properties:
        active:
          description: |-
            Active, if set, contains the registration method that is being used. It is initially
            not set.
          type: string
        continue_with:
          description: |-
            Contains a list of actions, that could follow this flow

            It can, for example, contain a reference to the verification flow, created as part of the user's
            registration.
          type: array
          items:
            $ref: '#/components/schemas/ContinueWith'
        expires_at:
          description: |-
            ExpiresAt is the time (UTC) when the flow expires. If the user still wishes to update the setting,
            a new flow has to be initiated.
          type: string
          format: date-time
        id:
          description: |-
            ID represents the flow's unique ID. When performing the settings flow, this
            represents the id in the settings ui's query parameter: http://<selfservice.flows.settings.ui_url>?flow=<id>
          type: string
          format: uuid
        identity:
          $ref: '#/components/schemas/Identity'
        issued_at:
          description: IssuedAt is the time (UTC) when the flow occurred.
          type: string
          format: date-time
        request_url:
          description: RequestURL is the initial URL that was requested. It can be used to forward information contained in the URL's path or query for example.
          type: string
        return_to:
          description: ReturnTo contains the requested return_to URL.
          type: string
        state:
          description: |-
            State represents the state of this flow. It knows two states:
            show_form: No user data has been collected, or it is invalid, and thus the form should be shown.
            success: Indicates that the settings flow has been updated successfully with the provided data.
            Done will stay true when repeatedly checking. If set to true, done will revert back to false only
            when a flow with invalid (e.g. "please use a valid phone number") data was sent.
        type:
          $ref: '#/components/schemas/SelfServiceFlowType'
        ui:
          $ref: '#/components/schemas/UiContainer'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - type
        - expires_at
        - issued_at
        - request_url
        - ui
        - identity
        - state
      title: Flow represents a Settings Flow
    SuccessfulNativeLogin:
      description: The Response for Login Flows via API
      type: object
      properties:
        session:
          $ref: '#/components/schemas/Session'
        session_token:
          description: |-
            The Session Token
            A session token is equivalent to a session cookie, but it can be sent in the HTTP Authorization
            Header:
            Authorization: bearer ${session-token}
            The session token is only issued for API flows, not for Browser flows!
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - session
      title: Successful Native Login
    UiContainer:
      description: Container represents a HTML Form. The container can work with both HTTP Form and JSON requests.
      type: object
      properties:
        action:
          description: 'Action should be used as the form action URL `<form action="{{.Action }}" method="post">`.'
          type: string
        messages:
          $ref: '#/components/schemas/UiTexts'
        method:
          description: Method is the form method (e.g. POST)
          type: string
        nodes:
          $ref: '#/components/schemas/UiNodes'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - action
        - method
        - nodes
      title: Ui Container
    UiNode:
      description: |-
        Nodes are represented as HTML elements or their native UI equivalents. For example,
        a node can be an `<img>` tag, or an `<input element>` but also `some plain text`.
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/UiNodeAttributes'
        group:
          description: |-
            Group specifies which group (e.g. password authenticator) this node belongs to.
            default DefaultGroup
            password PasswordGroup
            oidc OpenIDConnectGroup
            profile ProfileGroup
            link LinkGroup
            code CodeGroup
            totp TOTPGroup
            lookup_secret LookupGroup
            webauthn WebAuthnGroup
          type: string
          enum:
            - default
            - password
            - oidc
            - profile
            - link
            - code
            - totp
            - lookup_secret
            - webauthn
          x-go-enum-desc: |-
            default DefaultGroup
            password PasswordGroup
            oidc OpenIDConnectGroup
            profile ProfileGroup
            link LinkGroup
            code CodeGroup
            totp TOTPGroup
            lookup_secret LookupGroup
            webauthn WebAuthnGroup
        messages:
          $ref: '#/components/schemas/UiTexts'
        meta:
          $ref: '#/components/schemas/UiNodeMeta'
        type:
          description: |-
            The node's type
            text Text
            input Input
            img Image
            a Anchor
            script Script
          type: string
          enum:
            - text
            - input
            - img
            - a
            - script
          x-go-enum-desc: |-
            text Text
            input Input
            img Image
            a Anchor
            script Script
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - type
        - group
        - attributes
        - messages
        - meta
      title: Node represents a flow's nodes
    UiNodeAnchorAttributes:
      type: object
      properties:
        href:
          description: |-
            The link's href (destination) URL.

            format: uri
          type: string
        id:
          description: A unique identifier
          type: string
        node_type:
          description: |-
            NodeType represents this node's types. It is a mirror of `node.type` and
            is primarily used to allow compatibility with OpenAPI 3.0.  In this struct it technically always is "a".
          type: string
        title:
          $ref: '#/components/schemas/UiText'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - href
        - title
        - id
        - node_type
      title: AnchorAttributes represents the attributes of an anchor node.
    UiNodeAttributes:
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      discriminator:
        mapping:
          a: '#/components/schemas/UiNodeAnchorAttributes'
          img: '#/components/schemas/UiNodeImageAttributes'
          input: '#/components/schemas/UiNodeInputAttributes'
          script: '#/components/schemas/UiNodeScriptAttributes'
          text: '#/components/schemas/UiNodeTextAttributes'
        propertyName: node_type
      oneOf:
        - $ref: '#/components/schemas/UiNodeInputAttributes'
        - $ref: '#/components/schemas/UiNodeTextAttributes'
        - $ref: '#/components/schemas/UiNodeImageAttributes'
        - $ref: '#/components/schemas/UiNodeAnchorAttributes'
        - $ref: '#/components/schemas/UiNodeScriptAttributes'
      title: Attributes represents a list of attributes
    UiNodeImageAttributes:
      type: object
      properties:
        height:
          description: Height of the image
          type: integer
          format: int64
        id:
          description: A unique identifier
          type: string
        node_type:
          description: |-
            NodeType represents this node's types. It is a mirror of `node.type` and
            is primarily used to allow compatibility with OpenAPI 3.0.  In this struct it technically always is "img".
          type: string
        src:
          description: |-
            The image's source URL.

            format: uri
          type: string
        width:
          description: Width of the image
          type: integer
          format: int64
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - src
        - id
        - width
        - height
        - node_type
      title: ImageAttributes represents the attributes of an image node.
    UiNodeInputAttributes:
      description: InputAttributes represents the attributes of an input node
      type: object
      properties:
        autocomplete:
          description: |-
            The autocomplete attribute for the input.
            email InputAttributeAutocompleteEmail
            tel InputAttributeAutocompleteTel
            url InputAttributeAutocompleteUrl
            current-password InputAttributeAutocompleteCurrentPassword
            new-password InputAttributeAutocompleteNewPassword
            one-time-code InputAttributeAutocompleteOneTimeCode
          type: string
          enum:
            - email
            - tel
            - url
            - current-password
            - new-password
            - one-time-code
          x-go-enum-desc: |-
            email InputAttributeAutocompleteEmail
            tel InputAttributeAutocompleteTel
            url InputAttributeAutocompleteUrl
            current-password InputAttributeAutocompleteCurrentPassword
            new-password InputAttributeAutocompleteNewPassword
            one-time-code InputAttributeAutocompleteOneTimeCode
        disabled:
          description: Sets the input's disabled field to true or false.
          type: boolean
        label:
          $ref: '#/components/schemas/UiText'
        name:
          description: The input's element name.
          type: string
        node_type:
          description: |-
            NodeType represents this node's types. It is a mirror of `node.type` and
            is primarily used to allow compatibility with OpenAPI 3.0.  In this struct it technically always is "input".
          type: string
        onclick:
          description: |-
            OnClick may contain javascript which should be executed on click. This is primarily
            used for WebAuthn.
          type: string
        pattern:
          description: The input's pattern.
          type: string
        required:
          description: Mark this input field as required.
          type: boolean
        type:
          description: |-
            The input's element type.
            text InputAttributeTypeText
            password InputAttributeTypePassword
            number InputAttributeTypeNumber
            checkbox InputAttributeTypeCheckbox
            hidden InputAttributeTypeHidden
            email InputAttributeTypeEmail
            tel InputAttributeTypeTel
            submit InputAttributeTypeSubmit
            button InputAttributeTypeButton
            datetime-local InputAttributeTypeDateTimeLocal
            date InputAttributeTypeDate
            url InputAttributeTypeURI
          type: string
          enum:
            - text
            - password
            - number
            - checkbox
            - hidden
            - email
            - tel
            - submit
            - button
            - datetime-local
            - date
            - url
          x-go-enum-desc: |-
            text InputAttributeTypeText
            password InputAttributeTypePassword
            number InputAttributeTypeNumber
            checkbox InputAttributeTypeCheckbox
            hidden InputAttributeTypeHidden
            email InputAttributeTypeEmail
            tel InputAttributeTypeTel
            submit InputAttributeTypeSubmit
            button InputAttributeTypeButton
            datetime-local InputAttributeTypeDateTimeLocal
            date InputAttributeTypeDate
            url InputAttributeTypeURI
        value:
          description: The input's value.
          nullable: true
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - type
        - disabled
        - node_type
      title: ScriptAttributes represent input nodes which load javascript.
    UiNodeMeta:
      description: |-
        This might include a label and other information that can optionally
        be used to render UIs.
      type: object
      properties:
        label:
          $ref: '#/components/schemas/UiText'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: A Node's Meta Information
    UiNodeScriptAttributes:
      type: object
      properties:
        async:
          description: The script async type
          type: boolean
        crossorigin:
          description: The script cross origin policy
          type: string
        id:
          description: A unique identifier
          type: string
        integrity:
          description: The script's integrity hash
          type: string
        node_type:
          description: |-
            NodeType represents this node's types. It is a mirror of `node.type` and
            is primarily used to allow compatibility with OpenAPI 3.0. In this struct it technically always is "script".
          type: string
        nonce:
          description: |-
            Nonce for CSP

            A nonce you may want to use to improve your Content Security Policy.
            You do not have to use this value but if you want to improve your CSP
            policies you may use it. You can also choose to use your own nonce value!
          type: string
        referrerpolicy:
          description: The script referrer policy
          type: string
        src:
          description: The script source
          type: string
        type:
          description: The script MIME type
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - src
        - async
        - referrerpolicy
        - crossorigin
        - integrity
        - type
        - id
        - nonce
        - node_type
      title: ScriptAttributes represent script nodes which load javascript.
    UiNodeTextAttributes:
      type: object
      properties:
        id:
          description: A unique identifier
          type: string
        node_type:
          description: |-
            NodeType represents this node's types. It is a mirror of `node.type` and
            is primarily used to allow compatibility with OpenAPI 3.0.  In this struct it technically always is "text".
          type: string
        text:
          $ref: '#/components/schemas/UiText'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - text
        - id
        - node_type
      title: TextAttributes represents the attributes of a text node.
    UiNodes:
      type: array
      items:
        $ref: '#/components/schemas/UiNode'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Ui Nodes
    UiText:
      type: object
      properties:
        context:
          description: The message's context. Useful when customizing messages.
          type: object
        id:
          $ref: '#/components/schemas/ID'
        text:
          description: The message text. Written in american english.
          type: string
        type:
          description: |-
            The message type.
            info Info
            error Error
            success Success
          type: string
          enum:
            - info
            - error
            - success
          x-go-enum-desc: |-
            info Info
            error Error
            success Success
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - text
        - type
      title: Ui Text
    UiTexts:
      type: array
      items:
        $ref: '#/components/schemas/UiText'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: Ui Texts
    UpdateLoginFlowBody:
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      discriminator:
        mapping:
          code: '#/components/schemas/UpdateLoginFlowWithCodeMethod'
          lookup_secret: '#/components/schemas/UpdateLoginFlowWithLookupSecretMethod'
          oidc: '#/components/schemas/UpdateLoginFlowWithOidcMethod'
          password: '#/components/schemas/UpdateLoginFlowWithPasswordMethod'
          totp: '#/components/schemas/UpdateLoginFlowWithTotpMethod'
          webauthn: '#/components/schemas/UpdateLoginFlowWithWebAuthnMethod'
        propertyName: method
      oneOf:
        - $ref: '#/components/schemas/UpdateLoginFlowWithPasswordMethod'
        - $ref: '#/components/schemas/UpdateLoginFlowWithOidcMethod'
        - $ref: '#/components/schemas/UpdateLoginFlowWithTotpMethod'
        - $ref: '#/components/schemas/UpdateLoginFlowWithWebAuthnMethod'
        - $ref: '#/components/schemas/UpdateLoginFlowWithLookupSecretMethod'
        - $ref: '#/components/schemas/UpdateLoginFlowWithCodeMethod'
      title: Update Login Flow Body
    UpdateLoginFlowWithCodeMethod:
      description: Update Login flow using the code method
      type: object
      properties:
        code:
          description: Code is the 6 digits code sent to the user
          type: string
        csrf_token:
          description: CSRFToken is the anti-CSRF token
          type: string
        identifier:
          description: |-
            Identifier is the code identifier
            The identifier requires that the user has already completed the registration or settings with code flow.
          type: string
        method:
          description: Method should be set to "code" when logging in using the code strategy.
          type: string
        resend:
          description: Resend is set when the user wants to resend the code
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - method
        - csrf_token
      title: Update Login Flow Code
    UpdateLoginFlowWithLookupSecretMethod:
      description: Update Login Flow with Lookup Secret Method
      type: object
      properties:
        csrf_token:
          description: Sending the anti-csrf token is only required for browser login flows.
          type: string
        lookup_secret:
          description: The lookup secret.
          type: string
        method:
          description: Method should be set to "lookup_secret" when logging in using the lookup_secret strategy.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - method
        - lookup_secret
      title: Update Login Flow Lookup Secret
    UpdateLoginFlowWithOidcMethod:
      description: Update Login Flow with OpenID Connect Method
      type: object
      properties:
        csrf_token:
          description: The CSRF Token
          type: string
        id_token:
          description: |-
            IDToken is an optional id token provided by an OIDC provider

            If submitted, it is verified using the OIDC provider's public key set and the claims are used to populate
            the OIDC credentials of the identity.
            If the OIDC provider does not store additional claims (such as name, etc.) in the IDToken itself, you can use
            the `traits` field to populate the identity's traits. Note, that Apple only includes the users email in the IDToken.

            Supported providers are
            Apple
          type: string
        id_token_nonce:
          description: |-
            IDTokenNonce is the nonce, used when generating the IDToken.
            If the provider supports nonce validation, the nonce will be validated against this value and required.
          type: string
        method:
          description: |-
            Method to use

            This field must be set to `oidc` when using the oidc method.
          type: string
        provider:
          description: The provider to register with
          type: string
        traits:
          description: The identity traits. This is a placeholder for the registration flow.
          type: object
        upstream_parameters:
          description: |-
            UpstreamParameters are the parameters that are passed to the upstream identity provider.

            These parameters are optional and depend on what the upstream identity provider supports.
            Supported parameters are:
            `login_hint` (string): The `login_hint` parameter suppresses the account chooser and either pre-fills the email box on the sign-in form, or selects the proper session.
            `hd` (string): The `hd` parameter limits the login/registration process to a Google Organization, e.g. `mycollege.edu`.
            `prompt` (string): The `prompt` specifies whether the Authorization Server prompts the End-User for reauthentication and consent, e.g. `select_account`.
          type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - provider
        - method
      title: Update Login Flow Oidc
    UpdateLoginFlowWithPasswordMethod:
      description: Update Login Flow with Password Method
      type: object
      properties:
        csrf_token:
          description: Sending the anti-csrf token is only required for browser login flows.
          type: string
        identifier:
          description: Identifier is the email or username of the user trying to log in.
          type: string
        method:
          description: Method should be set to "password" when logging in using the identifier and password strategy.
          type: string
        password:
          description: The user's password.
          type: string
        password_identifier:
          description: |-
            Identifier is the email or username of the user trying to log in.
            This field is deprecated!
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - method
        - password
        - identifier
      title: Update Login Flow Password
    UpdateLoginFlowWithTotpMethod:
      description: Update Login Flow with TOTP Method
      type: object
      properties:
        csrf_token:
          description: Sending the anti-csrf token is only required for browser login flows.
          type: string
        method:
          description: Method should be set to "totp" when logging in using the TOTP strategy.
          type: string
        totp_code:
          description: The TOTP code.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - method
        - totp_code
      title: Update Login Flow Totp
    UpdateLoginFlowWithWebAuthnMethod:
      description: Update Login Flow with WebAuthn Method
      type: object
      properties:
        csrf_token:
          description: Sending the anti-csrf token is only required for browser login flows.
          type: string
        identifier:
          description: Identifier is the email or username of the user trying to log in.
          type: string
        method:
          description: Method should be set to "webAuthn" when logging in using the WebAuthn strategy.
          type: string
        webauthn_login:
          description: |-
            Login a WebAuthn Security Key

            This must contain the ID of the WebAuthN connection.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - identifier
        - method
      title: Update Login Flow WebAuthn
    UpdateRecoveryFlowBody:
      description: Update Recovery Flow Request Body
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      discriminator:
        mapping:
          code: '#/components/schemas/UpdateRecoveryFlowWithCodeMethod'
          link: '#/components/schemas/UpdateRecoveryFlowWithLinkMethod'
        propertyName: method
      oneOf:
        - $ref: '#/components/schemas/UpdateRecoveryFlowWithLinkMethod'
        - $ref: '#/components/schemas/UpdateRecoveryFlowWithCodeMethod'
      title: Update Recovery Flow Body
    UpdateRecoveryFlowWithCodeMethod:
      description: Update Recovery Flow with Code Method
      type: object
      properties:
        code:
          description: |-
            Code from the recovery email

            If you want to submit a code, use this field, but make sure to _not_ include the email field, as well.
          type: string
        csrf_token:
          description: Sending the anti-csrf token is only required for browser login flows.
          type: string
        email:
          description: 'If the email belongs to a valid account, a recovery email will be sent.'
          type: string
        method:
          description: |-
            Method is the method that should be used for this recovery flow

            Allowed values are `link` and `code`.
            link RecoveryStrategyLink
            code RecoveryStrategyCode
          type: string
          enum:
            - link
            - code
          x-go-enum-desc: |-
            link RecoveryStrategyLink
            code RecoveryStrategyCode
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - method
      title: Update Recovery Flow Code
    UpdateRecoveryFlowWithLinkMethod:
      description: Update Recovery Flow with Link Method
      type: object
      properties:
        csrf_token:
          description: Sending the anti-csrf token is only required for browser login flows.
          type: string
        email:
          description: |-
            Email to Recover
            Needs to be set when initiating the flow. If the email is a registered recovery email, a recovery link will be sent. If the email is not known,a email with details on what happened will be sent instead.
          type: string
          format: email
        method:
          description: |-
            Method is the method that should be used for this recovery flow

            Allowed values are `link` and `code`
            link RecoveryStrategyLink
            code RecoveryStrategyCode
          type: string
          enum:
            - link
            - code
          x-go-enum-desc: |-
            link RecoveryStrategyLink
            code RecoveryStrategyCode
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - email
        - method
      title: Update Recovery Flow Link
    UpdateSettingsFlowBody:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      discriminator:
        propertyName: method
        mapping:
          password: '#/components/schemas/UpdateSettingsFlowWithPasswordMethod'
          totp: '#/components/schemas/UpdateSettingsFlowWithTotpMethod'
      oneOf:
        - $ref: '#/components/schemas/UpdateSettingsFlowWithPasswordMethod'
        - $ref: '#/components/schemas/UpdateSettingsFlowWithTotpMethod'
      title: Update Settings Flow Body
    UpdateSettingsFlowWithPasswordMethod:
      description: Update Settings Flow with Password Method
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/UpdateSettingsFlowMethod'
        - type: object
          properties:
            method:
              const: password
            csrf_token:
              description: CSRFToken is the anti-CSRF token
              type: string
            password:
              description: Password is the updated password
              type: string
          required:
            - password
      title: Update Settings Flow Password
    UpdateSettingsFlowMethod:
      type: object
      properties:
        method:
          description: |-
            Method

            Should be set to password when trying to update a password.
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - method
      title: Update Settings Flow method
    UpdateSettingsFlowWithTotpMethod:
      description: Update Settings Flow with TOTP Method
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/UpdateSettingsFlowMethod'
        - type: object
          properties:
            method:
              const: totp
            csrf_token:
              description: CSRFToken is the anti-CSRF token
              type: string
            totp_code:
              description: ValidationTOTP must contain a valid TOTP based on the
              type: string
            totp_unlink:
              description: |-
                UnlinkTOTP if true will remove the TOTP pairing,
                effectively removing the credential. This can be used
                to set up a new TOTP device.
              type: boolean
      title: Update Settings Flow Totp
    VerifiableIdentityAddress:
      description: VerifiableAddress is an identity's verifiable address
      type: object
      properties:
        created_at:
          description: When this entry was created
          type: string
          format: date-time
          example: '2014-01-01T23:28:56.782Z'
        id:
          description: The ID
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/IdentityVerifiableAddressStatus'
        updated_at:
          description: When this entry was last updated
          type: string
          format: date-time
          example: '2014-01-01T23:28:56.782Z'
        value:
          description: |-
            The address value

            example foo@user.com
          type: string
        verified:
          description: Indicates if the address has already been verified
          type: boolean
          example: true
        verified_at:
          $ref: '#/components/schemas/NullTime'
        via:
          description: The delivery method
          type: string
          example: email
          enum:
            - email
            - sms
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - value
        - verified
        - via
        - status
      title: Verifiable Identity Address
    AKSK:
      type: object
      properties:
        ak:
          type: string
        sk:
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - ak
        - sk
      title: AKSK
    OrganisationSimple:
      type: object
      properties:
        id:
          description: Organisation identifier
          type: string
          format: uuid
        name:
          description: Organisation name
          type: string
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - name
      title: OrganisationSimple
    SpaceSimple:
      type: object
      properties:
        id:
          description: Space identifier
          type: string
          format: uuid
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
      title: SpaceSimple
    OrganisationSimplePaginatedList:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/OrganisationSimple'
          required:
            - items
      title: OrganisationSimplePaginatedList
    SpaceSimplePaginatedList:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/SpaceSimple'
          required:
            - items
      title: SpaceSimplePaginatedList
    ServiceAccount:
      type: object
      properties:
        name:
          description: Service account name
          type: string
          format: string
          maxLength: 64
          minLength: 1
        tokenDuration:
          description: Token duration in ISO 8601 format. Default is 24 hours (PT24H). Must be between 1 second (PT1S) and 48 hours (PT48H).
          type: string
          format: duration
          default: PT24H
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
      title: ServiceAccount
    ServiceAccountEdited:
      type: object
      properties:
        name:
          description: Service Accounts name
          type: string
          format: string
        id:
          description: Service account ID
          type: string
          format: string
        tokenDuration:
          description: Set access token duration
          type: string
          format: duration
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - name
        - id
      title: ServiceAccountEdited
    CreatedServiceAccount:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/ServiceAccountEdited'
        - type: object
          properties:
            secret:
              description: Service account secret.
              type: string
          required:
            - secret
      title: CreatedServiceAccount
    ServiceAccountPaginatedList:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/ServiceAccountEdited'
          required:
            - items
      title: ServiceAccountPaginatedList
    User:
      type: object
      properties:
        email:
          $ref: '#/components/schemas/Email'
        firstname:
          description: Firstname
          type: string
          maxLength: 64
        lastname:
          description: Lastname
          type: string
          maxLength: 64
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - email
        - firstname
        - lastname
      title: User
    UserEdited:
      type: object
      properties:
        id:
          description: User ID
          type: string
          format: uuid
        active:
          description: Account activation/deactivation state
          type: boolean
        createdOn:
          $ref: '#/components/schemas/DateTime'
        updatedOn:
          $ref: '#/components/schemas/DateTime'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - active
        - createdOn
        - updatedOn
      title: UserEdited
    UserModified:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/User'
        - $ref: '#/components/schemas/UserEdited'
      title: UserModified
    UserCreation:
      type: object
      properties:
        id:
          description: User ID
          type: string
          format: uuid
        active:
          description: Account activation/deactivation state
          type: boolean
        createdOn:
          $ref: '#/components/schemas/DateTime'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - active
        - createdOn
      title: UserCreation
    UserCreated:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/User'
        - $ref: '#/components/schemas/UserCreation'
      title: UserCreated
    UserUpdate:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/User'
        - type: object
          properties:
            active:
              description: Account activation/deactivation state
              type: boolean
          required:
            - active
      title: UserUpdate
    UserPaginatedList:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/UserModified'
          required:
            - items
      title: UserPaginatedList
    RecoveryCode:
      type: object
      properties:
        link:
          description: Recovery link
          type: string
          format: uri
        code:
          description: Recovery code correctly generated
          type: string
        expiration:
          $ref: '#/components/schemas/DateTime'
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - link
        - expiration
      title: RecoveryLink
    UserState:
      type: object
      properties:
        active:
          description: Account activation/deactivation state
          type: boolean
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - active
      title: UserState
    Email:
      description: A string representing email address.
      type: string
      format: email
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      examples:
        - john.smith@acme.org
      title: Email
    ListOrganisations:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/Organisation'
          required:
            - items
      title: List of organisations
    Organisation:
      type: object
      properties:
        organisationId:
          description: organisation ID
          type: string
          format: uuid
        name:
          description: Organisation name
          type: string
          format: string
        description:
          description: Organisation description
          type: string
          format: string
        createdOn:
          description: Organisation creation date
          type: string
          format: date-time
        updatedOn:
          description: Organisation last update
          type: string
          format: date-time
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - organisationId
        - name
        - description
        - createdOn
        - updatedOn
      title: Organisation schema
    SpacePaginatedList:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/PaginatedList'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/Space'
          required:
            - items
      title: SpacePaginatedList
    CreateSpace:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/MutableSpace'
        - type: object
          required:
            - name
            - description
      title: CreateSpace
    MutableSpace:
      type: object
      properties:
        name:
          description: Space name
          type: string
          format: string
          maxLength: 50
          minLength: 1
        description:
          description: Space description
          type: string
          format: string
          maxLength: 300
          minLength: 1
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      title: MutableSpace
    ImmutableSpace:
      type: object
      properties:
        id:
          description: Internal ID
          type: string
          format: uuid
        organisationId:
          description: Organisation_id
          type: string
          format: uuid
        status:
          description: 'status of the space, the space can only be used when the status is ready.'
          type: string
          enum:
            - QUEUED
            - RUNNING
            - READY
            - FAILED
        createdOn:
          description: Space creation date
          type: string
          format: date-time
        updatedOn:
          description: Space last update
          type: string
          format: date-time
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      required:
        - id
        - organisationId
        - createdOn
        - updatedOn
        - status
      title: ImmutableSpace
    Space:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/MutableSpace'
        - $ref: '#/components/schemas/ImmutableSpace'
        - type: object
          required:
            - name
            - description
      title: Space
    ListOrganisationsMeBadRequest:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/BadRequestError'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#organisation_not_found'
                - 'urn:numspot:errors#unauthenticated_access'
          required:
            - type
      title: '[Bad Request] List Organisations that belongs to an identity'
    ListSpacesMeBadRequest:
      type: object
      $schema: 'https://json-schema.org/draft/2020-12/schema'
      allOf:
        - $ref: '#/components/schemas/BadRequestError'
        - type: object
          properties:
            type:
              type: string
              format: uri
              enum:
                - 'urn:numspot:errors#space_not_found'
                - 'urn:numspot:errors#unauthenticated_access'
          required:
            - type
      title: '[Bad Request] List Spaces that belongs to an identity'
  requestBodies:
    CreateDhcpOptionsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateDhcpOptions'
    CreateFlexibleGpuRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateFlexibleGpu'
    CreateImageRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateImage'
    CreateKeypairRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateKeypairRequestSchema'
    CreateListenerRuleRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateListenerRule'
    CreateLoadBalancerListenersRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateLoadBalancerListeners'
    CreateLoadBalancerPolicyRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateLoadBalancerPolicy'
    CreateLoadBalancerRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateLoadBalancer'
    CreateLoadBalancerTagsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateLoadBalancerTags'
    CreateNatGatewayRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateNatGateway'
    CreateNicRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateNic'
    CreateRouteRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateRoute'
    CreateRouteTableRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateRouteTable'
    CreateSecurityGroupRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateSecurityGroup'
    CreateSecurityGroupRuleRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateSecurityGroupRule'
    CreateSnapshotRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateSnapshot'
    CreateSubnetRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateSubnet'
    CreateTagsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateTags'
    CreateVmsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateVms'
    CreateVolumeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateVolume'
    CreateVpcRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateVpc'
    CreateServerCertificateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateServerCertificate'
    DeleteLoadBalancerListenersRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteLoadBalancerListeners'
    DeleteLoadBalancerPolicyRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteLoadBalancerPolicy'
    DeleteLoadBalancerTagsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteLoadBalancerTags'
    DeleteRouteRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteRoute'
    DeleteSecurityGroupRuleRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteSecurityGroupRule'
    DeleteTagsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteTags'
    LinkFlexibleGpuRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LinkFlexibleGpu'
    LinkInternetGatewayRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LinkInternetGateway'
    LinkLoadBalancerBackendMachinesRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LinkLoadBalancerBackendMachines'
    LinkNicRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              deviceNumber:
                description: 'The index of the VM device for the NIC attachment (between `1` and `7`, both included).'
                type: integer
                example: 1
              vmId:
                description: The ID of the VM to which you want to attach the NIC.
                type: string
                example: i-12345678
            additionalProperties: false
            required:
              - deviceNumber
              - vmId
    LinkPrivateIpsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LinkPrivateIps'
    LinkPublicIpRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              allowRelink:
                description: 'If true, allows the public IP to be associated with the VM or NIC that you specify even if it is already associated with another VM or NIC. If false, prevents the public IP from being associated with the VM or NIC that you specify if it is already associated with another VM or NIC. (By default, true in the public Cloud, false in a Vpc.)'
                type: boolean
                example: true
              nicId:
                description: '(Vpc only) The ID of the NIC. This parameter is required if the VM has more than one NIC attached. Otherwise, you need to specify the `VmId` parameter instead. You cannot specify both parameters at the same time.'
                type: string
                example: eni-12345678
              privateIp:
                description: '(Vpc only) The primary or secondary private IP of the specified NIC. By default, the primary private IP.'
                type: string
                example: 10.0.0.6
              vmId:
                description: |-
                  The ID of the VM.<br />
                  - In the public Cloud, this parameter is required.<br />
                  - In a Vpc, this parameter is required if the VM has only one NIC. Otherwise, you need to specify the `NicId` parameter instead. You cannot specify both parameters at the same time.
                type: string
                example: i-12345678
            additionalProperties: false
    LinkRouteTableRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              subnetId:
                description: The ID of the Subnet.
                type: string
                example: subnet-12345678
            additionalProperties: false
            required:
              - subnetId
    LinkVolumeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LinkVolume'
    ReadLoadBalancerTagsRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              names:
                description: One or more load balancer names.
                type: array
                items:
                  type: string
                example:
                  - private-lb-example
            additionalProperties: false
            required:
              - names
    ReadVmsHealthRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              backendVmIds:
                description: One or more IDs of back-end VMs.
                type: array
                items:
                  type: string
                example:
                  - i-12345678
                  - i-87654321
            additionalProperties: false
    StopVmRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StopVm'
    UnlinkInternetGatewayRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnlinkInternetGateway'
    UnlinkLoadBalancerBackendMachinesRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnlinkLoadBalancerBackendMachines'
    UnlinkNicRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnlinkNic'
    UnlinkPrivateIpsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnlinkPrivateIps'
    UnlinkPublicIpRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnlinkPublicIp'
    UnlinkRouteTableRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnlinkRouteTable'
    UnlinkVolumeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnlinkVolume'
    UpdateFlexibleGpuRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateFlexibleGpu'
    UpdateImageRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateImage'
    UpdateListenerRuleRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateListenerRule'
    UpdateLoadBalancerRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateLoadBalancer'
    UpdateNicRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateNic'
    UpdateRouteRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateRoute'
    UpdateRouteTableRoutePropagationRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateRouteTableRoutePropagation'
    UpdateSubnetRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateSubnet'
    UpdateVmRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateVm'
    UpdateVolumeRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateVolume'
    UpdateVpcRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateVpc'
    UpdateServerCertificateRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateServerCertificate'
    KubernetesCreateClusterRequest:
      description: Cluster configuration you want to have at the creation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesClusterConfiguration'
    KubernetesAddWorkersRequest:
      description: Workers number and profile to order
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesWorkersAddition'
    KubernetesRemoveWorkerRequest:
      description: Which workers profile wanted to remove
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesWorkerRemoval'
    KubernetesUpgradeWorkersRequest:
      description: Workers number and profile to order
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesWorkerUpgrade'
    KubernetesUpgradeMastersRequest:
      description: Master number and profile to order
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesMasterUpgrade'
    CreateClusterRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftClusterCreate'
    UpdateClusterRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftClusterUpdate'
    CreateNodepoolRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftNodepool'
    UpdateNodepoolRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftNodepoolUpdate'
    PostgresClusterCreationRequest:
      description: The properties of the cluster to create.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresClusterCreationRequest'
    PostgresClusterDeleteRequest:
      description: Options to customise the cluster deletion operation.
      content:
        application/json:
          schema:
            type: object
            properties:
              backups:
                $ref: '#/components/schemas/PostgresBackupDeleteOption'
    PostgresClusterModificationRequest:
      description: |-
        The properties of the cluster to modify.

        At least one property must be set.
      content:
        application/json:
          schema:
            type: object
            properties:
              automaticBackup:
                $ref: '#/components/schemas/PostgresClusterAutomaticBackup'
              nodeConfiguration:
                $ref: '#/components/schemas/PostgresNodeConfiguration'
              allowedIpRanges:
                $ref: '#/components/schemas/PostgresAllowedIpRanges'
    CreateComputeBridgeRequest:
      description: Create a bridge between two Numspot resources.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateComputeBridge'
    CreateHybridBridgeRequest:
      description: Create a bridge between two Numspot resources.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateHybridBridge'
    CreateManagedServicesBridgeRequest:
      description: Create a bridge between two Numspot resources.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateManagedServicesBridge'
    CreateDirectLinkInterfaceRequest:
      description: Create an interface to a direct link.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateDirectLinkInterface'
    CreateDirectLinkRequest:
      description: 'Create a direct link, please contact Numspot support for more information.'
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateDirectLink'
    CreateClientGatewayRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateClientGateway'
    CreateVirtualGatewayRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateVirtualGateway'
    LinkUnlinkVirtualGatewayRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LinkUnlinkVirtualGateway'
    CreateVPNConnectionRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateVPNConnection'
    UpdateVPNConnectionRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateVPNConnection'
    CreateVPNConnectionRouteRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateVPNConnectionRoute'
    DeleteVPNConnectionRouteRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DeleteVPNConnectionRoute'
    SetACLRequest:
      description: Contains ACLs to be added.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ACLList'
    DeleteACLRequest:
      description: Contains ACLs to be removed.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ACLList'
    SetIAMPolicyRequest:
      description: Contains details of roles and permissions to be added or deleted from the IAM policy
      required: true
      content:
        application/json:
          schema:
            description: Defines the structure for modification instructions for roles and permissions
            type: object
            properties:
              add:
                $ref: '#/components/schemas/IAMPolicy'
              delete:
                $ref: '#/components/schemas/IAMPolicy'
    IntrospectRequest:
      description: OAuth2 introspect request
      required: true
      content:
        application/x-www-form-urlencoded:
          schema:
            $ref: '#/components/schemas/TokenBody'
    TokenRequest:
      description: OAuth2 token request
      required: true
      content:
        application/x-www-form-urlencoded:
          schema:
            $ref: '#/components/schemas/TokenReq'
    RevokeRequest:
      description: OAuth2 revoke request
      required: true
      content:
        application/x-www-form-urlencoded:
          schema:
            $ref: '#/components/schemas/TokenBody'
    ConvertTokenRequest:
      description: Token to be converted
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Token'
    CreateServiceAccountRequest:
      description: Create a new service account
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceAccount'
    UpdateServiceAccountRequest:
      description: Update a service account
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceAccount'
    CreateUserRequest:
      description: Create a user
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/User'
    UpdateUserRequest:
      description: Update a user
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserUpdate'
    PatchUserStateRequest:
      description: Patch user state
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserState'
    CreateSpaceRequest:
      description: Space
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateSpace'
    UpdateSpaceRequest:
      description: Space
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MutableSpace'
  responses:
    CreateDhcpOptions201Response:
      description: Response payload for CreateDhcpOptions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DhcpOptionsSet'
    CreateFlexibleGpu201Response:
      description: Response payload for CreateFlexibleGpu
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlexibleGpu'
    CreateImage201Response:
      description: Response payload for CreateImage
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Image'
    CreateInternetGateway201Response:
      description: Response payload for CreateInternetGateway
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternetGateway'
    CreateKeypair201Response:
      description: Response payload for CreateKeypair
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateKeypair'
    CreateListenerRule201Response:
      description: Response payload for CreateListenerRule
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ListenerRule'
    CreateLoadBalancerListeners201Response:
      description: Response payload for CreateLoadBalancerListeners
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LoadBalancer'
    CreateLoadBalancerPolicy201Response:
      description: Response payload for CreateLoadBalancerPolicy
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LoadBalancer'
    CreateLoadBalancer201Response:
      description: Response payload for CreateLoadBalancer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LoadBalancer'
    CreateNatGateway201Response:
      description: Response payload for CreateNatGateway
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NatGateway'
    CreateNic201Response:
      description: Response payload for CreateNic
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Nic'
    CreatePublicIp201Response:
      description: Response payload for CreatePublicIp
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PublicIp'
    CreateRoute201Response:
      description: Response payload for CreateRoute
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RouteTable'
    CreateRouteTable201Response:
      description: Response payload for CreateRouteTable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RouteTable'
    CreateSecurityGroup201Response:
      description: Response payload for CreateSecurityGroup
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SecurityGroup'
    CreateSecurityGroupRule201Response:
      description: Response payload for CreateSecurityGroupRule
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SecurityGroup'
    CreateSnapshot201Response:
      description: Response payload for CreateSnapshot
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Snapshot'
    CreateSubnet201Response:
      description: Response payload for CreateSubnet
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Subnet'
    CreateVms201Response:
      description: Response payload for CreateVms
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Vm'
    CreateVolume201Response:
      description: Response payload for CreateVolume
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Volume'
    CreateVpc201Response:
      description: Response payload for CreateVpc
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Vpc'
    CreateServerCertificate201Response:
      description: Response payload for CreateServerCertificate
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServerCertificate'
    LinkNic200Response:
      description: Response payload for LinkNic
      content:
        application/json:
          schema:
            type: object
            properties:
              linkNicId:
                description: The ID of the NIC attachment.
                type: string
                example: eni-attach-12345678
            additionalProperties: false
    LinkPublicIp200Response:
      description: Response payload for LinkPublicIp
      content:
        application/json:
          schema:
            type: object
            properties:
              linkPublicIpId:
                description: (Vpc only) The ID representing the association of the public IP with the VM or the NIC.
                type: string
                example: eipassoc-12345678
            additionalProperties: false
    LinkRouteTable200Response:
      description: Response payload for LinkRouteTable
      content:
        application/json:
          schema:
            type: object
            properties:
              linkRouteTableId:
                description: The ID of the association between the route table and the Subnet.
                type: string
                example: rtbassoc-12345678
            additionalProperties: false
    ReadAdminPassword200Response:
      description: Response payload for ReadAdminPassword
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadAdminPassword'
    ReadConsoleOutput200Response:
      description: Response payload for ReadConsoleOutput
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadConsoleOutput'
    ReadDhcpOptionsById200Response:
      description: Response payload for ReadDhcpOptionsById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DhcpOptionsSet'
    ReadDhcpOptions200Response:
      description: Response payload for ReadDhcpOptions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadDhcpOptions'
    ReadFlexibleGpusById200Response:
      description: Response payload for ReadFlexibleGpusById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlexibleGpu'
    ReadFlexibleGpus200Response:
      description: Response payload for ReadFlexibleGpus
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadFlexibleGpus'
    ReadImagesById200Response:
      description: Response payload for ReadImagesById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Image'
    ReadImages200Response:
      description: Response payload for ReadImages
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadImages'
    ReadInternetGatewaysById200Response:
      description: Response payload for ReadInternetGatewaysById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternetGateway'
    ReadInternetGateways200Response:
      description: Response payload for ReadInternetGateways
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadInternetGateways'
    ReadKeypairsById200Response:
      description: Response payload for ReadKeypairsById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadKeypairsById'
    ReadKeypairs200Response:
      description: Response payload for ReadKeypairs
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadKeypairs'
    ReadListenerRulesById200Response:
      description: Response payload for ReadListenerRulesById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ListenerRule'
    ReadListenerRules200Response:
      description: Response payload for ReadListenerRules
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadListenerRules'
    ReadLoadBalancerTags200Response:
      description: Response payload for ReadLoadBalancerTags
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadLoadBalancerTags'
    ReadLoadBalancersById200Response:
      description: Response payload for ReadLoadBalancersById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LoadBalancer'
    ReadLoadBalancers200Response:
      description: Response payload for ReadLoadBalancers
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadLoadBalancers'
    ReadNatGatewayById200Response:
      description: Response payload for ReadNatGatewayById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NatGateway'
    ReadNatGateway200Response:
      description: Response payload for ReadNatGateway
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadNatGateway'
    ReadNicsById200Response:
      description: Response payload for ReadNicsById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Nic'
    ReadNics200Response:
      description: Response payload for ReadNics
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadNics'
    ReadPublicIpsById200Response:
      description: Response payload for ReadPublicIpsById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PublicIp'
    ReadPublicIps200Response:
      description: Response payload for ReadPublicIps
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadPublicIps'
    ReadRouteTablesById200Response:
      description: Response payload for ReadRouteTablesById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RouteTable'
    ReadRouteTables200Response:
      description: Response payload for ReadRouteTables
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadRouteTables'
    ReadSecurityGroupsById200Response:
      description: Response payload for ReadSecurityGroupsById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SecurityGroup'
    ReadSecurityGroups200Response:
      description: Response payload for ReadSecurityGroups
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadSecurityGroups'
    ReadSnapshotsById200Response:
      description: Response payload for ReadSnapshotsById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Snapshot'
    ReadSnapshots200Response:
      description: Response payload for ReadSnapshots
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadSnapshots'
    ReadSubnetsById200Response:
      description: Response payload for ReadSubnetsById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Subnet'
    ReadSubnets200Response:
      description: Response payload for ReadSubnets
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadSubnets'
    ReadTags200Response:
      description: Response payload for ReadTags
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadTags'
    ReadVmsById200Response:
      description: Response payload for ReadVmsById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Vm'
    ReadVmsHealth200Response:
      description: Response payload for ReadVmsHealth
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadVmsHealth'
    ReadVms200Response:
      description: Response payload for ReadVms
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadVms'
    ReadVmsState200Response:
      description: Response payload for ReadVmsState
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadVmsState'
    ReadVolumesById200Response:
      description: Response payload for ReadVolumesById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Volume'
    ReadVolumes200Response:
      description: Response payload for ReadVolumes
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadVolumes'
    ReadVpcsById200Response:
      description: Response payload for ReadVpcsById
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Vpc'
    ReadVpcs200Response:
      description: Response payload for ReadVpcs
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadVpcs'
    ReadServerCertificates200Response:
      description: Response payload for ReadServerCertificates
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReadServerCertificates'
    StartVm200Response:
      description: Response payload for StartVm
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VmState'
    StopVm200Response:
      description: Response payload for StopVm
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VmState'
    UpdateFlexibleGpu200Response:
      description: Response payload for UpdateFlexibleGpu
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FlexibleGpu'
    UpdateImage200Response:
      description: Response payload for UpdateImage
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Image'
    UpdateListenerRule200Response:
      description: Response payload for UpdateListenerRule
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ListenerRule'
    UpdateLoadBalancer200Response:
      description: Response payload for UpdateLoadBalancer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LoadBalancer'
    UpdateNic200Response:
      description: Response payload for UpdateNic
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Nic'
    UpdateRoute200Response:
      description: Response payload for UpdateRoute
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RouteTable'
    UpdateRouteTableRoutePropagation200Response:
      description: Response payload for UpdateRouteTableRoutePropagation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RouteTable'
    UpdateSubnet200Response:
      description: Response payload for UpdateSubnet
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Subnet'
    UpdateVm200Response:
      description: Response payload for UpdateVm
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Vm'
    UpdateVolume200Response:
      description: Response payload for UpdateVolume
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Volume'
    UpdateVpc200Response:
      description: Response payload for UpdateVpc
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Vpc'
    UpdateServerCertificate204Response:
      description: Response payload for UpdateServerCertificate
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServerCertificate'
    Error400:
      description: Bad Request
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/BadRequestError'
    Error401:
      description: Unauthorized
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    Error403:
      description: Forbidden
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    Error404:
      description: Not Found
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    Error414:
      description: The HTTP 414 response (URI Too Long).
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    Error500:
      description: Internal Server Error
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/InternalServerError'
    Error409:
      description: Conflict
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ConflictError'
    KubernetesBadRequest400Response:
      description: Bad request.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/KubernetesBadRequestError'
    KubernetesNotFound404Response:
      description: Not found.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/KubernetesNotFoundError'
    KubernetesListVersions200Response:
      description: List all supported Kubernetes versions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesVersions'
    KubernetesListNodeProfiles200Response:
      description: List all available node profiles
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesNodeProfiles'
    KubernetesListClusters200Response:
      description: List all authorized clusters of the space
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesListClusters'
    KubernetesCreateCluster202Response:
      description: Create cluster request was accepted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesCluster'
    KubernetesConflict409Response:
      description: Conflict.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/KubernetesConflictError'
    KubernetesGetCluster200Response:
      description: Cluster details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesCluster'
    KubernetesDeleteCluster202Response:
      description: Deletion cluster request was accepted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesCluster'
    KubernetesGetFileContent200Response:
      description: Retrieve Kubernetes configuration on hex encode binaries
      content:
        application/octet-stream:
          schema:
            $ref: '#/components/schemas/KubernetesBinaryContent'
    Error501:
      description: Not Implemented
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    KubernetesAddWorkers202Response:
      description: Add workers request was accepted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesCluster'
    KubernetesRemoveWorker202Response:
      description: Remove worker request was accepted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesCluster'
    Versions202Response:
      description: Successfully list versions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftVersions'
    OpenShiftBadRequest400Response:
      description: Bad request.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/OpenShiftBadRequestError'
    Clusters200Response:
      description: Successfully list clusters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftClusters'
    ClusterCreate201Response:
      description: Successfully created a new cluster
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftClusterCreated'
    ClusterGet200Response:
      description: Successfully get cluster
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftCluster'
    OpenShiftNotFound404Response:
      description: Not found.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/OpenShiftNotFoundError'
    ClusterDelete202Response:
      description: Successfully created a delete cluster operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftClusterDeleted'
    OpenShiftConflict409Response:
      description: Conflict.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/OpenShiftConflictError'
    OpenShiftUnauthorized401Response:
      description: Unauthorized.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/OpenShiftUnauthorizedError'
    Nodepools200Response:
      description: List of nodepools
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftNodepools'
    NodepoolCreate201Response:
      description: Successfully created a new nodepool
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftNodepoolCreated'
    OpenShiftNodepoolUpdate202Response:
      description: Nodepool update successful response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftNodepoolUpdated'
    NodepoolDelete202Response:
      description: Successfully created a delete nodepool operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftClusterDeleted'
    OpenShiftOperations200Response:
      description: Successfully list operations
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftOperations'
    OpenShiftOperation200Response:
      description: Successfully get operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OpenShiftOperation'
    PostgresDeleteCluster202Response:
      description: The cluster has been marked for deletion.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresCluster'
    PostgresDeleteBackup202Response:
      description: The backup has been marked for deletion.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresClusterBackup'
    PostgresListBackups200Response:
      description: The backups have been listed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresBackups'
    PostgresGetCluster200Response:
      description: The cluster has been found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresCluster'
    PostgresPatchCluster200Response:
      description: The cluster is being modified.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresCluster'
    PostgresListClusters200Response:
      description: The clusters have been listed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresClusters'
    PostgresListClusterBackups200Response:
      description: The cluster backups have been listed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresClusterBackups'
    PostgresCreateCluster201Response:
      description: The cluster is being created.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresClusterWithPassword'
    PostgresCreateCluster400Response:
      description: The request you provided is invalid.
      content:
        application/problem+json:
          schema:
            anyOf:
              - $ref: '#/components/schemas/PostgresInvalidRequestProblem'
              - $ref: '#/components/schemas/PostgresDuplicatedResourceProblem'
    PostgresResetPassword202Response:
      description: The password is being reset.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresClusterWithPassword'
    PostgresIncompatibleStatusDeleteProblem409Response:
      description: This resource is currently in a status that is incompatible with the requested operation.
      content:
        application/problem+json:
          schema:
            allOf:
              - $ref: '#/components/schemas/PostgresProblem'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - 'urn:numspot:errors#incompatible_status'
                      - 'urn:numspot:errors#blocking_dependencies'
                required:
                  - type
    PostgresIncompatibleStatusProblem409Response:
      description: This resource is currently in a status that is incompatible with the requested operation.
      content:
        application/problem+json:
          schema:
            allOf:
              - $ref: '#/components/schemas/PostgresProblem'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - 'urn:numspot:errors#incompatible_status'
                required:
                  - type
    PostgresInvalidAuthenticationProblem403Response:
      description: Access to this resource is refused.
      content:
        application/problem+json:
          schema:
            allOf:
              - $ref: '#/components/schemas/PostgresProblem'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - 'urn:numspot:errors#forbidden_access'
                required:
                  - type
    PostgresInvalidRequestProblem400Response:
      description: The request you provided is invalid.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/PostgresInvalidRequestProblem'
    PostgresResourceNotFoundProblem404Response:
      description: The requested resource was not found.
      content:
        application/problem+json:
          schema:
            allOf:
              - $ref: '#/components/schemas/PostgresProblem'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - 'urn:numspot:errors#resource_not_found'
                required:
                  - type
    PostgresServiceMalfunctionProblem500Response:
      description: Something went wrong on our side.
      content:
        application/problem+json:
          schema:
            allOf:
              - $ref: '#/components/schemas/PostgresProblem'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - 'urn:numspot:errors#internal_error'
                required:
                  - type
    PostgresServiceCatalogClustersAutomaticBackup200Response:
      description: Service characteristics of the cluster automatic backups
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresServiceCatalogClusterAutomaticBackupConfiguration'
    PostgresServiceCatalogClustersConfiguration200Response:
      description: The list of available configurations for clusters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PostgresServiceCatalogConfiguration'
    ListComputeBridges200Response:
      description: List of compute bridges 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ComputeBridges'
    CreateComputeBridge201Response:
      description: Create a compute bridge 201 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ComputeBridge'
    ReadComputeBridge200Response:
      description: Read a bridge 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ComputeBridge'
    ListHybridBridges200Response:
      description: List of hybrid bridges 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HybridBridges'
    CreateHybridBridge201Response:
      description: Create a hybrid bridge 201 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HybridBridge'
    ReadHybridBridge200Response:
      description: Read a hybrid bridge 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HybridBridge'
    ListManagedServicesBridges200Response:
      description: List of managed services bridges 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ManagedServicesBridges'
    CreateManagedServicesBridge201Response:
      description: Create a managed services bridge 201 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ManagedServicesBridge'
    ReadManagedServicesBridge200Response:
      description: Read a managed services bridge 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ManagedServicesBridge'
    ListDirectLinkInterfaces200Response:
      description: List of direct link interfaces 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DirectLinkInterfaces'
    CreateDirectLinkInterface201Response:
      description: Create a direct link interface 201 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DirectLinkInterface'
    ReadDirectLinkInterface200Response:
      description: Read a direct link interface 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DirectLinkInterface'
    ListDirectLinks200Response:
      description: List of direct links 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DirectLinks'
    CreateDirectLink201Response:
      description: Create a direct link 201 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DirectLink'
    ReadDirectLink200Response:
      description: Read a direct link 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DirectLink'
    ReadLocations200Response:
      description: List of locations 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Locations'
    ListClientGateways200Response:
      description: List of client gateways 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ClientGateways'
    CreateClientGateway201Response:
      description: Create a client gateway 201 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ClientGateway'
    ReadClientGateway200Response:
      description: Read a client gateway 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ClientGateway'
    ListVirtualGateways200Response:
      description: List of virtual gateways 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VirtualGateways'
    CreateVirtualGateway201Response:
      description: Create a virtual gateway 201 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VirtualGateway'
    ReadVirtualGateway200Response:
      description: Read a virtual gateway 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VirtualGateway'
    ListVPNConnections200Response:
      description: List of VPN connections 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VPNConnections'
    CreateVPNConnection201Response:
      description: Create a VPN connection 201 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VPNConnection'
    UpdateVPNConnection200Response:
      description: Update a VPN connection 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VPNConnection'
    ReadVPNConnection200Response:
      description: Read a VPN connection 200 response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VPNConnection'
    ConnectivityBadRequest400Response:
      description: Bad request.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ConnectivityBadRequestError'
    ConnectivityUnauthorized401Response:
      description: Unauthorized.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ConnectivityUnauthorizedError'
    ConnectivityNotFound404Response:
      description: Not found.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ConnectivityNotFoundError'
    ConnectivityConflict409Response:
      description: Conflict.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ConnectivityConflictError'
    Error429:
      description: Too Many Requests
      headers:
        Retry-After:
          description: Indicates how long the client should wait before making a new request. Can be a delay in seconds or a timestamp.
          schema:
            oneOf:
              - description: Number of seconds to wait before retrying.
                type: integer
                examples:
                  - 120
              - description: An HTTP-date when the request can be retried.
                $ref: '#/components/schemas/HttpDate'
        RateLimit-Limit:
          description: The maximum number of allowed requests in the current quota period.
          schema:
            type: integer
            examples:
              - 10000
        RateLimit-Remaining:
          description: The number of remaining requests in the current quota period.
          schema:
            type: integer
            examples:
              - 0
            minimum: 0
        RateLimit-Reset:
          description: The timestamp when the quota resets.
          schema:
            type: string
            format: date-time
            examples:
              - '2025-03-21T00:00:00Z'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/TooManyRequestsError'
    GetIAMPolicy200Response:
      description: The IAMPolicy currently associated with the object
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IAMPolicy'
    ListRoles200Response:
      description: A list of roles
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RolesPaginatedList'
    GetPermission200Response:
      description: A permission
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RegisteredPermission'
      links:
        GetPermission:
          operationId: GetPermission
          description: The returned uuid field can be reused to do further operations on the permission
          parameters:
            uuid: $response.body#/uuid
        UpdatePermission:
          operationId: UpdatePermission
          description: The returned uuid field can be reused to do further operations on the permission
          parameters:
            uuid: $response.body#/uuid
        DeletePermission:
          operationId: DeletePermission
          description: The returned uuid field can be reused to do further operations on the permission
          parameters:
            uuid: $response.body#/uuid
    GetRole200Response:
      description: A role
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RegisteredRole'
    ListPermissions200Response:
      description: A list of permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PermissionsPaginatedList'
    GetRolePermissions200Response:
      description: A list of permissions assigned to a role
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PermissionsPaginatedList'
    GetACL200Response:
      description: a list of acl.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ACLPaginatedList'
    GetUserInfo200Response:
      description: get user info 200 response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserInfo'
    Token200Response:
      description: OAuth2 token response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TokenResp'
    Introspect200Response:
      description: OAuth2 introspect response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IntrospectResp'
    JsonWebKeys200Response:
      description: JsonWebKeySet
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/JsonWebKeySet'
    GetWebAuthnJavaScript200Response:
      description: Web authn javascript
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WebAuthnJavaScript'
    ConvertToken200Response:
      description: AK/SK based on givenToken
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AKSK'
    ListUserOrganisations200Response:
      description: A list of organisation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganisationSimplePaginatedList'
    ListSpacesUser200Response:
      description: A list of spaces
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SpaceSimplePaginatedList'
    ListSpacesServiceAccount200Response:
      description: A list of spaces
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SpaceSimplePaginatedList'
    ListSpacesIdentity200Response:
      description: A list of spaces
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SpaceSimplePaginatedList'
    CreateServiceAccount201Response:
      description: Create a new service account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreatedServiceAccount'
    ListServiceAccount200Response:
      description: A list of services accounts.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceAccountPaginatedList'
    MatchServiceAccount200Response:
      description: Match a service account's name with existing ones.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceAccountPaginatedList'
    GetServiceAccount200Response:
      description: Get a service account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceAccountEdited'
    UpdateServiceAccount200Response:
      description: Update a service account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceAccountEdited'
    CreateUser201Response:
      description: New user creation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserCreated'
    ListUser200Response:
      description: A list of users.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserPaginatedList'
    GetUser200Response:
      description: Retrieve a user.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserModified'
    UpdateUser200Response:
      description: Update a user.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserModified'
    RecoverUser200Response:
      description: Generate recovery Code
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RecoveryCode'
    PatchUserState200Response:
      description: Update user state
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserEdited'
    GetSpaceById200Response:
      description: a Space
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Space'
    CreateSpace200Response:
      description: a Space
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Space'
    ListSpaces200Response:
      description: A list of Spaces
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SpacePaginatedList'
    ListMeOrganisations200Response:
      description: A list of organisation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ListOrganisations'
    ListSpacesMe200Response:
      description: A list of spaces
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SpacePaginatedList'
    ListMeOrganisations400Response:
      description: Bad request. Invalid input provided.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ListOrganisationsMeBadRequest'
    ListSpacesMe400Response:
      description: Bad request. Invalid input provided.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ListSpacesMeBadRequest'
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
    BasicAuth:
      type: http
      scheme: basic
    Oauth2Auth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /iam/token
          scopes:
            iam.internal.resources.list: list by access
            iam.internal.resources.notify: notify resource lifecycle change
            iam.internal.resources.verify: verify resource access
tags:
  - name: Compute
    description: IaaS Compute Endpoints
  - name: Kubernetes
    description: Managed Kubernetes service
  - name: OpenShift
    description: Managed OpenShift Service
  - name: PostgreSQL
    description: Managed PostgreSQL service
  - name: Connectivity
    description: Every endpoints related to Cloud Connectivity
  - name: Identity Access Management
    description: Every endpoints related to Identity and Access Management (aka IAM)
