package config import ( "github.com/databricks/cli/bundle/config/resources" "github.com/databricks/cli/bundle/config/variable" "github.com/databricks/databricks-sdk-go/service/jobs" ) type Mode string // Target defines overrides for a single target. // This structure is recursively merged into the root configuration. type Target struct { // Default marks that this target must be used if one isn't specified // by the user (through target variable or command line argument). Default bool `json:"default,omitempty"` // Determines the mode of the target. // For example, 'mode: development' can be used for deployments for // development purposes. Mode Mode `json:"mode,omitempty"` // Mutator configurations that e.g. change the // name prefix of deployed resources. Presets Presets `json:"presets,omitempty"` // DEPRECATED: Overrides the compute used for jobs and other supported assets. ComputeId string `json:"compute_id,omitempty"` // Overrides the cluster used for jobs and other supported assets. ClusterId string `json:"cluster_id,omitempty"` Bundle *Bundle `json:"bundle,omitempty"` Workspace *Workspace `json:"workspace,omitempty"` Artifacts Artifacts `json:"artifacts,omitempty"` Resources *Resources `json:"resources,omitempty"` // Override default values or lookup name for defined variables // Does not permit defining new variables or redefining existing ones // in the scope of an target // // There are two valid ways to define a variable override in a target: // 1. Direct value override. We normalize this to the variable.Variable // struct format when loading the configuration YAML: // // variables: // foo: "value" // // 2. Override matching the variable.Variable struct. // // variables: // foo: // default: "value" // // OR // // variables: // foo: // lookup: "resource_name" Variables map[string]*variable.TargetVariable `json:"variables,omitempty"` Git Git `json:"git,omitempty"` RunAs *jobs.JobRunAs `json:"run_as,omitempty"` Sync *Sync `json:"sync,omitempty"` Permissions []resources.Permission `json:"permissions,omitempty"` } const ( // Development mode: deployments done purely for running things in development. // Any deployed resources will be marked as "dev" and might be hidden or cleaned up. Development Mode = "development" // Production mode: deployments done for production purposes. // Any deployed resources will not be changed but this mode will enable // various strictness checks to make sure that a deployment is correctly setup // for production purposes. Production Mode = "production" )