Documentation
¶
Overview ¶
The Workspace API allows you to list, import, export, and delete notebooks and folders.
Index ¶
- type Delete
- type Export
- type ExportFormat
- type ExportResponse
- type GetStatus
- type Import
- type Language
- type List
- type ListResponse
- type Mkdirs
- type ObjectInfo
- type ObjectType
- type WorkspaceAPI
- func (a *WorkspaceAPI) Delete(ctx context.Context, request Delete) error
- func (a *WorkspaceAPI) Export(ctx context.Context, request Export) (*ExportResponse, error)
- func (a *WorkspaceAPI) GetByPath(ctx context.Context, name string) (*ObjectInfo, error)
- func (a *WorkspaceAPI) GetStatus(ctx context.Context, request GetStatus) (*ObjectInfo, error)
- func (a *WorkspaceAPI) GetStatusByPath(ctx context.Context, path string) (*ObjectInfo, error)
- func (a *WorkspaceAPI) Impl() WorkspaceService
- func (a *WorkspaceAPI) Import(ctx context.Context, request Import) error
- func (a *WorkspaceAPI) ListAll(ctx context.Context, request List) ([]ObjectInfo, error)
- func (a *WorkspaceAPI) Mkdirs(ctx context.Context, request Mkdirs) error
- func (a *WorkspaceAPI) MkdirsByPath(ctx context.Context, path string) error
- func (a *WorkspaceAPI) ObjectInfoPathToObjectIdMap(ctx context.Context, request List) (map[string]int64, error)
- func (a *WorkspaceAPI) RecursiveList(ctx context.Context, path string) ([]ObjectInfo, error)
- func (a *WorkspaceAPI) WithImpl(impl WorkspaceService) *WorkspaceAPI
- type WorkspaceService
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Delete ¶
type Delete struct {
// The absolute path of the notebook or directory.
Path string `json:"path"`
// The flag that specifies whether to delete the object recursively. It is
// `false` by default. Please note this deleting directory is not atomic. If
// it fails in the middle, some of objects under this directory may be
// deleted and cannot be undone.
Recursive bool `json:"recursive,omitempty"`
}
type Export ¶
type Export struct {
// Flag to enable direct download. If it is `true`, the response will be the
// exported file itself. Otherwise, the response contains content as base64
// encoded string.
DirectDownload bool `json:"-" url:"direct_download,omitempty"`
// This specifies the format of the exported file. By default, this is
// `SOURCE`. However it may be one of: `SOURCE`, `HTML`, `JUPYTER`, `DBC`.
//
// The value is case sensitive.
Format ExportFormat `json:"-" url:"format,omitempty"`
// The absolute path of the notebook or directory. Exporting directory is
// only support for `DBC` format.
Path string `json:"-" url:"path"`
}
Export a notebook
type ExportFormat ¶
type ExportFormat string
This specifies the format of the file to be imported. By default, this is `SOURCE`. However it may be one of: `SOURCE`, `HTML`, `JUPYTER`, `DBC`. The value is case sensitive.
const ExportFormatDbc ExportFormat = `DBC`
const ExportFormatHtml ExportFormat = `HTML`
const ExportFormatJupyter ExportFormat = `JUPYTER`
const ExportFormatRMarkdown ExportFormat = `R_MARKDOWN`
const ExportFormatSource ExportFormat = `SOURCE`
func (*ExportFormat) Set ¶ added in v0.2.0
func (ef *ExportFormat) Set(v string) error
Set raw string value and validate it against allowed values
func (*ExportFormat) String ¶ added in v0.2.0
func (ef *ExportFormat) String() string
String representation for fmt.Print
func (*ExportFormat) Type ¶ added in v0.2.0
func (ef *ExportFormat) Type() string
Type always returns ExportFormat to satisfy [pflag.Value] interface
type ExportResponse ¶
type ExportResponse struct {
// The base64-encoded content. If the limit (10MB) is exceeded, exception
// with error code **MAX_NOTEBOOK_SIZE_EXCEEDED** will be thrown.
Content string `json:"content,omitempty"`
}
func (*ExportResponse) Bytes ¶
func (r *ExportResponse) Bytes() ([]byte, error)
type GetStatus ¶
type GetStatus struct {
// The absolute path of the notebook or directory.
Path string `json:"-" url:"path"`
}
Get status
type Import ¶
type Import struct {
// The base64-encoded content. This has a limit of 10 MB.
//
// If the limit (10MB) is exceeded, exception with error code
// **MAX_NOTEBOOK_SIZE_EXCEEDED** will be thrown. This parameter might be
// absent, and instead a posted file will be used.
Content string `json:"content,omitempty"`
// This specifies the format of the file to be imported. By default, this is
// `SOURCE`. However it may be one of: `SOURCE`, `HTML`, `JUPYTER`, `DBC`.
// The value is case sensitive.
Format ExportFormat `json:"format,omitempty"`
// The language of the object. This value is set only if the object type is
// `NOTEBOOK`.
Language Language `json:"language,omitempty"`
// The flag that specifies whether to overwrite existing object. It is
// `false` by default. For `DBC` format, `overwrite` is not supported since
// it may contain a directory.
Overwrite bool `json:"overwrite,omitempty"`
// The absolute path of the notebook or directory. Importing directory is
// only support for `DBC` format.
Path string `json:"path"`
}
func PythonNotebookOverwrite ¶
PythonNotebookOverwrite crafts Python import notebook request also by trimming the code specified in the second argument
type Language ¶
type Language string
The language of the object. This value is set only if the object type is `NOTEBOOK`.
const LanguagePython Language = `PYTHON`
const LanguageR Language = `R`
const LanguageScala Language = `SCALA`
const LanguageSql Language = `SQL`
type List ¶
type List struct {
// <content needed>
NotebooksModifiedAfter int `json:"-" url:"notebooks_modified_after,omitempty"`
// The absolute path of the notebook or directory.
Path string `json:"-" url:"path"`
}
List contents
type ListResponse ¶
type ListResponse struct {
// List of objects.
Objects []ObjectInfo `json:"objects,omitempty"`
}
type Mkdirs ¶
type Mkdirs struct {
// The absolute path of the directory. If the parent directories do not
// exist, it will also create them. If the directory already exists, this
// command will do nothing and succeed.
Path string `json:"path"`
}
type ObjectInfo ¶
type ObjectInfo struct {
// <content needed>
CreatedAt int64 `json:"created_at,omitempty"`
// The language of the object. This value is set only if the object type is
// `NOTEBOOK`.
Language Language `json:"language,omitempty"`
// <content needed>
ModifiedAt int64 `json:"modified_at,omitempty"`
// <content needed>
ObjectId int64 `json:"object_id,omitempty"`
// The type of the object in workspace.
ObjectType ObjectType `json:"object_type,omitempty"`
// The absolute path of the object.
Path string `json:"path,omitempty"`
// <content needed>
Size int64 `json:"size,omitempty"`
}
type ObjectType ¶
type ObjectType string
The type of the object in workspace.
const ObjectTypeDirectory ObjectType = `DIRECTORY`
const ObjectTypeFile ObjectType = `FILE`
const ObjectTypeLibrary ObjectType = `LIBRARY`
const ObjectTypeNotebook ObjectType = `NOTEBOOK`
const ObjectTypeRepo ObjectType = `REPO`
func (*ObjectType) Set ¶ added in v0.2.0
func (ot *ObjectType) Set(v string) error
Set raw string value and validate it against allowed values
func (*ObjectType) String ¶ added in v0.2.0
func (ot *ObjectType) String() string
String representation for fmt.Print
func (*ObjectType) Type ¶ added in v0.2.0
func (ot *ObjectType) Type() string
Type always returns ObjectType to satisfy [pflag.Value] interface
type WorkspaceAPI ¶
type WorkspaceAPI struct {
// contains filtered or unexported fields
}
The Workspace API allows you to list, import, export, and delete notebooks and folders.
A notebook is a web-based interface to a document that contains runnable code, visualizations, and explanatory text.
func NewWorkspace ¶
func NewWorkspace(client *client.DatabricksClient) *WorkspaceAPI
func (*WorkspaceAPI) Delete ¶
func (a *WorkspaceAPI) Delete(ctx context.Context, request Delete) error
Delete a workspace object.
Deletes an object or a directory (and optionally recursively deletes all objects in the directory). * If `path` does not exist, this call returns an error `RESOURCE_DOES_NOT_EXIST`. * If `path` is a non-empty directory and `recursive` is set to `false`, this call returns an error `DIRECTORY_NOT_EMPTY`.
Object deletion cannot be undone and deleting a directory recursively is not atomic.
func (*WorkspaceAPI) Export ¶
func (a *WorkspaceAPI) Export(ctx context.Context, request Export) (*ExportResponse, error)
Export a notebook.
Exports a notebook or the contents of an entire directory.
If `path` does not exist, this call returns an error `RESOURCE_DOES_NOT_EXIST`.
One can only export a directory in `DBC` format. If the exported data would exceed size limit, this call returns `MAX_NOTEBOOK_SIZE_EXCEEDED`. Currently, this API does not support exporting a library.
func (*WorkspaceAPI) GetByPath ¶
func (a *WorkspaceAPI) GetByPath(ctx context.Context, name string) (*ObjectInfo, error)
GetByPath calls WorkspaceAPI.ObjectInfoPathToObjectIdMap and returns a single ObjectInfo.
Returns an error if there's more than one ObjectInfo with the same .Path.
Note: All ObjectInfo instances are loaded into memory before returning matching by name.
This method is generated by Databricks SDK Code Generator.
func (*WorkspaceAPI) GetStatus ¶
func (a *WorkspaceAPI) GetStatus(ctx context.Context, request GetStatus) (*ObjectInfo, error)
Get status.
Gets the status of an object or a directory. If `path` does not exist, this call returns an error `RESOURCE_DOES_NOT_EXIST`.
func (*WorkspaceAPI) GetStatusByPath ¶
func (a *WorkspaceAPI) GetStatusByPath(ctx context.Context, path string) (*ObjectInfo, error)
Get status.
Gets the status of an object or a directory. If `path` does not exist, this call returns an error `RESOURCE_DOES_NOT_EXIST`.
func (*WorkspaceAPI) Impl ¶
func (a *WorkspaceAPI) Impl() WorkspaceService
Impl returns low-level Workspace API implementation
func (*WorkspaceAPI) Import ¶
func (a *WorkspaceAPI) Import(ctx context.Context, request Import) error
Import a notebook.
Imports a notebook or the contents of an entire directory. If `path` already exists and `overwrite` is set to `false`, this call returns an error `RESOURCE_ALREADY_EXISTS`. One can only use `DBC` format to import a directory.
func (*WorkspaceAPI) ListAll ¶
func (a *WorkspaceAPI) ListAll(ctx context.Context, request List) ([]ObjectInfo, error)
List contents.
Lists the contents of a directory, or the object if it is not a directory.If the input path does not exist, this call returns an error `RESOURCE_DOES_NOT_EXIST`.
This method is generated by Databricks SDK Code Generator.
func (*WorkspaceAPI) Mkdirs ¶
func (a *WorkspaceAPI) Mkdirs(ctx context.Context, request Mkdirs) error
Create a directory.
Creates the specified directory (and necessary parent directories if they do not exist). If there is an object (not a directory) at any prefix of the input path, this call returns an error `RESOURCE_ALREADY_EXISTS`.
Note that if this operation fails it may have succeeded in creating some of the necessary\nparrent directories.
func (*WorkspaceAPI) MkdirsByPath ¶
func (a *WorkspaceAPI) MkdirsByPath(ctx context.Context, path string) error
Create a directory.
Creates the specified directory (and necessary parent directories if they do not exist). If there is an object (not a directory) at any prefix of the input path, this call returns an error `RESOURCE_ALREADY_EXISTS`.
Note that if this operation fails it may have succeeded in creating some of the necessary\nparrent directories.
func (*WorkspaceAPI) ObjectInfoPathToObjectIdMap ¶
func (a *WorkspaceAPI) ObjectInfoPathToObjectIdMap(ctx context.Context, request List) (map[string]int64, error)
ObjectInfoPathToObjectIdMap calls WorkspaceAPI.ListAll and creates a map of results with ObjectInfo.Path as key and ObjectInfo.ObjectId as value.
Returns an error if there's more than one ObjectInfo with the same .Path.
Note: All ObjectInfo instances are loaded into memory before creating a map.
This method is generated by Databricks SDK Code Generator.
func (*WorkspaceAPI) RecursiveList ¶
func (a *WorkspaceAPI) RecursiveList(ctx context.Context, path string) ([]ObjectInfo, error)
RecursiveList traverses the workspace tree and returns all non-directory objects under the path
func (*WorkspaceAPI) WithImpl ¶
func (a *WorkspaceAPI) WithImpl(impl WorkspaceService) *WorkspaceAPI
WithImpl could be used to override low-level API implementations for unit testing purposes with github.com/golang/mock or other mocking frameworks.
type WorkspaceService ¶
type WorkspaceService interface {
// Delete a workspace object.
//
// Deletes an object or a directory (and optionally recursively deletes all
// objects in the directory). * If `path` does not exist, this call returns
// an error `RESOURCE_DOES_NOT_EXIST`. * If `path` is a non-empty directory
// and `recursive` is set to `false`, this call returns an error
// `DIRECTORY_NOT_EMPTY`.
//
// Object deletion cannot be undone and deleting a directory recursively is
// not atomic.
Delete(ctx context.Context, request Delete) error
// Export a notebook.
//
// Exports a notebook or the contents of an entire directory.
//
// If `path` does not exist, this call returns an error
// `RESOURCE_DOES_NOT_EXIST`.
//
// One can only export a directory in `DBC` format. If the exported data
// would exceed size limit, this call returns `MAX_NOTEBOOK_SIZE_EXCEEDED`.
// Currently, this API does not support exporting a library.
Export(ctx context.Context, request Export) (*ExportResponse, error)
// Get status.
//
// Gets the status of an object or a directory. If `path` does not exist,
// this call returns an error `RESOURCE_DOES_NOT_EXIST`.
GetStatus(ctx context.Context, request GetStatus) (*ObjectInfo, error)
// Import a notebook.
//
// Imports a notebook or the contents of an entire directory. If `path`
// already exists and `overwrite` is set to `false`, this call returns an
// error `RESOURCE_ALREADY_EXISTS`. One can only use `DBC` format to import
// a directory.
Import(ctx context.Context, request Import) error
// List contents.
//
// Lists the contents of a directory, or the object if it is not a
// directory.If the input path does not exist, this call returns an error
// `RESOURCE_DOES_NOT_EXIST`.
//
// Use ListAll() to get all ObjectInfo instances
List(ctx context.Context, request List) (*ListResponse, error)
// Create a directory.
//
// Creates the specified directory (and necessary parent directories if they
// do not exist). If there is an object (not a directory) at any prefix of
// the input path, this call returns an error `RESOURCE_ALREADY_EXISTS`.
//
// Note that if this operation fails it may have succeeded in creating some
// of the necessary\nparrent directories.
Mkdirs(ctx context.Context, request Mkdirs) error
}
The Workspace API allows you to list, import, export, and delete notebooks and folders.
A notebook is a web-based interface to a document that contains runnable code, visualizations, and explanatory text.