openapi: 3.1.0
info:
  title: DTZ Container Registry
  version: 1.0.2
  description: a generated client for the DTZ Container Registry API
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    name: Jens Walter
    email: jens@apimeister.com
externalDocs:
  description: dtz docs page
  url: https://docs.downtozero.cloud
servers:
- url: https://cr.dtz.rocks/api/{version}
  variables:
    version:
      default: "2023-12-28"
      enum:
        - "2023-12-28"
paths:
  /enable:
    post:
      summary: enable the container registry service
      description: enable the container registry service
      operationId: enableService
      responses:
        '200':
          description: service enabled
  /disable:
    post:
      summary: disable the container registry service
      description: disable the container registry service
      operationId: disableService
      responses:
        '200':
          description: service disabled
  /stats:
    get:
      summary: get stats
      description: get stats
      operationId: getStats
      responses:
        '200':
          description: stats
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StatsResponse"
  /v2/:
    get:
      summary: check authentication
      description: check authentication
      operationId: checkAuthentication
      responses:
        '200':
          description: success
  /v2/_catalog:
    get:
      summary: get catalog
      description: get catalog
      operationId: getCatalog
      responses:
        '200':
          description: catalog
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CatalogResponse"
  /v2/{image}/manifests/{tag}:
    get:
      summary: get manifest for image and tag
      description: get manifest for image and tag
      operationId: getImageTagManifest
      parameters:
        - name: image
          in: path
          required: true
          schema:
            type: string
        - name: tag
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: manifest
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ManifestResponse"
  /v2/{image}/tags/list:
    get:
      summary: get tags list
      description: get tags list
      operationId: getImageTagsList
      parameters:
        - name: image
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: tags list
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagsListResponse"
components:
  schemas:
    StatsResponse:
      type: object
      properties:
        imageCount:
          type: integer
        serverUrl:
          type: string
    CatalogResponse:
      type: object
      properties:
        repositories:
          type: array
          items:
            type: string
    TagsListResponse:
      type: object
      properties:
        name:
          type: string
        tags:
          type: array
          items:
            type: string
    ManifestResponse:
      type: object
      properties:
        schemaVersion:
          type: integer
        mediaType:
          type: string
        manifests:
          type: array
          items:
            type: object
            properties:
              mediaType:
                type: string
              size:
                type: integer
              digest:
                type: string
              platform:
                type: object
        subject:
          type: object
          properties:
            mediaType:
              type: string
            digest:
              type: string
            size:
              type: integer
            platform:
              type: object
              properties:
                architecture:
                  type: string
                os:
                  type: string
        annotations:
          type: object
          additionalProperties:
            type: string
  securitySchemes:
    dtz_auth:
      type: apiKey
      in: header
      name: X-API-KEY
    dtz_auth2:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://identity.dtz.rocks/api/2021-02-21/token/auth
          scopes:
            dummy:dummy: dummy
security:
  - dtz_auth: []
  - dtz_auth2: []