// Generated from Databricks Terraform provider schema. DO NOT EDIT.

package schema

type ResourcePipelineClusterAutoscale struct {
	MaxWorkers int    `json:"max_workers,omitempty"`
	MinWorkers int    `json:"min_workers,omitempty"`
	Mode       string `json:"mode,omitempty"`
}

type ResourcePipelineClusterAwsAttributes struct {
	FirstOnDemand      int    `json:"first_on_demand,omitempty"`
	InstanceProfileArn string `json:"instance_profile_arn,omitempty"`
	ZoneId             string `json:"zone_id,omitempty"`
}

type ResourcePipelineClusterClusterLogConfDbfs struct {
	Destination string `json:"destination"`
}

type ResourcePipelineClusterClusterLogConfS3 struct {
	CannedAcl        string `json:"canned_acl,omitempty"`
	Destination      string `json:"destination"`
	EnableEncryption bool   `json:"enable_encryption,omitempty"`
	EncryptionType   string `json:"encryption_type,omitempty"`
	Endpoint         string `json:"endpoint,omitempty"`
	KmsKey           string `json:"kms_key,omitempty"`
	Region           string `json:"region,omitempty"`
}

type ResourcePipelineClusterClusterLogConf struct {
	Dbfs *ResourcePipelineClusterClusterLogConfDbfs `json:"dbfs,omitempty"`
	S3   *ResourcePipelineClusterClusterLogConfS3   `json:"s3,omitempty"`
}

type ResourcePipelineClusterGcpAttributes struct {
	GoogleServiceAccount string `json:"google_service_account,omitempty"`
}

type ResourcePipelineClusterInitScriptsDbfs struct {
	Destination string `json:"destination"`
}

type ResourcePipelineClusterInitScriptsFile struct {
	Destination string `json:"destination,omitempty"`
}

type ResourcePipelineClusterInitScriptsGcs struct {
	Destination string `json:"destination,omitempty"`
}

type ResourcePipelineClusterInitScriptsS3 struct {
	CannedAcl        string `json:"canned_acl,omitempty"`
	Destination      string `json:"destination"`
	EnableEncryption bool   `json:"enable_encryption,omitempty"`
	EncryptionType   string `json:"encryption_type,omitempty"`
	Endpoint         string `json:"endpoint,omitempty"`
	KmsKey           string `json:"kms_key,omitempty"`
	Region           string `json:"region,omitempty"`
}

type ResourcePipelineClusterInitScripts struct {
	Dbfs *ResourcePipelineClusterInitScriptsDbfs `json:"dbfs,omitempty"`
	File *ResourcePipelineClusterInitScriptsFile `json:"file,omitempty"`
	Gcs  *ResourcePipelineClusterInitScriptsGcs  `json:"gcs,omitempty"`
	S3   *ResourcePipelineClusterInitScriptsS3   `json:"s3,omitempty"`
}

type ResourcePipelineCluster struct {
	ApplyPolicyDefaultValues bool                                   `json:"apply_policy_default_values,omitempty"`
	CustomTags               map[string]string                      `json:"custom_tags,omitempty"`
	DriverInstancePoolId     string                                 `json:"driver_instance_pool_id,omitempty"`
	DriverNodeTypeId         string                                 `json:"driver_node_type_id,omitempty"`
	InstancePoolId           string                                 `json:"instance_pool_id,omitempty"`
	Label                    string                                 `json:"label,omitempty"`
	NodeTypeId               string                                 `json:"node_type_id,omitempty"`
	NumWorkers               int                                    `json:"num_workers,omitempty"`
	PolicyId                 string                                 `json:"policy_id,omitempty"`
	SparkConf                map[string]string                      `json:"spark_conf,omitempty"`
	SparkEnvVars             map[string]string                      `json:"spark_env_vars,omitempty"`
	SshPublicKeys            []string                               `json:"ssh_public_keys,omitempty"`
	Autoscale                *ResourcePipelineClusterAutoscale      `json:"autoscale,omitempty"`
	AwsAttributes            *ResourcePipelineClusterAwsAttributes  `json:"aws_attributes,omitempty"`
	ClusterLogConf           *ResourcePipelineClusterClusterLogConf `json:"cluster_log_conf,omitempty"`
	GcpAttributes            *ResourcePipelineClusterGcpAttributes  `json:"gcp_attributes,omitempty"`
	InitScripts              []ResourcePipelineClusterInitScripts   `json:"init_scripts,omitempty"`
}

type ResourcePipelineFilters struct {
	Exclude []string `json:"exclude,omitempty"`
	Include []string `json:"include,omitempty"`
}

type ResourcePipelineLibraryMaven struct {
	Coordinates string   `json:"coordinates"`
	Exclusions  []string `json:"exclusions,omitempty"`
	Repo        string   `json:"repo,omitempty"`
}

type ResourcePipelineLibraryNotebook struct {
	Path string `json:"path"`
}

type ResourcePipelineLibrary struct {
	Jar      string                           `json:"jar,omitempty"`
	Whl      string                           `json:"whl,omitempty"`
	Maven    *ResourcePipelineLibraryMaven    `json:"maven,omitempty"`
	Notebook *ResourcePipelineLibraryNotebook `json:"notebook,omitempty"`
}

type ResourcePipeline struct {
	AllowDuplicateNames bool                      `json:"allow_duplicate_names,omitempty"`
	Channel             string                    `json:"channel,omitempty"`
	Configuration       map[string]string         `json:"configuration,omitempty"`
	Continuous          bool                      `json:"continuous,omitempty"`
	Development         bool                      `json:"development,omitempty"`
	Edition             string                    `json:"edition,omitempty"`
	Id                  string                    `json:"id,omitempty"`
	Name                string                    `json:"name,omitempty"`
	Photon              bool                      `json:"photon,omitempty"`
	Storage             string                    `json:"storage,omitempty"`
	Target              string                    `json:"target,omitempty"`
	Url                 string                    `json:"url,omitempty"`
	Cluster             []ResourcePipelineCluster `json:"cluster,omitempty"`
	Filters             *ResourcePipelineFilters  `json:"filters,omitempty"`
	Library             []ResourcePipelineLibrary `json:"library,omitempty"`
}