-
Notifications
You must be signed in to change notification settings - Fork 29
feat: add markdown-report #212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
OpenAPI Changes ReportGenerated at: Fri, 20 Jun 2025 01:03:35 EST General Summary
Details by CommitCommit 1: Original: /home/gfz/git/magaluCloud/magalu/specs/container-registry.openapi.yaml. Modified: /home/gfz/git/magaluCloud/magalu/specs/tmp/container-registry.openapi.yamlCommit Information:
Statistics:
Visual Diff: Click to expand diff--- Original
+++ Modified
@@ -11,31 +11,27 @@
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: 0.1.0
servers:
- - url: https://api-mcr.pre-prod.br-ne-1.jaxyendy.com
- description: "NE-1 pre-prod"
- - url: https://api-mcr.team-integration.br-ne-1.jaxyendy.com
- description: "NE-1 team-integration"
- - url: https://api-mcr.br-ne-1.jaxyendy.com
- description: "NE-1 prod"
- - url: https://api-mcr.pre-prod.br-se-1.jaxyendy.com
- description: "SE1 pre-prod"
- - url: https://api-mcr.team-integration.br-se-1.jaxyendy.com
- description: "SE1 team-integration"
- - url: https://api-mcr.br-se-1.jaxyendy.com
- description: "SE1 prod"
+ - url: https://api-mcr.csre-plat-preprod.1.yel.se1.br.jaxyendy.com
+ description: "SE1-YEL pre-prod"
+ - url: https://api-mcr.csre-plat-prod.1.yel.se1.br.jaxyendy.com
+ description: "SE1-YEL prod"
+ - url: https://api-mcr.csre-plat-preprod.1.yel.ne1.br.jaxyendy.com
+ description: "NE1-YEL pre-prod"
+ - url: https://api-mcr.csre-plat-prod.1.yel.ne1.br.jaxyendy.com
+ description: "NE1-YEL prod"
paths:
/v0/credentials:
get:
tags:
- credentials
summary: Get credentials for container registry
- description: Return container registry user's authentication credentials.
+ description: Return container registry user's authentication credentials.
operationId: getCredentials
security:
- BearerAuth:
- - mcr.read
- - OAuth2:
- - mcr.read
+ - mcr.read
+ - OAuth2:
+ - mcr.read
responses:
'200':
description: Successful operation
@@ -60,13 +56,13 @@
tags:
- credentials
summary: Reset password
- description: Reset container registry user's password.
+ description: Reset container registry user's password.
operationId: resetPassword
security:
- BearerAuth:
- - mcr.write
- - OAuth2:
- - mcr.write
+ - mcr.write
+ - OAuth2:
+ - mcr.write
responses:
'200':
description: Successful operation
@@ -88,14 +84,14 @@
post:
tags:
- registries
- summary: Create a container registry
+ summary: Create a container registry
description: Creates a container registry in Magalu Cloud.
operationId: createRegistry
security:
- BearerAuth:
- - mcr.write
- - OAuth2:
- - mcr.write
+ - mcr.write
+ - OAuth2:
+ - mcr.write
requestBody:
content:
application/json:
@@ -124,37 +120,37 @@
tags:
- registries
summary: List all container registries
- description: List user's container registries.
+ description: List user's container registries.
operationId: getRegistries
security:
- BearerAuth:
- - mcr.read
- - OAuth2:
- - mcr.read
+ - mcr.read
+ - OAuth2:
+ - mcr.read
parameters:
- - name: _limit
- in: query
- required: false
- schema:
- minimum: 1
- title: "Limit"
- type: integer
- description: Limit
- - name: _offset
- in: query
- required: false
- schema:
- minimum: 0
- type: integer
- description: Offset
- - name: _sort
- in: query
- required: false
- schema:
- default: created_at:asc
- pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
- type: string
- description: Fields to use as reference to sort.
+ - name: _limit
+ in: query
+ required: false
+ schema:
+ minimum: 1
+ title: "Limit"
+ type: integer
+ description: Limit
+ - name: _offset
+ in: query
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ description: Offset
+ - name: _sort
+ in: query
+ required: false
+ schema:
+ default: created_at:asc
+ pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
+ type: string
+ description: Fields to use as reference to sort.
responses:
'200':
description: Successful operation
@@ -167,7 +163,7 @@
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
- $ref: '#/components/responses/ForbiddenError'
+ $ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
@@ -183,17 +179,17 @@
operationId: getRegistry
security:
- BearerAuth:
- - mcr.read
- - OAuth2:
- - mcr.read
+ - mcr.read
+ - OAuth2:
+ - mcr.read
parameters:
- - name: registry_id
- in: path
- required: true
- schema:
- type: string
- format: uuid
- description: Container Registry's UUID.
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
responses:
'200':
description: Successful operation
@@ -221,17 +217,17 @@
operationId: deleteRegistry
security:
- BearerAuth:
- - mcr.write
- - OAuth2:
- - mcr.write
+ - mcr.write
+ - OAuth2:
+ - mcr.write
parameters:
- - name: registry_id
- in: path
- required: true
- schema:
- type: string
- format: uuid
- description: Container Registry's UUID.
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
responses:
'204':
description: Successful operation
@@ -246,50 +242,50 @@
'429':
$ref: '#/components/responses/TooManyRequestsError'
'500':
- $ref: '#/components/responses/InternalServerError'
+ $ref: '#/components/responses/InternalServerError'
/v0/registries/{registry_id}/repositories:
get:
tags:
- repositories
summary: List all container registry repositories
- description: List all user's repositories in the container registry.
+ description: List all user's repositories in the container registry.
operationId: getRepositories
security:
- BearerAuth:
- - mcr.read
- - OAuth2:
- - mcr.read
+ - mcr.read
+ - OAuth2:
+ - mcr.read
parameters:
- - name: registry_id
- in: path
- required: true
- schema:
- type: string
- format: uuid
- description: Container Registry's UUID.
- - name: _limit
- in: query
- required: false
- schema:
- minimum: 1
- title: "Limit"
- type: integer
- description: Limit
- - name: _offset
- in: query
- required: false
- schema:
- minimum: 0
- type: integer
- description: Offset
- - name: _sort
- in: query
- required: false
- schema:
- default: created_at:desc
- pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
- type: string
- description: Fields to use as reference to sort.
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - name: _limit
+ in: query
+ required: false
+ schema:
+ minimum: 1
+ title: "Limit"
+ type: integer
+ description: Limit
+ - name: _offset
+ in: query
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ description: Offset
+ - name: _sort
+ in: query
+ required: false
+ schema:
+ default: created_at:desc
+ pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
+ type: string
+ description: Fields to use as reference to sort.
responses:
'200':
description: Successful operation
@@ -318,23 +314,23 @@
operationId: getRepository
security:
- BearerAuth:
- - mcr.read
- - OAuth2:
- - mcr.read
+ - mcr.read
+ - OAuth2:
+ - mcr.read
parameters:
- - name: registry_id
- in: path
- required: true
- schema:
- type: string
- format: uuid
- description: Container Registry's UUID.
- - required: true
- name: repository_name
- in: path
- schema:
- type: string
- description: Repository's name.
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - required: true
+ name: repository_name
+ in: path
+ schema:
+ type: string
+ description: Repository's name.
responses:
'201':
description: Successful operation
@@ -362,23 +358,23 @@
operationId: deleteRepository
security:
- BearerAuth:
- - mcr.write
- - OAuth2:
- - mcr.write
+ - mcr.write
+ - OAuth2:
+ - mcr.write
parameters:
- - name: registry_id
- in: path
- required: true
- schema:
- type: string
- format: uuid
- description: Container Registry's UUID.
- - required: true
- name: repository_name
- in: path
- schema:
- type: string
- description: Repository's name.
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - required: true
+ name: repository_name
+ in: path
+ schema:
+ type: string
+ description: Repository's name.
responses:
'204':
description: Successful operation
@@ -403,54 +399,54 @@
operationId: getImages
security:
- BearerAuth:
- - mcr.read
- - OAuth2:
- - mcr.read
+ - mcr.read
+ - OAuth2:
+ - mcr.read
parameters:
- - name: registry_id
- in: path
- required: true
- schema:
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - required: true
+ name: repository_name
+ in: path
+ schema:
+ type: string
+ description: Repository's name.
+ - name: _limit
+ in: query
+ required: false
+ schema:
+ minimum: 1
+ title: Limit
+ type: integer
+ description: Limit
+ - name: _offset
+ in: query
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ description: Offset
+ - name: _sort
+ in: query
+ required: false
+ schema:
+ default: pushed_at:desc
+ pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
+ type: string
+ description: Fields to use as reference to sort.
+ - name: expand
+ in: query
+ required: false
+ schema:
+ type: array
+ items:
type: string
- format: uuid
- description: Container Registry's UUID.
- - required: true
- name: repository_name
- in: path
- schema:
- type: string
- description: Repository's name.
- - name: _limit
- in: query
- required: false
- schema:
- minimum: 1
- title: Limit
- type: integer
- description: Limit
- - name: _offset
- in: query
- required: false
- schema:
- minimum: 0
- type: integer
- description: Offset
- - name: _sort
- in: query
- required: false
- schema:
- default: pushed_at:desc
- pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
- type: string
- description: Fields to use as reference to sort.
- - name: expand
- in: query
- required: false
- schema:
- type: array
- items:
- type: string
- description: "You can get more detailed info about: ['tags_details', 'extra_attr', 'manifest_media_type', 'media_type']"
+ description: "You can get more detailed info about: ['tags_details', 'extra_attr', 'manifest_media_type', 'media_type']"
responses:
'200':
description: Successful operation
@@ -479,31 +475,31 @@
operationId: deleteImage
security:
- BearerAuth:
- - mcr.write
- - mcr.read
- - OAuth2:
- - mcr.write
- - mcr.read
+ - mcr.write
+ - mcr.read
+ - OAuth2:
+ - mcr.write
+ - mcr.read
parameters:
- - name: registry_id
- in: path
- required: true
- schema:
- type: string
- format: uuid
- description: Container Registry's UUID.
- - required: true
- name: repository_name
- in: path
- schema:
- type: string
- description: Repository's name.
- - name: digest_or_tag
- in: path
- required: true
- schema:
- type: string
- description: Digest or tag of an image
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - required: true
+ name: repository_name
+ in: path
+ schema:
+ type: string
+ description: Repository's name.
+ - name: digest_or_tag
+ in: path
+ required: true
+ schema:
+ type: string
+ description: Digest or tag of an image
responses:
'204':
description: Successful operation
@@ -521,35 +517,35 @@
$ref: '#/components/responses/InternalServerError'
get:
tags:
- - images
+ - images
summary: Get image details
description: Show detailed information about the image.
operationId: getImage
security:
- BearerAuth:
- - mcr.read
- - OAuth2:
- - mcr.read
+ - mcr.read
+ - OAuth2:
+ - mcr.read
parameters:
- - name: registry_id
- in: path
- required: true
- schema:
- type: string
- format: uuid
- description: Container Registry's UUID.
- - name: repository_name
- in: path
- required: true
- schema:
- type: string
- description: Repository's name.
- - name: digest_or_tag
- in: path
- required: true
- schema:
- type: string
- description: Digest or tag of an image.
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - name: repository_name
+ in: path
+ required: true
+ schema:
+ type: string
+ description: Repository's name.
+ - name: digest_or_tag
+ in: path
+ required: true
+ schema:
+ type: string
+ description: Digest or tag of an image.
responses:
'200':
description: Successful operation
@@ -569,8 +565,560 @@
$ref: '#/components/responses/TooManyRequestsError'
'500':
$ref: '#/components/responses/InternalServerError'
+ /v0/proxy-caches:
+ post:
+ tags:
+ - proxy-caches
+ summary: Create a proxy cache
+ description: Creates a proxy cache in Magalu Cloud.
+ operationId: createProxyCache
+ security:
+ - BearerAuth:
+ - mcr.write
+ - OAuth2:
+ - mcr.write
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProxyCacheRequest'
+ responses:
+ '201':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateProxyCacheResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ get:
+ tags:
+ - proxy-caches
+ summary: List all proxy-caches
+ description: List user's proxy caches.
+ operationId: getProxyCaches
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ parameters:
+ - name: _limit
+ in: query
+ required: false
+ schema:
+ minimum: 1
+ title: "Limit"
+ type: integer
+ description: Limit
+ - name: _offset
+ in: query
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ description: Offset
+ - name: _sort
+ in: query
+ required: false
+ schema:
+ default: created_at:asc
+ pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
+ type: string
+ description: Fields to use as reference to sort.
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProxyCachesResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/proxy-caches/{proxy_cache_id}:
+ get:
+ tags:
+ - proxy-caches
+ summary: Get a proxy cache by proxy_cache_id
+ description: Get a proxycache by uuid.
+ operationId: getProxyCache
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ parameters:
+ - name: proxy_cache_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Proxy cache's UUID.
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProxyCacheDetailedResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ patch:
+ tags:
+ - proxy-caches
+ summary: Update a proxy cache by proxy_cache_id
+ description: Update a proxycache by uuid.
+ operationId: updateProxyCache
+ security:
+ - BearerAuth:
+ - mcr.write
+ - OAuth2:
+ - mcr.write
+ parameters:
+ - name: proxy_cache_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Proxy cache's UUID.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateProxyCacheRequest'
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateProxyCacheResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ delete:
+ tags:
+ - proxy-caches
+ summary: Delete a proxy cache by proxy_cache_id
+ description: Delete a proxycache by uuid.
+ operationId: deleteProxyCache
+ security:
+ - BearerAuth:
+ - mcr.write
+ - OAuth2:
+ - mcr.write
+ parameters:
+ - name: proxy_cache_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Proxy cache's UUID.
+ responses:
+ '204':
+ description: Successful operation
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/proxy-caches/status:
+ post:
+ tags:
+ - proxy-caches
+ summary: Test connectivity using proxy cache credentials
+ description: |
+ Validates the provided credentials and endpoint information for a remote registry
+ used in a proxy cache configuration. This endpoint does not persist any data — it only
+ tests if the given credentials allow access to the target registry.
+ operationId: checkProxyCacheCredentialStatus
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProxyCacheCredentialStatusRequest'
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProxyCacheCredentialStatusResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/proxy-caches/{proxy_cache_id}/status:
+ get:
+ tags:
+ - proxy-caches
+ summary: Get proxy cache connection status
+ description: |
+ Verifies and returns the current connection status of a configured proxy cache,
+ including validation of credentials and endpoint accessibility.
+ operationId: getProxyCacheStatus
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ parameters:
+ - name: proxy_cache_id
+ in: path
+ required: true
+ description: Unique identifier of the proxy cache configuration
+ schema:
+ type: string
+ format: uuid
+ example: "123e4567-e89b-12d3-a456-426614174000"
+ responses:
+ '200':
+ description: Proxy cache status verification result
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProxyCacheStatusResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
components:
schemas:
+ UpdateProxyCacheRequest:
+ type: object
+ description: Update Proxy cache Request Object.
+ properties:
+ name:
+ type: string
+ default: ""
+ description: A unique name for each tenant, used for the proxy-cache. It must be written in lowercase letters and consists only of numbers and letters, up to a limit of 63 characters.
+ url:
+ type: string
+ default: ""
+ description: An Endpoint URL for the proxied registry. Example URL for available providers can be checked through mcr-api or mgccli.
+ access_key:
+ type: string
+ description: A string consistent with provider access_id.
+ default: ""
+ access_secret:
+ type: string
+ description: A string consistent with provider access_secret.
+ default: ""
+ description:
+ type: string
+ description: A string.
+ default: ""
+ example:
+ name: updated_cool_registry_proxy
+ url: https://hub.docker.com
+ access_key: example-access-key
+ access_secret: example-access-secret
+ description: cool_description
+ ProxyCacheRequest:
+ type: object
+ description: Proxy cache Request Object.
+ properties:
+ name:
+ type: string
+ description: A unique name for each tenant, used for the proxy-cache. It must be written in lowercase letters and consists only of numbers and letters, up to a limit of 63 characters.
+ provider:
+ type: string
+ description: A provider identifier string. Available providers can be checked through mcr-api or mgccli.
+ url:
+ type: string
+ description: An Endpoint URL for the proxied registry. Example URL for available providers can be checked through mcr-api or mgccli.
+ access_key:
+ type: string
+ description: A string consistent with provider access_id.
+ default: ""
+ access_secret:
+ type: string
+ description: A string consistent with provider access_secret.
+ default: ""
+ description:
+ type: string
+ description: A string.
+ default: ""
+ required:
+ - name
+ - provider
+ - url
+ example:
+ name: cool_registry_proxy
+ provider: docker-hub
+ url: https://hub.docker.com
+ access_key: example-access-key
+ access_secret: example-access-secret
+ description: cool_description
+ ProxyCacheCredentialStatusRequest:
+ type: object
+ description: Validate remote proxy cache credentials
+ properties:
+ provider:
+ type: string
+ description: Type of the remote registry (e.g., harbor, dockerhub)
+ url:
+ type: string
+ description: Endpoint URL of the remote registry
+ access_key:
+ type: string
+ description: Access key or username for authentication
+ access_secret:
+ type: string
+ description: Secret or password for authentication
+ required:
+ - provider
+ - url
+ - credential_type
+ - access_key
+ - access_secret
+ example:
+ provider: "docker-hub"
+ url: "https://hub.docker.com"
+ credential_type: "basic"
+ access_key: "my_username"
+ access_secret: "my_password"
+ ProxyCacheCredentialStatusResponse:
+ type: object
+ description: Result of validating the proxy cache credentials
+ properties:
+ status:
+ type: string
+ description: Connection status (e.g., "valid", "invalid")
+ message:
+ type: string
+ description: Additional details about the result of the validation
+ required:
+ - status
+ example:
+ status: "valid"
+ message: "Proxy cache credentials are valid"
+ CreateProxyCacheResponse:
+ type: object
+ description: Proxy Cache creation response.
+ properties:
+ id:
+ type: string
+ description: Proxy Cache UUID.
+ name:
+ type: string
+ description: A unique, global name for the container registry. It must be written in lowercase letters and consists only of numbers and letters, up to a limit of 63 characters.
+ required:
+ - id
+ - name
+ example:
+ id: 0c6bbd87-881a-4bf8-b3f6-4ff3ceacb42c
+ name: cool_registry_proxy
+ UpdateProxyCacheResponse:
+ type: object
+ description: Proxy Cache update response.
+ required:
+ - id
+ - name
+ - provider
+ - url
+ - created_at
+ - updated_at
+ properties:
+ id:
+ type: string
+ description: Proxy Cache's UUID.
+ name:
+ type: string
+ description: Name of the proxy cache created.
+ provider:
+ type: string
+ description: Name of proxy cache registry provider.
+ url:
+ type: string
+ description: URL of proxy cache provider.
+ created_at:
+ type: string
+ description: Date and time of creation of the proxy cache.
+ updated_at:
+ type: string
+ description: Date and time of the last change to the proxy cache.
+ example:
+ id: 0c6bbd87-881a-4bf8-b3f6-4ff3ceacb42c
+ name: cool_proxy
+ provider: docker-hub
+ url: https://hub.docker.com
+ created_at: "2024-05-15T19:56:47Z"
+ updated_at: "2024-05-15T19:56:47Z"
+ description: "Proxy cache for Docker Hub"
+ ProxyCacheDetailedResponse:
+ type: object
+ description: Container Proxy Cache's response data.
+ required:
+ - id
+ - name
+ - provider
+ - url
+ - created_at
+ - updated_at
+ - description
+ properties:
+ id:
+ type: string
+ description: Proxy Cache's UUID.
+ name:
+ type: string
+ description: Name of the proxy cache .
+ provider:
+ type: string
+ description: Name of proxy cache registry provider.
+ url:
+ type: string
+ description: URL of proxy cache provider.
+ x-go-name: URL
+ created_at:
+ type: string
+ description: Date and time of creation of the proxy cache.
+ updated_at:
+ type: string
+ description: Date and time of the last change to the proxy cache.
+ description:
+ type: string
+ description: Description of the proxy-cache
+ example:
+ id: 0c6bbd87-881a-4bf8-b3f6-4ff3ceacb42c
+ name: cool_proxy
+ provider: docker-hub
+ url: https://hub.docker.com
+ created_at: "2024-05-15T19:56:47Z"
+ updated_at: "2024-05-15T19:56:47Z"
+ description: "Proxy cache for Docker Hub"
+ ProxyCachesResponse:
+ type: object
+ description: Proxy cache information response object.
+ required:
+ - results
+ properties:
+ results:
+ type: array
+ description: List of user proxy caches.
+ items:
+ $ref: '#/components/schemas/ProxyCacheResponse'
+ ProxyCacheResponse:
+ type: object
+ description: Container Proxy Cache's response data.
+ required:
+ - id
+ - name
+ - provider
+ - url
+ - created_at
+ - updated_at
+ properties:
+ id:
+ type: string
+ description: Proxy Cache's UUID.
+ name:
+ type: string
+ description: Name of the proxy cache created.
+ provider:
+ type: string
+ description: Name of proxy cache registry provider.
+ url:
+ type: string
+ description: URL of proxy cache provider.
+ created_at:
+ type: string
+ description: Date and time of creation of the proxy cache.
+ updated_at:
+ type: string
+ description: Date and time of the last change to the proxy cache.
+ example:
+ id: 0c6bbd87-881a-4bf8-b3f6-4ff3ceacb42c
+ name: cool_proxy
+ provider: docker-hub
+ url: https://hub.docker.com
+ created_at: "2024-05-15T19:56:47Z"
+ updated_at: "2024-05-15T19:56:47Z"
+ description: "Proxy cache for Docker Hub"
+ ProxyCacheStatusResponse:
+ type: object
+ description: Result of proxy cache connectivity
+ properties:
+ status:
+ type: string
+ description: Connection status (e.g., "connected", "unreachable")
+ message:
+ type: string
+ description: Detailed description of the validation result
+ required:
+ - status
+ example:
+ status: "connected"
+ message: "Proxy cache configuration is active."
RegistryRequest:
type: object
description: Container Registry Request Object.
@@ -578,10 +1126,15 @@
name:
type: string
description: A unique, global name for the container registry. It must be written in lowercase letters and consists only of numbers and letters, up to a limit of 63 characters.
+ proxy_cache_id:
+ type: string
+ description: Proxy Cache UUID.
+ default: ""
required:
- name
example:
name: cool_registry
+ proxy_cache_id: ef376048-a0f7-446c-826b-1d5cb3e5a5b0
CreateRegistryResponse:
type: object
description: Container Registry's creation response.
@@ -592,6 +1145,10 @@
name:
type: string
description: A unique, global name for the container registry. It must be written in lowercase letters and consists only of numbers and letters, up to a limit of 63 characters.
+ proxy_cache_id:
+ type: string
+ description: Proxy Cache UUID.
+ default: ""
required:
- id
- name
@@ -611,7 +1168,7 @@
$ref: '#/components/schemas/RegistryResponse'
RegistryResponse:
type: object
- description: Container Registry's response data.
+ description: Container Registry's response data.
required:
- id
- name
@@ -634,12 +1191,16 @@
updated_at:
type: string
description: Date and time of the last change to the container registry.
+ proxy_cache_id:
+ type: string
+ description: Assigned proxy cache UUID.
example:
id: 0c6bbd87-881a-4bf8-b3f6-4ff3ceacb42c
name: cool_registry
storage_usage_bytes: 12345
created_at: "2024-05-15T19:56:47Z"
updated_at: "2024-05-15T19:56:47Z"
+ proxy_cache_id: 3a1b8f76-1238-41d8-946d-b69f231d91e4
RepositoriesResponse:
type: object
description: Information returned about the container registry repository.
@@ -668,7 +1229,7 @@
description: Name of the container registry.
name:
type: string
- description: Name of the repository.
+ description: Name of the repository.
image_count:
type: integer
description: Number of images in the repository.
@@ -777,10 +1338,10 @@
manifest_media_type: "application/vnd.docker.distribution.manifest.v2+json"
media_type: "application/vnd.docker.container.image.v1+json"
tags_details:
- - name: latest
- pushed_at: "2024-05-15T19:56:47Z"
- pulled_at: "2024-05-15T19:56:47Z"
- signed: false
+ - name: latest
+ pushed_at: "2024-05-15T19:56:47Z"
+ pulled_at: "2024-05-15T19:56:47Z"
+ signed: false
extra_attr: {}
ImageTagResponse:
type: object
@@ -806,8 +1367,8 @@
Error:
type: object
required:
- - slug
- - message
+ - slug
+ - message
description: Details regarding an error.
properties:
slug:
@@ -825,15 +1386,16 @@
scheme: bearer
bearerFormat: JWT
OAuth2:
- flows:
- authorizationCode:
- authorizationUrl: 'https://idp-maas-sandbox.ipet.sh/auth/realms/master/protocol/openid-connect/auth'
- tokenUrl: 'https://idp-maas-sandbox.ipet.sh/auth/realms/master/protocol/openid-connect/token'
- scopes:
- mcr.read: Read IaaS resource information
- mcr.write: Write IaaS resource information
- type: oauth2
- description: OAuth2 via IDPA
+ flows:
+ authorizationCode:
+ authorizationUrl: 'https://idp-maas-sandbox.ipet.sh/auth/realms/master/protocol/openid-connect/auth'
+ tokenUrl: 'https://idp-maas-sandbox.ipet.sh/auth/realms/master/protocol/openid-connect/token'
+ scopes:
+ mcr.read: Read IaaS resource information
+ mcr.write: Write IaaS resource information
+ type: oauth2
+ description:
+ OAuth2 via IDPA
responses:
InternalServerError:
description: Internal Server Error
@@ -914,4 +1476,5 @@
description: Routes related to listing and deletion of repositories.
- name: images
description: Routes related to listing and deletion of images.
-
+ - name: proxy-caches
+ description: Routes related to creating, listing and deletion of proxy-caches.
Detailed Changes: Object Added
Modified
Object Removed
Commit 2: Original file: /home/gfz/git/magaluCloud/magalu/specs/container-registry.openapi.yamlCommit Information:
Statistics:
Visual Diff: Click to expand diff--- Original
+++ Modified
@@ -1 +1,917 @@
+openapi: 3.0.1
+info:
+ title: mcr-api-product
+ description: Magalu Container Registry product API.
+ contact:
+ name: Tribo IAAS Cloud
+ url: https://github.com/luizalabs
+ email: [email protected]
+ license:
+ name: Apache 2.0
+ url: https://www.apache.org/licenses/LICENSE-2.0.html
+ version: 0.1.0
+servers:
+ - url: https://api-mcr.pre-prod.br-ne-1.jaxyendy.com
+ description: "NE-1 pre-prod"
+ - url: https://api-mcr.team-integration.br-ne-1.jaxyendy.com
+ description: "NE-1 team-integration"
+ - url: https://api-mcr.br-ne-1.jaxyendy.com
+ description: "NE-1 prod"
+ - url: https://api-mcr.pre-prod.br-se-1.jaxyendy.com
+ description: "SE1 pre-prod"
+ - url: https://api-mcr.team-integration.br-se-1.jaxyendy.com
+ description: "SE1 team-integration"
+ - url: https://api-mcr.br-se-1.jaxyendy.com
+ description: "SE1 prod"
+paths:
+ /v0/credentials:
+ get:
+ tags:
+ - credentials
+ summary: Get credentials for container registry
+ description: Return container registry user's authentication credentials.
+ operationId: getCredentials
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CredentialsResponse'
+ '400':
+ $ref: "#/components/responses/BadRequestError"
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/credentials/password:
+ post:
+ tags:
+ - credentials
+ summary: Reset password
+ description: Reset container registry user's password.
+ operationId: resetPassword
+ security:
+ - BearerAuth:
+ - mcr.write
+ - OAuth2:
+ - mcr.write
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CredentialsResponse'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/registries:
+ post:
+ tags:
+ - registries
+ summary: Create a container registry
+ description: Creates a container registry in Magalu Cloud.
+ operationId: createRegistry
+ security:
+ - BearerAuth:
+ - mcr.write
+ - OAuth2:
+ - mcr.write
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RegistryRequest'
+ responses:
+ '201':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateRegistryResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ get:
+ tags:
+ - registries
+ summary: List all container registries
+ description: List user's container registries.
+ operationId: getRegistries
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ parameters:
+ - name: _limit
+ in: query
+ required: false
+ schema:
+ minimum: 1
+ title: "Limit"
+ type: integer
+ description: Limit
+ - name: _offset
+ in: query
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ description: Offset
+ - name: _sort
+ in: query
+ required: false
+ schema:
+ default: created_at:asc
+ pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
+ type: string
+ description: Fields to use as reference to sort.
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RegistriesResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/registries/{registry_id}:
+ get:
+ tags:
+ - registries
+ summary: Get registry information
+ description: Show detailed information about the user's container registry.
+ operationId: getRegistry
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ parameters:
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RegistryResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ delete:
+ tags:
+ - registries
+ summary: Delete a container registry by registry_id
+ description: Delete a container registry by uuid.
+ operationId: deleteRegistry
+ security:
+ - BearerAuth:
+ - mcr.write
+ - OAuth2:
+ - mcr.write
+ parameters:
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ responses:
+ '204':
+ description: Successful operation
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/registries/{registry_id}/repositories:
+ get:
+ tags:
+ - repositories
+ summary: List all container registry repositories
+ description: List all user's repositories in the container registry.
+ operationId: getRepositories
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ parameters:
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - name: _limit
+ in: query
+ required: false
+ schema:
+ minimum: 1
+ title: "Limit"
+ type: integer
+ description: Limit
+ - name: _offset
+ in: query
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ description: Offset
+ - name: _sort
+ in: query
+ required: false
+ schema:
+ default: created_at:desc
+ pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
+ type: string
+ description: Fields to use as reference to sort.
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RepositoriesResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/registries/{registry_id}/repositories/{repository_name}:
+ get:
+ tags:
+ - repositories
+ summary: Get a container registry repository by repository_name
+ description: Return detailed repository's information filtered by name.
+ operationId: getRepository
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ parameters:
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - required: true
+ name: repository_name
+ in: path
+ schema:
+ type: string
+ description: Repository's name.
+ responses:
+ '201':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RepositoryResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ delete:
+ tags:
+ - repositories
+ summary: Delete a container registry repository by repository_name.
+ description: Delete a repository by name.
+ operationId: deleteRepository
+ security:
+ - BearerAuth:
+ - mcr.write
+ - OAuth2:
+ - mcr.write
+ parameters:
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - required: true
+ name: repository_name
+ in: path
+ schema:
+ type: string
+ description: Repository's name.
+ responses:
+ '204':
+ description: Successful operation
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/registries/{registry_id}/repositories/{repository_name}/images:
+ get:
+ tags:
+ - images
+ summary: List images in container registry repository
+ description: List all images in container registry repository
+ operationId: getImages
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ parameters:
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - required: true
+ name: repository_name
+ in: path
+ schema:
+ type: string
+ description: Repository's name.
+ - name: _limit
+ in: query
+ required: false
+ schema:
+ minimum: 1
+ title: Limit
+ type: integer
+ description: Limit
+ - name: _offset
+ in: query
+ required: false
+ schema:
+ minimum: 0
+ type: integer
+ description: Offset
+ - name: _sort
+ in: query
+ required: false
+ schema:
+ default: pushed_at:desc
+ pattern: (^[\w-]+:(asc|desc)(,[\w-]+:(asc|desc))*)?$
+ type: string
+ description: Fields to use as reference to sort.
+ - name: expand
+ in: query
+ required: false
+ schema:
+ type: array
+ items:
+ type: string
+ description: "You can get more detailed info about: ['tags_details', 'extra_attr', 'manifest_media_type', 'media_type']"
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImagesResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ /v0/registries/{registry_id}/repositories/{repository_name}/images/{digest_or_tag}:
+ delete:
+ tags:
+ - images
+ summary: Delete image by digest or tag
+ description: Delete repository image by digest or tag
+ operationId: deleteImage
+ security:
+ - BearerAuth:
+ - mcr.write
+ - mcr.read
+ - OAuth2:
+ - mcr.write
+ - mcr.read
+ parameters:
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - required: true
+ name: repository_name
+ in: path
+ schema:
+ type: string
+ description: Repository's name.
+ - name: digest_or_tag
+ in: path
+ required: true
+ schema:
+ type: string
+ description: Digest or tag of an image
+ responses:
+ '204':
+ description: Successful operation
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ get:
+ tags:
+ - images
+ summary: Get image details
+ description: Show detailed information about the image.
+ operationId: getImage
+ security:
+ - BearerAuth:
+ - mcr.read
+ - OAuth2:
+ - mcr.read
+ parameters:
+ - name: registry_id
+ in: path
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Container Registry's UUID.
+ - name: repository_name
+ in: path
+ required: true
+ schema:
+ type: string
+ description: Repository's name.
+ - name: digest_or_tag
+ in: path
+ required: true
+ schema:
+ type: string
+ description: Digest or tag of an image.
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImageResponse'
+ '400':
+ $ref: '#/components/responses/BadRequestError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedError'
+ '403':
+ $ref: '#/components/responses/ForbiddenError'
+ '404':
+ $ref: '#/components/responses/NotFoundError'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsError'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+components:
+ schemas:
+ RegistryRequest:
+ type: object
+ description: Container Registry Request Object.
+ properties:
+ name:
+ type: string
+ description: A unique, global name for the container registry. It must be written in lowercase letters and consists only of numbers and letters, up to a limit of 63 characters.
+ required:
+ - name
+ example:
+ name: cool_registry
+ CreateRegistryResponse:
+ type: object
+ description: Container Registry's creation response.
+ properties:
+ id:
+ type: string
+ description: Container Registry's UUID.
+ name:
+ type: string
+ description: A unique, global name for the container registry. It must be written in lowercase letters and consists only of numbers and letters, up to a limit of 63 characters.
+ required:
+ - id
+ - name
+ example:
+ id: 0c6bbd87-881a-4bf8-b3f6-4ff3ceacb42c
+ name: cool_registry
+ RegistriesResponse:
+ type: object
+ description: Container registry information response object.
+ required:
+ - results
+ properties:
+ results:
+ type: array
+ description: List of user registries.
+ items:
+ $ref: '#/components/schemas/RegistryResponse'
+ RegistryResponse:
+ type: object
+ description: Container Registry's response data.
+ required:
+ - id
+ - name
+ - storage_usage_bytes
+ - created_at
+ - updated_at
+ properties:
+ id:
+ type: string
+ description: Container Registry's UUID.
+ name:
+ type: string
+ description: Name of the container registry created.
+ storage_usage_bytes:
+ type: integer
+ description: Storage used in bytes.
+ created_at:
+ type: string
+ description: Date and time of creation of the container registry.
+ updated_at:
+ type: string
+ description: Date and time of the last change to the container registry.
+ example:
+ id: 0c6bbd87-881a-4bf8-b3f6-4ff3ceacb42c
+ name: cool_registry
+ storage_usage_bytes: 12345
+ created_at: "2024-05-15T19:56:47Z"
+ updated_at: "2024-05-15T19:56:47Z"
+ RepositoriesResponse:
+ type: object
+ description: Information returned about the container registry repository.
+ required:
+ - results
+ properties:
+ goal:
+ $ref: '#/components/schemas/AmountRepositoryResponse'
+ results:
+ type: array
+ description: Information about the container registry repositories.
+ items:
+ $ref: '#/components/schemas/RepositoryResponse'
+ RepositoryResponse:
+ type: object
+ description: Information about the repository.
+ required:
+ - registry_name
+ - name
+ - image_count
+ - created_at
+ - updated_at
+ properties:
+ registry_name:
+ type: string
+ description: Name of the container registry.
+ name:
+ type: string
+ description: Name of the repository.
+ image_count:
+ type: integer
+ description: Number of images in the repository.
+ created_at:
+ type: string
+ description: Date and time of creation of the repository.
+ updated_at:
+ type: string
+ description: Date and time of the last change to the repository.
+ example:
+ registry_name: cool_registry
+ name: alpine
+ image_count: 2
+ created_at: "2024-05-15T19:56:47Z"
+ updated_at: "2024-05-15T19:56:47Z"
+ CredentialsResponse:
+ type: object
+ description: User's credentials for authentication to the container registry.
+ required:
+ - username
+ - password
+ - email
+ properties:
+ username:
+ type: string
+ description: Username for authentication to the container registry.
+ password:
+ type: string
+ description: Password for authentication to the container registry.
+ email:
+ type: string
+ description: Email for authentication to the container registry.
+ example:
+ username: e3d49354-35d7-4565-b634-65d8b86aa594
+ password: 62kWa168QL!d4IVwN6wTfTYFv63=Sc1D
+ email: [email protected]
+ AmountRepositoryResponse:
+ type: object
+ description: User's repositories quantity.
+ properties:
+ total:
+ type: integer
+ description: Total number of repositories for a user.
+ example:
+ total: 1
+ ImagesResponse:
+ type: object
+ description: Repository images response.
+ required:
+ - results
+ properties:
+ results:
+ type: array
+ description: List of repository images.
+ items:
+ $ref: '#/components/schemas/ImageResponse'
+ ImageResponse:
+ type: object
+ description: Repository image response data.
+ required:
+ - digest
+ - size_bytes
+ - pushed_at
+ - pulled_at
+ - tags
+ properties:
+ digest:
+ type: string
+ description: Image digest.
+ size_bytes:
+ type: integer
+ description: Image size in bytes.
+ pushed_at:
+ type: string
+ description: Date and time when the image was pushed.
+ pulled_at:
+ type: string
+ description: Date and time when the image was pulled.
+ manifest_media_type:
+ type: string
+ description: The manifest media type of the image.
+ media_type:
+ type: string
+ description: The media type of the image.
+ tags:
+ type: array
+ description: Tags of the image.
+ items:
+ type: string
+ description: Tag names.
+ tags_details:
+ type: array
+ description: Tags details of the image
+ items:
+ $ref: '#/components/schemas/ImageTagResponse'
+ extra_attr:
+ type: object
+ description: Extra attributes about the image.
+ example:
+ digest: sha256:aef9ff594b36575be6248901a4e5a9bad031f3e0fd42c33a6d2bd501dde5e955
+ size_bytes: 3552429
+ pushed_at: "2024-05-15T19:56:47Z"
+ pulled_at: "2024-05-15T19:56:47Z"
+ tags:
+ - latest
+ manifest_media_type: "application/vnd.docker.distribution.manifest.v2+json"
+ media_type: "application/vnd.docker.container.image.v1+json"
+ tags_details:
+ - name: latest
+ pushed_at: "2024-05-15T19:56:47Z"
+ pulled_at: "2024-05-15T19:56:47Z"
+ signed: false
+ extra_attr: {}
+ ImageTagResponse:
+ type: object
+ description: Tag of an image response.
+ properties:
+ name:
+ type: string
+ description: Tag name.
+ pushed_at:
+ type: string
+ description: Date and time when the tag was pushed.
+ pulled_at:
+ type: string
+ description: Date and time when the tag was pulled.
+ signed:
+ type: boolean
+ description: Boolean value indicating if the image is signed or not.
+ example:
+ name: latest
+ pushed_at: "2024-05-15T19:56:47Z"
+ pulled_at: "2024-05-15T19:56:47Z"
+ signed: false
+ Error:
+ type: object
+ required:
+ - slug
+ - message
+ description: Details regarding an error.
+ properties:
+ slug:
+ type: string
+ description: Identifier corresponding to the error type.
+ message:
+ type: string
+ description: Detailed message with information about the error.
+ detail:
+ type: object
+ description: Details about the error.
+ securitySchemes:
+ BearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+ OAuth2:
+ flows:
+ authorizationCode:
+ authorizationUrl: 'https://idp-maas-sandbox.ipet.sh/auth/realms/master/protocol/openid-connect/auth'
+ tokenUrl: 'https://idp-maas-sandbox.ipet.sh/auth/realms/master/protocol/openid-connect/token'
+ scopes:
+ mcr.read: Read IaaS resource information
+ mcr.write: Write IaaS resource information
+ type: oauth2
+ description: OAuth2 via IDPA
+ responses:
+ InternalServerError:
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ example:
+ slug: internal_server_error
+ message: "error when getting resource: timeout"
+ detail: {}
+ BadRequestError:
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ example:
+ slug: bad_request
+ message: "invalid param"
+ detail: {}
+ NotFoundError:
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ example:
+ slug: not_found
+ message: "error when getting resource: not found"
+ detail: {}
+ UnauthorizedError:
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ example:
+ slug: unauthorized
+ message: "invalid email on token"
+ detail: {}
+ ForbiddenError:
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ example:
+ slug: forbidden
+ message: "user not allowed"
+ detail: {}
+ ConflictError:
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ example:
+ slug: conflict
+ message: "resource already exists"
+ detail: {}
+ TooManyRequestsError:
+ description: Too Many Requests
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ example:
+ slug: too_many_requests
+ message: "too many requests"
+ detail: {}
+tags:
+ - name: credentials
+ description: Routes related to credentials to login to Docker.
+ - name: registries
+ description: Routes related to creation, listing and deletion of registries.
+ - name: repositories
+ description: Routes related to listing and deletion of repositories.
+ - name: images
+ description: Routes related to listing and deletion of images.
No changes detected in this commit. |
daveshanley
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is so much copy pasta in this project already, but it's required because it's so poorly constructed. I am going to revamp this entire tool this year.
|
Your tests are failing. Would you be able to fix them? Also thank you for this contribution! |
Ah, no worries.. we've all been there and we're here to help transform this into something even better.
Fixed |
Are you sure? :) |

Hello everyone. I'm submitting this pull request with the proposal to add the markdown-report option.
I had this need in a project and thought it was worth the contribution :)
I'm leaving the output from my example in the comments.
Note: I still haven't been able to run tests using url-origin url-updated or git. I'd appreciate it if someone could help...
Thanks!