Anaconda Channels API

Channel management endpoints

OpenAPI Specification

anaconda-channels-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '6.5'
  title: Anaconda Server Channels API
  description: Channel management endpoints
servers:
- url: https://api.anaconda.cloud/api
tags:
- name: channels
  description: Channel management endpoints
paths:
  /channels:
    get:
      tags:
      - channels
      summary: Get all channels with filtering possibilities
      operationId: repo.endpoints.channels.channels.list_channels
      parameters:
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      - $ref: '#/components/parameters/search-query'
      - $ref: '#/components/parameters/channel-ids-query'
      - $ref: '#/components/parameters/channel-sort-query'
      - $ref: '#/components/parameters/include-subchannels'
      - $ref: '#/components/parameters/include-reserved-query'
      responses:
        '200':
          description: get all channels
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: number
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Channel'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      tags:
      - channels
      summary: Create a new channel
      operationId: repo.endpoints.channels.channels.post_channel
      description: create a new channel
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelCreateRequest'
      responses:
        '201':
          description: successfully created a channel
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}:
    get:
      tags:
      - channels
      summary: Get data for a specific channel
      operationId: repo.endpoints.channels.channels.get_channel
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      responses:
        '200':
          description: get a specific channel by name
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - channels
      summary: Edit the data for the specified channel
      operationId: repo.endpoints.channels.channels.put_channel
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelUpdateRequest'
      responses:
        '200':
          description: successfully updated the channel
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
    delete:
      tags:
      - channels
      summary: Delete channel and all its contents
      operationId: repo.endpoints.channels.channels.delete_channel
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      responses:
        '201':
          description: no channel to delete
        '202':
          description: successfully deleted the channel
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/permissions:
    get:
      tags:
      - channels
      summary: Get the user permission level on the channel
      operationId: repo.endpoints.channels.channels.channel_permissions
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      responses:
        '200':
          description: successfully retrieved the permission scopes on a channel
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourcePermissions'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /channels/{channel_name}/history:
    get:
      tags:
      - channels
      summary: Get the history logs of the channel
      operationId: repo.endpoints.channels.channels.channel_history
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/event-types-query'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      responses:
        '200':
          description: successfully retrieved the activity logs for the channel
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelHistory'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/cves_history:
    get:
      tags:
      - channels
      summary: Get the cve history logs of the channel
      operationId: repo.endpoints.channels.channels_cve_history.get_cve_channel_history
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/from-date-parameter'
      - $ref: '#/components/parameters/to-date-parameter'
      - $ref: '#/components/parameters/min-download-count-query'
      - $ref: '#/components/parameters/cve_status-query'
      - $ref: '#/components/parameters/cve-notifications-event-type-query'
      - $ref: '#/components/parameters/search-query'
      - $ref: '#/components/parameters/max-impact-score-query'
      - $ref: '#/components/parameters/min-impact-score-query'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      responses:
        '200':
          description: successfully retrieved the cve history logs for the channel
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelCveHistory'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
    post:
      tags:
      - channels
      summary: generate min-download-count-parametertory for a specific timestamp for example for existing cves history
      operationId: repo.endpoints.channels.channels_cve_history.generate_cve_notifications
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CVENotificationsTimestamp'
      responses:
        '202':
          description: successfully starting building of cve notifications
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '200':
          description: No history available for given timestamp
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/stats:
    get:
      tags:
      - channels
      summary: Get stats and counters for the channel
      operationId: repo.endpoints.channels.channels.channel_stats
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      responses:
        '200':
          description: returns stats for the channel
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelStats'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/virtual-channels:
    get:
      tags:
      - channels
      summary: Get list of all virtual channels created from current channel
      operationId: repo.endpoints.channels.channels.list_virtual_channels
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      - $ref: '#/components/parameters/search-query'
      - $ref: '#/components/parameters/channel-sort-query'
      responses:
        '200':
          description: return list of virtual channels
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: number
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Channel'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/artifacts:
    get:
      tags:
      - channels
      summary: Get list of artifacts for specific channel
      description: Retrieve all artifacts for the current channel and passing the ?filter= query will only returns those artifacts in the current channel that match that filter string
      operationId: repo.endpoints.channels.channel_artifacts.list_artifacts
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      - $ref: '#/components/parameters/search-query'
      - $ref: '#/components/parameters/only_names-query'
      - $ref: '#/components/parameters/artifact-sort-query'
      - $ref: '#/components/parameters/artifact_family-query'
      - $ref: '#/components/parameters/platform-query'
      responses:
        '200':
          description: get list of packages for channels
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: number
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Artifact'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      tags:
      - channels
      summary: Upload an artifact to the channel (implemented by repo-proxy, can't be called directly)
      operationId: repo.endpoints.channels.channel_artifacts.upload_placeholder
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      requestBody:
        description: upload the artifact to the channel with specified filetype
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - filetype
              - content
              properties:
                filetype:
                  $ref: '#/components/schemas/UploadFileType'
                r_version:
                  type: string
                  description: cran_binary_package R version
                distribution:
                  type: string
                  description: cran_binary_package distribution
                  example: macosx
                content:
                  type: string
                  format: binary
      responses:
        '201':
          description: successful file uploaded
        '204':
          description: successful subsequent file uploads
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/artifacts/bulk:
    put:
      summary: Perform a bulk action for artifacts in channel
      operationId: repo.endpoints.channels.channel_artifacts.bulk
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArtifactBulkActionRequest'
      responses:
        '202':
          description: bulk did something to artifacts in the channel successfully
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
      tags:
      - channels
  /channels/{channel_name}/artifacts/{artifact_family}:
    put:
      tags:
      - channels
      summary: Refreshes the index for specific artifact family in the channel
      operationId: repo.endpoints.channels.channel_artifacts.refresh_artifact_family_index
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      responses:
        '202':
          description: index update accepted
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/artifacts/{artifact_family}/{artifact_name}:
    get:
      tags:
      - channels
      summary: Get specific artifact in current channel
      operationId: repo.endpoints.channels.channel_artifacts.get_artifact
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      - $ref: '#/components/parameters/artifact_name-parameter'
      responses:
        '200':
          description: successfully returned an Artifact
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Artifact'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
      - channels
      summary: Delete the specific artifact in the current channel
      operationId: repo.endpoints.channels.channel_artifacts.delete_artifact
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      - $ref: '#/components/parameters/artifact_name-parameter'
      responses:
        '204':
          description: successfully deleted
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/artifacts/{artifact_family}/{artifact_name}/readme:
    get:
      x-not-implemented: red
      tags:
      - channels
      summary: Get the README file for this artifact
      operationId: repo.endpoints.channels.channel_artifacts.get_artifact_readme
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      - $ref: '#/components/parameters/artifact_name-parameter'
      responses:
        '200':
          description: successfully retrieved README for this artifact
          content:
            application/json:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      deprecated: true
  /channels/{channel_name}/cves:
    get:
      tags:
      - channels
      summary: Get all the CVE's associated with this channel
      operationId: repo.endpoints.channels.channel_artifacts.list_channel_cves
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      - $ref: '#/components/parameters/cve_status-query'
      - $ref: '#/components/parameters/min_cve_score-query'
      - $ref: '#/components/parameters/search-query'
      - $ref: '#/components/parameters/max_cve_score-query'
      - $ref: '#/components/parameters/architectures-query'
      - $ref: '#/components/parameters/cve-name-query'
      - $ref: '#/components/parameters/version-query'
      - $ref: '#/components/parameters/min_packages_count-query'
      - $ref: '#/components/parameters/artifact_name-query'
      - $ref: '#/components/parameters/cve-sort-query'
      - $ref: '#/components/parameters/with_cve_counts_by_severity-query'
      responses:
        '200':
          description: successfully returns the CVE objects related to this channel
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: number
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/CVE'
                  cve_count_by_severity:
                    $ref: '#/components/schemas/CVEsBySeverity'
            text/csv:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/cves/ws:
    get:
      tags:
      - channels
      operationId: repo.endpoints.channels.channel_artifacts.cve_report_batched
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/cve_status-query'
      - $ref: '#/components/parameters/min_cve_score-query'
      - $ref: '#/components/parameters/search-query'
      - $ref: '#/components/parameters/max_cve_score-query'
      - $ref: '#/components/parameters/architectures-query'
      - $ref: '#/components/parameters/cve-name-query'
      - $ref: '#/components/parameters/version-query'
      - $ref: '#/components/parameters/artifact_name-query'
      responses:
        '101':
          description: Read-only websocket with new events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CVE'
        '400':
          $ref: '#/components/responses/BadRequest'
      security:
      - jwt: []
  /channels/{channel_name}/cves/{cve_id}:
    get:
      tags:
      - channels
      summary: Get channel CVE details
      operationId: repo.endpoints.channels.channel_artifacts.get_channel_cve_details
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/cve_id-parameter'
      responses:
        '200':
          description: successfully returns the channel's CVE detailss
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CVE'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/cves/{cve_id}/files:
    get:
      tags:
      - channels
      summary: Get all package files, associated with specific CVE in the channel
      operationId: repo.endpoints.channels.channel_artifacts.list_channel_cve_files
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/cve_id-parameter'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      - $ref: '#/components/parameters/cve_status-query'
      - $ref: '#/components/parameters/min_cve_score-query'
      responses:
        '200':
          description: successfully returns routes, related to this CVE in the channel
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CVEPackage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/artifacts/{artifact_family}/{artifact_name}/cves:
    get:
      tags:
      - channels
      summary: Get all the CVE's associated with this channel and artifact
      operationId: repo.endpoints.channels.channel_artifacts.list_artifact_cves
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      - $ref: '#/components/parameters/artifact_name-parameter'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      - $ref: '#/components/parameters/cve_status-query'
      - $ref: '#/components/parameters/min_cve_score-query'
      - $ref: '#/components/parameters/search-query'
      - $ref: '#/components/parameters/with_cve_counts_by_severity-query'
      responses:
        '200':
          description: successfully returns the CVE objects, related to this CVE in artifact
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: number
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/CVE'
                  cve_count_by_severity:
                    $ref: '#/components/schemas/CVEsBySeverity'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/artifacts/{artifact_family}/{artifact_name}/cves/{cve_id}:
    get:
      tags:
      - channels
      summary: Get artifact CVE details
      operationId: repo.endpoints.channels.channel_artifacts.get_artifact_cve_details
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      - $ref: '#/components/parameters/artifact_name-parameter'
      - $ref: '#/components/parameters/cve_id-parameter'
      responses:
        '200':
          description: successfully returns the artifact CVE details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CVE'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/artifacts/{artifact_family}/{artifact_name}/cves/{cve_id}/files:
    get:
      tags:
      - channels
      summary: successfully returns routes, related to this CVE in the artifact
      operationId: repo.endpoints.channels.channel_artifacts.list_artifact_cve_files
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      - $ref: '#/components/parameters/artifact_name-parameter'
      - $ref: '#/components/parameters/cve_id-parameter'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      - $ref: '#/components/parameters/cve_status-query'
      - $ref: '#/components/parameters/min_cve_score-query'
      responses:
        '200':
          description: successfully returns routes, related to this CVE in the channel
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CVEPackage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - jwt: []
      - user_token: []
  /channels/{channel_name}/artifacts/{artifact_family}/{artifact_name}/files:
    get:
      tags:
      - channels
      summary: Get all files of the artifact
      operationId: repo.endpoints.channels.channel_artifacts.list_artifact_files
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      - $ref: '#/components/parameters/artifact_name-parameter'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      - $ref: '#/components/parameters/file-sort-query'
      - $ref: '#/components/parameters/omit_cve-query'
      - $ref: '#/components/parameters/include_nonsearchable-query'
      - $ref: '#/components/parameters/cve_status-query'
      - $ref: '#/components/parameters/max_cve_score-query'
      - $ref: '#/components/parameters/min_cve_score-query'
      - $ref: '#/components/parameters/architectures-query'
      - $ref: '#/components/parameters/package-state-query'
      - $ref: '#/components/parameters/created-min-query'
      - $ref: '#/components/parameters/created-max-query'
      - $ref: '#/components/parameters/ckey-query'
      - $ref: '#/components/parameters/version-query'
      - $ref: '#/components/parameters/cve_extra_info-query'
      responses:
        '200':
          description: successfully retrieved all files
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: number
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ArtifactFile'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /channels/{channel_name}/artifacts/{artifact_family}/{artifact_name}/files/{ckey:[^/].*?}:
    get:
      tags:
      - channels
      summary: Get artifact file
      operationId: repo.endpoints.channels.channel_artifacts.artifact_file
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      - $ref: '#/components/parameters/artifact_name-parameter'
      - $ref: '#/components/parameters/ckey-parameter'
      - $ref: '#/components/parameters/omit_cve-query'
      responses:
        '200':
          description: Artifact file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArtifactFile'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /channels/{channel_name}/artifacts/{artifact_family}/{artifact_name}/file-cves/{ckey:[^/].*?}:
    get:
      tags:
      - channels
      summary: Get a list of CVEs for the file (ckey)
      operationId: repo.endpoints.channels.channel_artifacts.list_file_cves
      parameters:
      - $ref: '#/components/parameters/channel-parameter'
      - $ref: '#/components/parameters/artifact_family-parameter'
      - $ref: '#/components/parameters/artifact_name-parameter'
      - $ref: '#/components/parameters/ckey-parameter'
      - $ref: '#/components/parameters/search-query'
      - $ref: '#/components/parameters/offset-query'
      - $ref: '#/components/parameters/limit-query'
      responses:
        '200':
          description: List of CVEs
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: number
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/CVE'
        '401':
          $ref: '#/components/

# --- truncated at 32 KB (137 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/anaconda/refs/heads/main/openapi/anaconda-channels-api-openapi.yml