2024-04-16 12:03:21 +00:00
// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
package provider_personalization_requests
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/marketplace"
"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 : "provider-personalization-requests" ,
Short : ` Personalization requests are an alternate to instantly available listings. ` ,
Long : ` Personalization requests are an alternate to instantly available listings .
Control the lifecycle of personalized solutions . ` ,
GroupID : "marketplace" ,
Annotations : map [ string ] string {
"package" : "marketplace" ,
} ,
}
// Add methods
cmd . AddCommand ( newList ( ) )
cmd . AddCommand ( newUpdate ( ) )
// Apply optional overrides to this command.
for _ , fn := range cmdOverrides {
fn ( cmd )
}
return cmd
}
// start list 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 listOverrides [ ] func (
* cobra . Command ,
* marketplace . ListAllPersonalizationRequestsRequest ,
)
func newList ( ) * cobra . Command {
cmd := & cobra . Command { }
var listReq marketplace . ListAllPersonalizationRequestsRequest
// TODO: short flags
cmd . Flags ( ) . IntVar ( & listReq . PageSize , "page-size" , listReq . PageSize , ` ` )
cmd . Flags ( ) . StringVar ( & listReq . PageToken , "page-token" , listReq . PageToken , ` ` )
cmd . Use = "list"
cmd . Short = ` All personalization requests across all listings. `
cmd . Long = ` All personalization requests across all listings .
List personalization requests to this provider . This will return all
personalization requests , regardless of which listing they are for . `
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 )
response := w . ProviderPersonalizationRequests . List ( ctx , listReq )
return cmdio . RenderIterator ( 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 listOverrides {
fn ( cmd , & listReq )
}
return cmd
}
// start update 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 updateOverrides [ ] func (
* cobra . Command ,
* marketplace . UpdatePersonalizationRequestRequest ,
)
func newUpdate ( ) * cobra . Command {
cmd := & cobra . Command { }
var updateReq marketplace . UpdatePersonalizationRequestRequest
var updateJson flags . JsonFlag
// TODO: short flags
cmd . Flags ( ) . Var ( & updateJson , "json" , ` either inline JSON string or @path/to/file.json with request body ` )
cmd . Flags ( ) . StringVar ( & updateReq . Reason , "reason" , updateReq . Reason , ` ` )
// TODO: complex arg: share
cmd . Use = "update LISTING_ID REQUEST_ID STATUS"
cmd . Short = ` Update personalization request status. `
cmd . Long = ` Update personalization request status .
Update personalization request . This method only permits updating the status
of the request . `
cmd . Annotations = make ( map [ string ] string )
cmd . Args = func ( cmd * cobra . Command , args [ ] string ) error {
if cmd . Flags ( ) . Changed ( "json" ) {
err := root . ExactArgs ( 2 ) ( cmd , args )
if err != nil {
return fmt . Errorf ( "when --json flag is specified, provide only LISTING_ID, REQUEST_ID as positional arguments. Provide 'status' in your JSON input" )
}
return nil
}
check := root . ExactArgs ( 3 )
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" ) {
err = updateJson . Unmarshal ( & updateReq )
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 )
2024-04-16 12:03:21 +00:00
}
}
updateReq . ListingId = args [ 0 ]
updateReq . RequestId = args [ 1 ]
if ! cmd . Flags ( ) . Changed ( "json" ) {
_ , err = fmt . Sscan ( args [ 2 ] , & updateReq . Status )
if err != nil {
return fmt . Errorf ( "invalid STATUS: %s" , args [ 2 ] )
}
}
response , err := w . ProviderPersonalizationRequests . Update ( ctx , updateReq )
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 updateOverrides {
fn ( cmd , & updateReq )
}
return cmd
}
// end service ProviderPersonalizationRequests