// Package api provides primitives to interact the openapi HTTP API. // // Code generated by github.com/deepmap/oapi-codegen DO NOT EDIT. package api import ( "bytes" "compress/gzip" "encoding/base64" "encoding/json" "fmt" "github.com/deepmap/oapi-codegen/pkg/runtime" "github.com/getkin/kin-openapi/openapi3" "github.com/labstack/echo/v4" "net/http" "strings" ) // Error defines model for Error. type Error struct { // Embedded struct due to allOf(#/components/schemas/ObjectReference) ObjectReference // Embedded fields due to inline allOf schema Code string `json:"code"` // Backward compatibility with workers <= v33, equals reason Message string `json:"message"` OperationId string `json:"operation_id"` Reason string `json:"reason"` } // GetJobResponse defines model for GetJobResponse. type GetJobResponse struct { // Embedded struct due to allOf(#/components/schemas/ObjectReference) ObjectReference // Embedded fields due to inline allOf schema Canceled bool `json:"canceled"` } // ObjectReference defines model for ObjectReference. type ObjectReference struct { Href string `json:"href"` Id string `json:"id"` Kind string `json:"kind"` } // RequestJobRequest defines model for RequestJobRequest. type RequestJobRequest struct { Arch string `json:"arch"` Types []string `json:"types"` } // RequestJobResponse defines model for RequestJobResponse. type RequestJobResponse struct { // Embedded struct due to allOf(#/components/schemas/ObjectReference) ObjectReference // Embedded fields due to inline allOf schema Args *json.RawMessage `json:"args,omitempty"` ArtifactLocation string `json:"artifact_location"` DynamicArgs *[]json.RawMessage `json:"dynamic_args,omitempty"` Location string `json:"location"` Type string `json:"type"` } // StatusResponse defines model for StatusResponse. type StatusResponse struct { // Embedded struct due to allOf(#/components/schemas/ObjectReference) ObjectReference // Embedded fields due to inline allOf schema Status string `json:"status"` } // UpdateJobRequest defines model for UpdateJobRequest. type UpdateJobRequest struct { Result json.RawMessage `json:"result"` } // UpdateJobResponse defines model for UpdateJobResponse. type UpdateJobResponse ObjectReference // RequestJobJSONBody defines parameters for RequestJob. type RequestJobJSONBody RequestJobRequest // UpdateJobJSONBody defines parameters for UpdateJob. type UpdateJobJSONBody UpdateJobRequest // RequestJobRequestBody defines body for RequestJob for application/json ContentType. type RequestJobJSONRequestBody RequestJobJSONBody // UpdateJobRequestBody defines body for UpdateJob for application/json ContentType. type UpdateJobJSONRequestBody UpdateJobJSONBody // ServerInterface represents all server handlers. type ServerInterface interface { // Get error description // (GET /errors/{id}) GetError(ctx echo.Context, id string) error // Request a job // (POST /jobs) RequestJob(ctx echo.Context) error // Get running job // (GET /jobs/{token}) GetJob(ctx echo.Context, token string) error // Update a running job // (PATCH /jobs/{token}) UpdateJob(ctx echo.Context, token string) error // Upload an artifact // (PUT /jobs/{token}/artifacts/{name}) UploadJobArtifact(ctx echo.Context, token string, name string) error // Get the openapi spec in json format // (GET /openapi) GetOpenapi(ctx echo.Context) error // status // (GET /status) GetStatus(ctx echo.Context) error } // ServerInterfaceWrapper converts echo contexts to parameters. type ServerInterfaceWrapper struct { Handler ServerInterface } // GetError converts echo context to params. func (w *ServerInterfaceWrapper) GetError(ctx echo.Context) error { var err error // ------------- Path parameter "id" ------------- var id string err = runtime.BindStyledParameter("simple", false, "id", ctx.Param("id"), &id) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter id: %s", err)) } ctx.Set("Bearer.Scopes", []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.GetError(ctx, id) return err } // RequestJob converts echo context to params. func (w *ServerInterfaceWrapper) RequestJob(ctx echo.Context) error { var err error // Invoke the callback with all the unmarshalled arguments err = w.Handler.RequestJob(ctx) return err } // GetJob converts echo context to params. func (w *ServerInterfaceWrapper) GetJob(ctx echo.Context) error { var err error // ------------- Path parameter "token" ------------- var token string err = runtime.BindStyledParameter("simple", false, "token", ctx.Param("token"), &token) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter token: %s", err)) } // Invoke the callback with all the unmarshalled arguments err = w.Handler.GetJob(ctx, token) return err } // UpdateJob converts echo context to params. func (w *ServerInterfaceWrapper) UpdateJob(ctx echo.Context) error { var err error // ------------- Path parameter "token" ------------- var token string err = runtime.BindStyledParameter("simple", false, "token", ctx.Param("token"), &token) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter token: %s", err)) } // Invoke the callback with all the unmarshalled arguments err = w.Handler.UpdateJob(ctx, token) return err } // UploadJobArtifact converts echo context to params. func (w *ServerInterfaceWrapper) UploadJobArtifact(ctx echo.Context) error { var err error // ------------- Path parameter "token" ------------- var token string err = runtime.BindStyledParameter("simple", false, "token", ctx.Param("token"), &token) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter token: %s", err)) } // ------------- Path parameter "name" ------------- var name string err = runtime.BindStyledParameter("simple", false, "name", ctx.Param("name"), &name) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter name: %s", err)) } // Invoke the callback with all the unmarshalled arguments err = w.Handler.UploadJobArtifact(ctx, token, name) return err } // GetOpenapi converts echo context to params. func (w *ServerInterfaceWrapper) GetOpenapi(ctx echo.Context) error { var err error // Invoke the callback with all the unmarshalled arguments err = w.Handler.GetOpenapi(ctx) return err } // GetStatus converts echo context to params. func (w *ServerInterfaceWrapper) GetStatus(ctx echo.Context) error { var err error // Invoke the callback with all the unmarshalled arguments err = w.Handler.GetStatus(ctx) return err } // This is a simple interface which specifies echo.Route addition functions which // are present on both echo.Echo and echo.Group, since we want to allow using // either of them for path registration type EchoRouter interface { CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route } // RegisterHandlers adds each server route to the EchoRouter. func RegisterHandlers(router EchoRouter, si ServerInterface) { wrapper := ServerInterfaceWrapper{ Handler: si, } router.GET("/errors/:id", wrapper.GetError) router.POST("/jobs", wrapper.RequestJob) router.GET("/jobs/:token", wrapper.GetJob) router.PATCH("/jobs/:token", wrapper.UpdateJob) router.PUT("/jobs/:token/artifacts/:name", wrapper.UploadJobArtifact) router.GET("/openapi", wrapper.GetOpenapi) router.GET("/status", wrapper.GetStatus) } // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ "H4sIAAAAAAAC/9xXW2/bNhT+KwS3R8VymvZFwB6abijSYcuQrFiBLAiOqWObiUQqh5Qdw9B/L3jxTVLi", "FLAfmicrIXku3/n4ncMlF7qstEJlDc+W3IgpluA//yDS5D6gKC7HPLtZ8l8Jxzzjv6SbQ2k8kV6O7lHY", "KxwjoRLIm2TJK9IVkpXoDQqdo/u1iwp5xo0lqSa8SXiJxsDEr+VoBMnKSq14xs9BPMyBcub8gZUjWUi7", "YHNpp2yu6QHJsP/r4fBM/MZmZ2cJw8caCsMIwWjFk64rFw8463cy740lHu0u+bXHWhLmPLsJyay3twxv", "Urpdx6A9Pry5bRL+Ge0XPbpCU2ll8KAYgxJY4HZuI60LBNXNYLW1P8a2r6ztauoD7YHwGWQfpMr34+rR", "81uT4KEbXcKv8LFGEzD0X93ogMS0Nwz3D79DWizNs1t4xoEIFp0Aw/kkONgX3OELDDTxv08nE30Sfd8b", "rQZXMP8rkq5x0Vk5BmHvCi0g3KaeRPOFglKKu5XRNSR7rO8ClPAXnYR/7Ku7X92y1JdCP1GvLdjaHANr", "4y3vjz3u6w/va5WDxZeoSmjqwu6FveU0nupj4JbLDSg/BIVzJtVYdyX536k0TBoGin3854KNNa2V2GpG", "IUcGKmdTUHmB7F6PzMBJsbSFC/Py+ryWRc4+uTAMEjth/3kDPOEzJBPcnEaxVlBJnvGzwXAw5AmvwE49", "Zim67mTSpcwb9/cEbTfWz+giYVIZ67SO6TGzU2T+KDMVCjmWmLPRgnnVWUv4RR4Ohw7ovBKUaJGMJ9Wu", "k4vfd+xyBxzPfKQ84QpKl7S3v6mepRqT2Gtd2PgEZeXROT3rdq3m1p0NlfTJvxsOQz9VFpXPG6qqkOGW", "pPexf23Mv1T6kGPjK/7+27ej2P1wFLtNwg2KmqRd+LKcIxASz25uHWCmLkugRWRBKPl24dzx1HHT30dt", "eugTL6xh4Eg8YJ76a5KwUaHFg2G1srIIW/y9mIEsYFTgoMOoTWOIZEBjz3W+OBg23bYYYGqR5/QoDqPS", "eIe7OH4iBIu5u9Hvhu8P5rxXtHY9/619WeawVZeEWVowmIBU/GfjfDs/z+IN069W6uuy3jA8XVr9gGpb", "JztStyLlkVSmNfD2pHL5J/8pFWhHZqhWSqpJgL/TN3r6gi/Mi62hpxdUYMNsu1vFddc/krp0BplecRke", "w98bpk3IksEud9pXN10NwyZdOur4u1zVto8FhYb8ix59jCf4a3jof36Ehsnh6Pw6rmph0Z4YSwjlLuht", "k8+R8s0RxxXazbcrbgTarIfm58X+Mm55DU7RnB+XmVTMxe6m/hL8U+PDMUbR9iX/qvCpQmExj4OcFqIm", "x6+uBLtB/MWYHUabh13vu+FaummchV3xHUNsPpViyghtTcowgzSTYrWp7/VwvVo5mkK2Xr5vUR4jvHHa", "p9lKw2oqeMZTqGQanp/p7NS/4LcWRHxhnmztuG2+BwAA//9PNd8O8hQAAA==", } // GetSwagger returns the Swagger specification corresponding to the generated code // in this file. func GetSwagger() (*openapi3.Swagger, error) { zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) if err != nil { return nil, fmt.Errorf("error base64 decoding spec: %s", err) } zr, err := gzip.NewReader(bytes.NewReader(zipped)) if err != nil { return nil, fmt.Errorf("error decompressing spec: %s", err) } var buf bytes.Buffer _, err = buf.ReadFrom(zr) if err != nil { return nil, fmt.Errorf("error decompressing spec: %s", err) } swagger, err := openapi3.NewSwaggerLoader().LoadSwaggerFromData(buf.Bytes()) if err != nil { return nil, fmt.Errorf("error loading Swagger: %s", err) } return swagger, nil }