mirror of https://github.com/databricks/cli.git
129 lines
4.9 KiB
Go
Executable File
129 lines
4.9 KiB
Go
Executable File
// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
|
|
|
|
package temporary_table_credentials
|
|
|
|
import (
|
|
"github.com/databricks/cli/cmd/root"
|
|
"github.com/databricks/cli/libs/cmdio"
|
|
"github.com/databricks/cli/libs/flags"
|
|
"github.com/databricks/databricks-sdk-go/service/catalog"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
// Slice with functions to override default command behavior.
|
|
// Functions can be added from the `init()` function in manually curated files in this directory.
|
|
var cmdOverrides []func(*cobra.Command)
|
|
|
|
func New() *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "temporary-table-credentials",
|
|
Short: `Temporary Table Credentials refer to short-lived, downscoped credentials used to access cloud storage locationswhere table data is stored in Databricks.`,
|
|
Long: `Temporary Table Credentials refer to short-lived, downscoped credentials used
|
|
to access cloud storage locationswhere table data is stored in Databricks.
|
|
These credentials are employed to provide secure and time-limitedaccess to
|
|
data in cloud environments such as AWS, Azure, and Google Cloud. Each cloud
|
|
provider has its own typeof credentials: AWS uses temporary session tokens via
|
|
AWS Security Token Service (STS), Azure utilizesShared Access Signatures (SAS)
|
|
for its data storage services, and Google Cloud supports temporary
|
|
credentialsthrough OAuth 2.0.Temporary table credentials ensure that data
|
|
access is limited in scope and duration, reducing the risk ofunauthorized
|
|
access or misuse. To use the temporary table credentials API, a metastore
|
|
admin needs to enable the external_access_enabled flag (off by default) at the
|
|
metastore level, and user needs to be granted the EXTERNAL USE SCHEMA
|
|
permission at the schema level by catalog admin. Note that EXTERNAL USE SCHEMA
|
|
is a schema level permission that can only be granted by catalog admin
|
|
explicitly and is not included in schema ownership or ALL PRIVILEGES on the
|
|
schema for security reason.`,
|
|
GroupID: "catalog",
|
|
Annotations: map[string]string{
|
|
"package": "catalog",
|
|
},
|
|
}
|
|
|
|
// Add methods
|
|
cmd.AddCommand(newGenerateTemporaryTableCredentials())
|
|
|
|
// Apply optional overrides to this command.
|
|
for _, fn := range cmdOverrides {
|
|
fn(cmd)
|
|
}
|
|
|
|
return cmd
|
|
}
|
|
|
|
// start generate-temporary-table-credentials command
|
|
|
|
// Slice with functions to override default command behavior.
|
|
// Functions can be added from the `init()` function in manually curated files in this directory.
|
|
var generateTemporaryTableCredentialsOverrides []func(
|
|
*cobra.Command,
|
|
*catalog.GenerateTemporaryTableCredentialRequest,
|
|
)
|
|
|
|
func newGenerateTemporaryTableCredentials() *cobra.Command {
|
|
cmd := &cobra.Command{}
|
|
|
|
var generateTemporaryTableCredentialsReq catalog.GenerateTemporaryTableCredentialRequest
|
|
var generateTemporaryTableCredentialsJson flags.JsonFlag
|
|
|
|
// TODO: short flags
|
|
cmd.Flags().Var(&generateTemporaryTableCredentialsJson, "json", `either inline JSON string or @path/to/file.json with request body`)
|
|
|
|
cmd.Flags().Var(&generateTemporaryTableCredentialsReq.Operation, "operation", `The operation performed against the table data, either READ or READ_WRITE. Supported values: [READ, READ_WRITE]`)
|
|
cmd.Flags().StringVar(&generateTemporaryTableCredentialsReq.TableId, "table-id", generateTemporaryTableCredentialsReq.TableId, `UUID of the table to read or write.`)
|
|
|
|
cmd.Use = "generate-temporary-table-credentials"
|
|
cmd.Short = `Generate a temporary table credential.`
|
|
cmd.Long = `Generate a temporary table credential.
|
|
|
|
Get a short-lived credential for directly accessing the table data on cloud
|
|
storage. The metastore must have external_access_enabled flag set to true
|
|
(default false). The caller must have EXTERNAL_USE_SCHEMA privilege on the
|
|
parent schema and this privilege can only be granted by catalog owners.`
|
|
|
|
cmd.Annotations = make(map[string]string)
|
|
|
|
cmd.Args = func(cmd *cobra.Command, args []string) error {
|
|
check := root.ExactArgs(0)
|
|
return check(cmd, args)
|
|
}
|
|
|
|
cmd.PreRunE = root.MustWorkspaceClient
|
|
cmd.RunE = func(cmd *cobra.Command, args []string) (err error) {
|
|
ctx := cmd.Context()
|
|
w := root.WorkspaceClient(ctx)
|
|
|
|
if cmd.Flags().Changed("json") {
|
|
diags := generateTemporaryTableCredentialsJson.Unmarshal(&generateTemporaryTableCredentialsReq)
|
|
if diags.HasError() {
|
|
return diags.Error()
|
|
}
|
|
if len(diags) > 0 {
|
|
err := cmdio.RenderDiagnosticsToErrorOut(ctx, diags)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
response, err := w.TemporaryTableCredentials.GenerateTemporaryTableCredentials(ctx, generateTemporaryTableCredentialsReq)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return cmdio.Render(ctx, response)
|
|
}
|
|
|
|
// Disable completions since they are not applicable.
|
|
// Can be overridden by manual implementation in `override.go`.
|
|
cmd.ValidArgsFunction = cobra.NoFileCompletions
|
|
|
|
// Apply optional overrides to this command.
|
|
for _, fn := range generateTemporaryTableCredentialsOverrides {
|
|
fn(cmd, &generateTemporaryTableCredentialsReq)
|
|
}
|
|
|
|
return cmd
|
|
}
|
|
|
|
// end service TemporaryTableCredentials
|