Replicated channelReleases API

The channelReleases API from Replicated — 7 operation(s) for channelreleases.

OpenAPI Specification

replicated-channelreleases-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: Manage enterprise portal users, install options, branding, documentation, email templates, and access control.
  title: Vendor API V3 apps channelReleases API
  contact:
    name: Replicated, Inc.
    url: http://www.replicated.com/
    email: info@replicated.com
  version: 3.0.0
host: api.replicated.com
basePath: /vendor/v3
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: channelReleases
paths:
  /app/{app_id}/channel/{channel_id}/airgap/download-url:
    get:
      security:
      - api_key: []
      description: 'Returns a download URL for the airgap bundle associated with the active release on the specified channel. Optionally, a specific channel sequence can be requested via query parameter.


        Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/airgap/download-url'
      produces:
      - application/json
      schemes:
      - https
      tags:
      - channelReleases
      summary: Get airgap bundle download URL the active release on the channel.
      operationId: channelReleaseAirgapBundleURL
      parameters:
      - type: string
        x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
      - type: string
        x-go-name: ChannelID
        description: Channel identifier
        name: channel_id
        in: path
        required: true
      - type: integer
        format: int64
        x-go-name: ChannelSequence
        description: If provided, the airgap bundle download URL for the given channel sequence will be returned
        name: channelSequence
        in: query
      responses:
        '200':
          $ref: '#/responses/channelReleaseAirgapBundleURLResponse'
        '400':
          $ref: '#/responses/responseErrBadRequest'
        '401':
          $ref: '#/responses/responseErrUnauthorized'
        '403':
          $ref: '#/responses/responseErrForbidden'
        '404':
          $ref: '#/responses/responseErrNotFound'
  /app/{app_id}/channel/{channel_id}/release/{sequence}/airgap/build:
    post:
      security:
      - api_key: []
      description: 'Triggers a build of an airgap bundle for the specified release in a channel. The airgap bundle can be used for offline installations.


        Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/airgap'
      produces:
      - application/json
      schemes:
      - https
      tags:
      - channelReleases
      summary: Trigger airgap build for a channel's release.
      operationId: channelReleaseAirgapBuild
      parameters:
      - type: string
        x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
      - type: string
        x-go-name: ChannelID
        description: Channel identifier
        name: channel_id
        in: path
        required: true
      - type: integer
        format: int64
        x-go-name: Sequence
        description: Release identifier
        name: sequence
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/channelReleaseAirgapBuildResponse'
        '400':
          $ref: '#/responses/responseErrBadRequest'
        '401':
          $ref: '#/responses/responseErrUnauthorized'
        '403':
          $ref: '#/responses/responseErrForbidden'
        '404':
          $ref: '#/responses/responseErrNotFound'
  /app/{app_id}/channel/{channel_id}/release/{sequence}/airgap/cancel:
    post:
      security:
      - api_key: []
      description: 'Cancels an in-progress airgap build for the specified release in a channel.


        Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/airgap'
      produces:
      - application/json
      schemes:
      - https
      tags:
      - channelReleases
      summary: Cancel airgap build for a channel's release.
      operationId: channelReleaseAirgapCancel
      parameters:
      - type: string
        x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
      - type: string
        x-go-name: ChannelID
        description: Channel identifier
        name: channel_id
        in: path
        required: true
      - type: integer
        format: int64
        x-go-name: Sequence
        description: Release identifier
        name: sequence
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/channelReleaseAirgapCancelResponse'
        '400':
          $ref: '#/responses/responseErrBadRequest'
        '401':
          $ref: '#/responses/responseErrUnauthorized'
        '403':
          $ref: '#/responses/responseErrForbidden'
        '404':
          $ref: '#/responses/responseErrNotFound'
  /app/{app_id}/channel/{channel_id}/release/{sequence}/airgap/status:
    get:
      security:
      - api_key: []
      description: 'Returns the current airgap build status for the specified release in a channel.


        Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/airgap/status/read'
      produces:
      - application/json
      schemes:
      - https
      tags:
      - channelReleases
      summary: Get airgap build status for a channel's release.
      operationId: channelReleaseAirgapStatus
      parameters:
      - type: string
        x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
      - type: string
        x-go-name: ChannelID
        description: Channel identifier
        name: channel_id
        in: path
        required: true
      - type: integer
        format: int64
        x-go-name: Sequence
        description: Release identifier
        name: sequence
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/channelReleaseAirgapStatusResponse'
        '400':
          $ref: '#/responses/responseErrBadRequest'
        '401':
          $ref: '#/responses/responseErrUnauthorized'
        '403':
          $ref: '#/responses/responseErrForbidden'
        '404':
          $ref: '#/responses/responseErrNotFound'
  /app/{app_id}/channel/{channel_id}/release/{sequence}/install-commands:
    get:
      security:
      - api_key: []
      description: 'Return the install commands for a specific release in a channel, including commands for embedded and existing clusters.


        Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/read'
      produces:
      - application/json
      schemes:
      - https
      tags:
      - channelReleases
      summary: Get install commands for a specific channel release.
      operationId: getChannelReleaseInstallCommands
      parameters:
      - type: string
        x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
      - type: string
        x-go-name: ChannelID
        description: Channel identifier
        name: channel_id
        in: path
        required: true
      - type: integer
        format: int64
        x-go-name: Sequence
        description: Release identifier
        name: sequence
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/getChannelReleaseInstallCommandsResponse'
        '400':
          $ref: '#/responses/responseErrBadRequest'
        '401':
          $ref: '#/responses/responseErrUnauthorized'
        '403':
          $ref: '#/responses/responseErrForbidden'
        '404':
          $ref: '#/responses/responseErrNotFound'
  /app/{app_id}/channel/{channel_id}/release/{sequence}/update-properties:
    post:
      security:
      - api_key: []
      description: 'Updates the properties (such as version label, release notes, and required status) for a specific release in a channel.


        Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/update'
      consumes:
      - application/json
      produces:
      - application/json
      schemes:
      - https
      tags:
      - channelReleases
      summary: Update properties for a channel release.
      operationId: updateChannelRelease
      parameters:
      - type: string
        x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
      - type: string
        x-go-name: ChannelID
        description: Channel identifier
        name: channel_id
        in: path
        required: true
      - type: integer
        format: int64
        x-go-name: Sequence
        description: Release identifier
        name: sequence
        in: path
        required: true
      - description: Update release parameters.
        name: Body
        in: body
        schema:
          type: object
          properties:
            isRequired:
              description: Prevent this release from being skipped during upgrades
              type: boolean
              x-go-name: IsRequired
            releaseNotes:
              description: The updated release notes
              type: string
              x-go-name: ReleaseNotes
            versionLabel:
              description: The new version label to use
              type: string
              x-go-name: VersionLabel
      responses:
        '200':
          $ref: '#/responses/updateChannelRelease'
        '400':
          $ref: '#/responses/responseErrBadRequest'
        '401':
          $ref: '#/responses/responseErrUnauthorized'
        '403':
          $ref: '#/responses/responseErrForbidden'
        '404':
          $ref: '#/responses/responseErrNotFound'
  /app/{app_id}/channel/{channel_id}/releases:
    get:
      security:
      - api_key: []
      description: 'Return a paginated list of releases for a specific channel within an app, including release metadata and status.


        Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/read'
      produces:
      - application/json
      schemes:
      - https
      tags:
      - channelReleases
      summary: List releases for an app channel.
      operationId: listChannelReleases
      parameters:
      - type: string
        x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
      - type: string
        x-go-name: ChannelID
        description: Channel identifier
        name: channel_id
        in: path
        required: true
      - type: integer
        format: int64
        default: 20
        x-go-name: PageSize
        description: Page size
        name: pageSize
        in: query
      - type: integer
        format: int64
        x-go-name: CurrentPage
        description: Current page
        name: currentPage
        in: query
      - type: boolean
        x-go-name: ExcludeDemoted
        description: Exclude demoted releases
        name: excludeDemoted
        in: query
      - type: boolean
        x-go-name: IncludeSecuritySummary
        description: Include security summary
        name: includeSecuritySummary
        in: query
      - type: string
        x-go-name: VersionLabel
        description: Filter by version label (partial match)
        name: versionLabel
        in: query
      - enum:
        - online
        - airgap
        type: string
        x-go-name: IncludeInstallerImages
        description: Include EC installer images in the images list. Empty = app images only (default).
        name: includeInstallerImages
        in: query
      responses:
        '200':
          $ref: '#/responses/listChannelReleasesResponse'
        '400':
          $ref: '#/responses/responseErrBadRequest'
        '401':
          $ref: '#/responses/responseErrUnauthorized'
        '403':
          $ref: '#/responses/responseErrForbidden'
        '404':
          $ref: '#/responses/responseErrNotFound'
definitions:
  InstallationTypeKurl:
    type: object
    properties:
      installerVersion:
        type: string
        x-go-name: InstallerVersion
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  InstallerTypeEmbeddedCluster:
    type: object
    properties:
      proxyRegistryDomain:
        type: string
        x-go-name: ProxyRegistryDomain
      replicatedAppDomain:
        type: string
        x-go-name: ReplicatedAppDomain
      replicatedRegistryDomain:
        type: string
        x-go-name: ReplicatedRegistryDomain
      version:
        type: string
        x-go-name: InstallerVersion
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  AirgapBuildSummary:
    type: object
    title: AirgapBuildSummary is a lightweight snapshot of a channel-release's airgap build state.
    properties:
      airgapBuildError:
        type: string
        x-go-name: AirgapBuildError
      airgapBuildStatus:
        type: string
        x-go-name: AirgapBuildStatus
      channelId:
        type: string
        x-go-name: ChannelID
      channelName:
        type: string
        x-go-name: ChannelName
      channelSequence:
        type: integer
        format: int64
        x-go-name: ChannelSequence
      fullAirgapBuild:
        description: 'FullAirgapBuild is true when the channel-release is configured to produce

          or has completed with a full airgap bundle.

          When false, the worker may still run metadata generation for the

          channel-release and that step can fail.'
        type: boolean
        x-go-name: FullAirgapBuild
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/release
  ImageVulnCounts:
    type: object
    properties:
      counts:
        $ref: '#/definitions/VulnCounts'
      digest:
        type: string
        x-go-name: Digest
      digest_first_seen_at:
        type: string
        x-go-name: DigestFirstSeenAt
      image_size_bytes:
        type: integer
        format: int64
        x-go-name: ImageSizeBytes
      input:
        type: string
        x-go-name: Input
      installation_phase:
        description: 'InstallationPhase indicates the Embedded Cluster phase for the image ("", "online", or "airgap").

          Application images have the phase "".

          Infrastructure images used for Embedded Cluster in both online and airgap have the phase "online" or "airgap".

          Infrastructure images used for Embedded Cluster only in airgap have the phase "airgap".'
        type: string
        x-go-name: InstallationPhase
      last_scanned_at:
        type: string
        x-go-name: LastScannedAt
      not_found:
        type: boolean
        x-go-name: NotFound
      sbom_status:
        description: SBOM status tracking
        type: string
        x-go-name: SBOMStatus
      sbom_status_message:
        type: string
        x-go-name: SBOMStatusMessage
      sbom_status_updated_at:
        type: string
        x-go-name: SBOMStatusUpdatedAt
      scan_status:
        description: Scan status tracking
        type: string
        x-go-name: ScanStatus
      scan_status_message:
        type: string
        x-go-name: ScanStatusMessage
      scan_status_updated_at:
        type: string
        x-go-name: ScanStatusUpdatedAt
      scanned_images:
        description: Scan completeness tracking
        type: integer
        format: int64
        x-go-name: ScannedImages
      total_images:
        type: integer
        format: int64
        x-go-name: TotalImages
    x-go-package: github.com/replicatedhq/vandoor/pkg/securebuild/types
  InstallerTypeKotsConfig:
    type: object
    properties:
      apiVersion:
        type: string
        x-go-name: APIVersion
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  LintResult:
    type: object
    properties:
      isLintingComplete:
        type: boolean
        x-go-name: IsLintingComplete
      lintExpressions:
        type: array
        items:
          $ref: '#/definitions/LintExpression'
        x-go-name: LintExpressions
    x-go-package: github.com/replicatedhq/vandoor/pkg/lint
  InstallerTypeHelm:
    type: object
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  InstallerTypeReplicatedSDK:
    type: object
    properties:
      sdkVersion:
        type: string
        x-go-name: SDKVersion
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  InstallerTypePreflight:
    type: object
    properties:
      apiVersion:
        type: string
        x-go-name: APIVersion
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  HelmInstallabilityIssue:
    type: object
    properties:
      message:
        type: string
        x-go-name: Message
      resources:
        type: array
        items:
          $ref: '#/definitions/HelmUnavailableResource'
        x-go-name: Resources
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  KotsChannelRelease:
    type: object
    properties:
      airgapBuildError:
        type: string
        x-go-name: AirgapBuildError
      airgapBuildStatus:
        type: string
        x-go-name: AirgapBuildStatus
      airgapBundleImages:
        type: array
        items:
          type: string
        x-go-name: AirgapBundleImages
      channelIcon:
        type: string
        x-go-name: ChannelIcon
      channelId:
        type: string
        x-go-name: ChannelID
      channelName:
        type: string
        x-go-name: ChannelName
      channelSequence:
        type: integer
        format: int64
        x-go-name: ChannelSequence
      created:
        type: string
        format: date-time
        x-go-name: Created
      createdBy:
        $ref: '#/definitions/Actor'
      customResourceError:
        type: string
        x-go-name: CustomResourceError
      customResourceWarnings:
        type: array
        items:
          type: string
        x-go-name: CustomResourceWarnings
      demotedAt:
        type: string
        format: date-time
        x-go-name: DemotedAt
      embeddedClusterVersion:
        type: string
        x-go-name: EmbeddedClusterVersion
      hasECInstaller:
        type: boolean
        x-go-name: HasECInstaller
      hasKurlInstaller:
        type: boolean
        x-go-name: HasKurlInstaller
      imageSecurityInfo:
        type: array
        items:
          $ref: '#/definitions/ImageVulnCounts'
        x-go-name: ImageSecurityInfo
      imageSecuritySums:
        type: object
        additionalProperties:
          $ref: '#/definitions/ImageVulnCounts'
        x-go-name: ImageSecuritySums
      installationTypes:
        $ref: '#/definitions/InstallationTypes'
      isDemoted:
        type: boolean
        x-go-name: IsDemoted
      isRequired:
        type: boolean
        x-go-name: IsRequired
      kurlInstallerID:
        type: string
        x-go-name: KurlInstallerID
      lintResult:
        $ref: '#/definitions/LintResult'
      proxyRegistryDomain:
        type: string
        x-go-name: ProxyRegistryDomain
      registrySecret:
        type: string
        x-go-name: RegistrySecret
      releaseNotes:
        type: string
        x-go-name: ReleaseNotes
      releasedAt:
        type: string
        format: date-time
        x-go-name: ReleasedAt
      replicatedRegistryDomain:
        type: string
        x-go-name: ReplicatedRegistryDomain
      semver:
        type: string
        x-go-name: Semver
      sequence:
        type: integer
        format: int64
        x-go-name: Sequence
      updated:
        type: string
        format: date-time
        x-go-name: Updated
      updatedBy:
        $ref: '#/definitions/Actor'
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  InstallationTypes:
    type: object
    properties:
      embeddedCluster:
        $ref: '#/definitions/InstallerTypeEmbeddedCluster'
      helm:
        $ref: '#/definitions/InstallerTypeHelm'
      helmInstallabilityIssue:
        $ref: '#/definitions/HelmInstallabilityIssue'
      kots:
        $ref: '#/definitions/InstallerTypeKots'
      kotsConfig:
        $ref: '#/definitions/InstallerTypeKotsConfig'
      kurl:
        $ref: '#/definitions/InstallationTypeKurl'
      preflight:
        $ref: '#/definitions/InstallerTypePreflight'
      replicatedSDK:
        $ref: '#/definitions/InstallerTypeReplicatedSDK'
      supportBundle:
        $ref: '#/definitions/InstallerTypeSupportBundle'
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  VulnCounts:
    type: object
    properties:
      critical:
        type: integer
        format: int64
        x-go-name: Critical
      high:
        type: integer
        format: int64
        x-go-name: High
      low:
        type: integer
        format: int64
        x-go-name: Low
      medium:
        type: integer
        format: int64
        x-go-name: Medium
      total:
        type: integer
        format: int64
        x-go-name: Total
    x-go-package: github.com/replicatedhq/vandoor/pkg/securebuild/types
  Actor:
    type: object
    properties:
      description:
        type: string
        x-go-name: Description
      id:
        type: string
        x-go-name: ID
      link:
        type: string
        x-go-name: Link
      timestamp:
        type: string
        format: date-time
        x-go-name: Timestamp
      type:
        type: string
        x-go-name: Type
    x-go-package: github.com/replicatedhq/vandoor/pkg/models/types
  ChannelReleaseInstallCommands:
    type: object
    properties:
      embeddedClusterInstallCommand:
        type: string
        x-go-name: EmbeddedClusterInstallCommand
      existingClusterInstallCommand:
        type: string
        x-go-name: ExistingClusterInstallCommand
    x-go-package: github.com/replicatedhq/vandoor/handlers/vendor-api/replv3/releases
  InstallerTypeKots:
    type: object
    properties:
      minKotsVersion:
        type: string
        x-go-name: MinKotsVersion
      targetKotsVersion:
        type: string
        x-go-name: TargetKotsVersion
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  HelmUnavailableResource:
    type: object
    properties:
      filePath:
        type: string
        x-go-name: FilePath
      identifier:
        type: string
        x-go-name: Identifier
      kind:
        type: string
        x-go-name: Kind
      name:
        type: string
        x-go-name: Name
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  InstallerTypeSupportBundle:
    type: object
    properties:
      apiVersion:
        type: string
        x-go-name: APIVersion
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
  LintExpression:
    type: object
    properties:
      message:
        type: string
        x-go-name: Message
      path:
        type: string
        x-go-name: Path
      rule:
        type: string
        x-go-name: Rule
      type:
        type: string
        x-go-name: Type
    x-go-package: github.com/replicatedhq/vandoor/pkg/kots/release
responses:
  channelReleaseAirgapBuildResponse:
    description: ChannelReleaseAirgapBuildResponse contains empty JSON object
    schema:
      type: object
  listChannelReleasesResponse:
    description: ListChannelReleasesResponse contains the JSON channel releases list
    schema:
      type: object
      properties:
        matchedCount:
          type: integer
          format: int64
          x-go-name: MatchedCount
        releases:
          type: array
          items:
            $ref: '#/definitions/KotsChannelRelease'
          x-go-name: Releases
  channelReleaseAirgapCancelResponse:
    description: ChannelReleaseAirgapCancelResponse contains empty JSON object
    schema:
      type: object
  updateChannelRelease:
    description: UpdateChannelReleaseResponse contains the release properties
    schema:
      type: object
      properties:
        release:
          $ref: '#/definitions/KotsChannelRelease'
  responseErrUnauthorized:
    description: Return if the caller is not authorized
    schema:
      type: object
      properties:
        message:
          type: string
          x-go-name: Message
  responseErrBadRequest:
    description: Returned on bad input
    schema:
      type: object
      properties:
        error_code:
          description: Error code if available
          type: string
          x-go-name: ErrorCode
        message:
          description: Error message text if available
          type: string
          x-go-name: Message
  responseErrForbidden:
    description: Returned if the caller does not have the needed permission
    schema:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              x-go-name: Message
            messageCode:
              type: string
              x-go-name: MessageCode
          x-go-name: Error
  channelReleaseAirgapBundleURLResponse:
    description: ChannelReleaseAirgapBundleURLResponse contains the airgap bundle download URL
    schema:
      type: object
      properties:
        url:
          type: string
          x-go-name: URL
  getChannelReleaseInstallCommandsResponse:
    description: GetChannelReleaseInstallCommandsResponse contains the JSON channel release install commands
    schema:
      type: object
      properties:
        commands:
          $ref: '#/definitions/ChannelReleaseInstallCommands'
  channelReleaseAirgapStatusResponse:
    description: ChannelReleaseAirgapStatusResponse contains the airgap build status
    schema:
      $ref: '#/definitions/AirgapBuildSummary'
  responseErrNotFound:
    description: Returned on resource not found
    schema:
      type: object
      properties:
        message:
          type: string
          x-go-name: Message
securityDefinitions:
  api_key:
    type: apiKey
    name: Authorization
    in: header