openapi: 3.0.0
servers:
  - description: Production Server
    url: https://cloud.redhat.com/{basePath}
    variables:
      basePath:
        default: /api/catalog-inventory/v1.0
  - description: Development Server
    url: http://localhost:{port}/{basePath}
    variables:
      basePath:
        default: /api/catalog-inventory/v1.0
      port:
        default: "3000"
info:
  contact:
    email: support@redhat.com
  description: Catalog Inventory
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Catalog Inventory
  version: 1.0.0
  x-apisguru-categories:
    - developer_tools
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/RedHatInsights/catalog_inventory-api/master/public/doc/openapi-3-v1.0.json
      version: "3.0"
  x-providerName: redhat.com
  x-serviceName: catalog_inventory
security:
  - UserSecurity: []
paths:
  /graphql:
    post:
      description: Performs a GraphQL Query
      operationId: postGraphQL
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GraphQLRequest"
        description: GraphQL Query Request
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GraphQLResponse"
          description: GraphQL Query Response
      summary: Perform a GraphQL Query
  /openapi.json:
    get:
      operationId: getDocumentation
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: The API document for this version of the API
      summary: Return this API document in JSON format
  /service_credential_types:
    get:
      description: Returns an array of ServiceCredentialType objects
      operationId: listServiceCredentialTypes
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceCredentialTypesCollection"
          description: ServiceCredentialTypes collection
      summary: List ServiceCredentialTypes
      tags:
        - ServiceCredentialType
  "/service_credential_types/{id}":
    get:
      description: Returns a ServiceCredentialType object
      operationId: showServiceCredentialType
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceCredentialType"
          description: ServiceCredentialType info
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Show an existing ServiceCredentialType
      tags:
        - ServiceCredentialType
  /service_credentials:
    get:
      description: Returns an array of ServiceCredential objects
      operationId: listServiceCredentials
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceCredentialsCollection"
          description: ServiceCredentials collection
      summary: List ServiceCredentials
      tags:
        - ServiceCredential
  "/service_credentials/{id}":
    get:
      description: Returns a ServiceCredential object
      operationId: showServiceCredential
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceCredential"
          description: ServiceCredential info
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Show an existing ServiceCredential
      tags:
        - ServiceCredential
  /service_instances:
    get:
      description: Returns an array of ServiceInstance objects
      operationId: listServiceInstances
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceInstancesCollection"
          description: ServiceInstances collection
      summary: List ServiceInstances
      tags:
        - ServiceInstance
  "/service_instances/{id}":
    get:
      description: Returns a ServiceInstance object
      operationId: showServiceInstance
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceInstance"
          description: ServiceInstance info
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Show an existing ServiceInstance
      tags:
        - ServiceInstance
  /service_inventories:
    get:
      description: Returns an array of ServiceInventory objects
      operationId: listServiceInventories
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceInventoriesCollection"
          description: ServiceInventories collection
      summary: List ServiceInventories
      tags:
        - ServiceInventory
  "/service_inventories/{id}":
    get:
      description: Returns a ServiceInventory object
      operationId: showServiceInventory
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceInventory"
          description: ServiceInventory info
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Show an existing ServiceInventory
      tags:
        - ServiceInventory
  "/service_inventories/{id}/tag":
    post:
      description: Tags a ServiceInventory object
      operationId: tagServiceInventory
      parameters:
        - $ref: "#/components/parameters/ID"
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/Tag"
              type: array
        description: Tag attributes to add
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Tag"
                type: array
          description: ServiceInventory tagged successful
        "304":
          description: Not modified
      summary: Tag a ServiceInventory
      tags:
        - ServiceInventory
  "/service_inventories/{id}/tags":
    get:
      description: Returns an array of Tag objects
      operationId: listServiceInventoryTags
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsCollection"
          description: Tags collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List Tags for ServiceInventory
      tags:
        - ServiceInventory
  "/service_inventories/{id}/untag":
    post:
      description: Untags a ServiceInventory object
      operationId: untagServiceInventory
      parameters:
        - $ref: "#/components/parameters/ID"
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/Tag"
              type: array
        description: Tag attributes to removed
        required: true
      responses:
        "204":
          description: ServiceInventory untagged successfully
      summary: Untag a ServiceInventory
      tags:
        - ServiceInventory
  /service_offering_nodes:
    get:
      description: Returns an array of ServiceOfferingNode objects
      operationId: listServiceOfferingNodes
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceOfferingNodesCollection"
          description: ServiceOfferingNodes collection
      summary: List ServiceOfferingNodes
      tags:
        - ServiceOfferingNode
  "/service_offering_nodes/{id}":
    get:
      description: Returns a ServiceOfferingNode object
      operationId: showServiceOfferingNode
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceOfferingNode"
          description: ServiceOfferingNode info
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Show an existing ServiceOfferingNode
      tags:
        - ServiceOfferingNode
  /service_offerings:
    get:
      description: Returns an array of ServiceOffering objects
      operationId: listServiceOfferings
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceOfferingsCollection"
          description: ServiceOfferings collection
      summary: List ServiceOfferings
      tags:
        - ServiceOffering
  "/service_offerings/{id}":
    get:
      description: Returns a ServiceOffering object
      operationId: showServiceOffering
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceOffering"
          description: ServiceOffering info
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Show an existing ServiceOffering
      tags:
        - ServiceOffering
  "/service_offerings/{id}/applied_inventories_tags":
    post:
      description: Returns an array of inventories tags
      operationId: appliedInventoriesTagsForServiceOffering
      parameters:
        - $ref: "#/components/parameters/ID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AppliedInventoriesParametersServicePlan"
        description: Parameters defining input data for computing inventories
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Tag"
                type: array
          description: Returns an array of inventories tags for the computing result
        "400":
          description: BadRequest
      summary: Invokes computing of ServiceInventories tags for given ServiceOffering
      tags:
        - ServiceOffering
  "/service_offerings/{id}/order":
    post:
      description: Returns a Task id
      operationId: orderServiceOffering
      parameters:
        - $ref: "#/components/parameters/ID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OrderParametersServiceOffering"
        description: Order parameters defining the service and provider control
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  task_id:
                    type: string
                type: object
          description: Returns a task ID for the order
        "400":
          description: BadRequest
      summary: Order an existing ServiceOffering
      tags:
        - ServiceOffering
  "/service_offerings/{id}/service_instances":
    get:
      description: Returns an array of ServiceInstance objects
      operationId: listServiceOfferingServiceInstances
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceInstancesCollection"
          description: ServiceInstances collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List ServiceInstances for ServiceOffering
      tags:
        - ServiceOffering
  "/service_offerings/{id}/service_offering_nodes":
    get:
      description: Returns an array of ServiceOfferingNode objects
      operationId: listServiceOfferingServiceOfferingNodes
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceOfferingNodesCollection"
          description: ServiceOfferingNodes collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List ServiceOfferingNodes for ServiceOffering
      tags:
        - ServiceOffering
  "/service_offerings/{id}/service_plans":
    get:
      description: Returns an array of ServicePlan objects
      operationId: listServiceOfferingServicePlans
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServicePlansCollection"
          description: ServicePlans collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List ServicePlans for ServiceOffering
      tags:
        - ServiceOffering
  /service_plans:
    get:
      description: Returns an array of ServicePlan objects
      operationId: listServicePlans
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServicePlansCollection"
          description: ServicePlans collection
      summary: List ServicePlans
      tags:
        - ServicePlan
  "/service_plans/{id}":
    get:
      description: Returns a ServicePlan object
      operationId: showServicePlan
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServicePlan"
          description: ServicePlan info
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Show an existing ServicePlan
      tags:
        - ServicePlan
  /sources:
    get:
      description: Returns an array of Source objects
      operationId: listSources
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourcesCollection"
          description: Sources collection
      summary: List Sources
      tags:
        - Source
  "/sources/{id}":
    get:
      description: Returns a Source object
      operationId: showSource
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Source"
          description: Source info
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Show an existing Source
      tags:
        - Source
  "/sources/{id}/incremental_refresh":
    patch:
      description: Incremental Refresh a source object
      operationId: incrementalRefreshSource
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "204":
          description: Updated, no content
        "400":
          description: Bad request
        "404":
          description: Not found
        "429":
          description: Too many requests
      summary: Incremental Refresh an existing Source
      tags:
        - Source
  "/sources/{id}/refresh":
    patch:
      description: Refresh a source object
      operationId: refreshSource
      parameters:
        - $ref: "#/components/parameters/ID"
      responses:
        "204":
          description: Updated, no content
        "400":
          description: Bad request
        "404":
          description: Not found
        "429":
          description: Too many requests
      summary: " Refresh an existing Source"
      tags:
        - Source
  "/sources/{id}/service_instances":
    get:
      description: Returns an array of ServiceInstance objects
      operationId: listSourceServiceInstances
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceInstancesCollection"
          description: ServiceInstances collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List ServiceInstances for Source
      tags:
        - Source
  "/sources/{id}/service_inventories":
    get:
      description: Returns an array of ServiceInventory objects
      operationId: listSourceServiceInventories
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceInventoriesCollection"
          description: ServiceInventories collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List ServiceInventories for Source
      tags:
        - Source
  "/sources/{id}/service_offering_nodes":
    get:
      description: Returns an array of ServiceOfferingNode objects
      operationId: listSourceServiceOfferingNodes
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceOfferingNodesCollection"
          description: ServiceOfferingNodes collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List ServiceOfferingNodes for Source
      tags:
        - Source
  "/sources/{id}/service_offerings":
    get:
      description: Returns an array of ServiceOffering objects
      operationId: listSourceServiceOfferings
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServiceOfferingsCollection"
          description: ServiceOfferings collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List ServiceOfferings for Source
      tags:
        - Source
  "/sources/{id}/service_plans":
    get:
      description: Returns an array of ServicePlan objects
      operationId: listSourceServicePlans
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServicePlansCollection"
          description: ServicePlans collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List ServicePlans for Source
      tags:
        - Source
  "/sources/{id}/tasks":
    get:
      description: Returns an array of Task objects
      operationId: listSourceTasks
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
        - $ref: "#/components/parameters/ID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksCollection"
          description: Tasks collection
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: List Tasks for Source
      tags:
        - Source
  /tags:
    get:
      description: Returns an array of Tag objects
      operationId: listTags
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsCollection"
          description: Tags collection
      summary: List Tags
      tags:
        - Tags
  /tasks:
    get:
      description: Returns an array of Task objects
      operationId: listTasks
      parameters:
        - $ref: "#/components/parameters/QueryLimit"
        - $ref: "#/components/parameters/QueryOffset"
        - $ref: "#/components/parameters/QueryFilter"
        - $ref: "#/components/parameters/QuerySortBy"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TasksCollection"
          description: Tasks collection
      summary: List Tasks
      tags:
        - Task
  "/tasks/{id}":
    get:
      description: Returns a Task object
      operationId: showTask
      parameters:
        - $ref: "#/components/parameters/UUID"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Task"
          description: Task info
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Show an existing Task
      tags:
        - Task
    patch:
      description: Updates a Task object
      operationId: updateTask
      parameters:
        - $ref: "#/components/parameters/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Task"
        description: Task attributes to update
        required: true
      responses:
        "204":
          description: Updated, no content
        "400":
          description: Bad request
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorNotFound"
          description: Not found
      summary: Update an existing Task
      tags:
        - Task
components:
  parameters:
    ID:
      description: ID of the resource
      in: path
      name: id
      required: true
      schema:
        pattern: ^\d+$
        type: string
    QueryFilter:
      description: Filter for querying collections.
      explode: true
      in: query
      name: filter
      required: false
      schema:
        type: object
      style: deepObject
    QueryLimit:
      description: The numbers of items to return per page.
      in: query
      name: limit
      required: false
      schema:
        default: 100
        maximum: 1000
        minimum: 1
        type: integer
    QueryOffset:
      description: The number of items to skip before starting to collect the result set.
      in: query
      name: offset
      required: false
      schema:
        default: 0
        minimum: 0
        type: integer
    QuerySortBy:
      description: The list of attribute and order to sort the result set by.
      explode: true
      in: query
      name: sort_by
      required: false
      schema:
        type: object
      style: deepObject
    UUID:
      description: UUID of task
      in: path
      name: id
      required: true
      schema:
        pattern: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
        type: string
  schemas:
    AppliedInventoriesParametersServicePlan:
      additionalProperties: false
      properties:
        service_parameters:
          description: The provider specific parameters needed to compute list of used service inventories
          type: object
      type: object
    CheckAvailabilityTask:
      $ref: "#/components/schemas/Task"
    CollectionLinks:
      properties:
        first:
          type: string
        last:
          type: string
        next:
          type: string
        prev:
          type: string
      type: object
    CollectionMetadata:
      properties:
        count:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
      type: object
    ErrorNotFound:
      properties:
        errors:
          items:
            properties:
              detail:
                example: Record not found
                type: string
              status:
                example: "404"
                type: string
            type: object
          type: array
      type: object
    FullRefreshPersisterTask:
      $ref: "#/components/schemas/Task"
    FullRefreshUploadTask:
      $ref: "#/components/schemas/Task"
    GraphQLRequest:
      properties:
        operationName:
          default: ""
          description: If the Query contains several named operations, the operationName controls which one should be executed
          type: string
        query:
          default: "{}"
          description: The GraphQL query
          type: string
        variables:
          description: Optional Query variables
          nullable: true
          type: object
      required:
        - query
      type: object
    GraphQLResponse:
      properties:
        data:
          description: Results from the GraphQL query
          type: object
        errors:
          description: Errors resulting from the GraphQL query
          items:
            type: object
          type: array
      type: object
    ID:
      description: ID of the resource
      pattern: ^\d+$
      readOnly: true
      type: string
    IncrementalRefreshUploadTask:
      $ref: "#/components/schemas/Task"
    LaunchJobTask:
      $ref: "#/components/schemas/Task"
    OrderParametersServiceOffering:
      additionalProperties: false
      properties:
        provider_control_parameters:
          description: The provider specific parameters needed to provision this service. This might include namespaces, special keys
          type: object
        service_parameters:
          description: JSON object with provisioning parameters
          type: object
        service_plan_id:
          $ref: "#/components/schemas/ID"
      type: object
    OrderParametersServicePlan:
      additionalProperties: false
      properties:
        provider_control_parameters:
          description: The provider specific parameters needed to provision this service. This might include namespaces, special keys
          type: object
        service_parameters:
          description: JSON object with provisioning parameters
          type: object
      type: object
    ServiceCredential:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        created_at:
          format: date-time
          readOnly: true
          type: string
        description:
          readOnly: true
          type: string
        id:
          $ref: "#/components/schemas/ID"
        last_seen_at:
          format: date-time
          readOnly: true
          type: string
        name:
          readOnly: true
          type: string
        refresh_state_part_id:
          $ref: "#/components/schemas/ID"
        service_credential_type_id:
          $ref: "#/components/schemas/ID"
        source_created_at:
          format: date-time
          readOnly: true
          type: string
        source_id:
          $ref: "#/components/schemas/ID"
        source_ref:
          readOnly: true
          type: string
        source_updated_at:
          format: date-time
          readOnly: true
          type: string
        type_name:
          readOnly: true
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    ServiceCredentialType:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        created_at:
          format: date-time
          readOnly: true
          type: string
        description:
          readOnly: true
          type: string
        id:
          $ref: "#/components/schemas/ID"
        kind:
          readOnly: true
          type: string
        last_seen_at:
          format: date-time
          readOnly: true
          type: string
        name:
          readOnly: true
          type: string
        namespace:
          readOnly: true
          type: string
        refresh_state_part_id:
          $ref: "#/components/schemas/ID"
        source_created_at:
          format: date-time
          readOnly: true
          type: string
        source_deleted_at:
          format: date-time
          readOnly: true
          type: string
        source_id:
          $ref: "#/components/schemas/ID"
        source_ref:
          readOnly: true
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    ServiceCredentialTypesCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ServiceCredentialType"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    ServiceCredentialsCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ServiceCredential"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    ServiceInstance:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        created_at:
          format: date-time
          readOnly: true
          type: string
        external_url:
          readOnly: true
          type: string
        extra:
          description: Extra information about this object in JSON format
          readOnly: true
          type: object
        id:
          $ref: "#/components/schemas/ID"
        last_seen_at:
          format: date-time
          readOnly: true
          type: string
        name:
          example: Sample ServiceInstance
          readOnly: true
          title: Name
          type: string
        refresh_state_part_id:
          $ref: "#/components/schemas/ID"
        root_service_instance_id:
          $ref: "#/components/schemas/ID"
        service_inventory_id:
          $ref: "#/components/schemas/ID"
        service_offering_id:
          $ref: "#/components/schemas/ID"
        service_plan_id:
          $ref: "#/components/schemas/ID"
        source_created_at:
          format: date-time
          readOnly: true
          type: string
        source_deleted_at:
          format: date-time
          readOnly: true
          type: string
        source_id:
          $ref: "#/components/schemas/ID"
        source_ref:
          format: uuid
          readOnly: true
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    ServiceInstanceNode:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        created_at:
          format: date-time
          readOnly: true
          type: string
        extra:
          type: object
        id:
          $ref: "#/components/schemas/ID"
        last_seen_at:
          format: date-time
          readOnly: true
          type: string
        name:
          type: string
        refresh_state_part_id:
          $ref: "#/components/schemas/ID"
        root_service_instance_id:
          $ref: "#/components/schemas/ID"
        service_instance_id:
          $ref: "#/components/schemas/ID"
        service_inventory_id:
          $ref: "#/components/schemas/ID"
        source_created_at:
          format: date-time
          type: string
        source_id:
          $ref: "#/components/schemas/ID"
        source_ref:
          type: string
        source_updated_at:
          format: date-time
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    ServiceInstanceNodesCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ServiceInstanceNode"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    ServiceInstancesCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ServiceInstance"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    ServiceInventoriesCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ServiceInventory"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    ServiceInventory:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        created_at:
          format: date-time
          readOnly: true
          type: string
        description:
          readOnly: true
          type: string
        extra:
          readOnly: true
          type: object
        id:
          $ref: "#/components/schemas/ID"
        last_seen_at:
          format: date-time
          readOnly: true
          type: string
        name:
          readOnly: true
          type: string
        refresh_state_part_id:
          $ref: "#/components/schemas/ID"
        source_created_at:
          format: date-time
          readOnly: true
          type: string
        source_id:
          $ref: "#/components/schemas/ID"
        source_ref:
          readOnly: true
          type: string
        source_updated_at:
          format: date-time
          readOnly: true
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    ServiceOffering:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        created_at:
          format: date-time
          readOnly: true
          type: string
        description:
          example: This is a short description
          readOnly: true
          title: Description
          type: string
        display_name:
          example: MariaDB (Ephemeral)
          readOnly: true
          title: Display Name
          type: string
        distributor:
          example: Red Hat, Inc.
          readOnly: true
          title: Distributor
          type: string
        documentation_url:
          example: https://github.com/sclorg/mariadb-container/blob/master/10.2/root/usr/share/container-scripts/mysql/README.md
          readOnly: true
          title: Documentation URL
          type: string
        extra:
          description: Extra information about this object in JSON format
          readOnly: true
          type: object
        id:
          $ref: "#/components/schemas/ID"
        last_seen_at:
          format: date-time
          readOnly: true
          type: string
        long_description:
          example: This template provides a standalone MariaDB server with a database created...
          readOnly: true
          title: Long Description
          type: string
        name:
          example: Sample Service Offering
          readOnly: true
          title: Name
          type: string
        refresh_state_part_id:
          $ref: "#/components/schemas/ID"
        service_inventory_id:
          $ref: "#/components/schemas/ID"
        source_created_at:
          format: date-time
          readOnly: true
          type: string
        source_deleted_at:
          format: date-time
          readOnly: true
          type: string
        source_id:
          $ref: "#/components/schemas/ID"
        source_ref:
          description: The native reference used by the Source to refer to this object
          example: object-12345_67890
          readOnly: true
          title: Source reference
          type: string
        support_url:
          example: https://access.redhat.com
          readOnly: true
          title: Support URL
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    ServiceOfferingIcon:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        created_at:
          format: date-time
          readOnly: true
          type: string
        data:
          description: Raw icon data
          readOnly: true
          title: Icon Data
          type: string
        id:
          $ref: "#/components/schemas/ID"
        last_seen_at:
          format: date-time
          readOnly: true
          type: string
        refresh_state_part_id:
          $ref: "#/components/schemas/ID"
        source_id:
          $ref: "#/components/schemas/ID"
        source_ref:
          example: icon-mariadb
          readOnly: true
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    ServiceOfferingIconsCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ServiceOfferingIcon"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    ServiceOfferingNode:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        created_at:
          format: date-time
          readOnly: true
          type: string
        extra:
          type: object
        id:
          $ref: "#/components/schemas/ID"
        last_seen_at:
          format: date-time
          readOnly: true
          type: string
        name:
          type: string
        refresh_state_part_id:
          $ref: "#/components/schemas/ID"
        root_service_offering_id:
          $ref: "#/components/schemas/ID"
        service_inventory_id:
          $ref: "#/components/schemas/ID"
        service_offering_id:
          $ref: "#/components/schemas/ID"
        source_created_at:
          format: date-time
          type: string
        source_id:
          $ref: "#/components/schemas/ID"
        source_ref:
          type: string
        source_updated_at:
          format: date-time
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    ServiceOfferingNodesCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ServiceOfferingNode"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    ServiceOfferingsCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ServiceOffering"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    ServicePlan:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        create_json_schema:
          readOnly: true
          type: object
        created_at:
          format: date-time
          readOnly: true
          type: string
        description:
          example: This is a sample description for a provider
          readOnly: true
          title: Description
          type: string
        extra:
          description: Extra information about this object in JSON format
          readOnly: true
          type: object
        id:
          $ref: "#/components/schemas/ID"
        last_seen_at:
          format: date-time
          readOnly: true
          type: string
        name:
          example: Sample Provider
          readOnly: true
          title: Name
          type: string
        refresh_state_part_id:
          $ref: "#/components/schemas/ID"
        resource_version:
          readOnly: true
          type: string
        service_offering_id:
          $ref: "#/components/schemas/ID"
        source_created_at:
          format: date-time
          readOnly: true
          type: string
        source_deleted_at:
          format: date-time
          readOnly: true
          type: string
        source_id:
          $ref: "#/components/schemas/ID"
        source_ref:
          format: uuid
          readOnly: true
          type: string
        update_json_schema:
          readOnly: true
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    ServicePlansCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/ServicePlan"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    Source:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          title: Archived
          type: string
        availability_message:
          readOnly: true
          title: Availability Message
          type: string
        availability_status:
          example: The availability status of source
          title: Availability Status
          type: string
        cloud_connector_id:
          example: The GUID of the RedHat connect client being used
          readOnly: true
          title: RedHat Connect Client Id
          type: string
        created_at:
          format: date-time
          readOnly: true
          title: Created
          type: string
        enabled:
          default: false
          readOnly: true
          title: Enabled
          type: boolean
        id:
          $ref: "#/components/schemas/ID"
        info:
          example: The version of Tower being used
          readOnly: true
          title: Info
          type: object
        last_available_at:
          format: date-time
          readOnly: true
          title: Last available
          type: string
        last_checked_at:
          format: date-time
          readOnly: true
          title: Last checked
          type: string
        last_refresh_message:
          readOnly: true
          title: Last refresh message
          type: string
        last_successful_refresh_at:
          format: date-time
          readOnly: true
          title: Last successful refresh
          type: string
        name:
          example: The Source Name
          readOnly: true
          title: Name
          type: string
        previous_sha:
          readOnly: true
          title: SHA of previous uploaded files
          type: string
        previous_size:
          readOnly: true
          title: Size of previous uploaded files
          type: integer
        refresh_finished_at:
          format: date-time
          readOnly: true
          title: Refresh finished
          type: string
        refresh_started_at:
          format: date-time
          readOnly: true
          title: Refresh started
          type: string
        refresh_state:
          title: Refresh state
          type: string
        refresh_task_id:
          format: uuid
          readOnly: true
          title: Refresh task
          type: string
        uid:
          readOnly: true
          title: Unique ID of the inventory source installation
          type: string
        updated_at:
          format: date-time
          readOnly: true
          title: Updated
          type: string
      type: object
    SourcesCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/Source"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    Tag:
      additionalProperties: false
      properties:
        tag:
          example: /namespace/architecture=x86_64
          type: string
      type: object
    TagsCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/Tag"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    Task:
      additionalProperties: false
      properties:
        archived_at:
          format: date-time
          readOnly: true
          type: string
        child_task_id:
          format: uuid
          readOnly: true
          type: string
        completed_at:
          format: date-time
          type: string
        controller_message_id:
          format: uuid
          readOnly: true
          type: string
        created_at:
          format: date-time
          readOnly: true
          type: string
        id:
          $ref: "#/components/schemas/UUID"
        input:
          example: Task payload input content
          readOnly: true
          title: Content
          type: object
        message:
          example: received message starting inventory collection
          title: Message
          type: string
        name:
          example: Order Service Plan
          title: Name
          type: string
        output:
          example: Result of Task Execution
          title: Result
          type: object
        owner:
          example: jdoe
          readOnly: true
          title: Owner
          type: string
        source_id:
          $ref: "#/components/schemas/ID"
        state:
          enum:
            - pending
            - queued
            - running
            - timedout
            - completed
          example: running
          title: State
          type: string
        status:
          enum:
            - ok
            - warn
            - unchanged
            - error
          example: error
          title: Status
          type: string
        target_source_ref:
          type: string
        target_type:
          type: string
        type:
          example: CloudConnectorTask
          title: Type
          type: string
        updated_at:
          format: date-time
          readOnly: true
          type: string
      type: object
    TasksCollection:
      properties:
        data:
          items:
            $ref: "#/components/schemas/Task"
          type: array
        links:
          $ref: "#/components/schemas/CollectionLinks"
        meta:
          $ref: "#/components/schemas/CollectionMetadata"
      type: object
    Tenant:
      properties:
        description:
          example: Description of the Tenant
          readOnly: true
          type: string
        external_tenant:
          example: External tenant identifier
          readOnly: true
          type: string
        id:
          $ref: "#/components/schemas/ID"
        name:
          example: Sample Tenant
          readOnly: true
          type: string
      type: object
    TowingTask:
      $ref: "#/components/schemas/Task"
    UUID:
      description: UUID of task
      format: uuid
      readOnly: true
      type: string
  securitySchemes:
    UserSecurity:
      scheme: basic
      type: http
