diff --git a/internal/cloudapi/v2/openapi.v2.gen.go b/internal/cloudapi/v2/openapi.v2.gen.go index 1f8748296..7103130f4 100644 --- a/internal/cloudapi/v2/openapi.v2.gen.go +++ b/internal/cloudapi/v2/openapi.v2.gen.go @@ -656,6 +656,20 @@ type DNFPluginConfig struct { Enabled *bool `json:"enabled,omitempty"` } +// DepsolveRequest defines model for DepsolveRequest. +type DepsolveRequest struct { + Architecture string `json:"architecture"` + Blueprint Blueprint `json:"blueprint"` + Distribution string `json:"distribution"` + Repositories *[]Repository `json:"repositories,omitempty"` +} + +// DepsolveResponse defines model for DepsolveResponse. +type DepsolveResponse struct { + // Package list including NEVRA + Packages []PackageMetadata `json:"packages"` +} + // A custom directory to create in the final artifact. type Directory struct { // Ensure that the parent directories exist @@ -1038,7 +1052,10 @@ type PackageGroup struct { // PackageMetadata defines model for PackageMetadata. type PackageMetadata struct { - Arch string `json:"arch"` + Arch string `json:"arch"` + + // Optional package checksum using ALGO:HASH form + Checksum *string `json:"checksum,omitempty"` Epoch *string `json:"epoch,omitempty"` Name string `json:"name"` Release string `json:"release"` @@ -1229,6 +1246,9 @@ type PostComposeJSONBody ComposeRequest // PostCloneComposeJSONBody defines parameters for PostCloneCompose. type PostCloneComposeJSONBody CloneComposeBody +// PostDepsolveBlueprintJSONBody defines parameters for PostDepsolveBlueprint. +type PostDepsolveBlueprintJSONBody DepsolveRequest + // GetErrorListParams defines parameters for GetErrorList. type GetErrorListParams struct { // Page index @@ -1244,6 +1264,9 @@ type PostComposeJSONRequestBody PostComposeJSONBody // PostCloneComposeJSONRequestBody defines body for PostCloneCompose for application/json ContentType. type PostCloneComposeJSONRequestBody PostCloneComposeJSONBody +// PostDepsolveBlueprintJSONRequestBody defines body for PostDepsolveBlueprint for application/json ContentType. +type PostDepsolveBlueprintJSONRequestBody PostDepsolveBlueprintJSONBody + // ServerInterface represents all server handlers. type ServerInterface interface { // The status of a cloned compose @@ -1270,6 +1293,9 @@ type ServerInterface interface { // Get the SBOMs for a compose. // (GET /composes/{id}/sboms) GetComposeSBOMs(ctx echo.Context, id string) error + // Depsolve one or more blueprints + // (POST /depsolve/blueprint) + PostDepsolveBlueprint(ctx echo.Context) error // Get a list of all possible errors // (GET /errors) GetErrorList(ctx echo.Context, params GetErrorListParams) error @@ -1415,6 +1441,17 @@ func (w *ServerInterfaceWrapper) GetComposeSBOMs(ctx echo.Context) error { return err } +// PostDepsolveBlueprint converts echo context to params. +func (w *ServerInterfaceWrapper) PostDepsolveBlueprint(ctx echo.Context) error { + var err error + + ctx.Set(BearerScopes, []string{""}) + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostDepsolveBlueprint(ctx) + return err +} + // GetErrorList converts echo context to params. func (w *ServerInterfaceWrapper) GetErrorList(ctx echo.Context) error { var err error @@ -1507,6 +1544,7 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL router.GET(baseURL+"/composes/:id/manifests", wrapper.GetComposeManifests) router.GET(baseURL+"/composes/:id/metadata", wrapper.GetComposeMetadata) router.GET(baseURL+"/composes/:id/sboms", wrapper.GetComposeSBOMs) + router.POST(baseURL+"/depsolve/blueprint", wrapper.PostDepsolveBlueprint) router.GET(baseURL+"/errors", wrapper.GetErrorList) router.GET(baseURL+"/errors/:id", wrapper.GetError) router.GET(baseURL+"/openapi", wrapper.GetOpenapi) @@ -1516,191 +1554,195 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/internal/cloudapi/v2/openapi.v2.yml b/internal/cloudapi/v2/openapi.v2.yml index 63537607c..34ba000e7 100644 --- a/internal/cloudapi/v2/openapi.v2.yml +++ b/internal/cloudapi/v2/openapi.v2.yml @@ -397,6 +397,50 @@ paths: schema: $ref: '#/components/schemas/Error' + /depsolve/blueprint: + post: + operationId: postDepsolveBlueprint + summary: Depsolve one or more blueprints + security: + - Bearer: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DepsolveRequest' + responses: + '200': + description: Depsolved package list + content: + application/json: + schema: + $ref: '#/components/schemas/DepsolveResponse' + '400': + description: Invalid depsolve request + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Auth token is invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Unauthorized to perform operation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Unexpected error occurred + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /errors/{id}: get: operationId: getError @@ -829,6 +873,10 @@ components: type: string signature: type: string + checksum: + type: string + description: 'Optional package checksum using ALGO:HASH form' + example: 'sha256:525788de3dd44497c27d4172568366b20380a6b6707f0a1970473e4d97046a4f' ComposeRequest: additionalProperties: false @@ -2208,6 +2256,37 @@ components: - $ref: '#/components/schemas/ObjectReference' - $ref: '#/components/schemas/UploadStatus' + DepsolveRequest: + additionalProperties: false + required: + - blueprint + - distribution + - architecture + properties: + repositories: + type: array + items: + $ref: '#/components/schemas/Repository' + distribution: + type: string + example: 'rhel-8' + architecture: + type: string + example: 'x86_64' + blueprint: + $ref: '#/components/schemas/Blueprint' + + DepsolveResponse: + type: object + required: + - packages + properties: + packages: + type: array + items: + $ref: '#/components/schemas/PackageMetadata' + description: 'Package list including NEVRA' + parameters: page: name: page