From 3f36d373c466ed988060c0fc13d5af6bea3fefe4 Mon Sep 17 00:00:00 2001 From: Simon Murray Date: Wed, 5 Jun 2024 14:19:16 +0100 Subject: [PATCH] Share API Errors Ensure consistency across services. --- go.mod | 2 +- go.sum | 4 +- pkg/openapi/client.go | 225 +++++++++---------- pkg/openapi/schema.go | 228 ++++++++++---------- pkg/openapi/server.spec.yaml | 192 ++++++----------- pkg/openapi/types.go | 49 ----- pkg/server/handler/application/client.go | 2 +- pkg/server/handler/cluster/conversion.go | 2 +- pkg/server/handler/clustermanager/client.go | 2 +- pkg/server/handler/region/region.go | 2 +- 10 files changed, 296 insertions(+), 412 deletions(-) diff --git a/go.mod b/go.mod index 473a24f1..cb3f8196 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/prometheus/client_golang v1.19.0 github.com/spdx/tools-golang v0.5.3 github.com/spf13/pflag v1.0.5 - github.com/unikorn-cloud/core v0.1.41 + github.com/unikorn-cloud/core v0.1.43 go.opentelemetry.io/otel v1.24.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 go.opentelemetry.io/otel/sdk v1.24.0 diff --git a/go.sum b/go.sum index aded6c31..66ce1ae9 100644 --- a/go.sum +++ b/go.sum @@ -179,8 +179,8 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/unikorn-cloud/core v0.1.41 h1:hjiGB8lZkLR3306BlR/jy6Bx2uvecm0W8YFE2GrdVDY= -github.com/unikorn-cloud/core v0.1.41/go.mod h1:cP39UQN7aSmsfjQuSMsworI4oBIwx4oA4u20CbPpfZw= +github.com/unikorn-cloud/core v0.1.43 h1:QszxVqWaZXIzSlf0qkHa5m8cRnjKGvHjM8iUk0Y3U9A= +github.com/unikorn-cloud/core v0.1.43/go.mod h1:cP39UQN7aSmsfjQuSMsworI4oBIwx4oA4u20CbPpfZw= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= diff --git a/pkg/openapi/client.go b/pkg/openapi/client.go index ad187b38..8aa6f2ad 100644 --- a/pkg/openapi/client.go +++ b/pkg/openapi/client.go @@ -14,6 +14,7 @@ import ( "strings" "github.com/oapi-codegen/runtime" + externalRef0 "github.com/unikorn-cloud/core/pkg/openapi" ) // RequestEditorFn is the function signature for the RequestEditor callback function @@ -1000,9 +1001,9 @@ type GetApiV1ApplicationsResponse struct { Body []byte HTTPResponse *http.Response JSON200 *ApplicationResponse - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1025,11 +1026,11 @@ type GetApiV1OrganizationsOrganizationIDClustermanagersResponse struct { Body []byte HTTPResponse *http.Response JSON200 *ClusterManagersResponse - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON403 *ForbiddenResponse - JSON404 *NotFoundResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON403 *externalRef0.ForbiddenResponse + JSON404 *externalRef0.NotFoundResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1052,11 +1053,11 @@ type GetApiV1OrganizationsOrganizationIDClustersResponse struct { Body []byte HTTPResponse *http.Response JSON200 *KubernetesClustersResponse - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON403 *ForbiddenResponse - JSON404 *NotFoundResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON403 *externalRef0.ForbiddenResponse + JSON404 *externalRef0.NotFoundResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1078,11 +1079,11 @@ func (r GetApiV1OrganizationsOrganizationIDClustersResponse) StatusCode() int { type PostApiV1OrganizationsOrganizationIDProjectsProjectIDClustermanagersResponse struct { Body []byte HTTPResponse *http.Response - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON403 *ForbiddenResponse - JSON409 *ConflictResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON403 *externalRef0.ForbiddenResponse + JSON409 *externalRef0.ConflictResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1104,11 +1105,11 @@ func (r PostApiV1OrganizationsOrganizationIDProjectsProjectIDClustermanagersResp type DeleteApiV1OrganizationsOrganizationIDProjectsProjectIDClustermanagersClusterManagerIDResponse struct { Body []byte HTTPResponse *http.Response - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON403 *ForbiddenResponse - JSON404 *NotFoundResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON403 *externalRef0.ForbiddenResponse + JSON404 *externalRef0.NotFoundResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1130,11 +1131,11 @@ func (r DeleteApiV1OrganizationsOrganizationIDProjectsProjectIDClustermanagersCl type PutApiV1OrganizationsOrganizationIDProjectsProjectIDClustermanagersClusterManagerIDResponse struct { Body []byte HTTPResponse *http.Response - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON403 *ForbiddenResponse - JSON404 *NotFoundResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON403 *externalRef0.ForbiddenResponse + JSON404 *externalRef0.NotFoundResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1156,11 +1157,11 @@ func (r PutApiV1OrganizationsOrganizationIDProjectsProjectIDClustermanagersClust type PostApiV1OrganizationsOrganizationIDProjectsProjectIDClustersResponse struct { Body []byte HTTPResponse *http.Response - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON403 *ForbiddenResponse - JSON409 *ConflictResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON403 *externalRef0.ForbiddenResponse + JSON409 *externalRef0.ConflictResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1182,11 +1183,11 @@ func (r PostApiV1OrganizationsOrganizationIDProjectsProjectIDClustersResponse) S type DeleteApiV1OrganizationsOrganizationIDProjectsProjectIDClustersClusterIDResponse struct { Body []byte HTTPResponse *http.Response - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON403 *ForbiddenResponse - JSON404 *NotFoundResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON403 *externalRef0.ForbiddenResponse + JSON404 *externalRef0.NotFoundResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1208,11 +1209,11 @@ func (r DeleteApiV1OrganizationsOrganizationIDProjectsProjectIDClustersClusterID type PutApiV1OrganizationsOrganizationIDProjectsProjectIDClustersClusterIDResponse struct { Body []byte HTTPResponse *http.Response - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON403 *ForbiddenResponse - JSON404 *NotFoundResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON403 *externalRef0.ForbiddenResponse + JSON404 *externalRef0.NotFoundResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1234,11 +1235,11 @@ func (r PutApiV1OrganizationsOrganizationIDProjectsProjectIDClustersClusterIDRes type GetApiV1OrganizationsOrganizationIDProjectsProjectIDClustersClusterIDKubeconfigResponse struct { Body []byte HTTPResponse *http.Response - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON403 *ForbiddenResponse - JSON404 *NotFoundResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON403 *externalRef0.ForbiddenResponse + JSON404 *externalRef0.NotFoundResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1261,8 +1262,8 @@ type GetApiV1RegionsResponse struct { Body []byte HTTPResponse *http.Response JSON200 *RegionsResponse - JSON401 *UnauthorizedResponse - JSON500 *InternalServerErrorResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1285,9 +1286,9 @@ type GetApiV1RegionsRegionIDFlavorsResponse struct { Body []byte HTTPResponse *http.Response JSON200 *FlavorsResponse - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1310,9 +1311,9 @@ type GetApiV1RegionsRegionIDImagesResponse struct { Body []byte HTTPResponse *http.Response JSON200 *ImagesResponse - JSON400 *BadRequestResponse - JSON401 *UnauthorizedResponse - JSON500 *InternalServerErrorResponse + JSON400 *externalRef0.BadRequestResponse + JSON401 *externalRef0.UnauthorizedResponse + JSON500 *externalRef0.InternalServerErrorResponse } // Status returns HTTPResponse.Status @@ -1502,21 +1503,21 @@ func ParseGetApiV1ApplicationsResponse(rsp *http.Response) (*GetApiV1Application response.JSON200 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -1549,35 +1550,35 @@ func ParseGetApiV1OrganizationsOrganizationIDClustermanagersResponse(rsp *http.R response.JSON200 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest ForbiddenResponse + var dest externalRef0.ForbiddenResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON403 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: - var dest NotFoundResponse + var dest externalRef0.NotFoundResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON404 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -1610,35 +1611,35 @@ func ParseGetApiV1OrganizationsOrganizationIDClustersResponse(rsp *http.Response response.JSON200 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest ForbiddenResponse + var dest externalRef0.ForbiddenResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON403 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: - var dest NotFoundResponse + var dest externalRef0.NotFoundResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON404 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -1664,35 +1665,35 @@ func ParsePostApiV1OrganizationsOrganizationIDProjectsProjectIDClustermanagersRe switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest ForbiddenResponse + var dest externalRef0.ForbiddenResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON403 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: - var dest ConflictResponse + var dest externalRef0.ConflictResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON409 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -1718,35 +1719,35 @@ func ParseDeleteApiV1OrganizationsOrganizationIDProjectsProjectIDClustermanagers switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest ForbiddenResponse + var dest externalRef0.ForbiddenResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON403 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: - var dest NotFoundResponse + var dest externalRef0.NotFoundResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON404 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -1772,35 +1773,35 @@ func ParsePutApiV1OrganizationsOrganizationIDProjectsProjectIDClustermanagersClu switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest ForbiddenResponse + var dest externalRef0.ForbiddenResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON403 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: - var dest NotFoundResponse + var dest externalRef0.NotFoundResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON404 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -1826,35 +1827,35 @@ func ParsePostApiV1OrganizationsOrganizationIDProjectsProjectIDClustersResponse( switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest ForbiddenResponse + var dest externalRef0.ForbiddenResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON403 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: - var dest ConflictResponse + var dest externalRef0.ConflictResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON409 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -1880,35 +1881,35 @@ func ParseDeleteApiV1OrganizationsOrganizationIDProjectsProjectIDClustersCluster switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest ForbiddenResponse + var dest externalRef0.ForbiddenResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON403 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: - var dest NotFoundResponse + var dest externalRef0.NotFoundResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON404 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -1934,35 +1935,35 @@ func ParsePutApiV1OrganizationsOrganizationIDProjectsProjectIDClustersClusterIDR switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest ForbiddenResponse + var dest externalRef0.ForbiddenResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON403 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: - var dest NotFoundResponse + var dest externalRef0.NotFoundResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON404 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -1988,35 +1989,35 @@ func ParseGetApiV1OrganizationsOrganizationIDProjectsProjectIDClustersClusterIDK switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest ForbiddenResponse + var dest externalRef0.ForbiddenResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON403 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: - var dest NotFoundResponse + var dest externalRef0.NotFoundResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON404 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -2049,14 +2050,14 @@ func ParseGetApiV1RegionsResponse(rsp *http.Response) (*GetApiV1RegionsResponse, response.JSON200 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -2089,21 +2090,21 @@ func ParseGetApiV1RegionsRegionIDFlavorsResponse(rsp *http.Response) (*GetApiV1R response.JSON200 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } @@ -2136,21 +2137,21 @@ func ParseGetApiV1RegionsRegionIDImagesResponse(rsp *http.Response) (*GetApiV1Re response.JSON200 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest BadRequestResponse + var dest externalRef0.BadRequestResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON400 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest UnauthorizedResponse + var dest externalRef0.UnauthorizedResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON401 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest InternalServerErrorResponse + var dest externalRef0.InternalServerErrorResponse if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } diff --git a/pkg/openapi/schema.go b/pkg/openapi/schema.go index 32a9dece..af410de3 100644 --- a/pkg/openapi/schema.go +++ b/pkg/openapi/schema.go @@ -19,120 +19,120 @@ import ( // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "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", - "FwAA///D2MnBin4AAA==", + "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", + "52KP/F8AAAD//6Lk/B54fgAA", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/pkg/openapi/server.spec.yaml b/pkg/openapi/server.spec.yaml index 0c5d9708..dcae77cf 100644 --- a/pkg/openapi/server.spec.yaml +++ b/pkg/openapi/server.spec.yaml @@ -45,15 +45,15 @@ paths: '200': $ref: '#/components/responses/clusterManagersResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '403': - $ref: '#/components/responses/forbiddenResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/forbiddenResponse' '404': - $ref: '#/components/responses/notFoundResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/notFoundResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/organizations/{organizationID}/projects/{projectID}/clustermanagers: description: |- Implements cluster manager management services. Control planes manage the @@ -74,17 +74,17 @@ paths: $ref: '#/components/requestBodies/createControlPlaneRequest' responses: '202': - $ref: '#/components/responses/acceptedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/acceptedResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '403': - $ref: '#/components/responses/forbiddenResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/forbiddenResponse' '409': - $ref: '#/components/responses/conflictResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/conflictResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/organizations/{organizationID}/projects/{projectID}/clustermanagers/{clusterManagerID}: x-documentation-group: main description: |- @@ -107,17 +107,17 @@ paths: $ref: '#/components/requestBodies/createControlPlaneRequest' responses: '202': - $ref: '#/components/responses/acceptedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/acceptedResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '403': - $ref: '#/components/responses/forbiddenResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/forbiddenResponse' '404': - $ref: '#/components/responses/notFoundResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/notFoundResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' delete: description: |- Deletes a cluster manager from within the scoped project. @@ -126,17 +126,17 @@ paths: - oauth2Authentication: [] responses: '202': - $ref: '#/components/responses/acceptedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/acceptedResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '403': - $ref: '#/components/responses/forbiddenResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/forbiddenResponse' '404': - $ref: '#/components/responses/notFoundResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/notFoundResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/organizations/{organizationID}/clusters: x-documentation-group: main description: Cluster services. @@ -151,15 +151,15 @@ paths: '200': $ref: '#/components/responses/kubernetesClustersResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '403': - $ref: '#/components/responses/forbiddenResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/forbiddenResponse' '404': - $ref: '#/components/responses/notFoundResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/notFoundResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/organizations/{organizationID}/projects/{projectID}/clusters: x-documentation-group: main description: Cluster services. @@ -175,17 +175,17 @@ paths: $ref: '#/components/requestBodies/createKubernetesClusterRequest' responses: '202': - $ref: '#/components/responses/acceptedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/acceptedResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '403': - $ref: '#/components/responses/forbiddenResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/forbiddenResponse' '409': - $ref: '#/components/responses/conflictResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/conflictResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/organizations/{organizationID}/projects/{projectID}/clusters/{clusterID}: x-documentation-group: main description: Cluster services. @@ -202,17 +202,17 @@ paths: $ref: '#/components/requestBodies/createKubernetesClusterRequest' responses: '202': - $ref: '#/components/responses/acceptedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/acceptedResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '403': - $ref: '#/components/responses/forbiddenResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/forbiddenResponse' '404': - $ref: '#/components/responses/notFoundResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/notFoundResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' delete: description: |- Delete a cluster from within a the selected cluster manager. @@ -220,17 +220,17 @@ paths: - oauth2Authentication: [] responses: '202': - $ref: '#/components/responses/acceptedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/acceptedResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '403': - $ref: '#/components/responses/forbiddenResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/forbiddenResponse' '404': - $ref: '#/components/responses/notFoundResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/notFoundResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/organizations/{organizationID}/projects/{projectID}/clusters/{clusterID}/kubeconfig: x-documentation-group: main description: Cluster services. @@ -247,15 +247,15 @@ paths: '200': $ref: '#/components/responses/kubernetesClusterKubeconfigResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '403': - $ref: '#/components/responses/forbiddenResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/forbiddenResponse' '404': - $ref: '#/components/responses/notFoundResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/notFoundResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/applications: x-documentation-group: main description: Cluster application services. @@ -268,11 +268,11 @@ paths: '200': $ref: '#/components/responses/applicationResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/regions: description: |- Regions define a cloud. This may be geographical or any logical partition. @@ -290,9 +290,9 @@ paths: '200': $ref: '#/components/responses/regionsResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/regions/{regionID}/flavors: description: Compute flavor services. parameters: @@ -306,11 +306,11 @@ paths: '200': $ref: '#/components/responses/flavorsResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' /api/v1/regions/{regionID}/images: description: Compute image services. parameters: @@ -324,11 +324,11 @@ paths: '200': $ref: '#/components/responses/imagesResponse' '400': - $ref: '#/components/responses/badRequestResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/badRequestResponse' '401': - $ref: '#/components/responses/unauthorizedResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/unauthorizedResponse' '500': - $ref: '#/components/responses/internalServerErrorResponse' + $ref: 'https://raw.githubusercontent.com/unikorn-cloud/core/main/pkg/openapi/common.spec.yaml#/components/responses/internalServerErrorResponse' components: parameters: organizationIDParameter: @@ -794,74 +794,6 @@ components: replicas: 3 name: default responses: - acceptedResponse: - description: |- - The request has been accepted and will be fulfilled asynchronously. - You may poll the resource and monitor its status for completion. - badRequestResponse: - description: |- - Request body failed schema validation, or the request does not contain - all the required fields. - content: - application/json: - schema: - $ref: '#/components/schemas/oauth2Error' - example: - error: invalid_request - error_description: request body invalid - unauthorizedResponse: - description: |- - Authentication failed or the access token has expired. - content: - application/json: - schema: - $ref: '#/components/schemas/oauth2Error' - example: - error: access_denied - error_description: authentication failed - forbiddenResponse: - description: |- - Request was denied by authorisation, this may be caused by the authorisation - token not having the required scope for an API, or the user doesn't have the - necessary privileges on the provider platform. - content: - application/json: - schema: - $ref: '#/components/schemas/oauth2Error' - example: - error: forbidden - error_description: user credentials do not have the required privileges - notFoundResponse: - description: |- - Unable to find a resource. - content: - application/json: - schema: - $ref: '#/components/schemas/oauth2Error' - example: - error: not_found - error_description: the requested resource does not exist - conflictResponse: - description: |- - Resource conflicts with another, usually this means they have the same name. - content: - application/json: - schema: - $ref: '#/components/schemas/oauth2Error' - example: - error: conflict - error_description: a resource with the same name already exists - internalServerErrorResponse: - description: |- - An unexpected error occurred, this may be an unexpected transient error and - may succeed on a retry. If this isn't the case, please report it as an issue. - content: - application/json: - schema: - $ref: '#/components/schemas/oauth2Error' - example: - error: server_error - error_description: failed to token claim regionsResponse: description: A list of regions. content: diff --git a/pkg/openapi/types.go b/pkg/openapi/types.go index bb684b37..94b4a85e 100644 --- a/pkg/openapi/types.go +++ b/pkg/openapi/types.go @@ -13,25 +13,6 @@ const ( Oauth2AuthenticationScopes = "oauth2Authentication.Scopes" ) -// Defines values for Oauth2ErrorError. -const ( - AccessDenied Oauth2ErrorError = "access_denied" - Conflict Oauth2ErrorError = "conflict" - Forbidden Oauth2ErrorError = "forbidden" - InvalidClient Oauth2ErrorError = "invalid_client" - InvalidGrant Oauth2ErrorError = "invalid_grant" - InvalidRequest Oauth2ErrorError = "invalid_request" - InvalidScope Oauth2ErrorError = "invalid_scope" - MethodNotAllowed Oauth2ErrorError = "method_not_allowed" - NotFound Oauth2ErrorError = "not_found" - ServerError Oauth2ErrorError = "server_error" - TemporarilyUnavailable Oauth2ErrorError = "temporarily_unavailable" - UnauthorizedClient Oauth2ErrorError = "unauthorized_client" - UnsupportedGrantType Oauth2ErrorError = "unsupported_grant_type" - UnsupportedMediaType Oauth2ErrorError = "unsupported_media_type" - UnsupportedResponseType Oauth2ErrorError = "unsupported_response_type" -) - // ApplicationDependencies A set of applications that will be installed before this application. type ApplicationDependencies = []ApplicationDependency @@ -242,18 +223,6 @@ type MachinePool struct { Replicas *int `json:"replicas,omitempty"` } -// Oauth2Error Generic error message. -type Oauth2Error struct { - // Error A terse error string expanding on the HTTP error code. Errors are based on the OAuth2 specification, but are expanded with proprietary status codes for APIs other than those specified by OAuth2. - Error Oauth2ErrorError `json:"error"` - - // ErrorDescription Verbose message describing the error. - ErrorDescription string `json:"error_description"` -} - -// Oauth2ErrorError A terse error string expanding on the HTTP error code. Errors are based on the OAuth2 specification, but are expanded with proprietary status codes for APIs other than those specified by OAuth2. -type Oauth2ErrorError string - // RegionRead A region. type RegionRead struct { // Metadata Resource metadata valid for all reads. @@ -287,39 +256,21 @@ type RegionIDParameter = KubernetesNameParameter // ApplicationResponse A list of appications. type ApplicationResponse = Applications -// BadRequestResponse Generic error message. -type BadRequestResponse = Oauth2Error - // ClusterManagersResponse A list of cluster managers. type ClusterManagersResponse = ClusterManagers -// ConflictResponse Generic error message. -type ConflictResponse = Oauth2Error - // FlavorsResponse A list of flavors. type FlavorsResponse = Flavors -// ForbiddenResponse Generic error message. -type ForbiddenResponse = Oauth2Error - // ImagesResponse A list of images that are compatible with this platform. type ImagesResponse = Images -// InternalServerErrorResponse Generic error message. -type InternalServerErrorResponse = Oauth2Error - // KubernetesClustersResponse A list of Kubernetes clusters. type KubernetesClustersResponse = KubernetesClusters -// NotFoundResponse Generic error message. -type NotFoundResponse = Oauth2Error - // RegionsResponse A list of regions. type RegionsResponse = Regions -// UnauthorizedResponse Generic error message. -type UnauthorizedResponse = Oauth2Error - // CreateControlPlaneRequest A cluster manager. type CreateControlPlaneRequest = ClusterManagerWrite diff --git a/pkg/server/handler/application/client.go b/pkg/server/handler/application/client.go index ecc6f9ef..b3043b4b 100644 --- a/pkg/server/handler/application/client.go +++ b/pkg/server/handler/application/client.go @@ -79,7 +79,7 @@ func convert(in *unikornv1core.HelmApplication) *openapi.ApplicationRead { } out := &openapi.ApplicationRead{ - Metadata: conversion.ResourceReadMetadata(in, coreopenapi.Provisioned), + Metadata: conversion.ResourceReadMetadata(in, coreopenapi.ResourceProvisioningStatusProvisioned), Spec: openapi.ApplicationSpec{ Documentation: *in.Spec.Documentation, License: *in.Spec.License, diff --git a/pkg/server/handler/cluster/conversion.go b/pkg/server/handler/cluster/conversion.go index d24245ea..060d17f2 100644 --- a/pkg/server/handler/cluster/conversion.go +++ b/pkg/server/handler/cluster/conversion.go @@ -90,7 +90,7 @@ func convertWorkloadPools(in *unikornv1.KubernetesCluster) []openapi.KubernetesC // convert converts from a custom resource into the API definition. func (c *Client) convert(in *unikornv1.KubernetesCluster) *openapi.KubernetesClusterRead { - provisioningStatus := coreopenapi.Unknown + provisioningStatus := coreopenapi.ResourceProvisioningStatusUnknown if condition, err := in.StatusConditionRead(unikornv1core.ConditionAvailable); err == nil { provisioningStatus = conversion.ConvertStatusCondition(condition) diff --git a/pkg/server/handler/clustermanager/client.go b/pkg/server/handler/clustermanager/client.go index 91af107f..9a9c4d03 100644 --- a/pkg/server/handler/clustermanager/client.go +++ b/pkg/server/handler/clustermanager/client.go @@ -116,7 +116,7 @@ func (c *Client) CreateImplicit(ctx context.Context, organizationID, projectID s // convert converts from Kubernetes into OpenAPI types. func (c *Client) convert(in *unikornv1.ClusterManager) *openapi.ClusterManagerRead { - provisioningStatus := coreopenapi.Unknown + provisioningStatus := coreopenapi.ResourceProvisioningStatusUnknown if condition, err := in.StatusConditionRead(unikornv1core.ConditionAvailable); err == nil { provisioningStatus = conversion.ConvertStatusCondition(condition) diff --git a/pkg/server/handler/region/region.go b/pkg/server/handler/region/region.go index 85a5a14a..cc23fefd 100644 --- a/pkg/server/handler/region/region.go +++ b/pkg/server/handler/region/region.go @@ -112,7 +112,7 @@ func (c *Client) Provider(ctx context.Context, regionName string) (providers.Pro func convert(in *unikornv1.Region) *openapi.RegionRead { out := &openapi.RegionRead{ - Metadata: conversion.ResourceReadMetadata(in, coreopenapi.Provisioned), + Metadata: conversion.ResourceReadMetadata(in, coreopenapi.ResourceProvisioningStatusProvisioned), } return out