2023-10-03 11:46:16 +00:00
// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
package credentials_manager
import (
"fmt"
"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/settings"
"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 : "credentials-manager" ,
Short : ` Credentials manager interacts with with Identity Providers to to perform token exchanges using stored credentials and refresh tokens. ` ,
Long : ` Credentials manager interacts with with Identity Providers to to perform token
exchanges using stored credentials and refresh tokens . ` ,
GroupID : "settings" ,
Annotations : map [ string ] string {
"package" : "settings" ,
} ,
// This service is being previewed; hide from help output.
Hidden : true ,
}
2024-03-06 09:53:44 +00:00
// Add methods
cmd . AddCommand ( newExchangeToken ( ) )
2023-10-03 11:46:16 +00:00
// Apply optional overrides to this command.
for _ , fn := range cmdOverrides {
fn ( cmd )
}
return cmd
}
// start exchange-token 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 exchangeTokenOverrides [ ] func (
* cobra . Command ,
* settings . ExchangeTokenRequest ,
)
func newExchangeToken ( ) * cobra . Command {
cmd := & cobra . Command { }
var exchangeTokenReq settings . ExchangeTokenRequest
var exchangeTokenJson flags . JsonFlag
// TODO: short flags
cmd . Flags ( ) . Var ( & exchangeTokenJson , "json" , ` either inline JSON string or @path/to/file.json with request body ` )
cmd . Use = "exchange-token"
cmd . Short = ` Exchange token. `
cmd . Long = ` Exchange token .
2024-02-15 14:52:17 +00:00
Exchange tokens with an Identity Provider to get a new access token . It allows
specifying scopes to determine token permissions . `
2023-10-03 11:46:16 +00:00
cmd . Annotations = make ( map [ string ] string )
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" ) {
err = exchangeTokenJson . Unmarshal ( & exchangeTokenReq )
if err != nil {
2024-10-10 13:34:15 +00:00
return fmt . Errorf ( "failed to parse JSON string. Please ensure that the value provided to the --json flag is either a valid JSON string or @path/to/file.json with valid JSON content: %w" , err )
2023-10-03 11:46:16 +00:00
}
} else {
return fmt . Errorf ( "please provide command input in JSON format by specifying the --json flag" )
}
response , err := w . CredentialsManager . ExchangeToken ( ctx , exchangeTokenReq )
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 exchangeTokenOverrides {
fn ( cmd , & exchangeTokenReq )
}
return cmd
}
// end service CredentialsManager