// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
package compliance_security_profile
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: "compliance-security-profile",
Short: `Controls whether to enable the compliance security profile for the current workspace.`,
Long: `Controls whether to enable the compliance security profile for the current
workspace. Enabling it on a workspace is permanent. By default, it is turned
off.
This settings can NOT be disabled once it is enabled.`,
}
// Add methods
cmd.AddCommand(newGet())
cmd.AddCommand(newUpdate())
// Apply optional overrides to this command.
for _, fn := range cmdOverrides {
fn(cmd)
return cmd
// start get command
var getOverrides []func(
*cobra.Command,
*settings.GetComplianceSecurityProfileSettingRequest,
func newGet() *cobra.Command {
cmd := &cobra.Command{}
var getReq settings.GetComplianceSecurityProfileSettingRequest
// TODO: short flags
cmd.Flags().StringVar(&getReq.Etag, "etag", getReq.Etag, `etag used for versioning.`)
cmd.Use = "get"
cmd.Short = `Get the compliance security profile setting.`
cmd.Long = `Get the compliance security profile setting.
Gets the compliance security profile setting.`
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, err := w.Settings.ComplianceSecurityProfile().Get(ctx, getReq)
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
for _, fn := range getOverrides {
fn(cmd, &getReq)
// start update command
var updateOverrides []func(
*settings.UpdateComplianceSecurityProfileSettingRequest,
func newUpdate() *cobra.Command {
var updateReq settings.UpdateComplianceSecurityProfileSettingRequest
var updateJson flags.JsonFlag
cmd.Flags().Var(&updateJson, "json", `either inline JSON string or @path/to/file.json with request body`)
cmd.Use = "update"
cmd.Short = `Update the compliance security profile setting.`
cmd.Long = `Update the compliance security profile setting.
Updates the compliance security profile setting for the workspace. A fresh
etag needs to be provided in PATCH requests (as part of the setting field).
The etag can be retrieved by making a GET request before the PATCH
request. If the setting is updated concurrently, PATCH fails with 409 and
the request must be retried by using the fresh etag in the 409 response.`
if cmd.Flags().Changed("json") {
diags := updateJson.Unmarshal(&updateReq)
if diags.HasError() {
return diags.Error()
if len(diags) > 0 {
err := cmdio.RenderDiagnosticsToErrorOut(ctx, diags)
} else {
return fmt.Errorf("please provide command input in JSON format by specifying the --json flag")
response, err := w.Settings.ComplianceSecurityProfile().Update(ctx, updateReq)
for _, fn := range updateOverrides {
fn(cmd, &updateReq)
// end service ComplianceSecurityProfile