diff --git a/api/schema/contentSources.json b/api/schema/contentSources.json index 1c9fa416..654a7362 100644 --- a/api/schema/contentSources.json +++ b/api/schema/contentSources.json @@ -18,6 +18,9 @@ "type": "array" } }, + "required": [ + "uploads" + ], "type": "object" }, "api.Artifact": { @@ -35,6 +38,13 @@ }, "api.ContentUnitSearchRequest": { "properties": { + "exact_names": { + "description": "List of names to search using an exact match", + "items": { + "type": "string" + }, + "type": "array" + }, "limit": { "description": "Maximum number of records to return for the search", "type": "integer" @@ -67,6 +77,9 @@ "type": "integer" } }, + "required": [ + "size" + ], "type": "object" }, "api.DetectRpmsRequest": { @@ -144,6 +157,9 @@ "type": "string" } }, + "required": [ + "url" + ], "type": "object" }, "api.FetchGPGKeyResponse": { @@ -207,6 +223,10 @@ "type": "array" } }, + "required": [ + "date", + "repository_uuids" + ], "type": "object" }, "api.ListSnapshotByDateResponse": { @@ -404,6 +424,9 @@ "type": "array" } }, + "required": [ + "repository_uuids" + ], "type": "object" }, "api.RepositoryExportResponse": { @@ -527,6 +550,10 @@ "description": "Timestamp of last introspection that had updates", "type": "string" }, + "latest_snapshot_url": { + "description": "Latest URL for the snapshot distribution", + "type": "string" + }, "metadata_verification": { "description": "Verify packages", "type": "boolean" @@ -702,6 +729,9 @@ "type": "string" } }, + "required": [ + "name" + ], "type": "object" }, "api.RepositoryResponse": { @@ -777,6 +807,10 @@ "description": "Timestamp of last introspection that had updates", "type": "string" }, + "latest_snapshot_url": { + "description": "Latest URL for the snapshot distribution", + "type": "string" + }, "metadata_verification": { "description": "Verify packages", "type": "boolean" @@ -1380,6 +1414,12 @@ "type": "string" } }, + "required": [ + "arch", + "name", + "repository_uuids", + "version" + ], "type": "object" }, "api.TemplateResponse": { @@ -1499,6 +1539,9 @@ "type": "array" } }, + "required": [ + "uuids" + ], "type": "object" }, "api.Upload": { @@ -2807,6 +2850,159 @@ ] } }, + "/repositories/{repo_uuid}/snapshots/bulk_delete/": { + "post": { + "description": "This enables deleting specified snapshots from a repository.", + "operationId": "bulkDeleteSnapshots", + "parameters": [ + { + "description": "Repository UUID.", + "in": "path", + "name": "repo_uuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/api.UUIDListRequest" + } + } + }, + "description": "Identifiers of the snapshots", + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "description": "Snapshots were successfully deleted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Bulk delete a snapshots", + "tags": [ + "snapshots" + ] + } + }, + "/repositories/{repo_uuid}/snapshots/{snapshot_uuid}": { + "delete": { + "description": "This enables deleting a specific snapshot.", + "operationId": "deleteSnapshot", + "parameters": [ + { + "description": "Repository UUID.", + "in": "path", + "name": "repo_uuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Snapshot UUID.", + "in": "path", + "name": "snapshot_uuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Snapshot was successfully deleted" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Delete a snapshot", + "tags": [ + "snapshots" + ] + } + }, "/repositories/{uuid}": { "delete": { "description": "This enables deleting a specific repository.", @@ -3205,6 +3401,78 @@ ] } }, + "/repositories/{uuid}/config.repo": { + "get": { + "operationId": "getLatestRepoConfigurationFile", + "parameters": [ + { + "description": "Repository ID.", + "in": "path", + "name": "uuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "404": { + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/errors.ErrorResponse" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Get latest configuration file for a repository", + "tags": [ + "repositories" + ] + } + }, "/repositories/{uuid}/environments": { "get": { "description": "List environments in a repository.", @@ -4118,6 +4386,7 @@ }, "/rpms/presence": { "post": { + "deprecated": true, "description": "This enables users to detect presence of RPMs (Red Hat Package Manager) in a given list of repositories.", "operationId": "detectRpm", "requestBody": { @@ -5071,6 +5340,14 @@ "type": "string" } }, + { + "description": "Filter templates by associated snapshots using a comma separated list of snapshot UUIDs", + "in": "query", + "name": "snapshot_uuids", + "schema": { + "type": "string" + } + }, { "description": "Sort the response data based on specific parameters. Sort criteria can include `name`, `arch`, and `version`.", "in": "query", diff --git a/src/store/contentSourcesApi.ts b/src/store/contentSourcesApi.ts index 2b8f296b..2a90badb 100644 --- a/src/store/contentSourcesApi.ts +++ b/src/store/contentSourcesApi.ts @@ -185,6 +185,8 @@ export type ErrorsErrorResponse = { errors?: ErrorsHandlerError[]; }; export type ApiContentUnitSearchRequest = { + /** List of names to search using an exact match */ + exact_names?: string[]; /** Maximum number of records to return for the search */ limit?: number; /** Search string to search content unit names */ @@ -274,6 +276,8 @@ export type ApiRepositoryResponse = { last_success_introspection_time?: string; /** Timestamp of last introspection that had updates */ last_update_introspection_time?: string; + /** Latest URL for the snapshot distribution */ + latest_snapshot_url?: string; /** Verify packages */ metadata_verification?: boolean; /** Disable modularity filtering on this repository */ @@ -322,6 +326,8 @@ export type ApiRepositoryResponseRead = { last_success_introspection_time?: string; /** Timestamp of last introspection that had updates */ last_update_introspection_time?: string; + /** Latest URL for the snapshot distribution */ + latest_snapshot_url?: string; /** Verify packages */ metadata_verification?: boolean; /** Disable modularity filtering on this repository */ @@ -385,7 +391,7 @@ export type ApiRepositoryRequest = { /** Disable modularity filtering on this repository */ module_hotfixes?: boolean; /** Name of the remote yum repository */ - name?: string; + name: string; /** Enable snapshotting and hosting of this repository */ snapshot?: boolean; /** URL of the remote yum repository */ @@ -403,7 +409,7 @@ export type ApiRepositoryRequestRead = { /** Disable modularity filtering on this repository */ module_hotfixes?: boolean; /** Name of the remote yum repository */ - name?: string; + name: string; /** Origin of the repository */ origin?: string; /** Enable snapshotting and hosting of this repository */ @@ -454,9 +460,9 @@ export type ApiListSnapshotByDateResponse = { }; export type ApiListSnapshotByDateRequest = { /** Exact date to search by. */ - date?: string; + date: string; /** Repository UUIDs to find snapshots for */ - repository_uuids?: string[]; + repository_uuids: string[]; }; export const { useListFeaturesQuery,