Documentation
¶
Index ¶
Constants ¶
const INVALID_PARAMETER_VALUE = "INVALID_PARAMETER_VALUE"
const MediaTypeNonJsonBodyFieldName = "contents"
const RESOURCE_DOES_NOT_EXIST = "RESOURCE_DOES_NOT_EXIST"
Variables ¶
var ErrorCodeMapping = []ErrorMappingRule{ {400, INVALID_PARAMETER_VALUE, "supplied value for a parameter was invalid"}, {404, RESOURCE_DOES_NOT_EXIST, "operation was performed on a resource that does not exist"}, {409, "ABORTED", "the operation was aborted, typically due to a concurrency issue such as a sequencer check failure"}, {409, "ALREADY_EXISTS", "operation was rejected due a conflict with an existing resource"}, {409, "RESOURCE_ALREADY_EXISTS", "operation was rejected due a conflict with an existing resource"}, {429, "RESOURCE_EXHAUSTED", "operation is rejected due to per-user rate limiting"}, {429, "REQUEST_LIMIT_EXCEEDED", "cluster request was rejected because it would exceed a resource limit"}, {500, "UNKNOWN", "this error is used as a fallback if the platform-side mapping is missing some reason"}, {500, "DATA_LOSS", "unrecoverable data loss or corruption"}, }
var ErrorOverrides = []ErrorOverride{ { Name: "Clusters InvalidParameterValue=>ResourceDoesNotExist", PathRegex: regexp.MustCompile(`^/api/2\.\d/clusters/get`), Verb: "GET", StatusCodeMatcher: regexp.MustCompile(`^400$`), MessageMatcher: regexp.MustCompile("Cluster .* does not exist"), ErrorCodeMatcher: regexp.MustCompile(INVALID_PARAMETER_VALUE), OverrideErrorCode: RESOURCE_DOES_NOT_EXIST, }, { Name: "Jobs InvalidParameterValue=>ResourceDoesNotExist", PathRegex: regexp.MustCompile(`^/api/2\.\d/jobs/get`), Verb: "GET", StatusCodeMatcher: regexp.MustCompile(`^400$`), MessageMatcher: regexp.MustCompile("Job .* does not exist"), ErrorCodeMatcher: regexp.MustCompile(INVALID_PARAMETER_VALUE), OverrideErrorCode: RESOURCE_DOES_NOT_EXIST, }, }
var ErrorStatusCodeMapping = []ErrorMappingRule{
{400, "BAD_REQUEST", "the request is invalid"},
{401, "UNAUTHENTICATED", "the request does not have valid authentication (AuthN) credentials for the operation"},
{403, "PERMISSION_DENIED", "the caller does not have permission to execute the specified operation"},
{404, "NOT_FOUND", "the operation was performed on a resource that does not exist"},
{409, "RESOURCE_CONFLICT", "maps to all HTTP 409 (Conflict) responses"},
{429, "TOO_MANY_REQUESTS", "maps to HTTP code: 429 Too Many Requests"},
{499, "CANCELLED", "the operation was explicitly canceled by the caller"},
{500, "INTERNAL_ERROR", "some invariants expected by the underlying system have been broken"},
{501, "NOT_IMPLEMENTED", "the operation is not implemented or is not supported/enabled in this service"},
{503, "TEMPORARILY_UNAVAILABLE", "the service is currently unavailable"},
{504, "DEADLINE_EXCEEDED", "the deadline expired before the operation could complete"},
}
var TransientErrorRegexes = []*regexp.Regexp{ regexp.MustCompile(`com\.databricks\.backend\.manager\.util\.UnknownWorkerEnvironmentException`), regexp.MustCompile(`does not have any associated worker environments`), regexp.MustCompile(`There is no worker environment with id`), regexp.MustCompile(`Unknown worker environment`), regexp.MustCompile(`ClusterNotReadyException`), regexp.MustCompile(`worker env .* not found`), }
Functions ¶
This section is empty.
Types ¶
type Binding ¶
type Binding struct {
Request string `json:"request,omitempty"`
Response string `json:"response,omitempty"`
}
Binding is a relationship between request and/or response
type Body ¶
type Body struct {
Node
Required bool `json:"required,omitempty"`
Content map[string]MediaType `json:"content,omitempty"`
Headers map[string]*Parameter `json:"headers,omitempty"`
}
func (*Body) MimeTypeAndMediaType ¶ added in v0.18.0
type Components ¶
type ErrorMappingRule ¶ added in v0.26.0
type ErrorOverride ¶ added in v0.38.0
type MimeType ¶ added in v0.18.0
type MimeType string
func (MimeType) IsByteStream ¶ added in v0.18.0
IsByteStream returns true if the body should be modeled as a byte stream. Today, we only support application/json and application/octet-stream, and non application/json entities are all modeled as byte streams.
type Node ¶
type Node struct {
Description string `json:"description,omitempty"`
Preview string `json:"x-databricks-preview,omitempty"`
Ref string `json:"$ref,omitempty"`
// Currently it is only defined for top level schemas
JsonPath string `json:"-"`
}
type Operation ¶
type Operation struct {
Node
Wait *Wait `json:"x-databricks-wait,omitempty"`
Pagination *Pagination `json:"x-databricks-pagination,omitempty"`
Shortcut bool `json:"x-databricks-shortcut,omitempty"`
Crud string `json:"x-databricks-crud,omitempty"`
JsonOnly bool `json:"x-databricks-cli-json-only,omitempty"`
// The x-databricks-path-style field indicates whether the operation has a
// RESTful path style or a RPC style. When specified, this overrides the
// service-level setting. Valid values are "rest" and "rpc". "rest" means
// that the operation has a RESTful path style, i.e. the path represents
// a resource and the HTTP method represents an action on the resource.
// "rpc" means that the operation has a RPC style, i.e. the path represents
// an action and the request body represents the resource.
PathStyle PathStyle `json:"x-databricks-path-style,omitempty"`
// The x-databricks-request-type-name field defines the name to use for
// the request type in the generated client. This may be specified only
// if the operation does NOT have a request body, thus only uses a request
// type to encapsulate path and query parameters.
RequestTypeName string `json:"x-databricks-request-type-name,omitempty"`
// For list APIs, the path to the field in the response entity that contains
// the resource ID.
IdField fieldPath `json:"x-databricks-id,omitempty"`
// For list APIs, the path to the field in the response entity that contains
// the user-friendly name of the resource.
NameField fieldPath `json:"x-databricks-name,omitempty"`
Summary string `json:"summary,omitempty"`
OperationId string `json:"operationId"`
Tags []string `json:"tags"`
Parameters []Parameter `json:"parameters,omitempty"`
Responses map[string]*Body `json:"responses"`
RequestBody *Body `json:"requestBody,omitempty"`
}
Operation is the equivalent of method
func (*Operation) HasIdentifierField ¶ added in v0.13.0
func (*Operation) HasNameField ¶ added in v0.13.0
func (*Operation) Name ¶
Name is picking the last element of <ServiceName>.<method> string, that is coming in as part of Databricks OpenAPI spec.
func (*Operation) SuccessResponseBody ¶ added in v0.18.0
func (o *Operation) SuccessResponseBody(c *Components) *Body
type Pagination ¶
type Pagination struct {
Offset string `json:"offset,omitempty"`
Limit string `json:"limit,omitempty"`
Results string `json:"results,omitempty"`
Increment int `json:"increment,omitempty"`
Inline bool `json:"inline,omitempty"`
Token *Binding `json:"token,omitempty"`
}
Pagination is the Databricks OpenAPI Extension for retrieving lists of entities through multiple API calls
type Path ¶
type Path struct {
Node
Parameters []Parameter `json:"parameters,omitempty"`
Get *Operation `json:"get,omitempty"`
Head *Operation `json:"head,omitempty"`
Post *Operation `json:"post,omitempty"`
Put *Operation `json:"put,omitempty"`
Patch *Operation `json:"patch,omitempty"`
Delete *Operation `json:"delete,omitempty"`
}
type PathStyle ¶ added in v0.14.1
type PathStyle string
const ( // PathStyleRpc indicates that the endpoint is an RPC-style endpoint. // The endpoint path is an action, and the entity to act on is specified // in the request body. PathStyleRpc PathStyle = "rpc" // PathStyleRest indicates that the endpoint is a REST-style endpoint. // The endpoint path is a resource, and the operation to perform on the // resource is specified in the HTTP method. PathStyleRest PathStyle = "rest" )
func (*PathStyle) UnmarshalJSON ¶ added in v0.14.1
type Schema ¶
type Schema struct {
Node
IsComputed bool `json:"x-databricks-computed,omitempty"`
IsAny bool `json:"x-databricks-any,omitempty"`
Type string `json:"type,omitempty"`
Enum []string `json:"enum,omitempty"`
AliasEnum []string `json:"x-databricks-alias-enum,omitempty"`
EnumDescriptions map[string]string `json:"x-databricks-enum-descriptions,omitempty"`
Default any `json:"default,omitempty"`
Example any `json:"example,omitempty"`
Format string `json:"format,omitempty"`
Required []string `json:"required,omitempty"`
Properties map[string]*Schema `json:"properties,omitempty"`
ArrayValue *Schema `json:"items,omitempty"`
MapValue *Schema `json:"additionalProperties,omitempty"`
}
func (*Schema) IsDefinable ¶
IsDefinable states that type could be translated into a valid top-level type in Go, Python, Java, Scala, and JavaScript
type Specification ¶
type Specification struct {
Node
Paths map[string]Path `json:"paths"`
Components *Components `json:"components"`
Tags []Tag `json:"tags"`
}
func NewFromReader ¶
func NewFromReader(r io.Reader) (*Specification, error)
func (*Specification) GetTagByServiceName ¶ added in v0.34.0
func (s *Specification) GetTagByServiceName(name string) (*Tag, error)
type Tag ¶
type Tag struct {
Node
Package string `json:"x-databricks-package"`
PathStyle PathStyle `json:"x-databricks-path-style"`
Service string `json:"x-databricks-service"`
ParentService string `json:"x-databricks-parent-service"`
IsAccounts bool `json:"x-databricks-is-accounts"`
Name string `json:"name"`
}
type Wait ¶
type Wait struct {
Poll string `json:"poll"`
Bind string `json:"bind"`
BindResponse string `json:"bindResponse,omitempty"`
Binding map[string]Binding `json:"binding,omitempty"`
Field []string `json:"field"`
Message []string `json:"message"`
Success []string `json:"success"`
Failure []string `json:"failure"`
Timeout int `json:"timeout,omitempty"`
}
Wait is the Databricks OpenAPI Extension for long-running result polling
Directories
¶
| Path | Synopsis |
|---|---|
|
Package holds higher-level abstractions on top of OpenAPI that are used to generate code via text/template for Databricks SDK in different languages.
|
Package holds higher-level abstractions on top of OpenAPI that are used to generate code via text/template for Databricks SDK in different languages. |
|
Usage: openapi-codegen
|
Usage: openapi-codegen |