CloudQuery plugins API

The plugins API from CloudQuery — 8 operation(s) for plugins.

OpenAPI Specification

cloudquery-plugins-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: support@cloudquery.io
    name: CloudQuery Support Team
    url: https://cloudquery.io
  description: 'Welcome to the CloudQuery Platform API documentation! This API can be used to interact with the CloudQuery platform. As a user, the API allows you to search the CloudQuery asset inventory, run SQL queries against the data warehouse, save and load searches, and much more. As an administrator, it allows you to manage your teams, syncs, and other objects.

    ### Authentication

    The API is secured using bearer tokens. To get started, you can generate an API key for your Platform deployment from your platform dashboard. For a step-by-step guide, see: https://www.cloudquery.io/docs/cli/managing-cloudquery/deployments/generate-api-key.

    The base URL for the API depends on where your CloudQuery Platform is hosted. If running locally, this is usually http://localhost:3000/api. In a production deployment it should be an HTTPS URL. For purposes of illustration, we will assume the platform instance is available at https://cloudquery.mycompany.com. In this case, the base API endpoint will be https://cloudquery.mycompany.com/api.

    ### Example Request

    To test your connection to the API, we can use the `/plugins` endpoint. For example:

    `curl -v -H "Authorization: Bearer $CLOUDQUERY_API_KEY" \ https://cloudquery.mycompany.com/api/plugins`

    '
  license:
    name: MIT
    url: https://spdx.org/licenses/MIT
  termsOfService: https://www.cloudquery.io/terms
  title: CloudQuery Platform OpenAPI Spec admin plugins API
  version: 1.0.0
security:
- bearerAuth: []
- cookieAuth: []
tags:
- name: plugins
paths:
  /plugins:
    get:
      description: List all plugins
      operationId: PlatformListPlugins
      parameters:
      - $ref: '#/components/parameters/platform_plugin_sort_by'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_plugin_include_release_stages'
      - $ref: '#/components/parameters/platform_plugin_exclude_release_stages'
      responses:
        '200':
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    $ref: '#/components/schemas/PlatformListPlugins'
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
          description: Response
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
      security: []
      tags:
      - plugins
  /plugins/{team_name}/{plugin_kind}/{plugin_name}:
    get:
      description: Get details about a given plugin.
      operationId: PlatformGetPlugin
      parameters:
      - $ref: '#/components/parameters/platform_team_name'
      - $ref: '#/components/parameters/platform_plugin_kind'
      - $ref: '#/components/parameters/platform_plugin_name'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformListPlugin'
          description: Response
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
      security: []
      tags:
      - plugins
  /plugins/{team_name}/{plugin_kind}/{plugin_name}/versions:
    get:
      description: List all versions for a given plugin
      operationId: PlatformListPluginVersions
      parameters:
      - $ref: '#/components/parameters/platform_team_name'
      - $ref: '#/components/parameters/platform_plugin_kind'
      - $ref: '#/components/parameters/platform_plugin_name'
      - $ref: '#/components/parameters/platform_version_sort_by'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_include_drafts'
      - $ref: '#/components/parameters/platform_include_fips'
      - $ref: '#/components/parameters/platform_include_prereleases'
      - $ref: '#/components/parameters/platform_version_filter'
      responses:
        '200':
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformPluginVersionList'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
          description: Response
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
      security: []
      tags:
      - plugins
  /plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}:
    get:
      description: Get details about a given plugin version.
      operationId: PlatformGetPluginVersion
      parameters:
      - $ref: '#/components/parameters/platform_team_name'
      - $ref: '#/components/parameters/platform_plugin_kind'
      - $ref: '#/components/parameters/platform_plugin_name'
      - $ref: '#/components/parameters/platform_version_name'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPluginVersionDetails'
          description: Response
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
      security: []
      tags:
      - plugins
  /plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/assets/{target_name}:
    get:
      description: Download an asset for a given plugin version and target
      operationId: PlatformDownloadPluginAsset
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_team_name'
      - $ref: '#/components/parameters/platform_plugin_kind'
      - $ref: '#/components/parameters/platform_plugin_name'
      - $ref: '#/components/parameters/platform_version_name'
      - $ref: '#/components/parameters/platform_target_name'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPluginAsset'
        '302':
          description: Response
          headers:
            Location:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '429':
          $ref: '#/components/responses/PlatformTooManyRequests'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
      security: []
      tags:
      - plugins
  /plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/tables:
    get:
      description: List tables for a given plugin version. This only applies to source plugins.
      operationId: PlatformListPluginVersionTables
      parameters:
      - $ref: '#/components/parameters/platform_team_name'
      - $ref: '#/components/parameters/platform_plugin_kind'
      - $ref: '#/components/parameters/platform_plugin_name'
      - $ref: '#/components/parameters/platform_version_name'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_per_page'
      responses:
        '200':
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformPluginTable'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
          description: Response
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
      security: []
      tags:
      - plugins
  /plugins/{team_name}/{plugin_kind}/{plugin_name}/versions/{version_name}/tables/{table_name}:
    get:
      description: Get schema for a given table and plugin version. This only applies to source plugins.
      operationId: PlatformGetPluginVersionTable
      parameters:
      - $ref: '#/components/parameters/platform_team_name'
      - $ref: '#/components/parameters/platform_plugin_kind'
      - $ref: '#/components/parameters/platform_plugin_name'
      - $ref: '#/components/parameters/platform_version_name'
      - in: path
        name: table_name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPluginTableDetails'
          description: Response
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
      security: []
      tags:
      - plugins
  /teams/{team_name}/plugins/{plugin_team}/{plugin_kind}/{plugin_name}/versions/{version_name}/assets/{target_name}:
    get:
      description: Download an asset for a given plugin version as the current team.
      operationId: PlatformDownloadPluginAssetByTeam
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_team_name'
      - $ref: '#/components/parameters/platform_plugin_team'
      - $ref: '#/components/parameters/platform_plugin_kind'
      - $ref: '#/components/parameters/platform_plugin_name'
      - $ref: '#/components/parameters/platform_version_name'
      - $ref: '#/components/parameters/platform_target_name'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformPluginAsset'
        '302':
          description: Response
          headers:
            Location:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '429':
          $ref: '#/components/responses/PlatformTooManyRequests'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
      tags:
      - plugins
components:
  schemas:
    PlatformPluginKind:
      description: The kind of plugin, ie. source or destination.
      type: string
      example: source
      enum:
      - source
      - destination
      - transformer
    PlatformListPlugins:
      type: array
      items:
        $ref: '#/components/schemas/PlatformListPlugin'
      example:
      - name: aws
        kind: source
        team_name: cloudquery
        display_name: AWS Source Plugin
        category: cloud-infrastructure
        created_at: '2017-07-14T16:53:42Z'
        updated_at: '2017-07-14T16:53:42Z'
        homepage: https://cloudquery.io
        logo: https://storage.googleapis.com/cq-cloud-images/9ac4cb31-e971-4879-8619-87dc22b0f98e
        official: true
        short_description: Sync data from AWS to any destination
        repository: https://github.com/cloudquery/cloudquery
        tier: paid
        usd_per_row: '0.00123'
        free_rows_per_month: 10000
        release_stage: preview
    PlatformListMetadata:
      required:
      - page_size
      properties:
        total_count:
          type: integer
        last_page:
          type: integer
        page_size:
          type: integer
        time_ms:
          type: integer
    PlatformFieldError:
      allOf:
      - $ref: '#/components/schemas/PlatformBasicError'
      - properties:
          errors:
            items:
              type: string
            type: array
          field_errors:
            additionalProperties:
              type: string
            type: object
        type: object
    PlatformListPlugin:
      allOf:
      - $ref: '#/components/schemas/PlatformPlugin'
      - type: object
        properties:
          latest_version:
            $ref: '#/components/schemas/PlatformVersionName'
    PlatformPluginVersionList:
      allOf:
      - $ref: '#/components/schemas/PlatformPluginVersionBase'
    PlatformPluginProtocols:
      description: The CloudQuery protocols supported by this plugin version (only protocol 3 is supported by new plugins).
      type: array
      items:
        type: integer
        enum:
        - 3
    PlatformPluginTier:
      description: "This field is deprecated, refer to `price_category` instead.\nThis field is only kept for backward compatibility and may be removed in a future release.\nSupported tiers for plugins.\n  - free: Free tier, with no paid tables.\n  - paid: Paid tier. These plugins may have paid tables, but can also have free tables. They require login to access.\n  - open-core: This option is deprecated, values will either be free or paid.\n"
      type: string
      deprecated: true
      enum:
      - free
      - paid
      - open-core
    PlatformVersionFilter:
      type: string
      description: A version filter in semantic version format with prefix ranges.
      pattern: ^[^~]?v[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$
      x-pattern-message: should be in semantic version format with prefix ranges
    PlatformPluginAsset:
      additionalProperties: false
      description: CloudQuery Plugin Asset
      required:
      - checksum
      - location
      properties:
        checksum:
          type: string
          description: The checksum of the plugin asset
        location:
          type: string
          format: uri
          description: The location to download the plugin asset from
      title: CloudQuery Plugin Asset
      type: object
    PlatformPlugin:
      additionalProperties: false
      description: CloudQuery Plugin
      properties:
        team_name:
          $ref: '#/components/schemas/PlatformTeamName'
        name:
          $ref: '#/components/schemas/PlatformPluginName'
        kind:
          $ref: '#/components/schemas/PlatformPluginKind'
        category:
          $ref: '#/components/schemas/PlatformPluginCategory'
        price_category:
          $ref: '#/components/schemas/PlatformPluginPriceCategory'
        created_at:
          example: '2017-07-14T16:53:42Z'
          format: date-time
          type: string
        updated_at:
          example: '2017-07-14T16:53:42Z'
          format: date-time
          type: string
        homepage:
          type: string
          example: https://cloudquery.io
        logo:
          type: string
          example: https://storage.googleapis.com/cq-cloud-images/9ac4cb31-e971-4879-8619-87dc22b0f98e
        display_name:
          description: The plugin's display name
          type: string
          minLength: 1
          maxLength: 50
          example: AWS Source Plugin
        official:
          description: True if the plugin is maintained by CloudQuery, false otherwise
          type: boolean
        release_stage:
          $ref: '#/components/schemas/PlatformPluginReleaseStage'
        repository:
          type: string
          example: https://github.com/cloudquery/cloudquery
        short_description:
          type: string
          minLength: 1
          maxLength: 512
          example: Sync data from AWS to any destination
        tier:
          $ref: '#/components/schemas/PlatformPluginTier'
        public:
          description: Whether the plugin is listed in the CloudQuery Hub. If false, the plugin will not be shown in the CloudQuery Hub and will only be visible to members of the plugin's team.
          type: boolean
        usd_per_row:
          deprecated: true
          type: string
          pattern: ^\d+(?:\.\d{1,10})?$
          description: Deprecated. Refer to `price_category` instead.
          example: '0.0001'
          x-go-name: USDPerRow
          x-pattern-message: must be a valid decimal number with up to 10 decimal places.
        free_rows_per_month:
          deprecated: true
          type: integer
          format: int64
          description: Deprecated. Refer to `price_category` instead.
          example: 1000
      required:
      - team_name
      - name
      - kind
      - category
      - release_stage
      - created_at
      - updated_at
      - logo
      - display_name
      - official
      - short_description
      - tier
      - usd_per_row
      - free_rows_per_month
      title: CloudQuery Plugin
      type: object
    PlatformPluginName:
      description: The unique name for the plugin.
      maxLength: 255
      pattern: ^[a-z](-?[a-z0-9]+)+$
      type: string
      example: aws-source
      x-pattern-message: can contain only lowercase alphanumerical characters and dashes, starting with a letter
    PlatformPluginVersion:
      allOf:
      - $ref: '#/components/schemas/PlatformPluginVersionBase'
      - type: object
        properties:
          spec_json_schema:
            $ref: '#/components/schemas/PlatformPluginSpecJSONSchema'
    PlatformTeamName:
      description: The unique name for the team.
      maxLength: 255
      pattern: ^[a-z](-?[a-z0-9]+)+$
      type: string
      example: cloudquery
      x-pattern-message: can contain only lowercase alphanumerical characters and dashes, starting with a letter
    PlatformPluginTable:
      additionalProperties: false
      description: CloudQuery Plugin Table
      required:
      - description
      - is_incremental
      - name
      - relations
      - title
      properties:
        description:
          description: Description of the table
          type: string
          example: AWS S3 Buckets
        is_incremental:
          description: Whether the table is incremental
          type: boolean
        name:
          $ref: '#/components/schemas/PlatformPluginTableName'
        parent:
          description: Name of the parent table, if any
          type: string
          example: nil
        relations:
          description: Names of the tables that depend on this table
          items:
            type: string
          type: array
          example:
          - aws_s3_bucket_cors_rules
        title:
          description: Title of the table
          type: string
          example: AWS S3 Buckets
        is_paid:
          description: Whether the table is paid
          type: boolean
      title: CloudQuery Plugin Table
      type: object
    PlatformPluginVersionDetails:
      allOf:
      - $ref: '#/components/schemas/PlatformPluginVersion'
      - type: object
        required:
        - example_config
        properties:
          example_config:
            type: string
            description: Example configuration for the plugin. This can be used in generated quickstart guides, for example. Markdown format.
          ui_base_url:
            type: string
            description: Base URL for the plugin's UI. Only available for plugins with a UI and for logged in users.
            x-go-name: UIBaseURL
          ui_base_url_v2:
            type: string
            description: Base URL for the plugin's UI. Only available for plugins with a UI and for logged in users.
            x-go-name: UIBaseURLv2
    PlatformPluginPackageType:
      description: The package type of the plugin assets
      type: string
      enum:
      - native
      - docker
    PlatformVersionName:
      type: string
      description: The version in semantic version format.
      pattern: ^v[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$
      x-pattern-message: should be in semantic version format
    PlatformPluginPriceCategory:
      description: Supported price categories for billing
      type: string
      enum:
      - api
      - database
      - free
    PlatformPluginSpecJSONSchema:
      description: The specification of the plugin. This is a JSON schema that describes the configuration of the plugin.
      type: string
    PlatformPluginCategory:
      description: Supported categories for plugins
      type: string
      enum:
      - cloud-infrastructure
      - databases
      - sales-marketing
      - engineering-analytics
      - marketing-analytics
      - shipment-tracking
      - product-analytics
      - cloud-finops
      - project-management
      - fleet-management
      - security
      - data-warehouses
      - human-resources
      - finance
      - customer-support
      - other
    PlatformPluginTableColumn:
      additionalProperties: false
      description: CloudQuery Plugin Column
      required:
      - description
      - incremental_key
      - name
      - not_null
      - primary_key
      - type
      - unique
      properties:
        description:
          description: Description of the column
          type: string
        incremental_key:
          description: Whether the column is used as an incremental key
          type: boolean
        name:
          description: Name of the column
          type: string
        not_null:
          description: Whether the column is nullable
          type: boolean
        primary_key:
          description: Whether the column is part of the primary key
          type: boolean
        type:
          description: Arrow Type of the column
          type: string
        type_schema:
          description: For columns of type JSON, the schema of the JSON object
          type: string
        unique:
          description: Whether the column has a unique constraint
          type: boolean
      title: CloudQuery Plugin Table Column
      type: object
    PlatformPluginReleaseStage:
      description: 'Official plugins can go through three release stages: Coming Soon, Preview, and GA.

        The Coming Soon stage is for plugins that are not yet ready for Preview, but users can subscribe to be notified when they are ready.

        Both Preview and GA plugins follow semantic versioning. The main differences between the two stages are:

        Preview plugins are still experimental and may have frequent breaking changes. Preview plugins might get deprecated due to lack of usage. Long Term Support with community Discord and bug fixes is only guaranteed for GA plugins. Premium plugins are often discounted or free during the Preview stage.'
      type: string
      enum:
      - coming-soon
      - preview
      - ga
      - deprecated
    PlatformBasicError:
      additionalProperties: false
      description: Basic Error
      required:
      - message
      - status
      properties:
        message:
          type: string
        status:
          type: integer
      title: Basic Error
      type: object
    PlatformPluginTableName:
      description: Name of the table
      maxLength: 255
      pattern: ^[a-z](_?[a-z0-9]+)+$
      type: string
      example: aws_ec2_instances
      x-pattern-message: can contain only lowercase alphanumerical characters and underscores, starting with a letter
    PlatformPluginTableDetails:
      additionalProperties: false
      required:
      - columns
      - description
      - is_incremental
      - name
      - relations
      - title
      - permissions_needed
      properties:
        columns:
          description: List of columns
          items:
            $ref: '#/components/schemas/PlatformPluginTableColumn'
          type: array
        description:
          description: Description of the table
          type: string
        is_incremental:
          description: Whether the table is incremental
          type: boolean
        name:
          description: Name of the table
          type: string
        parent:
          description: Name of the parent table, if any
          type: string
        relations:
          description: Names of the tables that depend on this table
          items:
            type: string
          type: array
        title:
          description: Title of the table
          type: string
        is_paid:
          description: Whether the table is paid
          type: boolean
        permissions_needed:
          description: List of permissions needed to access this table, if any
          items:
            type: string
          type: array
          example:
          - storage.buckets.list
      type: object
    PlatformPluginVersionBase:
      additionalProperties: false
      description: CloudQuery Plugin Version
      required:
      - created_at
      - name
      - message
      - draft
      - retracted
      - protocols
      - supported_targets
      - checksums
      - package_type
      properties:
        created_at:
          example: '2017-07-14T16:53:42Z'
          format: date-time
          type: string
          description: The date and time the plugin version was created.
        published_at:
          example: '2017-07-14T16:53:42Z'
          format: date-time
          type: string
          description: The date and time the plugin version was set to non-draft (published).
        name:
          $ref: '#/components/schemas/PlatformVersionName'
        message:
          type: string
          description: Description of what's new or changed in this version (supports markdown)
          example: '- Added support for AWS S3 - Added support for AWS EC2'
        draft:
          type: boolean
          description: If a plugin version is in draft, it will not show to members outside the team or be counted as the latest version.
        retracted:
          type: boolean
          description: If a plugin version is retracted, assets will still be available for download, but the version will be marked as retracted to discourage use.
        protocols:
          $ref: '#/components/schemas/PlatformPluginProtocols'
        supported_targets:
          type: array
          description: The targets supported by this plugin version, formatted as <os>_<arch>
          example:
          - linux_arm64
          - darwin_amd64
          - windows_amd64
          items:
            type: string
        checksums:
          type: array
          items:
            type: string
          description: The checksums of the plugin assets
        package_type:
          $ref: '#/components/schemas/PlatformPluginPackageType'
      title: CloudQuery Plugin Version
      type: object
  parameters:
    platform_target_name:
      in: path
      name: target_name
      required: true
      schema:
        type: string
    platform_version_sort_by:
      description: The field to sort by
      in: query
      name: sort_by
      required: false
      schema:
        enum:
        - created_at
        type: string
    platform_plugin_include_release_stages:
      description: Include these release stages in the response
      in: query
      name: include_release_stages
      required: false
      allowEmptyValue: true
      explode: true
      schema:
        type: array
        items:
          $ref: '#/components/schemas/PlatformPluginReleaseStage'
    platform_page:
      description: Page number of the results to fetch
      in: query
      name: page
      required: false
      schema:
        default: 1
        minimum: 1
        type: integer
        format: int64
    platform_per_page:
      description: The number of results per page (max 1000).
      in: query
      name: per_page
      required: false
      schema:
        default: 100
        maximum: 1000
        minimum: 1
        type: integer
        format: int64
    platform_version_filter:
      in: query
      name: version_filter
      required: false
      schema:
        $ref: '#/components/schemas/PlatformVersionFilter'
    platform_include_prereleases:
      description: Whether to include prerelease versions
      in: query
      name: include_prereleases
      required: false
      schema:
        type: boolean
    platform_plugin_team:
      in: path
      name: plugin_team
      required: true
      schema:
        $ref: '#/components/schemas/PlatformTeamName'
    platform_team_name:
      in: path
      name: team_name
      required: true
      schema:
        $ref: '#/components/schemas/PlatformTeamName'
    platform_plugin_sort_by:
      description: The field to sort by
      in: query
      name: sort_by
      required: false
      schema:
        enum:
        - created_at
        - updated_at
        - name
        - downloads
        type: string
    platform_include_fips:
      description: Whether to include fips versions
      in: query
      name: include_fips
      required: false
      schema:
        type: boolean
    platform_version_name:
      in: path
      name: version_name
      required: true
      schema:
        $ref: '#/components/schemas/PlatformVersionName'
    platform_plugin_exclude_release_stages:
      description: Exclude these release stages from the response
      in: query
      name: exclude_release_stages
      required: false
      allowEmptyValue: true
      explode: true
      schema:
        type: array
        default:
        - deprecated
        items:
          $ref: '#/components/schemas/PlatformPluginReleaseStage'
    platform_plugin_kind:
      in: path
      name: plugin_kind
      required: true
      schema:
        $ref: '#/components/schemas/PlatformPluginKind'
    platform_plugin_name:
      in: path
      name: plugin_name
      required: true
      schema:
        $ref: '#/components/schemas/PlatformPluginName'
    platform_include_drafts:
      description: Whether to include draft versions
      in: query
      name: include_drafts
      required: false
      schema:
        type: boolean
  responses:
    PlatformBadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformFieldError'
      description: Bad request
    PlatformTooManyRequests:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformBasicError'
      description: Too Many Requests
    PlatformInternalError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformBasicError'
      description: Internal Error
    PlatformNotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformBasicError'
      description: Resource not found
    PlatformForbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformFieldError'
      description: Forbidden
    PlatformRequiresAuthentication:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PlatformBasicError'
      description: Requires authentication
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    basicAuth:
      scheme: basic
      type: http
    cookieAuth:
      scheme: cookie
      type: http