diff --git a/.agents/rules/telemetry.md b/.agents/rules/telemetry.md index 5526dfb2007..d9e33dd0e65 100644 --- a/.agents/rules/telemetry.md +++ b/.agents/rules/telemetry.md @@ -34,7 +34,7 @@ The deploy payload is declared twice: the proto in the universe repo (`proto/log Other things worth knowing: -- A one-off boolean needs no proto change: add a key constant to `bundle/metrics/metrics.go` (snake_case, matching the constant name) and call `b.Metrics.SetBoolValue(...)`. It lands in `experimental.bool_values`. +- A one-off boolean needs no proto change: add a field to `bundle.Telemetry` (`bundle/telemetry.go`) with a snake_case `metric:"..."` tag and set it. Pick the type by what is measured: `bool` for a flag reported only when true, `*bool` for a measured value (nil when not measured), `BoolSet` for a measurement taken several times (e.g. once per artifact; record each with `SetBool`, and each value taken is reported once). It lands in `experimental.bool_values` and in the bundle bitmap; run `./task generate-bitmap-schema` to append it to the bitmap schema. - Metrics that may be removed later belong in `BundleDeployExperimental`, which carries no compatibility guarantees. - Positional encodings such as the `upload_file_sizes` histogram are frozen once the metric has adoption: changing a bucket bound silently changes the meaning of every previously reported entry. - Per-resource state sizes come from the direct engine's state in `resources.json`. diff --git a/Taskfile.yml b/Taskfile.yml index 17c508c0594..c46a2fe417b 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -802,6 +802,7 @@ tasks: # Refreshes acceptance/bundle/refschema/output/*.txt, which feeds # generate-direct-apitypes and generate-direct-resources below. - task: generate-refschema + - task: generate-bitmap-schema - task: generate-schema - task: generate-validation - task: generate-direct @@ -820,6 +821,7 @@ tasks: cmds: - task: generate-cligen - task: generate-refschema + - task: generate-bitmap-schema - task: generate-schema - task: generate-validation - task: generate-direct @@ -989,6 +991,33 @@ tasks: cmds: - go test ./acceptance -run TestAccept/bundle/refschema -update + # Appends any newly added bundle config fields to bundle/bitmap/schema.txt, the + # embedded bitmap schema (see cmd/bundle/bitmap). The schema is append-only, so + # update-schema reads the currently embedded schema and only appends. Output is + # written to a temp file first so the redirect does not truncate schema.txt + # before `go run` embeds it at compile time. Also refreshes the schema embedded + # in the databricks-bundles decoder (python/databricks/bundles/_bitmap) and the + # listing in acceptance/bundle/bitmap/full, which tracks every schema line. + generate-bitmap-schema: + desc: Regenerate bundle/bitmap/schema.txt and its acceptance listing + sources: + - bundle/**/*.go + - exclude: bundle/**/*_test.go + - acceptance/bundle/bitmap/full/script + - acceptance/bundle/bitmap/full/split.py + - go.mod + - go.sum + - "{{.EMBED_SOURCES}}" + generates: + - bundle/bitmap/schema.txt + - acceptance/bundle/bitmap/full/output/*.txt + - python/databricks/bundles/_bitmap/_schema.py + cmds: + - go run . bundle bitmap update-schema > bundle/bitmap/schema.txt.tmp + - mv bundle/bitmap/schema.txt.tmp bundle/bitmap/schema.txt + - go run ./bundle/bitmap/genpython python/databricks/bundles/_bitmap/_schema.py + - go test ./acceptance -run TestAccept/bundle/bitmap/full -update + # Upstream field documentation comes from the checked-in .codegen/cli.json; # bundle/internal/schema/annotations.yml carries the CLI-owned docs and # overrides and is rewritten in place (synced with the config structure). diff --git a/acceptance/bundle/bitmap/full/out.test.toml b/acceptance/bundle/bitmap/full/out.test.toml new file mode 100644 index 00000000000..2ab253adc73 --- /dev/null +++ b/acceptance/bundle/bitmap/full/out.test.toml @@ -0,0 +1,2 @@ +Cloud = false +EnvMatrix.DMS = [] diff --git a/acceptance/bundle/bitmap/full/output.txt b/acceptance/bundle/bitmap/full/output.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/acceptance/bundle/bitmap/full/output/alerts.txt b/acceptance/bundle/bitmap/full/output/alerts.txt new file mode 100644 index 00000000000..2f4c94dcf45 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/alerts.txt @@ -0,0 +1,75 @@ +resources.alerts 4171 +resources.alerts.* 4172 +resources.alerts.*.url 4173 +resources.alerts.*.modified_status 4174 +resources.alerts.*.lifecycle 4175 +resources.alerts.*.lifecycle.prevent_destroy 4176 +resources.alerts.*.lifecycle.prevent_destroy=true 4177 +resources.alerts.*.lifecycle.prevent_destroy=false 4178 +resources.alerts.*.lifecycle.depends_on 4179 +resources.alerts.*.lifecycle.depends_on[*] 4180 +resources.alerts.*.lifecycle.depends_on[*].resource 4181 +resources.alerts.*.create_time 4182 +resources.alerts.*.custom_description 4183 +resources.alerts.*.custom_summary 4184 +resources.alerts.*.custom_template_format 4185 +resources.alerts.*.display_name 4186 +resources.alerts.*.effective_run_as 4187 +resources.alerts.*.effective_run_as.service_principal_name 4188 +resources.alerts.*.effective_run_as.user_name 4189 +resources.alerts.*.evaluation 4190 +resources.alerts.*.evaluation.comparison_operator 4191 +resources.alerts.*.evaluation.empty_result_state 4192 +resources.alerts.*.evaluation.last_evaluated_at 4193 +resources.alerts.*.evaluation.notification 4194 +resources.alerts.*.evaluation.notification.notify_on_ok 4195 +resources.alerts.*.evaluation.notification.notify_on_ok=true 4196 +resources.alerts.*.evaluation.notification.notify_on_ok=false 4197 +resources.alerts.*.evaluation.notification.retrigger_seconds 4198 +resources.alerts.*.evaluation.notification.subscriptions 4199 +resources.alerts.*.evaluation.notification.subscriptions[*] 4200 +resources.alerts.*.evaluation.notification.subscriptions[*].destination_id 4201 +resources.alerts.*.evaluation.notification.subscriptions[*].user_email 4202 +resources.alerts.*.evaluation.source 4203 +resources.alerts.*.evaluation.source.aggregation 4204 +resources.alerts.*.evaluation.source.display 4205 +resources.alerts.*.evaluation.source.name 4206 +resources.alerts.*.evaluation.state 4207 +resources.alerts.*.evaluation.threshold 4208 +resources.alerts.*.evaluation.threshold.column 4209 +resources.alerts.*.evaluation.threshold.column.aggregation 4210 +resources.alerts.*.evaluation.threshold.column.display 4211 +resources.alerts.*.evaluation.threshold.column.name 4212 +resources.alerts.*.evaluation.threshold.value 4213 +resources.alerts.*.evaluation.threshold.value.bool_value 4214 +resources.alerts.*.evaluation.threshold.value.bool_value=true 4215 +resources.alerts.*.evaluation.threshold.value.bool_value=false 4216 +resources.alerts.*.evaluation.threshold.value.double_value 4217 +resources.alerts.*.evaluation.threshold.value.string_value 4218 +resources.alerts.*.id 4219 +resources.alerts.*.lifecycle_state 4220 +resources.alerts.*.owner_user_name 4221 +resources.alerts.*.parameters 4222 +resources.alerts.*.parameters[*] 4223 +resources.alerts.*.parameters[*].name 4224 +resources.alerts.*.parameters[*].type 4225 +resources.alerts.*.parameters[*].value 4226 +resources.alerts.*.parent_path 4227 +resources.alerts.*.query_text 4228 +resources.alerts.*.run_as 4229 +resources.alerts.*.run_as.service_principal_name 4230 +resources.alerts.*.run_as.user_name 4231 +resources.alerts.*.run_as_user_name 4232 +resources.alerts.*.schedule 4233 +resources.alerts.*.schedule.pause_status 4234 +resources.alerts.*.schedule.quartz_cron_schedule 4235 +resources.alerts.*.schedule.timezone_id 4236 +resources.alerts.*.update_time 4237 +resources.alerts.*.warehouse_id 4238 +resources.alerts.*.permissions 4239 +resources.alerts.*.permissions[*] 4240 +resources.alerts.*.permissions[*].level 4241 +resources.alerts.*.permissions[*].user_name 4242 +resources.alerts.*.permissions[*].service_principal_name 4243 +resources.alerts.*.permissions[*].group_name 4244 +resources.alerts.*.file_path 4245 diff --git a/acceptance/bundle/bitmap/full/output/apps.txt b/acceptance/bundle/bitmap/full/output/apps.txt new file mode 100644 index 00000000000..f2d17809051 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/apps.txt @@ -0,0 +1,215 @@ +resources.apps 3933 +resources.apps.* 3934 +resources.apps.*.url 3935 +resources.apps.*.modified_status 3936 +resources.apps.*.lifecycle 3937 +resources.apps.*.lifecycle.prevent_destroy 3938 +resources.apps.*.lifecycle.prevent_destroy=true 3939 +resources.apps.*.lifecycle.prevent_destroy=false 3940 +resources.apps.*.lifecycle.depends_on 3941 +resources.apps.*.lifecycle.depends_on[*] 3942 +resources.apps.*.lifecycle.depends_on[*].resource 3943 +resources.apps.*.active_deployment 3944 +resources.apps.*.active_deployment.command 3945 +resources.apps.*.active_deployment.command[*] 3946 +resources.apps.*.active_deployment.create_time 3947 +resources.apps.*.active_deployment.creator 3948 +resources.apps.*.active_deployment.deployment_artifacts 3949 +resources.apps.*.active_deployment.deployment_artifacts.source_code_path 3950 +resources.apps.*.active_deployment.deployment_id 3951 +resources.apps.*.active_deployment.env_vars 3952 +resources.apps.*.active_deployment.env_vars[*] 3953 +resources.apps.*.active_deployment.env_vars[*].name 3954 +resources.apps.*.active_deployment.env_vars[*].value 3955 +resources.apps.*.active_deployment.env_vars[*].value_from 3956 +resources.apps.*.active_deployment.git_source 3957 +resources.apps.*.active_deployment.git_source.branch 3958 +resources.apps.*.active_deployment.git_source.commit 3959 +resources.apps.*.active_deployment.git_source.git_repository 3960 +resources.apps.*.active_deployment.git_source.git_repository.auto_deploy 3961 +resources.apps.*.active_deployment.git_source.git_repository.auto_deploy=true 3962 +resources.apps.*.active_deployment.git_source.git_repository.auto_deploy=false 3963 +resources.apps.*.active_deployment.git_source.git_repository.caller_credential_id 3964 +resources.apps.*.active_deployment.git_source.git_repository.provider 3965 +resources.apps.*.active_deployment.git_source.git_repository.url 3966 +resources.apps.*.active_deployment.git_source.resolved_commit 3967 +resources.apps.*.active_deployment.git_source.source_code_path 3968 +resources.apps.*.active_deployment.git_source.tag 3969 +resources.apps.*.active_deployment.health_check 3970 +resources.apps.*.active_deployment.health_check.path 3971 +resources.apps.*.active_deployment.health_check.timeout 3972 +resources.apps.*.active_deployment.mode 3973 +resources.apps.*.active_deployment.source_code_path 3974 +resources.apps.*.active_deployment.status 3975 +resources.apps.*.active_deployment.status.message 3976 +resources.apps.*.active_deployment.status.state 3977 +resources.apps.*.active_deployment.update_time 3978 +resources.apps.*.app_status 3979 +resources.apps.*.app_status.message 3980 +resources.apps.*.app_status.running_instances 3981 +resources.apps.*.app_status.state 3982 +resources.apps.*.budget_policy_id 3983 +resources.apps.*.compute_max_instances 3984 +resources.apps.*.compute_min_instances 3985 +resources.apps.*.compute_size 3986 +resources.apps.*.compute_status 3987 +resources.apps.*.compute_status.active_instances 3988 +resources.apps.*.compute_status.message 3989 +resources.apps.*.compute_status.state 3990 +resources.apps.*.create_time 3991 +resources.apps.*.creator 3992 +resources.apps.*.default_git_source 3993 +resources.apps.*.default_git_source.branch 3994 +resources.apps.*.default_git_source.commit 3995 +resources.apps.*.default_git_source.git_repository 3996 +resources.apps.*.default_git_source.git_repository.auto_deploy 3997 +resources.apps.*.default_git_source.git_repository.auto_deploy=true 3998 +resources.apps.*.default_git_source.git_repository.auto_deploy=false 3999 +resources.apps.*.default_git_source.git_repository.caller_credential_id 4000 +resources.apps.*.default_git_source.git_repository.provider 4001 +resources.apps.*.default_git_source.git_repository.url 4002 +resources.apps.*.default_git_source.resolved_commit 4003 +resources.apps.*.default_git_source.source_code_path 4004 +resources.apps.*.default_git_source.tag 4005 +resources.apps.*.default_source_code_path 4006 +resources.apps.*.description 4007 +resources.apps.*.effective_budget_policy_id 4008 +resources.apps.*.effective_usage_policy_id 4009 +resources.apps.*.effective_user_api_scopes 4010 +resources.apps.*.effective_user_api_scopes[*] 4011 +resources.apps.*.forward_user_access_token 4012 +resources.apps.*.forward_user_access_token=true 4013 +resources.apps.*.forward_user_access_token=false 4014 +resources.apps.*.git_repository 4015 +resources.apps.*.git_repository.auto_deploy 4016 +resources.apps.*.git_repository.auto_deploy=true 4017 +resources.apps.*.git_repository.auto_deploy=false 4018 +resources.apps.*.git_repository.caller_credential_id 4019 +resources.apps.*.git_repository.provider 4020 +resources.apps.*.git_repository.url 4021 +resources.apps.*.git_source 4022 +resources.apps.*.git_source.branch 4023 +resources.apps.*.git_source.commit 4024 +resources.apps.*.git_source.git_repository 4025 +resources.apps.*.git_source.git_repository.auto_deploy 4026 +resources.apps.*.git_source.git_repository.auto_deploy=true 4027 +resources.apps.*.git_source.git_repository.auto_deploy=false 4028 +resources.apps.*.git_source.git_repository.caller_credential_id 4029 +resources.apps.*.git_source.git_repository.provider 4030 +resources.apps.*.git_source.git_repository.url 4031 +resources.apps.*.git_source.resolved_commit 4032 +resources.apps.*.git_source.source_code_path 4033 +resources.apps.*.git_source.tag 4034 +resources.apps.*.id 4035 +resources.apps.*.name 4036 +resources.apps.*.oauth2_app_client_id 4037 +resources.apps.*.oauth2_app_integration_id 4038 +resources.apps.*.pending_deployment 4039 +resources.apps.*.pending_deployment.command 4040 +resources.apps.*.pending_deployment.command[*] 4041 +resources.apps.*.pending_deployment.create_time 4042 +resources.apps.*.pending_deployment.creator 4043 +resources.apps.*.pending_deployment.deployment_artifacts 4044 +resources.apps.*.pending_deployment.deployment_artifacts.source_code_path 4045 +resources.apps.*.pending_deployment.deployment_id 4046 +resources.apps.*.pending_deployment.env_vars 4047 +resources.apps.*.pending_deployment.env_vars[*] 4048 +resources.apps.*.pending_deployment.env_vars[*].name 4049 +resources.apps.*.pending_deployment.env_vars[*].value 4050 +resources.apps.*.pending_deployment.env_vars[*].value_from 4051 +resources.apps.*.pending_deployment.git_source 4052 +resources.apps.*.pending_deployment.git_source.branch 4053 +resources.apps.*.pending_deployment.git_source.commit 4054 +resources.apps.*.pending_deployment.git_source.git_repository 4055 +resources.apps.*.pending_deployment.git_source.git_repository.auto_deploy 4056 +resources.apps.*.pending_deployment.git_source.git_repository.auto_deploy=true 4057 +resources.apps.*.pending_deployment.git_source.git_repository.auto_deploy=false 4058 +resources.apps.*.pending_deployment.git_source.git_repository.caller_credential_id 4059 +resources.apps.*.pending_deployment.git_source.git_repository.provider 4060 +resources.apps.*.pending_deployment.git_source.git_repository.url 4061 +resources.apps.*.pending_deployment.git_source.resolved_commit 4062 +resources.apps.*.pending_deployment.git_source.source_code_path 4063 +resources.apps.*.pending_deployment.git_source.tag 4064 +resources.apps.*.pending_deployment.health_check 4065 +resources.apps.*.pending_deployment.health_check.path 4066 +resources.apps.*.pending_deployment.health_check.timeout 4067 +resources.apps.*.pending_deployment.mode 4068 +resources.apps.*.pending_deployment.source_code_path 4069 +resources.apps.*.pending_deployment.status 4070 +resources.apps.*.pending_deployment.status.message 4071 +resources.apps.*.pending_deployment.status.state 4072 +resources.apps.*.pending_deployment.update_time 4073 +resources.apps.*.resources 4074 +resources.apps.*.resources[*] 4075 +resources.apps.*.resources[*].app 4076 +resources.apps.*.resources[*].app.name 4077 +resources.apps.*.resources[*].app.permission 4078 +resources.apps.*.resources[*].database 4079 +resources.apps.*.resources[*].database.database_name 4080 +resources.apps.*.resources[*].database.instance_name 4081 +resources.apps.*.resources[*].database.permission 4082 +resources.apps.*.resources[*].description 4083 +resources.apps.*.resources[*].experiment 4084 +resources.apps.*.resources[*].experiment.experiment_id 4085 +resources.apps.*.resources[*].experiment.permission 4086 +resources.apps.*.resources[*].genie_space 4087 +resources.apps.*.resources[*].genie_space.name 4088 +resources.apps.*.resources[*].genie_space.permission 4089 +resources.apps.*.resources[*].genie_space.space_id 4090 +resources.apps.*.resources[*].job 4091 +resources.apps.*.resources[*].job.id 4092 +resources.apps.*.resources[*].job.permission 4093 +resources.apps.*.resources[*].name 4094 +resources.apps.*.resources[*].postgres 4095 +resources.apps.*.resources[*].postgres.branch 4096 +resources.apps.*.resources[*].postgres.database 4097 +resources.apps.*.resources[*].postgres.permission 4098 +resources.apps.*.resources[*].secret 4099 +resources.apps.*.resources[*].secret.key 4100 +resources.apps.*.resources[*].secret.permission 4101 +resources.apps.*.resources[*].secret.scope 4102 +resources.apps.*.resources[*].serving_endpoint 4103 +resources.apps.*.resources[*].serving_endpoint.name 4104 +resources.apps.*.resources[*].serving_endpoint.permission 4105 +resources.apps.*.resources[*].sql_warehouse 4106 +resources.apps.*.resources[*].sql_warehouse.id 4107 +resources.apps.*.resources[*].sql_warehouse.permission 4108 +resources.apps.*.resources[*].uc_securable 4109 +resources.apps.*.resources[*].uc_securable.permission 4110 +resources.apps.*.resources[*].uc_securable.securable_full_name 4111 +resources.apps.*.resources[*].uc_securable.securable_kind 4112 +resources.apps.*.resources[*].uc_securable.securable_type 4113 +resources.apps.*.service_principal_client_id 4114 +resources.apps.*.service_principal_id 4115 +resources.apps.*.service_principal_name 4116 +resources.apps.*.source_code_path 4117 +resources.apps.*.space 4118 +resources.apps.*.telemetry_export_destinations 4119 +resources.apps.*.telemetry_export_destinations[*] 4120 +resources.apps.*.telemetry_export_destinations[*].unity_catalog 4121 +resources.apps.*.telemetry_export_destinations[*].unity_catalog.logs_table 4122 +resources.apps.*.telemetry_export_destinations[*].unity_catalog.metrics_table 4123 +resources.apps.*.telemetry_export_destinations[*].unity_catalog.traces_table 4124 +resources.apps.*.thumbnail_url 4125 +resources.apps.*.update_time 4126 +resources.apps.*.updater 4127 +resources.apps.*.usage_policy_id 4128 +resources.apps.*.user_api_scopes 4129 +resources.apps.*.user_api_scopes[*] 4130 +resources.apps.*.lifecycle.started 4131 +resources.apps.*.lifecycle.started=true 4132 +resources.apps.*.lifecycle.started=false 4133 +resources.apps.*.config 4134 +resources.apps.*.config.command 4135 +resources.apps.*.config.command[*] 4136 +resources.apps.*.config.env 4137 +resources.apps.*.config.env[*] 4138 +resources.apps.*.config.env[*].name 4139 +resources.apps.*.config.env[*].value 4140 +resources.apps.*.config.env[*].value_from 4141 +resources.apps.*.permissions 4142 +resources.apps.*.permissions[*] 4143 +resources.apps.*.permissions[*].level 4144 +resources.apps.*.permissions[*].user_name 4145 +resources.apps.*.permissions[*].service_principal_name 4146 +resources.apps.*.permissions[*].group_name 4147 diff --git a/acceptance/bundle/bitmap/full/output/catalogs.txt b/acceptance/bundle/bitmap/full/output/catalogs.txt new file mode 100644 index 00000000000..4e96b93c01f --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/catalogs.txt @@ -0,0 +1,35 @@ +resources.catalogs 3536 +resources.catalogs.* 3537 +resources.catalogs.*.url 3538 +resources.catalogs.*.modified_status 3539 +resources.catalogs.*.lifecycle 3540 +resources.catalogs.*.lifecycle.prevent_destroy 3541 +resources.catalogs.*.lifecycle.prevent_destroy=true 3542 +resources.catalogs.*.lifecycle.prevent_destroy=false 3543 +resources.catalogs.*.lifecycle.depends_on 3544 +resources.catalogs.*.lifecycle.depends_on[*] 3545 +resources.catalogs.*.lifecycle.depends_on[*].resource 3546 +resources.catalogs.*.id 3547 +resources.catalogs.*.comment 3548 +resources.catalogs.*.connection_name 3549 +resources.catalogs.*.custom_max_retention_hours 3550 +resources.catalogs.*.managed_encryption_settings 3551 +resources.catalogs.*.managed_encryption_settings.azure_encryption_settings 3552 +resources.catalogs.*.managed_encryption_settings.azure_encryption_settings.azure_cmk_access_connector_id 3553 +resources.catalogs.*.managed_encryption_settings.azure_encryption_settings.azure_cmk_managed_identity_id 3554 +resources.catalogs.*.managed_encryption_settings.azure_encryption_settings.azure_tenant_id 3555 +resources.catalogs.*.managed_encryption_settings.azure_key_vault_key_id 3556 +resources.catalogs.*.managed_encryption_settings.customer_managed_key_id 3557 +resources.catalogs.*.name 3558 +resources.catalogs.*.options 3559 +resources.catalogs.*.options.* 3560 +resources.catalogs.*.properties 3561 +resources.catalogs.*.properties.* 3562 +resources.catalogs.*.provider_name 3563 +resources.catalogs.*.share_name 3564 +resources.catalogs.*.storage_root 3565 +resources.catalogs.*.grants 3566 +resources.catalogs.*.grants[*] 3567 +resources.catalogs.*.grants[*].principal 3568 +resources.catalogs.*.grants[*].privileges 3569 +resources.catalogs.*.grants[*].privileges[*] 3570 diff --git a/acceptance/bundle/bitmap/full/output/cluster_policies.txt b/acceptance/bundle/bitmap/full/output/cluster_policies.txt new file mode 100644 index 00000000000..ad1145671e9 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/cluster_policies.txt @@ -0,0 +1,41 @@ +resources.cluster_policies 4911 +resources.cluster_policies.* 4912 +resources.cluster_policies.*.url 4913 +resources.cluster_policies.*.modified_status 4914 +resources.cluster_policies.*.lifecycle 4915 +resources.cluster_policies.*.lifecycle.prevent_destroy 4916 +resources.cluster_policies.*.lifecycle.prevent_destroy=true 4917 +resources.cluster_policies.*.lifecycle.prevent_destroy=false 4918 +resources.cluster_policies.*.lifecycle.depends_on 4919 +resources.cluster_policies.*.lifecycle.depends_on[*] 4920 +resources.cluster_policies.*.lifecycle.depends_on[*].resource 4921 +resources.cluster_policies.*.id 4922 +resources.cluster_policies.*.definition 4923 +resources.cluster_policies.*.description 4924 +resources.cluster_policies.*.libraries 4925 +resources.cluster_policies.*.libraries[*] 4926 +resources.cluster_policies.*.libraries[*].cran 4927 +resources.cluster_policies.*.libraries[*].cran.package 4928 +resources.cluster_policies.*.libraries[*].cran.repo 4929 +resources.cluster_policies.*.libraries[*].egg 4930 +resources.cluster_policies.*.libraries[*].jar 4931 +resources.cluster_policies.*.libraries[*].maven 4932 +resources.cluster_policies.*.libraries[*].maven.coordinates 4933 +resources.cluster_policies.*.libraries[*].maven.exclusions 4934 +resources.cluster_policies.*.libraries[*].maven.exclusions[*] 4935 +resources.cluster_policies.*.libraries[*].maven.repo 4936 +resources.cluster_policies.*.libraries[*].pypi 4937 +resources.cluster_policies.*.libraries[*].pypi.package 4938 +resources.cluster_policies.*.libraries[*].pypi.repo 4939 +resources.cluster_policies.*.libraries[*].requirements 4940 +resources.cluster_policies.*.libraries[*].whl 4941 +resources.cluster_policies.*.max_clusters_per_user 4942 +resources.cluster_policies.*.name 4943 +resources.cluster_policies.*.policy_family_definition_overrides 4944 +resources.cluster_policies.*.policy_family_id 4945 +resources.cluster_policies.*.permissions 4946 +resources.cluster_policies.*.permissions[*] 4947 +resources.cluster_policies.*.permissions[*].level 4948 +resources.cluster_policies.*.permissions[*].user_name 4949 +resources.cluster_policies.*.permissions[*].service_principal_name 4950 +resources.cluster_policies.*.permissions[*].group_name 4951 diff --git a/acceptance/bundle/bitmap/full/output/clusters.txt b/acceptance/bundle/bitmap/full/output/clusters.txt new file mode 100644 index 00000000000..fd312deb451 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/clusters.txt @@ -0,0 +1,170 @@ +resources.clusters 3704 +resources.clusters.* 3705 +resources.clusters.*.url 3706 +resources.clusters.*.modified_status 3707 +resources.clusters.*.lifecycle 3708 +resources.clusters.*.lifecycle.prevent_destroy 3709 +resources.clusters.*.lifecycle.prevent_destroy=true 3710 +resources.clusters.*.lifecycle.prevent_destroy=false 3711 +resources.clusters.*.lifecycle.depends_on 3712 +resources.clusters.*.lifecycle.depends_on[*] 3713 +resources.clusters.*.lifecycle.depends_on[*].resource 3714 +resources.clusters.*.id 3715 +resources.clusters.*.apply_policy_default_values 3716 +resources.clusters.*.apply_policy_default_values=true 3717 +resources.clusters.*.apply_policy_default_values=false 3718 +resources.clusters.*.autoscale 3719 +resources.clusters.*.autoscale.max_workers 3720 +resources.clusters.*.autoscale.min_workers 3721 +resources.clusters.*.autotermination_minutes 3722 +resources.clusters.*.aws_attributes 3723 +resources.clusters.*.aws_attributes.availability 3724 +resources.clusters.*.aws_attributes.ebs_volume_count 3725 +resources.clusters.*.aws_attributes.ebs_volume_iops 3726 +resources.clusters.*.aws_attributes.ebs_volume_size 3727 +resources.clusters.*.aws_attributes.ebs_volume_throughput 3728 +resources.clusters.*.aws_attributes.ebs_volume_type 3729 +resources.clusters.*.aws_attributes.first_on_demand 3730 +resources.clusters.*.aws_attributes.instance_profile_arn 3731 +resources.clusters.*.aws_attributes.spot_bid_price_percent 3732 +resources.clusters.*.aws_attributes.zone_id 3733 +resources.clusters.*.azure_attributes 3734 +resources.clusters.*.azure_attributes.availability 3735 +resources.clusters.*.azure_attributes.capacity_reservation_group 3736 +resources.clusters.*.azure_attributes.first_on_demand 3737 +resources.clusters.*.azure_attributes.log_analytics_info 3738 +resources.clusters.*.azure_attributes.log_analytics_info.log_analytics_primary_key 3739 +resources.clusters.*.azure_attributes.log_analytics_info.log_analytics_workspace_id 3740 +resources.clusters.*.azure_attributes.spot_bid_max_price 3741 +resources.clusters.*.cluster_log_conf 3742 +resources.clusters.*.cluster_log_conf.dbfs 3743 +resources.clusters.*.cluster_log_conf.dbfs.destination 3744 +resources.clusters.*.cluster_log_conf.s3 3745 +resources.clusters.*.cluster_log_conf.s3.canned_acl 3746 +resources.clusters.*.cluster_log_conf.s3.destination 3747 +resources.clusters.*.cluster_log_conf.s3.enable_encryption 3748 +resources.clusters.*.cluster_log_conf.s3.enable_encryption=true 3749 +resources.clusters.*.cluster_log_conf.s3.enable_encryption=false 3750 +resources.clusters.*.cluster_log_conf.s3.encryption_type 3751 +resources.clusters.*.cluster_log_conf.s3.endpoint 3752 +resources.clusters.*.cluster_log_conf.s3.kms_key 3753 +resources.clusters.*.cluster_log_conf.s3.region 3754 +resources.clusters.*.cluster_log_conf.volumes 3755 +resources.clusters.*.cluster_log_conf.volumes.destination 3756 +resources.clusters.*.cluster_name 3757 +resources.clusters.*.custom_tags 3758 +resources.clusters.*.custom_tags.* 3759 +resources.clusters.*.data_security_mode 3760 +resources.clusters.*.dependency_mode 3761 +resources.clusters.*.docker_image 3762 +resources.clusters.*.docker_image.basic_auth 3763 +resources.clusters.*.docker_image.basic_auth.password 3764 +resources.clusters.*.docker_image.basic_auth.username 3765 +resources.clusters.*.docker_image.url 3766 +resources.clusters.*.driver_instance_pool_id 3767 +resources.clusters.*.driver_node_type_flexibility 3768 +resources.clusters.*.driver_node_type_flexibility.alternate_node_type_ids 3769 +resources.clusters.*.driver_node_type_flexibility.alternate_node_type_ids[*] 3770 +resources.clusters.*.driver_node_type_flexibility.aws_context_id 3771 +resources.clusters.*.driver_node_type_id 3772 +resources.clusters.*.enable_elastic_disk 3773 +resources.clusters.*.enable_elastic_disk=true 3774 +resources.clusters.*.enable_elastic_disk=false 3775 +resources.clusters.*.enable_local_disk_encryption 3776 +resources.clusters.*.enable_local_disk_encryption=true 3777 +resources.clusters.*.enable_local_disk_encryption=false 3778 +resources.clusters.*.gcp_attributes 3779 +resources.clusters.*.gcp_attributes.availability 3780 +resources.clusters.*.gcp_attributes.boot_disk_size 3781 +resources.clusters.*.gcp_attributes.confidential_compute_type 3782 +resources.clusters.*.gcp_attributes.first_on_demand 3783 +resources.clusters.*.gcp_attributes.google_service_account 3784 +resources.clusters.*.gcp_attributes.local_ssd_count 3785 +resources.clusters.*.gcp_attributes.use_preemptible_executors 3786 +resources.clusters.*.gcp_attributes.use_preemptible_executors=true 3787 +resources.clusters.*.gcp_attributes.use_preemptible_executors=false 3788 +resources.clusters.*.gcp_attributes.zone_id 3789 +resources.clusters.*.init_scripts 3790 +resources.clusters.*.init_scripts[*] 3791 +resources.clusters.*.init_scripts[*].abfss 3792 +resources.clusters.*.init_scripts[*].abfss.destination 3793 +resources.clusters.*.init_scripts[*].dbfs 3794 +resources.clusters.*.init_scripts[*].dbfs.destination 3795 +resources.clusters.*.init_scripts[*].file 3796 +resources.clusters.*.init_scripts[*].file.destination 3797 +resources.clusters.*.init_scripts[*].gcs 3798 +resources.clusters.*.init_scripts[*].gcs.destination 3799 +resources.clusters.*.init_scripts[*].s3 3800 +resources.clusters.*.init_scripts[*].s3.canned_acl 3801 +resources.clusters.*.init_scripts[*].s3.destination 3802 +resources.clusters.*.init_scripts[*].s3.enable_encryption 3803 +resources.clusters.*.init_scripts[*].s3.enable_encryption=true 3804 +resources.clusters.*.init_scripts[*].s3.enable_encryption=false 3805 +resources.clusters.*.init_scripts[*].s3.encryption_type 3806 +resources.clusters.*.init_scripts[*].s3.endpoint 3807 +resources.clusters.*.init_scripts[*].s3.kms_key 3808 +resources.clusters.*.init_scripts[*].s3.region 3809 +resources.clusters.*.init_scripts[*].volumes 3810 +resources.clusters.*.init_scripts[*].volumes.destination 3811 +resources.clusters.*.init_scripts[*].workspace 3812 +resources.clusters.*.init_scripts[*].workspace.destination 3813 +resources.clusters.*.instance_pool_id 3814 +resources.clusters.*.is_single_node 3815 +resources.clusters.*.is_single_node=true 3816 +resources.clusters.*.is_single_node=false 3817 +resources.clusters.*.kind 3818 +resources.clusters.*.node_type_id 3819 +resources.clusters.*.num_workers 3820 +resources.clusters.*.policy_id 3821 +resources.clusters.*.remote_disk_throughput 3822 +resources.clusters.*.runtime_engine 3823 +resources.clusters.*.single_user_name 3824 +resources.clusters.*.spark_conf 3825 +resources.clusters.*.spark_conf.* 3826 +resources.clusters.*.spark_env_vars 3827 +resources.clusters.*.spark_env_vars.* 3828 +resources.clusters.*.spark_version 3829 +resources.clusters.*.ssh_public_keys 3830 +resources.clusters.*.ssh_public_keys[*] 3831 +resources.clusters.*.total_initial_remote_disk_size 3832 +resources.clusters.*.use_ml_runtime 3833 +resources.clusters.*.use_ml_runtime=true 3834 +resources.clusters.*.use_ml_runtime=false 3835 +resources.clusters.*.worker_node_type_flexibility 3836 +resources.clusters.*.worker_node_type_flexibility.alternate_node_type_ids 3837 +resources.clusters.*.worker_node_type_flexibility.alternate_node_type_ids[*] 3838 +resources.clusters.*.worker_node_type_flexibility.aws_context_id 3839 +resources.clusters.*.workload_type 3840 +resources.clusters.*.workload_type.clients 3841 +resources.clusters.*.workload_type.clients.jobs 3842 +resources.clusters.*.workload_type.clients.jobs=true 3843 +resources.clusters.*.workload_type.clients.jobs=false 3844 +resources.clusters.*.workload_type.clients.notebooks 3845 +resources.clusters.*.workload_type.clients.notebooks=true 3846 +resources.clusters.*.workload_type.clients.notebooks=false 3847 +resources.clusters.*.lifecycle.started 3848 +resources.clusters.*.lifecycle.started=true 3849 +resources.clusters.*.lifecycle.started=false 3850 +resources.clusters.*.libraries 3851 +resources.clusters.*.libraries[*] 3852 +resources.clusters.*.libraries[*].cran 3853 +resources.clusters.*.libraries[*].cran.package 3854 +resources.clusters.*.libraries[*].cran.repo 3855 +resources.clusters.*.libraries[*].egg 3856 +resources.clusters.*.libraries[*].jar 3857 +resources.clusters.*.libraries[*].maven 3858 +resources.clusters.*.libraries[*].maven.coordinates 3859 +resources.clusters.*.libraries[*].maven.exclusions 3860 +resources.clusters.*.libraries[*].maven.exclusions[*] 3861 +resources.clusters.*.libraries[*].maven.repo 3862 +resources.clusters.*.libraries[*].pypi 3863 +resources.clusters.*.libraries[*].pypi.package 3864 +resources.clusters.*.libraries[*].pypi.repo 3865 +resources.clusters.*.libraries[*].requirements 3866 +resources.clusters.*.libraries[*].whl 3867 +resources.clusters.*.permissions 3868 +resources.clusters.*.permissions[*] 3869 +resources.clusters.*.permissions[*].level 3870 +resources.clusters.*.permissions[*].user_name 3871 +resources.clusters.*.permissions[*].service_principal_name 3872 +resources.clusters.*.permissions[*].group_name 3873 diff --git a/acceptance/bundle/bitmap/full/output/dashboards.txt b/acceptance/bundle/bitmap/full/output/dashboards.txt new file mode 100644 index 00000000000..7864ab15c2c --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/dashboards.txt @@ -0,0 +1,34 @@ +resources.dashboards 3874 +resources.dashboards.* 3875 +resources.dashboards.*.url 3876 +resources.dashboards.*.modified_status 3877 +resources.dashboards.*.lifecycle 3878 +resources.dashboards.*.lifecycle.prevent_destroy 3879 +resources.dashboards.*.lifecycle.prevent_destroy=true 3880 +resources.dashboards.*.lifecycle.prevent_destroy=false 3881 +resources.dashboards.*.lifecycle.depends_on 3882 +resources.dashboards.*.lifecycle.depends_on[*] 3883 +resources.dashboards.*.lifecycle.depends_on[*].resource 3884 +resources.dashboards.*.id 3885 +resources.dashboards.*.create_time 3886 +resources.dashboards.*.dashboard_id 3887 +resources.dashboards.*.display_name 3888 +resources.dashboards.*.etag 3889 +resources.dashboards.*.lifecycle_state 3890 +resources.dashboards.*.parent_path 3891 +resources.dashboards.*.path 3892 +resources.dashboards.*.update_time 3893 +resources.dashboards.*.warehouse_id 3894 +resources.dashboards.*.serialized_dashboard 3895 +resources.dashboards.*.embed_credentials 3896 +resources.dashboards.*.embed_credentials=true 3897 +resources.dashboards.*.embed_credentials=false 3898 +resources.dashboards.*.dataset_catalog 3899 +resources.dashboards.*.dataset_schema 3900 +resources.dashboards.*.permissions 3901 +resources.dashboards.*.permissions[*] 3902 +resources.dashboards.*.permissions[*].level 3903 +resources.dashboards.*.permissions[*].user_name 3904 +resources.dashboards.*.permissions[*].service_principal_name 3905 +resources.dashboards.*.permissions[*].group_name 3906 +resources.dashboards.*.file_path 3907 diff --git a/acceptance/bundle/bitmap/full/output/data_quality_monitors.txt b/acceptance/bundle/bitmap/full/output/data_quality_monitors.txt new file mode 100644 index 00000000000..e5c566edbb2 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/data_quality_monitors.txt @@ -0,0 +1,90 @@ +resources.data_quality_monitors 3446 +resources.data_quality_monitors.* 3447 +resources.data_quality_monitors.*.url 3448 +resources.data_quality_monitors.*.modified_status 3449 +resources.data_quality_monitors.*.lifecycle 3450 +resources.data_quality_monitors.*.lifecycle.prevent_destroy 3451 +resources.data_quality_monitors.*.lifecycle.prevent_destroy=true 3452 +resources.data_quality_monitors.*.lifecycle.prevent_destroy=false 3453 +resources.data_quality_monitors.*.lifecycle.depends_on 3454 +resources.data_quality_monitors.*.lifecycle.depends_on[*] 3455 +resources.data_quality_monitors.*.lifecycle.depends_on[*].resource 3456 +resources.data_quality_monitors.*.id 3457 +resources.data_quality_monitors.*.anomaly_detection_config 3458 +resources.data_quality_monitors.*.anomaly_detection_config.excluded_table_full_names 3459 +resources.data_quality_monitors.*.anomaly_detection_config.excluded_table_full_names[*] 3460 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings 3461 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure 3462 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.destination_ids 3463 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.destination_ids[*] 3464 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.destination_user_ids 3465 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.destination_user_ids[*] 3466 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.email_addresses 3467 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.email_addresses[*] 3468 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table 3469 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.destination_ids 3470 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.destination_ids[*] 3471 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.destination_user_ids 3472 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.destination_user_ids[*] 3473 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.email_addresses 3474 +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.email_addresses[*] 3475 +resources.data_quality_monitors.*.data_profiling_config 3476 +resources.data_quality_monitors.*.data_profiling_config.assets_dir 3477 +resources.data_quality_monitors.*.data_profiling_config.baseline_table_name 3478 +resources.data_quality_monitors.*.data_profiling_config.custom_metrics 3479 +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*] 3480 +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].definition 3481 +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].input_columns 3482 +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].input_columns[*] 3483 +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].name 3484 +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].output_data_type 3485 +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].type 3486 +resources.data_quality_monitors.*.data_profiling_config.dashboard_id 3487 +resources.data_quality_monitors.*.data_profiling_config.drift_metrics_table_name 3488 +resources.data_quality_monitors.*.data_profiling_config.effective_warehouse_id 3489 +resources.data_quality_monitors.*.data_profiling_config.inference_log 3490 +resources.data_quality_monitors.*.data_profiling_config.inference_log.granularities 3491 +resources.data_quality_monitors.*.data_profiling_config.inference_log.granularities[*] 3492 +resources.data_quality_monitors.*.data_profiling_config.inference_log.label_column 3493 +resources.data_quality_monitors.*.data_profiling_config.inference_log.model_id_column 3494 +resources.data_quality_monitors.*.data_profiling_config.inference_log.prediction_column 3495 +resources.data_quality_monitors.*.data_profiling_config.inference_log.problem_type 3496 +resources.data_quality_monitors.*.data_profiling_config.inference_log.timestamp_column 3497 +resources.data_quality_monitors.*.data_profiling_config.latest_monitor_failure_message 3498 +resources.data_quality_monitors.*.data_profiling_config.monitor_version 3499 +resources.data_quality_monitors.*.data_profiling_config.monitored_table_name 3500 +resources.data_quality_monitors.*.data_profiling_config.notification_settings 3501 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure 3502 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.destination_ids 3503 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.destination_ids[*] 3504 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.destination_user_ids 3505 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.destination_user_ids[*] 3506 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.email_addresses 3507 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.email_addresses[*] 3508 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table 3509 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.destination_ids 3510 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.destination_ids[*] 3511 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.destination_user_ids 3512 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.destination_user_ids[*] 3513 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.email_addresses 3514 +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.email_addresses[*] 3515 +resources.data_quality_monitors.*.data_profiling_config.output_schema_id 3516 +resources.data_quality_monitors.*.data_profiling_config.profile_metrics_table_name 3517 +resources.data_quality_monitors.*.data_profiling_config.schedule 3518 +resources.data_quality_monitors.*.data_profiling_config.schedule.pause_status 3519 +resources.data_quality_monitors.*.data_profiling_config.schedule.quartz_cron_expression 3520 +resources.data_quality_monitors.*.data_profiling_config.schedule.timezone_id 3521 +resources.data_quality_monitors.*.data_profiling_config.skip_builtin_dashboard 3522 +resources.data_quality_monitors.*.data_profiling_config.skip_builtin_dashboard=true 3523 +resources.data_quality_monitors.*.data_profiling_config.skip_builtin_dashboard=false 3524 +resources.data_quality_monitors.*.data_profiling_config.slicing_exprs 3525 +resources.data_quality_monitors.*.data_profiling_config.slicing_exprs[*] 3526 +resources.data_quality_monitors.*.data_profiling_config.snapshot 3527 +resources.data_quality_monitors.*.data_profiling_config.status 3528 +resources.data_quality_monitors.*.data_profiling_config.time_series 3529 +resources.data_quality_monitors.*.data_profiling_config.time_series.granularities 3530 +resources.data_quality_monitors.*.data_profiling_config.time_series.granularities[*] 3531 +resources.data_quality_monitors.*.data_profiling_config.time_series.timestamp_column 3532 +resources.data_quality_monitors.*.data_profiling_config.warehouse_id 3533 +resources.data_quality_monitors.*.object_id 3534 +resources.data_quality_monitors.*.object_type 3535 diff --git a/acceptance/bundle/bitmap/full/output/database_catalogs.txt b/acceptance/bundle/bitmap/full/output/database_catalogs.txt new file mode 100644 index 00000000000..99cf4ebd799 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/database_catalogs.txt @@ -0,0 +1,19 @@ +resources.database_catalogs 4367 +resources.database_catalogs.* 4368 +resources.database_catalogs.*.url 4369 +resources.database_catalogs.*.modified_status 4370 +resources.database_catalogs.*.lifecycle 4371 +resources.database_catalogs.*.lifecycle.prevent_destroy 4372 +resources.database_catalogs.*.lifecycle.prevent_destroy=true 4373 +resources.database_catalogs.*.lifecycle.prevent_destroy=false 4374 +resources.database_catalogs.*.lifecycle.depends_on 4375 +resources.database_catalogs.*.lifecycle.depends_on[*] 4376 +resources.database_catalogs.*.lifecycle.depends_on[*].resource 4377 +resources.database_catalogs.*.id 4378 +resources.database_catalogs.*.create_database_if_not_exists 4379 +resources.database_catalogs.*.create_database_if_not_exists=true 4380 +resources.database_catalogs.*.create_database_if_not_exists=false 4381 +resources.database_catalogs.*.database_instance_name 4382 +resources.database_catalogs.*.database_name 4383 +resources.database_catalogs.*.name 4384 +resources.database_catalogs.*.uid 4385 diff --git a/acceptance/bundle/bitmap/full/output/database_instances.txt b/acceptance/bundle/bitmap/full/output/database_instances.txt new file mode 100644 index 00000000000..331ca811915 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/database_instances.txt @@ -0,0 +1,73 @@ +resources.database_instances 4294 +resources.database_instances.* 4295 +resources.database_instances.*.url 4296 +resources.database_instances.*.modified_status 4297 +resources.database_instances.*.lifecycle 4298 +resources.database_instances.*.lifecycle.prevent_destroy 4299 +resources.database_instances.*.lifecycle.prevent_destroy=true 4300 +resources.database_instances.*.lifecycle.prevent_destroy=false 4301 +resources.database_instances.*.lifecycle.depends_on 4302 +resources.database_instances.*.lifecycle.depends_on[*] 4303 +resources.database_instances.*.lifecycle.depends_on[*].resource 4304 +resources.database_instances.*.id 4305 +resources.database_instances.*.capacity 4306 +resources.database_instances.*.child_instance_refs 4307 +resources.database_instances.*.child_instance_refs[*] 4308 +resources.database_instances.*.child_instance_refs[*].branch_time 4309 +resources.database_instances.*.child_instance_refs[*].effective_lsn 4310 +resources.database_instances.*.child_instance_refs[*].lsn 4311 +resources.database_instances.*.child_instance_refs[*].name 4312 +resources.database_instances.*.child_instance_refs[*].uid 4313 +resources.database_instances.*.creation_time 4314 +resources.database_instances.*.creator 4315 +resources.database_instances.*.custom_tags 4316 +resources.database_instances.*.custom_tags[*] 4317 +resources.database_instances.*.custom_tags[*].key 4318 +resources.database_instances.*.custom_tags[*].value 4319 +resources.database_instances.*.effective_capacity 4320 +resources.database_instances.*.effective_custom_tags 4321 +resources.database_instances.*.effective_custom_tags[*] 4322 +resources.database_instances.*.effective_custom_tags[*].key 4323 +resources.database_instances.*.effective_custom_tags[*].value 4324 +resources.database_instances.*.effective_enable_pg_native_login 4325 +resources.database_instances.*.effective_enable_pg_native_login=true 4326 +resources.database_instances.*.effective_enable_pg_native_login=false 4327 +resources.database_instances.*.effective_enable_readable_secondaries 4328 +resources.database_instances.*.effective_enable_readable_secondaries=true 4329 +resources.database_instances.*.effective_enable_readable_secondaries=false 4330 +resources.database_instances.*.effective_node_count 4331 +resources.database_instances.*.effective_retention_window_in_days 4332 +resources.database_instances.*.effective_stopped 4333 +resources.database_instances.*.effective_stopped=true 4334 +resources.database_instances.*.effective_stopped=false 4335 +resources.database_instances.*.effective_usage_policy_id 4336 +resources.database_instances.*.enable_pg_native_login 4337 +resources.database_instances.*.enable_pg_native_login=true 4338 +resources.database_instances.*.enable_pg_native_login=false 4339 +resources.database_instances.*.enable_readable_secondaries 4340 +resources.database_instances.*.enable_readable_secondaries=true 4341 +resources.database_instances.*.enable_readable_secondaries=false 4342 +resources.database_instances.*.name 4343 +resources.database_instances.*.node_count 4344 +resources.database_instances.*.parent_instance_ref 4345 +resources.database_instances.*.parent_instance_ref.branch_time 4346 +resources.database_instances.*.parent_instance_ref.effective_lsn 4347 +resources.database_instances.*.parent_instance_ref.lsn 4348 +resources.database_instances.*.parent_instance_ref.name 4349 +resources.database_instances.*.parent_instance_ref.uid 4350 +resources.database_instances.*.pg_version 4351 +resources.database_instances.*.read_only_dns 4352 +resources.database_instances.*.read_write_dns 4353 +resources.database_instances.*.retention_window_in_days 4354 +resources.database_instances.*.state 4355 +resources.database_instances.*.stopped 4356 +resources.database_instances.*.stopped=true 4357 +resources.database_instances.*.stopped=false 4358 +resources.database_instances.*.uid 4359 +resources.database_instances.*.usage_policy_id 4360 +resources.database_instances.*.permissions 4361 +resources.database_instances.*.permissions[*] 4362 +resources.database_instances.*.permissions[*].level 4363 +resources.database_instances.*.permissions[*].user_name 4364 +resources.database_instances.*.permissions[*].service_principal_name 4365 +resources.database_instances.*.permissions[*].group_name 4366 diff --git a/acceptance/bundle/bitmap/full/output/experiments.txt b/acceptance/bundle/bitmap/full/output/experiments.txt new file mode 100644 index 00000000000..77db22891a4 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/experiments.txt @@ -0,0 +1,30 @@ +resources.experiments 2848 +resources.experiments.* 2849 +resources.experiments.*.url 2850 +resources.experiments.*.modified_status 2851 +resources.experiments.*.lifecycle 2852 +resources.experiments.*.lifecycle.prevent_destroy 2853 +resources.experiments.*.lifecycle.prevent_destroy=true 2854 +resources.experiments.*.lifecycle.prevent_destroy=false 2855 +resources.experiments.*.lifecycle.depends_on 2856 +resources.experiments.*.lifecycle.depends_on[*] 2857 +resources.experiments.*.lifecycle.depends_on[*].resource 2858 +resources.experiments.*.id 2859 +resources.experiments.*.artifact_location 2860 +resources.experiments.*.name 2861 +resources.experiments.*.tags 2862 +resources.experiments.*.tags[*] 2863 +resources.experiments.*.tags[*].key 2864 +resources.experiments.*.tags[*].value 2865 +resources.experiments.*.trace_location 2866 +resources.experiments.*.trace_location.uc_trace_location 2867 +resources.experiments.*.trace_location.uc_trace_location.catalog 2868 +resources.experiments.*.trace_location.uc_trace_location.effective_table_prefix 2869 +resources.experiments.*.trace_location.uc_trace_location.schema 2870 +resources.experiments.*.trace_location.uc_trace_location.table_prefix 2871 +resources.experiments.*.permissions 2872 +resources.experiments.*.permissions[*] 2873 +resources.experiments.*.permissions[*].level 2874 +resources.experiments.*.permissions[*].user_name 2875 +resources.experiments.*.permissions[*].service_principal_name 2876 +resources.experiments.*.permissions[*].group_name 2877 diff --git a/acceptance/bundle/bitmap/full/output/external_locations.txt b/acceptance/bundle/bitmap/full/output/external_locations.txt new file mode 100644 index 00000000000..4c8de2a3c28 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/external_locations.txt @@ -0,0 +1,85 @@ +resources.external_locations 3619 +resources.external_locations.* 3620 +resources.external_locations.*.id 3621 +resources.external_locations.*.modified_status 3622 +resources.external_locations.*.lifecycle 3623 +resources.external_locations.*.lifecycle.prevent_destroy 3624 +resources.external_locations.*.lifecycle.prevent_destroy=true 3625 +resources.external_locations.*.lifecycle.prevent_destroy=false 3626 +resources.external_locations.*.lifecycle.depends_on 3627 +resources.external_locations.*.lifecycle.depends_on[*] 3628 +resources.external_locations.*.lifecycle.depends_on[*].resource 3629 +resources.external_locations.*.comment 3630 +resources.external_locations.*.credential_name 3631 +resources.external_locations.*.effective_enable_file_events 3632 +resources.external_locations.*.effective_enable_file_events=true 3633 +resources.external_locations.*.effective_enable_file_events=false 3634 +resources.external_locations.*.effective_file_event_queue 3635 +resources.external_locations.*.effective_file_event_queue.managed_aqs 3636 +resources.external_locations.*.effective_file_event_queue.managed_aqs.managed_resource_id 3637 +resources.external_locations.*.effective_file_event_queue.managed_aqs.queue_url 3638 +resources.external_locations.*.effective_file_event_queue.managed_aqs.resource_group 3639 +resources.external_locations.*.effective_file_event_queue.managed_aqs.subscription_id 3640 +resources.external_locations.*.effective_file_event_queue.managed_pubsub 3641 +resources.external_locations.*.effective_file_event_queue.managed_pubsub.managed_resource_id 3642 +resources.external_locations.*.effective_file_event_queue.managed_pubsub.subscription_name 3643 +resources.external_locations.*.effective_file_event_queue.managed_sqs 3644 +resources.external_locations.*.effective_file_event_queue.managed_sqs.managed_resource_id 3645 +resources.external_locations.*.effective_file_event_queue.managed_sqs.queue_url 3646 +resources.external_locations.*.effective_file_event_queue.provided_aqs 3647 +resources.external_locations.*.effective_file_event_queue.provided_aqs.managed_resource_id 3648 +resources.external_locations.*.effective_file_event_queue.provided_aqs.queue_url 3649 +resources.external_locations.*.effective_file_event_queue.provided_aqs.resource_group 3650 +resources.external_locations.*.effective_file_event_queue.provided_aqs.subscription_id 3651 +resources.external_locations.*.effective_file_event_queue.provided_pubsub 3652 +resources.external_locations.*.effective_file_event_queue.provided_pubsub.managed_resource_id 3653 +resources.external_locations.*.effective_file_event_queue.provided_pubsub.subscription_name 3654 +resources.external_locations.*.effective_file_event_queue.provided_sqs 3655 +resources.external_locations.*.effective_file_event_queue.provided_sqs.managed_resource_id 3656 +resources.external_locations.*.effective_file_event_queue.provided_sqs.queue_url 3657 +resources.external_locations.*.enable_file_events 3658 +resources.external_locations.*.enable_file_events=true 3659 +resources.external_locations.*.enable_file_events=false 3660 +resources.external_locations.*.encryption_details 3661 +resources.external_locations.*.encryption_details.sse_encryption_details 3662 +resources.external_locations.*.encryption_details.sse_encryption_details.algorithm 3663 +resources.external_locations.*.encryption_details.sse_encryption_details.aws_kms_key_arn 3664 +resources.external_locations.*.fallback 3665 +resources.external_locations.*.fallback=true 3666 +resources.external_locations.*.fallback=false 3667 +resources.external_locations.*.file_event_queue 3668 +resources.external_locations.*.file_event_queue.managed_aqs 3669 +resources.external_locations.*.file_event_queue.managed_aqs.managed_resource_id 3670 +resources.external_locations.*.file_event_queue.managed_aqs.queue_url 3671 +resources.external_locations.*.file_event_queue.managed_aqs.resource_group 3672 +resources.external_locations.*.file_event_queue.managed_aqs.subscription_id 3673 +resources.external_locations.*.file_event_queue.managed_pubsub 3674 +resources.external_locations.*.file_event_queue.managed_pubsub.managed_resource_id 3675 +resources.external_locations.*.file_event_queue.managed_pubsub.subscription_name 3676 +resources.external_locations.*.file_event_queue.managed_sqs 3677 +resources.external_locations.*.file_event_queue.managed_sqs.managed_resource_id 3678 +resources.external_locations.*.file_event_queue.managed_sqs.queue_url 3679 +resources.external_locations.*.file_event_queue.provided_aqs 3680 +resources.external_locations.*.file_event_queue.provided_aqs.managed_resource_id 3681 +resources.external_locations.*.file_event_queue.provided_aqs.queue_url 3682 +resources.external_locations.*.file_event_queue.provided_aqs.resource_group 3683 +resources.external_locations.*.file_event_queue.provided_aqs.subscription_id 3684 +resources.external_locations.*.file_event_queue.provided_pubsub 3685 +resources.external_locations.*.file_event_queue.provided_pubsub.managed_resource_id 3686 +resources.external_locations.*.file_event_queue.provided_pubsub.subscription_name 3687 +resources.external_locations.*.file_event_queue.provided_sqs 3688 +resources.external_locations.*.file_event_queue.provided_sqs.managed_resource_id 3689 +resources.external_locations.*.file_event_queue.provided_sqs.queue_url 3690 +resources.external_locations.*.name 3691 +resources.external_locations.*.read_only 3692 +resources.external_locations.*.read_only=true 3693 +resources.external_locations.*.read_only=false 3694 +resources.external_locations.*.skip_validation 3695 +resources.external_locations.*.skip_validation=true 3696 +resources.external_locations.*.skip_validation=false 3697 +resources.external_locations.*.url 3698 +resources.external_locations.*.grants 3699 +resources.external_locations.*.grants[*] 3700 +resources.external_locations.*.grants[*].principal 3701 +resources.external_locations.*.grants[*].privileges 3702 +resources.external_locations.*.grants[*].privileges[*] 3703 diff --git a/acceptance/bundle/bitmap/full/output/features.txt b/acceptance/bundle/bitmap/full/output/features.txt new file mode 100644 index 00000000000..615285d9fbd --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/features.txt @@ -0,0 +1,174 @@ +resources.features 2570 +resources.features.* 2571 +resources.features.*.url 2572 +resources.features.*.modified_status 2573 +resources.features.*.lifecycle 2574 +resources.features.*.lifecycle.prevent_destroy 2575 +resources.features.*.lifecycle.prevent_destroy=true 2576 +resources.features.*.lifecycle.prevent_destroy=false 2577 +resources.features.*.lifecycle.depends_on 2578 +resources.features.*.lifecycle.depends_on[*] 2579 +resources.features.*.lifecycle.depends_on[*].resource 2580 +resources.features.*.id 2581 +resources.features.*.catalog_name 2582 +resources.features.*.created_at 2583 +resources.features.*.created_by 2584 +resources.features.*.description 2585 +resources.features.*.entities 2586 +resources.features.*.entities[*] 2587 +resources.features.*.entities[*].name 2588 +resources.features.*.filter_condition 2589 +resources.features.*.full_name 2590 +resources.features.*.function 2591 +resources.features.*.function.aggregation_function 2592 +resources.features.*.function.aggregation_function.approx_count_distinct 2593 +resources.features.*.function.aggregation_function.approx_count_distinct.input 2594 +resources.features.*.function.aggregation_function.approx_count_distinct.relative_error 2595 +resources.features.*.function.aggregation_function.approx_count_distinct.relative_sd 2596 +resources.features.*.function.aggregation_function.approx_percentile 2597 +resources.features.*.function.aggregation_function.approx_percentile.accuracy 2598 +resources.features.*.function.aggregation_function.approx_percentile.input 2599 +resources.features.*.function.aggregation_function.approx_percentile.percentile 2600 +resources.features.*.function.aggregation_function.approx_percentile.relative_error 2601 +resources.features.*.function.aggregation_function.avg 2602 +resources.features.*.function.aggregation_function.avg.input 2603 +resources.features.*.function.aggregation_function.count_function 2604 +resources.features.*.function.aggregation_function.count_function.input 2605 +resources.features.*.function.aggregation_function.first 2606 +resources.features.*.function.aggregation_function.first.input 2607 +resources.features.*.function.aggregation_function.first_distinct 2608 +resources.features.*.function.aggregation_function.first_distinct.input 2609 +resources.features.*.function.aggregation_function.first_distinct.n 2610 +resources.features.*.function.aggregation_function.first_n 2611 +resources.features.*.function.aggregation_function.first_n.input 2612 +resources.features.*.function.aggregation_function.first_n.n 2613 +resources.features.*.function.aggregation_function.last 2614 +resources.features.*.function.aggregation_function.last.input 2615 +resources.features.*.function.aggregation_function.last_distinct 2616 +resources.features.*.function.aggregation_function.last_distinct.input 2617 +resources.features.*.function.aggregation_function.last_distinct.n 2618 +resources.features.*.function.aggregation_function.last_n 2619 +resources.features.*.function.aggregation_function.last_n.input 2620 +resources.features.*.function.aggregation_function.last_n.n 2621 +resources.features.*.function.aggregation_function.max 2622 +resources.features.*.function.aggregation_function.max.input 2623 +resources.features.*.function.aggregation_function.min 2624 +resources.features.*.function.aggregation_function.min.input 2625 +resources.features.*.function.aggregation_function.stddev_pop 2626 +resources.features.*.function.aggregation_function.stddev_pop.input 2627 +resources.features.*.function.aggregation_function.stddev_samp 2628 +resources.features.*.function.aggregation_function.stddev_samp.input 2629 +resources.features.*.function.aggregation_function.sum 2630 +resources.features.*.function.aggregation_function.sum.input 2631 +resources.features.*.function.aggregation_function.time_window 2632 +resources.features.*.function.aggregation_function.time_window.continuous 2633 +resources.features.*.function.aggregation_function.time_window.continuous.offset 2634 +resources.features.*.function.aggregation_function.time_window.continuous.window_duration 2635 +resources.features.*.function.aggregation_function.time_window.rolling 2636 +resources.features.*.function.aggregation_function.time_window.rolling.delay 2637 +resources.features.*.function.aggregation_function.time_window.rolling.window_duration 2638 +resources.features.*.function.aggregation_function.time_window.sawtooth 2639 +resources.features.*.function.aggregation_function.time_window.sawtooth.delay 2640 +resources.features.*.function.aggregation_function.time_window.sawtooth.window_duration 2641 +resources.features.*.function.aggregation_function.time_window.sliding 2642 +resources.features.*.function.aggregation_function.time_window.sliding.delay 2643 +resources.features.*.function.aggregation_function.time_window.sliding.offset 2644 +resources.features.*.function.aggregation_function.time_window.sliding.slide_duration 2645 +resources.features.*.function.aggregation_function.time_window.sliding.window_duration 2646 +resources.features.*.function.aggregation_function.time_window.start_time 2647 +resources.features.*.function.aggregation_function.time_window.tumbling 2648 +resources.features.*.function.aggregation_function.time_window.tumbling.delay 2649 +resources.features.*.function.aggregation_function.time_window.tumbling.offset 2650 +resources.features.*.function.aggregation_function.time_window.tumbling.window_duration 2651 +resources.features.*.function.aggregation_function.var_pop 2652 +resources.features.*.function.aggregation_function.var_pop.input 2653 +resources.features.*.function.aggregation_function.var_samp 2654 +resources.features.*.function.aggregation_function.var_samp.input 2655 +resources.features.*.function.column_selection 2656 +resources.features.*.function.column_selection.column 2657 +resources.features.*.function.custom_udf 2658 +resources.features.*.function.custom_udf.function_path 2659 +resources.features.*.function.custom_udf.input_bindings 2660 +resources.features.*.function.custom_udf.input_bindings[*] 2661 +resources.features.*.function.custom_udf.input_bindings[*].column 2662 +resources.features.*.function.custom_udf.input_bindings[*].parameter 2663 +resources.features.*.function.extra_parameters 2664 +resources.features.*.function.extra_parameters[*] 2665 +resources.features.*.function.extra_parameters[*].key 2666 +resources.features.*.function.extra_parameters[*].value 2667 +resources.features.*.function.function_type 2668 +resources.features.*.inputs 2669 +resources.features.*.inputs[*] 2670 +resources.features.*.lineage_context 2671 +resources.features.*.lineage_context.job_context 2672 +resources.features.*.lineage_context.job_context.job_id 2673 +resources.features.*.lineage_context.job_context.job_run_id 2674 +resources.features.*.lineage_context.notebook_id 2675 +resources.features.*.name 2676 +resources.features.*.schema_name 2677 +resources.features.*.source 2678 +resources.features.*.source.delta_table_source 2679 +resources.features.*.source.delta_table_source.dataframe_schema 2680 +resources.features.*.source.delta_table_source.entity_columns 2681 +resources.features.*.source.delta_table_source.entity_columns[*] 2682 +resources.features.*.source.delta_table_source.filter_condition 2683 +resources.features.*.source.delta_table_source.full_name 2684 +resources.features.*.source.delta_table_source.timeseries_column 2685 +resources.features.*.source.delta_table_source.transformation_sql 2686 +resources.features.*.source.feature_view_source 2687 +resources.features.*.source.feature_view_source.feature_references 2688 +resources.features.*.source.feature_view_source.feature_references[*] 2689 +resources.features.*.source.feature_view_source.feature_references[*].feature 2690 +resources.features.*.source.kafka_source 2691 +resources.features.*.source.kafka_source.entity_column_identifiers 2692 +resources.features.*.source.kafka_source.entity_column_identifiers[*] 2693 +resources.features.*.source.kafka_source.entity_column_identifiers[*].variant_expr_path 2694 +resources.features.*.source.kafka_source.filter_condition 2695 +resources.features.*.source.kafka_source.name 2696 +resources.features.*.source.kafka_source.timeseries_column_identifier 2697 +resources.features.*.source.kafka_source.timeseries_column_identifier.variant_expr_path 2698 +resources.features.*.source.lateness 2699 +resources.features.*.source.lateness.settling_delay 2700 +resources.features.*.source.request_source 2701 +resources.features.*.source.request_source.dataframe_schema 2702 +resources.features.*.source.request_source.flat_schema 2703 +resources.features.*.source.request_source.flat_schema.fields 2704 +resources.features.*.source.request_source.flat_schema.fields[*] 2705 +resources.features.*.source.request_source.flat_schema.fields[*].data_type 2706 +resources.features.*.source.request_source.flat_schema.fields[*].name 2707 +resources.features.*.source.sdp_source 2708 +resources.features.*.source.sdp_source.dataframe_schema 2709 +resources.features.*.source.sdp_source.filter_condition 2710 +resources.features.*.source.sdp_source.input_tables 2711 +resources.features.*.source.sdp_source.input_tables[*] 2712 +resources.features.*.source.sdp_source.output_table 2713 +resources.features.*.source.sdp_source.pipeline_id 2714 +resources.features.*.source.sdp_source.pipeline_state 2715 +resources.features.*.source.sdp_source.transformation_sql 2716 +resources.features.*.source.stream_source 2717 +resources.features.*.source.stream_source.dataframe_schema 2718 +resources.features.*.source.stream_source.filter_condition 2719 +resources.features.*.source.stream_source.full_name 2720 +resources.features.*.source.stream_source.transformation_sql 2721 +resources.features.*.time_window 2722 +resources.features.*.time_window.continuous 2723 +resources.features.*.time_window.continuous.offset 2724 +resources.features.*.time_window.continuous.window_duration 2725 +resources.features.*.time_window.rolling 2726 +resources.features.*.time_window.rolling.delay 2727 +resources.features.*.time_window.rolling.window_duration 2728 +resources.features.*.time_window.sawtooth 2729 +resources.features.*.time_window.sawtooth.delay 2730 +resources.features.*.time_window.sawtooth.window_duration 2731 +resources.features.*.time_window.sliding 2732 +resources.features.*.time_window.sliding.delay 2733 +resources.features.*.time_window.sliding.offset 2734 +resources.features.*.time_window.sliding.slide_duration 2735 +resources.features.*.time_window.sliding.window_duration 2736 +resources.features.*.time_window.start_time 2737 +resources.features.*.time_window.tumbling 2738 +resources.features.*.time_window.tumbling.delay 2739 +resources.features.*.time_window.tumbling.offset 2740 +resources.features.*.time_window.tumbling.window_duration 2741 +resources.features.*.timeseries_column 2742 +resources.features.*.timeseries_column.name 2743 diff --git a/acceptance/bundle/bitmap/full/output/genie_spaces.txt b/acceptance/bundle/bitmap/full/output/genie_spaces.txt new file mode 100644 index 00000000000..6a0e2b5ff95 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/genie_spaces.txt @@ -0,0 +1,25 @@ +resources.genie_spaces 3908 +resources.genie_spaces.* 3909 +resources.genie_spaces.*.url 3910 +resources.genie_spaces.*.modified_status 3911 +resources.genie_spaces.*.lifecycle 3912 +resources.genie_spaces.*.lifecycle.prevent_destroy 3913 +resources.genie_spaces.*.lifecycle.prevent_destroy=true 3914 +resources.genie_spaces.*.lifecycle.prevent_destroy=false 3915 +resources.genie_spaces.*.lifecycle.depends_on 3916 +resources.genie_spaces.*.lifecycle.depends_on[*] 3917 +resources.genie_spaces.*.lifecycle.depends_on[*].resource 3918 +resources.genie_spaces.*.id 3919 +resources.genie_spaces.*.description 3920 +resources.genie_spaces.*.etag 3921 +resources.genie_spaces.*.title 3922 +resources.genie_spaces.*.warehouse_id 3923 +resources.genie_spaces.*.parent_path 3924 +resources.genie_spaces.*.serialized_space 3925 +resources.genie_spaces.*.permissions 3926 +resources.genie_spaces.*.permissions[*] 3927 +resources.genie_spaces.*.permissions[*].level 3928 +resources.genie_spaces.*.permissions[*].user_name 3929 +resources.genie_spaces.*.permissions[*].service_principal_name 3930 +resources.genie_spaces.*.permissions[*].group_name 3931 +resources.genie_spaces.*.file_path 3932 diff --git a/acceptance/bundle/bitmap/full/output/instance_pools.txt b/acceptance/bundle/bitmap/full/output/instance_pools.txt new file mode 100644 index 00000000000..214c07c9941 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/instance_pools.txt @@ -0,0 +1,63 @@ +resources.instance_pools 4816 +resources.instance_pools.* 4817 +resources.instance_pools.*.url 4818 +resources.instance_pools.*.modified_status 4819 +resources.instance_pools.*.lifecycle 4820 +resources.instance_pools.*.lifecycle.prevent_destroy 4821 +resources.instance_pools.*.lifecycle.prevent_destroy=true 4822 +resources.instance_pools.*.lifecycle.prevent_destroy=false 4823 +resources.instance_pools.*.lifecycle.depends_on 4824 +resources.instance_pools.*.lifecycle.depends_on[*] 4825 +resources.instance_pools.*.lifecycle.depends_on[*].resource 4826 +resources.instance_pools.*.id 4827 +resources.instance_pools.*.aws_attributes 4828 +resources.instance_pools.*.aws_attributes.availability 4829 +resources.instance_pools.*.aws_attributes.instance_profile_arn 4830 +resources.instance_pools.*.aws_attributes.spot_bid_price_percent 4831 +resources.instance_pools.*.aws_attributes.zone_id 4832 +resources.instance_pools.*.azure_attributes 4833 +resources.instance_pools.*.azure_attributes.availability 4834 +resources.instance_pools.*.azure_attributes.capacity_reservation_group 4835 +resources.instance_pools.*.azure_attributes.spot_bid_max_price 4836 +resources.instance_pools.*.custom_tags 4837 +resources.instance_pools.*.custom_tags.* 4838 +resources.instance_pools.*.disk_spec 4839 +resources.instance_pools.*.disk_spec.disk_count 4840 +resources.instance_pools.*.disk_spec.disk_iops 4841 +resources.instance_pools.*.disk_spec.disk_size 4842 +resources.instance_pools.*.disk_spec.disk_throughput 4843 +resources.instance_pools.*.disk_spec.disk_type 4844 +resources.instance_pools.*.disk_spec.disk_type.azure_disk_volume_type 4845 +resources.instance_pools.*.disk_spec.disk_type.ebs_volume_type 4846 +resources.instance_pools.*.enable_elastic_disk 4847 +resources.instance_pools.*.enable_elastic_disk=true 4848 +resources.instance_pools.*.enable_elastic_disk=false 4849 +resources.instance_pools.*.gcp_attributes 4850 +resources.instance_pools.*.gcp_attributes.gcp_availability 4851 +resources.instance_pools.*.gcp_attributes.local_ssd_count 4852 +resources.instance_pools.*.gcp_attributes.zone_id 4853 +resources.instance_pools.*.idle_instance_autotermination_minutes 4854 +resources.instance_pools.*.instance_pool_name 4855 +resources.instance_pools.*.max_capacity 4856 +resources.instance_pools.*.min_idle_instances 4857 +resources.instance_pools.*.node_type_flexibility 4858 +resources.instance_pools.*.node_type_flexibility.alternate_node_type_ids 4859 +resources.instance_pools.*.node_type_flexibility.alternate_node_type_ids[*] 4860 +resources.instance_pools.*.node_type_flexibility.aws_context_id 4861 +resources.instance_pools.*.node_type_id 4862 +resources.instance_pools.*.preloaded_docker_images 4863 +resources.instance_pools.*.preloaded_docker_images[*] 4864 +resources.instance_pools.*.preloaded_docker_images[*].basic_auth 4865 +resources.instance_pools.*.preloaded_docker_images[*].basic_auth.password 4866 +resources.instance_pools.*.preloaded_docker_images[*].basic_auth.username 4867 +resources.instance_pools.*.preloaded_docker_images[*].url 4868 +resources.instance_pools.*.preloaded_spark_versions 4869 +resources.instance_pools.*.preloaded_spark_versions[*] 4870 +resources.instance_pools.*.remote_disk_throughput 4871 +resources.instance_pools.*.total_initial_remote_disk_size 4872 +resources.instance_pools.*.permissions 4873 +resources.instance_pools.*.permissions[*] 4874 +resources.instance_pools.*.permissions[*].level 4875 +resources.instance_pools.*.permissions[*].user_name 4876 +resources.instance_pools.*.permissions[*].service_principal_name 4877 +resources.instance_pools.*.permissions[*].group_name 4878 diff --git a/acceptance/bundle/bitmap/full/output/internal_immutable_snapshots.txt b/acceptance/bundle/bitmap/full/output/internal_immutable_snapshots.txt new file mode 100644 index 00000000000..7d208f537c8 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/internal_immutable_snapshots.txt @@ -0,0 +1,16 @@ +resources.internal_immutable_snapshots 4952 +resources.internal_immutable_snapshots.* 4953 +resources.internal_immutable_snapshots.*.bundle_id 4954 +resources.internal_immutable_snapshots.*.acl 4955 +resources.internal_immutable_snapshots.*.acl[*] 4956 +resources.internal_immutable_snapshots.*.acl[*].user_name 4957 +resources.internal_immutable_snapshots.*.acl[*].group_name 4958 +resources.internal_immutable_snapshots.*.acl[*].service_principal_name 4959 +resources.internal_immutable_snapshots.*.acl[*].permission_level 4960 +resources.internal_immutable_snapshots.*.can_manage 4961 +resources.internal_immutable_snapshots.*.can_manage[*] 4962 +resources.internal_immutable_snapshots.*.can_manage[*].user_name 4963 +resources.internal_immutable_snapshots.*.can_manage[*].group_name 4964 +resources.internal_immutable_snapshots.*.can_manage[*].service_principal_name 4965 +resources.internal_immutable_snapshots.*.zip_path 4966 +resources.internal_immutable_snapshots.*.remote_root 4967 diff --git a/acceptance/bundle/bitmap/full/output/job_runs.txt b/acceptance/bundle/bitmap/full/output/job_runs.txt new file mode 100644 index 00000000000..e9c4fca8613 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/job_runs.txt @@ -0,0 +1,61 @@ +resources.job_runs 1523 +resources.job_runs.* 1524 +resources.job_runs.*.url 1525 +resources.job_runs.*.modified_status 1526 +resources.job_runs.*.lifecycle 1527 +resources.job_runs.*.lifecycle.prevent_destroy 1528 +resources.job_runs.*.lifecycle.prevent_destroy=true 1529 +resources.job_runs.*.lifecycle.prevent_destroy=false 1530 +resources.job_runs.*.lifecycle.depends_on 1531 +resources.job_runs.*.lifecycle.depends_on[*] 1532 +resources.job_runs.*.lifecycle.depends_on[*].resource 1533 +resources.job_runs.*.id 1534 +resources.job_runs.*.dbt_commands 1535 +resources.job_runs.*.dbt_commands[*] 1536 +resources.job_runs.*.duration_target 1537 +resources.job_runs.*.idempotency_token 1538 +resources.job_runs.*.jar_params 1539 +resources.job_runs.*.jar_params[*] 1540 +resources.job_runs.*.job_id 1541 +resources.job_runs.*.job_parameters 1542 +resources.job_runs.*.job_parameters.* 1543 +resources.job_runs.*.notebook_params 1544 +resources.job_runs.*.notebook_params.* 1545 +resources.job_runs.*.only 1546 +resources.job_runs.*.only[*] 1547 +resources.job_runs.*.performance_target 1548 +resources.job_runs.*.pipeline_params 1549 +resources.job_runs.*.pipeline_params.full_refresh 1550 +resources.job_runs.*.pipeline_params.full_refresh=true 1551 +resources.job_runs.*.pipeline_params.full_refresh=false 1552 +resources.job_runs.*.pipeline_params.full_refresh_selection 1553 +resources.job_runs.*.pipeline_params.full_refresh_selection[*] 1554 +resources.job_runs.*.pipeline_params.refresh_flow_selection 1555 +resources.job_runs.*.pipeline_params.refresh_flow_selection[*] 1556 +resources.job_runs.*.pipeline_params.refresh_selection 1557 +resources.job_runs.*.pipeline_params.refresh_selection[*] 1558 +resources.job_runs.*.pipeline_params.reset_checkpoint_selection 1559 +resources.job_runs.*.pipeline_params.reset_checkpoint_selection[*] 1560 +resources.job_runs.*.python_named_params 1561 +resources.job_runs.*.python_named_params.* 1562 +resources.job_runs.*.python_params 1563 +resources.job_runs.*.python_params[*] 1564 +resources.job_runs.*.queue 1565 +resources.job_runs.*.queue.enabled 1566 +resources.job_runs.*.queue.enabled=true 1567 +resources.job_runs.*.queue.enabled=false 1568 +resources.job_runs.*.spark_submit_params 1569 +resources.job_runs.*.spark_submit_params[*] 1570 +resources.job_runs.*.sql_params 1571 +resources.job_runs.*.sql_params.* 1572 +resources.job_runs.*.lifecycle.triggers 1573 +resources.job_runs.*.lifecycle.triggers[*] 1574 +resources.job_runs.*.lifecycle.triggers[*].on_bundle_deploy 1575 +resources.job_runs.*.lifecycle.triggers[*].on_bundle_deploy=true 1576 +resources.job_runs.*.lifecycle.triggers[*].on_bundle_deploy=false 1577 +resources.job_runs.*.lifecycle.triggers[*].on_file_change 1578 +resources.job_runs.*.lifecycle.triggers_state 1579 +resources.job_runs.*.lifecycle.triggers_state.on_bundle_deploy 1580 +resources.job_runs.*.lifecycle.triggers_state.on_file_change 1581 +resources.job_runs.*.lifecycle.triggers_state.on_file_change.* 1582 +resources.job_runs.*.resolved_job_id 1583 diff --git a/acceptance/bundle/bitmap/full/output/jobs.txt b/acceptance/bundle/bitmap/full/output/jobs.txt new file mode 100644 index 00000000000..0673c851a03 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/jobs.txt @@ -0,0 +1,1368 @@ +resources.jobs 155 +resources.jobs.* 156 +resources.jobs.*.url 157 +resources.jobs.*.modified_status 158 +resources.jobs.*.lifecycle 159 +resources.jobs.*.lifecycle.prevent_destroy 160 +resources.jobs.*.lifecycle.prevent_destroy=true 161 +resources.jobs.*.lifecycle.prevent_destroy=false 162 +resources.jobs.*.lifecycle.depends_on 163 +resources.jobs.*.lifecycle.depends_on[*] 164 +resources.jobs.*.lifecycle.depends_on[*].resource 165 +resources.jobs.*.id 166 +resources.jobs.*.budget_policy_id 167 +resources.jobs.*.continuous 168 +resources.jobs.*.continuous.maintenance_window 169 +resources.jobs.*.continuous.maintenance_window.day_of_week 170 +resources.jobs.*.continuous.maintenance_window.start_hour 171 +resources.jobs.*.continuous.maintenance_window.timezone_id 172 +resources.jobs.*.continuous.pause_status 173 +resources.jobs.*.continuous.task_retry_mode 174 +resources.jobs.*.deployment 175 +resources.jobs.*.deployment.deployment_id 176 +resources.jobs.*.deployment.kind 177 +resources.jobs.*.deployment.metadata_file_path 178 +resources.jobs.*.deployment.version_id 179 +resources.jobs.*.description 180 +resources.jobs.*.duration_target 181 +resources.jobs.*.edit_mode 182 +resources.jobs.*.email_notifications 183 +resources.jobs.*.email_notifications.no_alert_for_skipped_runs 184 +resources.jobs.*.email_notifications.no_alert_for_skipped_runs=true 185 +resources.jobs.*.email_notifications.no_alert_for_skipped_runs=false 186 +resources.jobs.*.email_notifications.on_duration_warning_threshold_exceeded 187 +resources.jobs.*.email_notifications.on_duration_warning_threshold_exceeded[*] 188 +resources.jobs.*.email_notifications.on_failure 189 +resources.jobs.*.email_notifications.on_failure[*] 190 +resources.jobs.*.email_notifications.on_maintenance_complete 191 +resources.jobs.*.email_notifications.on_maintenance_complete[*] 192 +resources.jobs.*.email_notifications.on_maintenance_start 193 +resources.jobs.*.email_notifications.on_maintenance_start[*] 194 +resources.jobs.*.email_notifications.on_start 195 +resources.jobs.*.email_notifications.on_start[*] 196 +resources.jobs.*.email_notifications.on_streaming_backlog_exceeded 197 +resources.jobs.*.email_notifications.on_streaming_backlog_exceeded[*] 198 +resources.jobs.*.email_notifications.on_success 199 +resources.jobs.*.email_notifications.on_success[*] 200 +resources.jobs.*.environment_variables 201 +resources.jobs.*.environment_variables[*] 202 +resources.jobs.*.environment_variables[*].environment_variables_key 203 +resources.jobs.*.environment_variables[*].spec 204 +resources.jobs.*.environment_variables[*].spec.files 205 +resources.jobs.*.environment_variables[*].spec.files[*] 206 +resources.jobs.*.environment_variables[*].spec.variables 207 +resources.jobs.*.environment_variables[*].spec.variables.* 208 +resources.jobs.*.environments 209 +resources.jobs.*.environments[*] 210 +resources.jobs.*.environments[*].environment_key 211 +resources.jobs.*.environments[*].spec 212 +resources.jobs.*.environments[*].spec.base_environment 213 +resources.jobs.*.environments[*].spec.client 214 +resources.jobs.*.environments[*].spec.dependencies 215 +resources.jobs.*.environments[*].spec.dependencies[*] 216 +resources.jobs.*.environments[*].spec.environment_version 217 +resources.jobs.*.environments[*].spec.java_dependencies 218 +resources.jobs.*.environments[*].spec.java_dependencies[*] 219 +resources.jobs.*.environments[*].spec.project_environment 220 +resources.jobs.*.format 221 +resources.jobs.*.git_source 222 +resources.jobs.*.git_source.git_branch 223 +resources.jobs.*.git_source.git_commit 224 +resources.jobs.*.git_source.git_provider 225 +resources.jobs.*.git_source.git_snapshot 226 +resources.jobs.*.git_source.git_snapshot.used_commit 227 +resources.jobs.*.git_source.git_tag 228 +resources.jobs.*.git_source.git_url 229 +resources.jobs.*.git_source.job_source 230 +resources.jobs.*.git_source.job_source.dirty_state 231 +resources.jobs.*.git_source.job_source.import_from_git_branch 232 +resources.jobs.*.git_source.job_source.job_config_path 233 +resources.jobs.*.git_source.sparse_checkout 234 +resources.jobs.*.git_source.sparse_checkout.patterns 235 +resources.jobs.*.git_source.sparse_checkout.patterns[*] 236 +resources.jobs.*.health 237 +resources.jobs.*.health.rules 238 +resources.jobs.*.health.rules[*] 239 +resources.jobs.*.health.rules[*].metric 240 +resources.jobs.*.health.rules[*].op 241 +resources.jobs.*.health.rules[*].value 242 +resources.jobs.*.job_clusters 243 +resources.jobs.*.job_clusters[*] 244 +resources.jobs.*.job_clusters[*].job_cluster_key 245 +resources.jobs.*.job_clusters[*].new_cluster 246 +resources.jobs.*.job_clusters[*].new_cluster.apply_policy_default_values 247 +resources.jobs.*.job_clusters[*].new_cluster.apply_policy_default_values=true 248 +resources.jobs.*.job_clusters[*].new_cluster.apply_policy_default_values=false 249 +resources.jobs.*.job_clusters[*].new_cluster.autoscale 250 +resources.jobs.*.job_clusters[*].new_cluster.autoscale.max_workers 251 +resources.jobs.*.job_clusters[*].new_cluster.autoscale.min_workers 252 +resources.jobs.*.job_clusters[*].new_cluster.autotermination_minutes 253 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes 254 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.availability 255 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_count 256 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_iops 257 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_size 258 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_throughput 259 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_type 260 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.first_on_demand 261 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.instance_profile_arn 262 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.spot_bid_price_percent 263 +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.zone_id 264 +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes 265 +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.availability 266 +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.capacity_reservation_group 267 +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.first_on_demand 268 +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.log_analytics_info 269 +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_primary_key 270 +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_workspace_id 271 +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.spot_bid_max_price 272 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf 273 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.dbfs 274 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.dbfs.destination 275 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3 276 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.canned_acl 277 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.destination 278 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.enable_encryption 279 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.enable_encryption=true 280 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.enable_encryption=false 281 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.encryption_type 282 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.endpoint 283 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.kms_key 284 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.region 285 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.volumes 286 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.volumes.destination 287 +resources.jobs.*.job_clusters[*].new_cluster.cluster_name 288 +resources.jobs.*.job_clusters[*].new_cluster.custom_tags 289 +resources.jobs.*.job_clusters[*].new_cluster.custom_tags.* 290 +resources.jobs.*.job_clusters[*].new_cluster.data_security_mode 291 +resources.jobs.*.job_clusters[*].new_cluster.dependency_mode 292 +resources.jobs.*.job_clusters[*].new_cluster.docker_image 293 +resources.jobs.*.job_clusters[*].new_cluster.docker_image.basic_auth 294 +resources.jobs.*.job_clusters[*].new_cluster.docker_image.basic_auth.password 295 +resources.jobs.*.job_clusters[*].new_cluster.docker_image.basic_auth.username 296 +resources.jobs.*.job_clusters[*].new_cluster.docker_image.url 297 +resources.jobs.*.job_clusters[*].new_cluster.driver_instance_pool_id 298 +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_flexibility 299 +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_flexibility.alternate_node_type_ids 300 +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_flexibility.alternate_node_type_ids[*] 301 +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_flexibility.aws_context_id 302 +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_id 303 +resources.jobs.*.job_clusters[*].new_cluster.enable_elastic_disk 304 +resources.jobs.*.job_clusters[*].new_cluster.enable_elastic_disk=true 305 +resources.jobs.*.job_clusters[*].new_cluster.enable_elastic_disk=false 306 +resources.jobs.*.job_clusters[*].new_cluster.enable_local_disk_encryption 307 +resources.jobs.*.job_clusters[*].new_cluster.enable_local_disk_encryption=true 308 +resources.jobs.*.job_clusters[*].new_cluster.enable_local_disk_encryption=false 309 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes 310 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.availability 311 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.boot_disk_size 312 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.confidential_compute_type 313 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.first_on_demand 314 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.google_service_account 315 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.local_ssd_count 316 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.use_preemptible_executors 317 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.use_preemptible_executors=true 318 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.use_preemptible_executors=false 319 +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.zone_id 320 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts 321 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*] 322 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].abfss 323 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].abfss.destination 324 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].dbfs 325 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].dbfs.destination 326 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].file 327 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].file.destination 328 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].gcs 329 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].gcs.destination 330 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3 331 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.canned_acl 332 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.destination 333 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.enable_encryption 334 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.enable_encryption=true 335 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.enable_encryption=false 336 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.encryption_type 337 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.endpoint 338 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.kms_key 339 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.region 340 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].volumes 341 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].volumes.destination 342 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].workspace 343 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].workspace.destination 344 +resources.jobs.*.job_clusters[*].new_cluster.instance_pool_id 345 +resources.jobs.*.job_clusters[*].new_cluster.is_single_node 346 +resources.jobs.*.job_clusters[*].new_cluster.is_single_node=true 347 +resources.jobs.*.job_clusters[*].new_cluster.is_single_node=false 348 +resources.jobs.*.job_clusters[*].new_cluster.kind 349 +resources.jobs.*.job_clusters[*].new_cluster.node_type_id 350 +resources.jobs.*.job_clusters[*].new_cluster.num_workers 351 +resources.jobs.*.job_clusters[*].new_cluster.policy_id 352 +resources.jobs.*.job_clusters[*].new_cluster.remote_disk_throughput 353 +resources.jobs.*.job_clusters[*].new_cluster.runtime_engine 354 +resources.jobs.*.job_clusters[*].new_cluster.single_user_name 355 +resources.jobs.*.job_clusters[*].new_cluster.spark_conf 356 +resources.jobs.*.job_clusters[*].new_cluster.spark_conf.* 357 +resources.jobs.*.job_clusters[*].new_cluster.spark_env_vars 358 +resources.jobs.*.job_clusters[*].new_cluster.spark_env_vars.* 359 +resources.jobs.*.job_clusters[*].new_cluster.spark_version 360 +resources.jobs.*.job_clusters[*].new_cluster.ssh_public_keys 361 +resources.jobs.*.job_clusters[*].new_cluster.ssh_public_keys[*] 362 +resources.jobs.*.job_clusters[*].new_cluster.total_initial_remote_disk_size 363 +resources.jobs.*.job_clusters[*].new_cluster.use_ml_runtime 364 +resources.jobs.*.job_clusters[*].new_cluster.use_ml_runtime=true 365 +resources.jobs.*.job_clusters[*].new_cluster.use_ml_runtime=false 366 +resources.jobs.*.job_clusters[*].new_cluster.worker_node_type_flexibility 367 +resources.jobs.*.job_clusters[*].new_cluster.worker_node_type_flexibility.alternate_node_type_ids 368 +resources.jobs.*.job_clusters[*].new_cluster.worker_node_type_flexibility.alternate_node_type_ids[*] 369 +resources.jobs.*.job_clusters[*].new_cluster.worker_node_type_flexibility.aws_context_id 370 +resources.jobs.*.job_clusters[*].new_cluster.workload_type 371 +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients 372 +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.jobs 373 +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.jobs=true 374 +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.jobs=false 375 +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.notebooks 376 +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.notebooks=true 377 +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.notebooks=false 378 +resources.jobs.*.job_clusters[*].serverless_compute 379 +resources.jobs.*.job_clusters[*].serverless_compute.policy_id 380 +resources.jobs.*.job_clusters[*].serverless_compute_id 381 +resources.jobs.*.max_concurrent_runs 382 +resources.jobs.*.name 383 +resources.jobs.*.notification_settings 384 +resources.jobs.*.notification_settings.no_alert_for_canceled_runs 385 +resources.jobs.*.notification_settings.no_alert_for_canceled_runs=true 386 +resources.jobs.*.notification_settings.no_alert_for_canceled_runs=false 387 +resources.jobs.*.notification_settings.no_alert_for_skipped_runs 388 +resources.jobs.*.notification_settings.no_alert_for_skipped_runs=true 389 +resources.jobs.*.notification_settings.no_alert_for_skipped_runs=false 390 +resources.jobs.*.parameters 391 +resources.jobs.*.parameters[*] 392 +resources.jobs.*.parameters[*].default 393 +resources.jobs.*.parameters[*].name 394 +resources.jobs.*.parent_path 395 +resources.jobs.*.performance_target 396 +resources.jobs.*.queue 397 +resources.jobs.*.queue.enabled 398 +resources.jobs.*.queue.enabled=true 399 +resources.jobs.*.queue.enabled=false 400 +resources.jobs.*.run_as 401 +resources.jobs.*.run_as.group_name 402 +resources.jobs.*.run_as.service_principal_name 403 +resources.jobs.*.run_as.user_name 404 +resources.jobs.*.schedule 405 +resources.jobs.*.schedule.pause_status 406 +resources.jobs.*.schedule.quartz_cron_expression 407 +resources.jobs.*.schedule.sql_condition 408 +resources.jobs.*.schedule.sql_condition.sql_query_id 409 +resources.jobs.*.schedule.sql_condition.trigger_mode 410 +resources.jobs.*.schedule.sql_condition.warehouse_id 411 +resources.jobs.*.schedule.timezone_id 412 +resources.jobs.*.tags 413 +resources.jobs.*.tags.* 414 +resources.jobs.*.tasks 415 +resources.jobs.*.tasks[*] 416 +resources.jobs.*.tasks[*].ai_function_task 417 +resources.jobs.*.tasks[*].ai_function_task.ai_classify 418 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_confidence_scores 419 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_confidence_scores=true 420 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_confidence_scores=false 421 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_rationales 422 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_rationales=true 423 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_rationales=false 424 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels 425 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels 426 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*] 427 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*].description 428 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*].name 429 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.instructions 430 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.multilabel 431 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.multilabel=true 432 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.multilabel=false 433 +resources.jobs.*.tasks[*].ai_function_task.ai_classify.version 434 +resources.jobs.*.tasks[*].ai_function_task.ai_extract 435 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_citations 436 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_citations=true 437 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_citations=false 438 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_confidence_scores 439 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_confidence_scores=true 440 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_confidence_scores=false 441 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.instructions 442 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.mode 443 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.schema 444 +resources.jobs.*.tasks[*].ai_function_task.ai_extract.version 445 +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document 446 +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.description_element_types 447 +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.description_element_types[*] 448 +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.image_output_path 449 +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.page_range 450 +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.version 451 +resources.jobs.*.tasks[*].ai_function_task.delta_table 452 +resources.jobs.*.tasks[*].ai_function_task.delta_table.input_column 453 +resources.jobs.*.tasks[*].ai_function_task.delta_table.merge_key_columns 454 +resources.jobs.*.tasks[*].ai_function_task.delta_table.merge_key_columns[*] 455 +resources.jobs.*.tasks[*].ai_function_task.delta_table.table_name 456 +resources.jobs.*.tasks[*].ai_function_task.output 457 +resources.jobs.*.tasks[*].ai_function_task.output.catalog 458 +resources.jobs.*.tasks[*].ai_function_task.output.schema 459 +resources.jobs.*.tasks[*].ai_function_task.output.table 460 +resources.jobs.*.tasks[*].ai_function_task.volume 461 +resources.jobs.*.tasks[*].ai_function_task.volume.volume_path 462 +resources.jobs.*.tasks[*].ai_runtime_task 463 +resources.jobs.*.tasks[*].ai_runtime_task.code_source_path 464 +resources.jobs.*.tasks[*].ai_runtime_task.deployments 465 +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*] 466 +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].command_path 467 +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].compute 468 +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].compute.accelerator_count 469 +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].compute.accelerator_type 470 +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].compute.provisioned_capacity_id 471 +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].name 472 +resources.jobs.*.tasks[*].ai_runtime_task.docker_image_url 473 +resources.jobs.*.tasks[*].ai_runtime_task.experiment 474 +resources.jobs.*.tasks[*].ai_runtime_task.mlflow_artifact_location 475 +resources.jobs.*.tasks[*].ai_runtime_task.mlflow_experiment_directory 476 +resources.jobs.*.tasks[*].ai_runtime_task.mlflow_run 477 +resources.jobs.*.tasks[*].ai_runtime_task.priority_class 478 +resources.jobs.*.tasks[*].ai_runtime_task.unity_catalog_image_path 479 +resources.jobs.*.tasks[*].alert_task 480 +resources.jobs.*.tasks[*].alert_task.alert_id 481 +resources.jobs.*.tasks[*].alert_task.parameters 482 +resources.jobs.*.tasks[*].alert_task.parameters.* 483 +resources.jobs.*.tasks[*].alert_task.subscribers 484 +resources.jobs.*.tasks[*].alert_task.subscribers[*] 485 +resources.jobs.*.tasks[*].alert_task.subscribers[*].destination_id 486 +resources.jobs.*.tasks[*].alert_task.subscribers[*].user_name 487 +resources.jobs.*.tasks[*].alert_task.warehouse_id 488 +resources.jobs.*.tasks[*].alert_task.workspace_path 489 +resources.jobs.*.tasks[*].clean_rooms_notebook_task 490 +resources.jobs.*.tasks[*].clean_rooms_notebook_task.clean_room_name 491 +resources.jobs.*.tasks[*].clean_rooms_notebook_task.etag 492 +resources.jobs.*.tasks[*].clean_rooms_notebook_task.notebook_base_parameters 493 +resources.jobs.*.tasks[*].clean_rooms_notebook_task.notebook_base_parameters.* 494 +resources.jobs.*.tasks[*].clean_rooms_notebook_task.notebook_name 495 +resources.jobs.*.tasks[*].compute 496 +resources.jobs.*.tasks[*].compute.hardware_accelerator 497 +resources.jobs.*.tasks[*].condition_task 498 +resources.jobs.*.tasks[*].condition_task.left 499 +resources.jobs.*.tasks[*].condition_task.op 500 +resources.jobs.*.tasks[*].condition_task.right 501 +resources.jobs.*.tasks[*].dashboard_task 502 +resources.jobs.*.tasks[*].dashboard_task.dashboard_id 503 +resources.jobs.*.tasks[*].dashboard_task.filters 504 +resources.jobs.*.tasks[*].dashboard_task.filters.* 505 +resources.jobs.*.tasks[*].dashboard_task.subscription 506 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment 507 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment 508 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.file_format 509 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.include_applied_filters 510 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.include_applied_filters=true 511 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.include_applied_filters=false 512 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.widgets 513 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.widgets[*] 514 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.widgets[*].page_id 515 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.widgets[*].widget_id 516 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.page_attachment 517 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.page_attachment.page_ids 518 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.page_attachment.page_ids[*] 519 +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.page_attachment.page_selection 520 +resources.jobs.*.tasks[*].dashboard_task.subscription.custom_subject 521 +resources.jobs.*.tasks[*].dashboard_task.subscription.paused 522 +resources.jobs.*.tasks[*].dashboard_task.subscription.paused=true 523 +resources.jobs.*.tasks[*].dashboard_task.subscription.paused=false 524 +resources.jobs.*.tasks[*].dashboard_task.subscription.subscribers 525 +resources.jobs.*.tasks[*].dashboard_task.subscription.subscribers[*] 526 +resources.jobs.*.tasks[*].dashboard_task.subscription.subscribers[*].destination_id 527 +resources.jobs.*.tasks[*].dashboard_task.subscription.subscribers[*].user_name 528 +resources.jobs.*.tasks[*].dashboard_task.warehouse_id 529 +resources.jobs.*.tasks[*].dbt_cloud_task 530 +resources.jobs.*.tasks[*].dbt_cloud_task.connection_resource_name 531 +resources.jobs.*.tasks[*].dbt_cloud_task.dbt_cloud_job_id 532 +resources.jobs.*.tasks[*].dbt_platform_task 533 +resources.jobs.*.tasks[*].dbt_platform_task.connection_resource_name 534 +resources.jobs.*.tasks[*].dbt_platform_task.dbt_platform_job_id 535 +resources.jobs.*.tasks[*].dbt_task 536 +resources.jobs.*.tasks[*].dbt_task.catalog 537 +resources.jobs.*.tasks[*].dbt_task.commands 538 +resources.jobs.*.tasks[*].dbt_task.commands[*] 539 +resources.jobs.*.tasks[*].dbt_task.profiles_directory 540 +resources.jobs.*.tasks[*].dbt_task.project_directory 541 +resources.jobs.*.tasks[*].dbt_task.schema 542 +resources.jobs.*.tasks[*].dbt_task.source 543 +resources.jobs.*.tasks[*].dbt_task.warehouse_id 544 +resources.jobs.*.tasks[*].depends_on 545 +resources.jobs.*.tasks[*].depends_on[*] 546 +resources.jobs.*.tasks[*].depends_on[*].outcome 547 +resources.jobs.*.tasks[*].depends_on[*].task_key 548 +resources.jobs.*.tasks[*].description 549 +resources.jobs.*.tasks[*].disable_auto_optimization 550 +resources.jobs.*.tasks[*].disable_auto_optimization=true 551 +resources.jobs.*.tasks[*].disable_auto_optimization=false 552 +resources.jobs.*.tasks[*].disabled 553 +resources.jobs.*.tasks[*].disabled=true 554 +resources.jobs.*.tasks[*].disabled=false 555 +resources.jobs.*.tasks[*].email_notifications 556 +resources.jobs.*.tasks[*].email_notifications.no_alert_for_skipped_runs 557 +resources.jobs.*.tasks[*].email_notifications.no_alert_for_skipped_runs=true 558 +resources.jobs.*.tasks[*].email_notifications.no_alert_for_skipped_runs=false 559 +resources.jobs.*.tasks[*].email_notifications.on_duration_warning_threshold_exceeded 560 +resources.jobs.*.tasks[*].email_notifications.on_duration_warning_threshold_exceeded[*] 561 +resources.jobs.*.tasks[*].email_notifications.on_failure 562 +resources.jobs.*.tasks[*].email_notifications.on_failure[*] 563 +resources.jobs.*.tasks[*].email_notifications.on_maintenance_complete 564 +resources.jobs.*.tasks[*].email_notifications.on_maintenance_complete[*] 565 +resources.jobs.*.tasks[*].email_notifications.on_maintenance_start 566 +resources.jobs.*.tasks[*].email_notifications.on_maintenance_start[*] 567 +resources.jobs.*.tasks[*].email_notifications.on_start 568 +resources.jobs.*.tasks[*].email_notifications.on_start[*] 569 +resources.jobs.*.tasks[*].email_notifications.on_streaming_backlog_exceeded 570 +resources.jobs.*.tasks[*].email_notifications.on_streaming_backlog_exceeded[*] 571 +resources.jobs.*.tasks[*].email_notifications.on_success 572 +resources.jobs.*.tasks[*].email_notifications.on_success[*] 573 +resources.jobs.*.tasks[*].environment_key 574 +resources.jobs.*.tasks[*].environment_variables_key 575 +resources.jobs.*.tasks[*].existing_cluster_id 576 +resources.jobs.*.tasks[*].for_each_task 577 +resources.jobs.*.tasks[*].for_each_task.concurrency 578 +resources.jobs.*.tasks[*].for_each_task.inputs 579 +resources.jobs.*.tasks[*].for_each_task.task 580 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task 581 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify 582 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_confidence_scores 583 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_confidence_scores=true 584 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_confidence_scores=false 585 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_rationales 586 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_rationales=true 587 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_rationales=false 588 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels 589 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels 590 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*] 591 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*].description 592 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*].name 593 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.instructions 594 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.multilabel 595 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.multilabel=true 596 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.multilabel=false 597 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.version 598 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract 599 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_citations 600 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_citations=true 601 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_citations=false 602 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_confidence_scores 603 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_confidence_scores=true 604 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_confidence_scores=false 605 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.instructions 606 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.mode 607 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.schema 608 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.version 609 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document 610 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.description_element_types 611 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.description_element_types[*] 612 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.image_output_path 613 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.page_range 614 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.version 615 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table 616 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.input_column 617 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.merge_key_columns 618 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.merge_key_columns[*] 619 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.table_name 620 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output 621 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.catalog 622 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.schema 623 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.table 624 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.volume 625 +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.volume.volume_path 626 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task 627 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.code_source_path 628 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments 629 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*] 630 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].command_path 631 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].compute 632 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].compute.accelerator_count 633 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].compute.accelerator_type 634 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].compute.provisioned_capacity_id 635 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].name 636 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.docker_image_url 637 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.experiment 638 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.mlflow_artifact_location 639 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.mlflow_experiment_directory 640 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.mlflow_run 641 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.priority_class 642 +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.unity_catalog_image_path 643 +resources.jobs.*.tasks[*].for_each_task.task.alert_task 644 +resources.jobs.*.tasks[*].for_each_task.task.alert_task.alert_id 645 +resources.jobs.*.tasks[*].for_each_task.task.alert_task.parameters 646 +resources.jobs.*.tasks[*].for_each_task.task.alert_task.parameters.* 647 +resources.jobs.*.tasks[*].for_each_task.task.alert_task.subscribers 648 +resources.jobs.*.tasks[*].for_each_task.task.alert_task.subscribers[*] 649 +resources.jobs.*.tasks[*].for_each_task.task.alert_task.subscribers[*].destination_id 650 +resources.jobs.*.tasks[*].for_each_task.task.alert_task.subscribers[*].user_name 651 +resources.jobs.*.tasks[*].for_each_task.task.alert_task.warehouse_id 652 +resources.jobs.*.tasks[*].for_each_task.task.alert_task.workspace_path 653 +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task 654 +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.clean_room_name 655 +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.etag 656 +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.notebook_base_parameters 657 +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.notebook_base_parameters.* 658 +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.notebook_name 659 +resources.jobs.*.tasks[*].for_each_task.task.compute 660 +resources.jobs.*.tasks[*].for_each_task.task.compute.hardware_accelerator 661 +resources.jobs.*.tasks[*].for_each_task.task.condition_task 662 +resources.jobs.*.tasks[*].for_each_task.task.condition_task.left 663 +resources.jobs.*.tasks[*].for_each_task.task.condition_task.op 664 +resources.jobs.*.tasks[*].for_each_task.task.condition_task.right 665 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task 666 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.dashboard_id 667 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.filters 668 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.filters.* 669 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription 670 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment 671 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment 672 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.file_format 673 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.include_applied_filters 674 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.include_applied_filters=true 675 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.include_applied_filters=false 676 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.widgets 677 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.widgets[*] 678 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.widgets[*].page_id 679 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.widgets[*].widget_id 680 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.page_attachment 681 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.page_attachment.page_ids 682 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.page_attachment.page_ids[*] 683 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.page_attachment.page_selection 684 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.custom_subject 685 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.paused 686 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.paused=true 687 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.paused=false 688 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.subscribers 689 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.subscribers[*] 690 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.subscribers[*].destination_id 691 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.subscribers[*].user_name 692 +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.warehouse_id 693 +resources.jobs.*.tasks[*].for_each_task.task.dbt_cloud_task 694 +resources.jobs.*.tasks[*].for_each_task.task.dbt_cloud_task.connection_resource_name 695 +resources.jobs.*.tasks[*].for_each_task.task.dbt_cloud_task.dbt_cloud_job_id 696 +resources.jobs.*.tasks[*].for_each_task.task.dbt_platform_task 697 +resources.jobs.*.tasks[*].for_each_task.task.dbt_platform_task.connection_resource_name 698 +resources.jobs.*.tasks[*].for_each_task.task.dbt_platform_task.dbt_platform_job_id 699 +resources.jobs.*.tasks[*].for_each_task.task.dbt_task 700 +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.catalog 701 +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.commands 702 +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.commands[*] 703 +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.profiles_directory 704 +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.project_directory 705 +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.schema 706 +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.source 707 +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.warehouse_id 708 +resources.jobs.*.tasks[*].for_each_task.task.depends_on 709 +resources.jobs.*.tasks[*].for_each_task.task.depends_on[*] 710 +resources.jobs.*.tasks[*].for_each_task.task.depends_on[*].outcome 711 +resources.jobs.*.tasks[*].for_each_task.task.depends_on[*].task_key 712 +resources.jobs.*.tasks[*].for_each_task.task.description 713 +resources.jobs.*.tasks[*].for_each_task.task.disable_auto_optimization 714 +resources.jobs.*.tasks[*].for_each_task.task.disable_auto_optimization=true 715 +resources.jobs.*.tasks[*].for_each_task.task.disable_auto_optimization=false 716 +resources.jobs.*.tasks[*].for_each_task.task.disabled 717 +resources.jobs.*.tasks[*].for_each_task.task.disabled=true 718 +resources.jobs.*.tasks[*].for_each_task.task.disabled=false 719 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications 720 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.no_alert_for_skipped_runs 721 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.no_alert_for_skipped_runs=true 722 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.no_alert_for_skipped_runs=false 723 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_duration_warning_threshold_exceeded 724 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_duration_warning_threshold_exceeded[*] 725 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_failure 726 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_failure[*] 727 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_maintenance_complete 728 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_maintenance_complete[*] 729 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_maintenance_start 730 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_maintenance_start[*] 731 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_start 732 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_start[*] 733 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_streaming_backlog_exceeded 734 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_streaming_backlog_exceeded[*] 735 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_success 736 +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_success[*] 737 +resources.jobs.*.tasks[*].for_each_task.task.environment_key 738 +resources.jobs.*.tasks[*].for_each_task.task.environment_variables_key 739 +resources.jobs.*.tasks[*].for_each_task.task.existing_cluster_id 740 +resources.jobs.*.tasks[*].for_each_task.task.for_each_task 741 +resources.jobs.*.tasks[*].for_each_task.task.for_each_task.concurrency 742 +resources.jobs.*.tasks[*].for_each_task.task.for_each_task.inputs 743 +resources.jobs.*.tasks[*].for_each_task.task.for_each_task.task 744 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task 745 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.command 746 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.compute 747 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.compute.gpu_node_pool_id 748 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.compute.gpu_type 749 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.compute.num_gpus 750 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.dl_runtime_image 751 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.mlflow_experiment_name 752 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.source 753 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.training_script_path 754 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.yaml_parameters 755 +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.yaml_parameters_file_path 756 +resources.jobs.*.tasks[*].for_each_task.task.health 757 +resources.jobs.*.tasks[*].for_each_task.task.health.rules 758 +resources.jobs.*.tasks[*].for_each_task.task.health.rules[*] 759 +resources.jobs.*.tasks[*].for_each_task.task.health.rules[*].metric 760 +resources.jobs.*.tasks[*].for_each_task.task.health.rules[*].op 761 +resources.jobs.*.tasks[*].for_each_task.task.health.rules[*].value 762 +resources.jobs.*.tasks[*].for_each_task.task.job_cluster_key 763 +resources.jobs.*.tasks[*].for_each_task.task.libraries 764 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*] 765 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].cran 766 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].cran.package 767 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].cran.repo 768 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].egg 769 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].jar 770 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven 771 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven.coordinates 772 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven.exclusions 773 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven.exclusions[*] 774 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven.repo 775 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].pypi 776 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].pypi.package 777 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].pypi.repo 778 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].requirements 779 +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].whl 780 +resources.jobs.*.tasks[*].for_each_task.task.max_retries 781 +resources.jobs.*.tasks[*].for_each_task.task.min_retry_interval_millis 782 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster 783 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.apply_policy_default_values 784 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.apply_policy_default_values=true 785 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.apply_policy_default_values=false 786 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.autoscale 787 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.autoscale.max_workers 788 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.autoscale.min_workers 789 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.autotermination_minutes 790 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes 791 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.availability 792 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_count 793 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_iops 794 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_size 795 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_throughput 796 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_type 797 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.first_on_demand 798 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.instance_profile_arn 799 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.spot_bid_price_percent 800 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.zone_id 801 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes 802 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.availability 803 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.capacity_reservation_group 804 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.first_on_demand 805 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.log_analytics_info 806 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.log_analytics_info.log_analytics_primary_key 807 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.log_analytics_info.log_analytics_workspace_id 808 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.spot_bid_max_price 809 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf 810 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.dbfs 811 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.dbfs.destination 812 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3 813 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.canned_acl 814 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.destination 815 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.enable_encryption 816 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.enable_encryption=true 817 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.enable_encryption=false 818 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.encryption_type 819 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.endpoint 820 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.kms_key 821 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.region 822 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.volumes 823 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.volumes.destination 824 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_name 825 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.custom_tags 826 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.custom_tags.* 827 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.data_security_mode 828 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.dependency_mode 829 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image 830 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image.basic_auth 831 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image.basic_auth.password 832 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image.basic_auth.username 833 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image.url 834 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_instance_pool_id 835 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_flexibility 836 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_flexibility.alternate_node_type_ids 837 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_flexibility.alternate_node_type_ids[*] 838 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_flexibility.aws_context_id 839 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_id 840 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_elastic_disk 841 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_elastic_disk=true 842 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_elastic_disk=false 843 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_local_disk_encryption 844 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_local_disk_encryption=true 845 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_local_disk_encryption=false 846 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes 847 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.availability 848 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.boot_disk_size 849 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.confidential_compute_type 850 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.first_on_demand 851 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.google_service_account 852 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.local_ssd_count 853 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.use_preemptible_executors 854 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.use_preemptible_executors=true 855 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.use_preemptible_executors=false 856 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.zone_id 857 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts 858 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*] 859 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].abfss 860 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].abfss.destination 861 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].dbfs 862 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].dbfs.destination 863 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].file 864 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].file.destination 865 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].gcs 866 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].gcs.destination 867 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3 868 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.canned_acl 869 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.destination 870 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.enable_encryption 871 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.enable_encryption=true 872 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.enable_encryption=false 873 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.encryption_type 874 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.endpoint 875 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.kms_key 876 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.region 877 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].volumes 878 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].volumes.destination 879 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].workspace 880 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].workspace.destination 881 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.instance_pool_id 882 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.is_single_node 883 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.is_single_node=true 884 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.is_single_node=false 885 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.kind 886 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.node_type_id 887 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.num_workers 888 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.policy_id 889 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.remote_disk_throughput 890 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.runtime_engine 891 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.single_user_name 892 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_conf 893 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_conf.* 894 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_env_vars 895 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_env_vars.* 896 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_version 897 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.ssh_public_keys 898 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.ssh_public_keys[*] 899 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.total_initial_remote_disk_size 900 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.use_ml_runtime 901 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.use_ml_runtime=true 902 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.use_ml_runtime=false 903 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.worker_node_type_flexibility 904 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.worker_node_type_flexibility.alternate_node_type_ids 905 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.worker_node_type_flexibility.alternate_node_type_ids[*] 906 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.worker_node_type_flexibility.aws_context_id 907 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type 908 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients 909 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.jobs 910 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.jobs=true 911 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.jobs=false 912 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.notebooks 913 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.notebooks=true 914 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.notebooks=false 915 +resources.jobs.*.tasks[*].for_each_task.task.notebook_task 916 +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.base_parameters 917 +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.base_parameters.* 918 +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.notebook_path 919 +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.source 920 +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.warehouse_id 921 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings 922 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.alert_on_last_attempt 923 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.alert_on_last_attempt=true 924 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.alert_on_last_attempt=false 925 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_canceled_runs 926 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_canceled_runs=true 927 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_canceled_runs=false 928 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_skipped_runs 929 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_skipped_runs=true 930 +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_skipped_runs=false 931 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task 932 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh 933 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh=true 934 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh=false 935 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh_selection 936 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh_selection[*] 937 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.parameters 938 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.parameters.* 939 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.pipeline_id 940 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.refresh_flow_selection 941 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.refresh_flow_selection[*] 942 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.refresh_selection 943 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.refresh_selection[*] 944 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.reset_checkpoint_selection 945 +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.reset_checkpoint_selection[*] 946 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task 947 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.connection_resource_name 948 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model 949 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.authentication_method 950 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.model_name 951 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.overwrite_existing 952 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.overwrite_existing=true 953 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.overwrite_existing=false 954 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.storage_mode 955 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.workspace_name 956 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.refresh_after_update 957 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.refresh_after_update=true 958 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.refresh_after_update=false 959 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables 960 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*] 961 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*].catalog 962 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*].name 963 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*].schema 964 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*].storage_mode 965 +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.warehouse_id 966 +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task 967 +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.main 968 +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.parameters 969 +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.parameters[*] 970 +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.parameters[*].name 971 +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.parameters[*].value 972 +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task 973 +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.entry_point 974 +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.named_parameters 975 +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.named_parameters.* 976 +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.package_name 977 +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.parameters 978 +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.parameters[*] 979 +resources.jobs.*.tasks[*].for_each_task.task.retry_on_timeout 980 +resources.jobs.*.tasks[*].for_each_task.task.retry_on_timeout=true 981 +resources.jobs.*.tasks[*].for_each_task.task.retry_on_timeout=false 982 +resources.jobs.*.tasks[*].for_each_task.task.run_if 983 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task 984 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.dbt_commands 985 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.dbt_commands[*] 986 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.jar_params 987 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.jar_params[*] 988 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.job_id 989 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.job_parameters 990 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.job_parameters.* 991 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.notebook_params 992 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.notebook_params.* 993 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params 994 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh 995 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh=true 996 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh=false 997 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh_selection 998 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh_selection[*] 999 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.refresh_flow_selection 1000 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.refresh_flow_selection[*] 1001 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.refresh_selection 1002 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.refresh_selection[*] 1003 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.reset_checkpoint_selection 1004 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.reset_checkpoint_selection[*] 1005 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.python_named_params 1006 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.python_named_params.* 1007 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.python_params 1008 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.python_params[*] 1009 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.spark_submit_params 1010 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.spark_submit_params[*] 1011 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.sql_params 1012 +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.sql_params.* 1013 +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task 1014 +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.jar_uri 1015 +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.main_class_name 1016 +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.parameters 1017 +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.parameters[*] 1018 +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.run_as_repl 1019 +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.run_as_repl=true 1020 +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.run_as_repl=false 1021 +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task 1022 +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task.parameters 1023 +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task.parameters[*] 1024 +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task.python_file 1025 +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task.source 1026 +resources.jobs.*.tasks[*].for_each_task.task.spark_submit_task 1027 +resources.jobs.*.tasks[*].for_each_task.task.spark_submit_task.parameters 1028 +resources.jobs.*.tasks[*].for_each_task.task.spark_submit_task.parameters[*] 1029 +resources.jobs.*.tasks[*].for_each_task.task.sql_task 1030 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert 1031 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.alert_id 1032 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.pause_subscriptions 1033 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.pause_subscriptions=true 1034 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.pause_subscriptions=false 1035 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.subscriptions 1036 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.subscriptions[*] 1037 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.subscriptions[*].destination_id 1038 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.subscriptions[*].user_name 1039 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard 1040 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.custom_subject 1041 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.dashboard_id 1042 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.pause_subscriptions 1043 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.pause_subscriptions=true 1044 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.pause_subscriptions=false 1045 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.subscriptions 1046 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.subscriptions[*] 1047 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.subscriptions[*].destination_id 1048 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.subscriptions[*].user_name 1049 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.file 1050 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.file.path 1051 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.file.source 1052 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.parameters 1053 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.parameters.* 1054 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.query 1055 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.query.query_id 1056 +resources.jobs.*.tasks[*].for_each_task.task.sql_task.warehouse_id 1057 +resources.jobs.*.tasks[*].for_each_task.task.task_key 1058 +resources.jobs.*.tasks[*].for_each_task.task.timeout_seconds 1059 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications 1060 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_duration_warning_threshold_exceeded 1061 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_duration_warning_threshold_exceeded[*] 1062 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_duration_warning_threshold_exceeded[*].id 1063 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_failure 1064 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_failure[*] 1065 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_failure[*].id 1066 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_complete 1067 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_complete[*] 1068 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_complete[*].id 1069 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_start 1070 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_start[*] 1071 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_start[*].id 1072 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_start 1073 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_start[*] 1074 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_start[*].id 1075 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_streaming_backlog_exceeded 1076 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_streaming_backlog_exceeded[*] 1077 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_streaming_backlog_exceeded[*].id 1078 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_success 1079 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_success[*] 1080 +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_success[*].id 1081 +resources.jobs.*.tasks[*].gen_ai_compute_task 1082 +resources.jobs.*.tasks[*].gen_ai_compute_task.command 1083 +resources.jobs.*.tasks[*].gen_ai_compute_task.compute 1084 +resources.jobs.*.tasks[*].gen_ai_compute_task.compute.gpu_node_pool_id 1085 +resources.jobs.*.tasks[*].gen_ai_compute_task.compute.gpu_type 1086 +resources.jobs.*.tasks[*].gen_ai_compute_task.compute.num_gpus 1087 +resources.jobs.*.tasks[*].gen_ai_compute_task.dl_runtime_image 1088 +resources.jobs.*.tasks[*].gen_ai_compute_task.mlflow_experiment_name 1089 +resources.jobs.*.tasks[*].gen_ai_compute_task.source 1090 +resources.jobs.*.tasks[*].gen_ai_compute_task.training_script_path 1091 +resources.jobs.*.tasks[*].gen_ai_compute_task.yaml_parameters 1092 +resources.jobs.*.tasks[*].gen_ai_compute_task.yaml_parameters_file_path 1093 +resources.jobs.*.tasks[*].health 1094 +resources.jobs.*.tasks[*].health.rules 1095 +resources.jobs.*.tasks[*].health.rules[*] 1096 +resources.jobs.*.tasks[*].health.rules[*].metric 1097 +resources.jobs.*.tasks[*].health.rules[*].op 1098 +resources.jobs.*.tasks[*].health.rules[*].value 1099 +resources.jobs.*.tasks[*].job_cluster_key 1100 +resources.jobs.*.tasks[*].libraries 1101 +resources.jobs.*.tasks[*].libraries[*] 1102 +resources.jobs.*.tasks[*].libraries[*].cran 1103 +resources.jobs.*.tasks[*].libraries[*].cran.package 1104 +resources.jobs.*.tasks[*].libraries[*].cran.repo 1105 +resources.jobs.*.tasks[*].libraries[*].egg 1106 +resources.jobs.*.tasks[*].libraries[*].jar 1107 +resources.jobs.*.tasks[*].libraries[*].maven 1108 +resources.jobs.*.tasks[*].libraries[*].maven.coordinates 1109 +resources.jobs.*.tasks[*].libraries[*].maven.exclusions 1110 +resources.jobs.*.tasks[*].libraries[*].maven.exclusions[*] 1111 +resources.jobs.*.tasks[*].libraries[*].maven.repo 1112 +resources.jobs.*.tasks[*].libraries[*].pypi 1113 +resources.jobs.*.tasks[*].libraries[*].pypi.package 1114 +resources.jobs.*.tasks[*].libraries[*].pypi.repo 1115 +resources.jobs.*.tasks[*].libraries[*].requirements 1116 +resources.jobs.*.tasks[*].libraries[*].whl 1117 +resources.jobs.*.tasks[*].max_retries 1118 +resources.jobs.*.tasks[*].min_retry_interval_millis 1119 +resources.jobs.*.tasks[*].new_cluster 1120 +resources.jobs.*.tasks[*].new_cluster.apply_policy_default_values 1121 +resources.jobs.*.tasks[*].new_cluster.apply_policy_default_values=true 1122 +resources.jobs.*.tasks[*].new_cluster.apply_policy_default_values=false 1123 +resources.jobs.*.tasks[*].new_cluster.autoscale 1124 +resources.jobs.*.tasks[*].new_cluster.autoscale.max_workers 1125 +resources.jobs.*.tasks[*].new_cluster.autoscale.min_workers 1126 +resources.jobs.*.tasks[*].new_cluster.autotermination_minutes 1127 +resources.jobs.*.tasks[*].new_cluster.aws_attributes 1128 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.availability 1129 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_count 1130 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_iops 1131 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_size 1132 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_throughput 1133 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_type 1134 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.first_on_demand 1135 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.instance_profile_arn 1136 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.spot_bid_price_percent 1137 +resources.jobs.*.tasks[*].new_cluster.aws_attributes.zone_id 1138 +resources.jobs.*.tasks[*].new_cluster.azure_attributes 1139 +resources.jobs.*.tasks[*].new_cluster.azure_attributes.availability 1140 +resources.jobs.*.tasks[*].new_cluster.azure_attributes.capacity_reservation_group 1141 +resources.jobs.*.tasks[*].new_cluster.azure_attributes.first_on_demand 1142 +resources.jobs.*.tasks[*].new_cluster.azure_attributes.log_analytics_info 1143 +resources.jobs.*.tasks[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_primary_key 1144 +resources.jobs.*.tasks[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_workspace_id 1145 +resources.jobs.*.tasks[*].new_cluster.azure_attributes.spot_bid_max_price 1146 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf 1147 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.dbfs 1148 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.dbfs.destination 1149 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3 1150 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.canned_acl 1151 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.destination 1152 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.enable_encryption 1153 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.enable_encryption=true 1154 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.enable_encryption=false 1155 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.encryption_type 1156 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.endpoint 1157 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.kms_key 1158 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.region 1159 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.volumes 1160 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.volumes.destination 1161 +resources.jobs.*.tasks[*].new_cluster.cluster_name 1162 +resources.jobs.*.tasks[*].new_cluster.custom_tags 1163 +resources.jobs.*.tasks[*].new_cluster.custom_tags.* 1164 +resources.jobs.*.tasks[*].new_cluster.data_security_mode 1165 +resources.jobs.*.tasks[*].new_cluster.dependency_mode 1166 +resources.jobs.*.tasks[*].new_cluster.docker_image 1167 +resources.jobs.*.tasks[*].new_cluster.docker_image.basic_auth 1168 +resources.jobs.*.tasks[*].new_cluster.docker_image.basic_auth.password 1169 +resources.jobs.*.tasks[*].new_cluster.docker_image.basic_auth.username 1170 +resources.jobs.*.tasks[*].new_cluster.docker_image.url 1171 +resources.jobs.*.tasks[*].new_cluster.driver_instance_pool_id 1172 +resources.jobs.*.tasks[*].new_cluster.driver_node_type_flexibility 1173 +resources.jobs.*.tasks[*].new_cluster.driver_node_type_flexibility.alternate_node_type_ids 1174 +resources.jobs.*.tasks[*].new_cluster.driver_node_type_flexibility.alternate_node_type_ids[*] 1175 +resources.jobs.*.tasks[*].new_cluster.driver_node_type_flexibility.aws_context_id 1176 +resources.jobs.*.tasks[*].new_cluster.driver_node_type_id 1177 +resources.jobs.*.tasks[*].new_cluster.enable_elastic_disk 1178 +resources.jobs.*.tasks[*].new_cluster.enable_elastic_disk=true 1179 +resources.jobs.*.tasks[*].new_cluster.enable_elastic_disk=false 1180 +resources.jobs.*.tasks[*].new_cluster.enable_local_disk_encryption 1181 +resources.jobs.*.tasks[*].new_cluster.enable_local_disk_encryption=true 1182 +resources.jobs.*.tasks[*].new_cluster.enable_local_disk_encryption=false 1183 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes 1184 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.availability 1185 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.boot_disk_size 1186 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.confidential_compute_type 1187 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.first_on_demand 1188 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.google_service_account 1189 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.local_ssd_count 1190 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.use_preemptible_executors 1191 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.use_preemptible_executors=true 1192 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.use_preemptible_executors=false 1193 +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.zone_id 1194 +resources.jobs.*.tasks[*].new_cluster.init_scripts 1195 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*] 1196 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].abfss 1197 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].abfss.destination 1198 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].dbfs 1199 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].dbfs.destination 1200 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].file 1201 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].file.destination 1202 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].gcs 1203 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].gcs.destination 1204 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3 1205 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.canned_acl 1206 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.destination 1207 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.enable_encryption 1208 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.enable_encryption=true 1209 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.enable_encryption=false 1210 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.encryption_type 1211 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.endpoint 1212 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.kms_key 1213 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.region 1214 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].volumes 1215 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].volumes.destination 1216 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].workspace 1217 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].workspace.destination 1218 +resources.jobs.*.tasks[*].new_cluster.instance_pool_id 1219 +resources.jobs.*.tasks[*].new_cluster.is_single_node 1220 +resources.jobs.*.tasks[*].new_cluster.is_single_node=true 1221 +resources.jobs.*.tasks[*].new_cluster.is_single_node=false 1222 +resources.jobs.*.tasks[*].new_cluster.kind 1223 +resources.jobs.*.tasks[*].new_cluster.node_type_id 1224 +resources.jobs.*.tasks[*].new_cluster.num_workers 1225 +resources.jobs.*.tasks[*].new_cluster.policy_id 1226 +resources.jobs.*.tasks[*].new_cluster.remote_disk_throughput 1227 +resources.jobs.*.tasks[*].new_cluster.runtime_engine 1228 +resources.jobs.*.tasks[*].new_cluster.single_user_name 1229 +resources.jobs.*.tasks[*].new_cluster.spark_conf 1230 +resources.jobs.*.tasks[*].new_cluster.spark_conf.* 1231 +resources.jobs.*.tasks[*].new_cluster.spark_env_vars 1232 +resources.jobs.*.tasks[*].new_cluster.spark_env_vars.* 1233 +resources.jobs.*.tasks[*].new_cluster.spark_version 1234 +resources.jobs.*.tasks[*].new_cluster.ssh_public_keys 1235 +resources.jobs.*.tasks[*].new_cluster.ssh_public_keys[*] 1236 +resources.jobs.*.tasks[*].new_cluster.total_initial_remote_disk_size 1237 +resources.jobs.*.tasks[*].new_cluster.use_ml_runtime 1238 +resources.jobs.*.tasks[*].new_cluster.use_ml_runtime=true 1239 +resources.jobs.*.tasks[*].new_cluster.use_ml_runtime=false 1240 +resources.jobs.*.tasks[*].new_cluster.worker_node_type_flexibility 1241 +resources.jobs.*.tasks[*].new_cluster.worker_node_type_flexibility.alternate_node_type_ids 1242 +resources.jobs.*.tasks[*].new_cluster.worker_node_type_flexibility.alternate_node_type_ids[*] 1243 +resources.jobs.*.tasks[*].new_cluster.worker_node_type_flexibility.aws_context_id 1244 +resources.jobs.*.tasks[*].new_cluster.workload_type 1245 +resources.jobs.*.tasks[*].new_cluster.workload_type.clients 1246 +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.jobs 1247 +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.jobs=true 1248 +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.jobs=false 1249 +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.notebooks 1250 +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.notebooks=true 1251 +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.notebooks=false 1252 +resources.jobs.*.tasks[*].notebook_task 1253 +resources.jobs.*.tasks[*].notebook_task.base_parameters 1254 +resources.jobs.*.tasks[*].notebook_task.base_parameters.* 1255 +resources.jobs.*.tasks[*].notebook_task.notebook_path 1256 +resources.jobs.*.tasks[*].notebook_task.source 1257 +resources.jobs.*.tasks[*].notebook_task.warehouse_id 1258 +resources.jobs.*.tasks[*].notification_settings 1259 +resources.jobs.*.tasks[*].notification_settings.alert_on_last_attempt 1260 +resources.jobs.*.tasks[*].notification_settings.alert_on_last_attempt=true 1261 +resources.jobs.*.tasks[*].notification_settings.alert_on_last_attempt=false 1262 +resources.jobs.*.tasks[*].notification_settings.no_alert_for_canceled_runs 1263 +resources.jobs.*.tasks[*].notification_settings.no_alert_for_canceled_runs=true 1264 +resources.jobs.*.tasks[*].notification_settings.no_alert_for_canceled_runs=false 1265 +resources.jobs.*.tasks[*].notification_settings.no_alert_for_skipped_runs 1266 +resources.jobs.*.tasks[*].notification_settings.no_alert_for_skipped_runs=true 1267 +resources.jobs.*.tasks[*].notification_settings.no_alert_for_skipped_runs=false 1268 +resources.jobs.*.tasks[*].pipeline_task 1269 +resources.jobs.*.tasks[*].pipeline_task.full_refresh 1270 +resources.jobs.*.tasks[*].pipeline_task.full_refresh=true 1271 +resources.jobs.*.tasks[*].pipeline_task.full_refresh=false 1272 +resources.jobs.*.tasks[*].pipeline_task.full_refresh_selection 1273 +resources.jobs.*.tasks[*].pipeline_task.full_refresh_selection[*] 1274 +resources.jobs.*.tasks[*].pipeline_task.parameters 1275 +resources.jobs.*.tasks[*].pipeline_task.parameters.* 1276 +resources.jobs.*.tasks[*].pipeline_task.pipeline_id 1277 +resources.jobs.*.tasks[*].pipeline_task.refresh_flow_selection 1278 +resources.jobs.*.tasks[*].pipeline_task.refresh_flow_selection[*] 1279 +resources.jobs.*.tasks[*].pipeline_task.refresh_selection 1280 +resources.jobs.*.tasks[*].pipeline_task.refresh_selection[*] 1281 +resources.jobs.*.tasks[*].pipeline_task.reset_checkpoint_selection 1282 +resources.jobs.*.tasks[*].pipeline_task.reset_checkpoint_selection[*] 1283 +resources.jobs.*.tasks[*].power_bi_task 1284 +resources.jobs.*.tasks[*].power_bi_task.connection_resource_name 1285 +resources.jobs.*.tasks[*].power_bi_task.power_bi_model 1286 +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.authentication_method 1287 +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.model_name 1288 +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.overwrite_existing 1289 +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.overwrite_existing=true 1290 +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.overwrite_existing=false 1291 +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.storage_mode 1292 +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.workspace_name 1293 +resources.jobs.*.tasks[*].power_bi_task.refresh_after_update 1294 +resources.jobs.*.tasks[*].power_bi_task.refresh_after_update=true 1295 +resources.jobs.*.tasks[*].power_bi_task.refresh_after_update=false 1296 +resources.jobs.*.tasks[*].power_bi_task.tables 1297 +resources.jobs.*.tasks[*].power_bi_task.tables[*] 1298 +resources.jobs.*.tasks[*].power_bi_task.tables[*].catalog 1299 +resources.jobs.*.tasks[*].power_bi_task.tables[*].name 1300 +resources.jobs.*.tasks[*].power_bi_task.tables[*].schema 1301 +resources.jobs.*.tasks[*].power_bi_task.tables[*].storage_mode 1302 +resources.jobs.*.tasks[*].power_bi_task.warehouse_id 1303 +resources.jobs.*.tasks[*].python_operator_task 1304 +resources.jobs.*.tasks[*].python_operator_task.main 1305 +resources.jobs.*.tasks[*].python_operator_task.parameters 1306 +resources.jobs.*.tasks[*].python_operator_task.parameters[*] 1307 +resources.jobs.*.tasks[*].python_operator_task.parameters[*].name 1308 +resources.jobs.*.tasks[*].python_operator_task.parameters[*].value 1309 +resources.jobs.*.tasks[*].python_wheel_task 1310 +resources.jobs.*.tasks[*].python_wheel_task.entry_point 1311 +resources.jobs.*.tasks[*].python_wheel_task.named_parameters 1312 +resources.jobs.*.tasks[*].python_wheel_task.named_parameters.* 1313 +resources.jobs.*.tasks[*].python_wheel_task.package_name 1314 +resources.jobs.*.tasks[*].python_wheel_task.parameters 1315 +resources.jobs.*.tasks[*].python_wheel_task.parameters[*] 1316 +resources.jobs.*.tasks[*].retry_on_timeout 1317 +resources.jobs.*.tasks[*].retry_on_timeout=true 1318 +resources.jobs.*.tasks[*].retry_on_timeout=false 1319 +resources.jobs.*.tasks[*].run_if 1320 +resources.jobs.*.tasks[*].run_job_task 1321 +resources.jobs.*.tasks[*].run_job_task.dbt_commands 1322 +resources.jobs.*.tasks[*].run_job_task.dbt_commands[*] 1323 +resources.jobs.*.tasks[*].run_job_task.jar_params 1324 +resources.jobs.*.tasks[*].run_job_task.jar_params[*] 1325 +resources.jobs.*.tasks[*].run_job_task.job_id 1326 +resources.jobs.*.tasks[*].run_job_task.job_parameters 1327 +resources.jobs.*.tasks[*].run_job_task.job_parameters.* 1328 +resources.jobs.*.tasks[*].run_job_task.notebook_params 1329 +resources.jobs.*.tasks[*].run_job_task.notebook_params.* 1330 +resources.jobs.*.tasks[*].run_job_task.pipeline_params 1331 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh 1332 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh=true 1333 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh=false 1334 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh_selection 1335 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh_selection[*] 1336 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.refresh_flow_selection 1337 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.refresh_flow_selection[*] 1338 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.refresh_selection 1339 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.refresh_selection[*] 1340 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.reset_checkpoint_selection 1341 +resources.jobs.*.tasks[*].run_job_task.pipeline_params.reset_checkpoint_selection[*] 1342 +resources.jobs.*.tasks[*].run_job_task.python_named_params 1343 +resources.jobs.*.tasks[*].run_job_task.python_named_params.* 1344 +resources.jobs.*.tasks[*].run_job_task.python_params 1345 +resources.jobs.*.tasks[*].run_job_task.python_params[*] 1346 +resources.jobs.*.tasks[*].run_job_task.spark_submit_params 1347 +resources.jobs.*.tasks[*].run_job_task.spark_submit_params[*] 1348 +resources.jobs.*.tasks[*].run_job_task.sql_params 1349 +resources.jobs.*.tasks[*].run_job_task.sql_params.* 1350 +resources.jobs.*.tasks[*].spark_jar_task 1351 +resources.jobs.*.tasks[*].spark_jar_task.jar_uri 1352 +resources.jobs.*.tasks[*].spark_jar_task.main_class_name 1353 +resources.jobs.*.tasks[*].spark_jar_task.parameters 1354 +resources.jobs.*.tasks[*].spark_jar_task.parameters[*] 1355 +resources.jobs.*.tasks[*].spark_jar_task.run_as_repl 1356 +resources.jobs.*.tasks[*].spark_jar_task.run_as_repl=true 1357 +resources.jobs.*.tasks[*].spark_jar_task.run_as_repl=false 1358 +resources.jobs.*.tasks[*].spark_python_task 1359 +resources.jobs.*.tasks[*].spark_python_task.parameters 1360 +resources.jobs.*.tasks[*].spark_python_task.parameters[*] 1361 +resources.jobs.*.tasks[*].spark_python_task.python_file 1362 +resources.jobs.*.tasks[*].spark_python_task.source 1363 +resources.jobs.*.tasks[*].spark_submit_task 1364 +resources.jobs.*.tasks[*].spark_submit_task.parameters 1365 +resources.jobs.*.tasks[*].spark_submit_task.parameters[*] 1366 +resources.jobs.*.tasks[*].sql_task 1367 +resources.jobs.*.tasks[*].sql_task.alert 1368 +resources.jobs.*.tasks[*].sql_task.alert.alert_id 1369 +resources.jobs.*.tasks[*].sql_task.alert.pause_subscriptions 1370 +resources.jobs.*.tasks[*].sql_task.alert.pause_subscriptions=true 1371 +resources.jobs.*.tasks[*].sql_task.alert.pause_subscriptions=false 1372 +resources.jobs.*.tasks[*].sql_task.alert.subscriptions 1373 +resources.jobs.*.tasks[*].sql_task.alert.subscriptions[*] 1374 +resources.jobs.*.tasks[*].sql_task.alert.subscriptions[*].destination_id 1375 +resources.jobs.*.tasks[*].sql_task.alert.subscriptions[*].user_name 1376 +resources.jobs.*.tasks[*].sql_task.dashboard 1377 +resources.jobs.*.tasks[*].sql_task.dashboard.custom_subject 1378 +resources.jobs.*.tasks[*].sql_task.dashboard.dashboard_id 1379 +resources.jobs.*.tasks[*].sql_task.dashboard.pause_subscriptions 1380 +resources.jobs.*.tasks[*].sql_task.dashboard.pause_subscriptions=true 1381 +resources.jobs.*.tasks[*].sql_task.dashboard.pause_subscriptions=false 1382 +resources.jobs.*.tasks[*].sql_task.dashboard.subscriptions 1383 +resources.jobs.*.tasks[*].sql_task.dashboard.subscriptions[*] 1384 +resources.jobs.*.tasks[*].sql_task.dashboard.subscriptions[*].destination_id 1385 +resources.jobs.*.tasks[*].sql_task.dashboard.subscriptions[*].user_name 1386 +resources.jobs.*.tasks[*].sql_task.file 1387 +resources.jobs.*.tasks[*].sql_task.file.path 1388 +resources.jobs.*.tasks[*].sql_task.file.source 1389 +resources.jobs.*.tasks[*].sql_task.parameters 1390 +resources.jobs.*.tasks[*].sql_task.parameters.* 1391 +resources.jobs.*.tasks[*].sql_task.query 1392 +resources.jobs.*.tasks[*].sql_task.query.query_id 1393 +resources.jobs.*.tasks[*].sql_task.warehouse_id 1394 +resources.jobs.*.tasks[*].task_key 1395 +resources.jobs.*.tasks[*].timeout_seconds 1396 +resources.jobs.*.tasks[*].webhook_notifications 1397 +resources.jobs.*.tasks[*].webhook_notifications.on_duration_warning_threshold_exceeded 1398 +resources.jobs.*.tasks[*].webhook_notifications.on_duration_warning_threshold_exceeded[*] 1399 +resources.jobs.*.tasks[*].webhook_notifications.on_duration_warning_threshold_exceeded[*].id 1400 +resources.jobs.*.tasks[*].webhook_notifications.on_failure 1401 +resources.jobs.*.tasks[*].webhook_notifications.on_failure[*] 1402 +resources.jobs.*.tasks[*].webhook_notifications.on_failure[*].id 1403 +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_complete 1404 +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_complete[*] 1405 +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_complete[*].id 1406 +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_start 1407 +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_start[*] 1408 +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_start[*].id 1409 +resources.jobs.*.tasks[*].webhook_notifications.on_start 1410 +resources.jobs.*.tasks[*].webhook_notifications.on_start[*] 1411 +resources.jobs.*.tasks[*].webhook_notifications.on_start[*].id 1412 +resources.jobs.*.tasks[*].webhook_notifications.on_streaming_backlog_exceeded 1413 +resources.jobs.*.tasks[*].webhook_notifications.on_streaming_backlog_exceeded[*] 1414 +resources.jobs.*.tasks[*].webhook_notifications.on_streaming_backlog_exceeded[*].id 1415 +resources.jobs.*.tasks[*].webhook_notifications.on_success 1416 +resources.jobs.*.tasks[*].webhook_notifications.on_success[*] 1417 +resources.jobs.*.tasks[*].webhook_notifications.on_success[*].id 1418 +resources.jobs.*.timeout_seconds 1419 +resources.jobs.*.trigger 1420 +resources.jobs.*.trigger.file_arrival 1421 +resources.jobs.*.trigger.file_arrival.min_time_between_triggers_seconds 1422 +resources.jobs.*.trigger.file_arrival.url 1423 +resources.jobs.*.trigger.file_arrival.wait_after_last_change_seconds 1424 +resources.jobs.*.trigger.job_completion 1425 +resources.jobs.*.trigger.job_completion.if_status 1426 +resources.jobs.*.trigger.job_completion.jobs 1427 +resources.jobs.*.trigger.job_completion.jobs[*] 1428 +resources.jobs.*.trigger.job_completion.jobs[*].job_id 1429 +resources.jobs.*.trigger.job_completion.jobs[*].workspace_id 1430 +resources.jobs.*.trigger.model 1431 +resources.jobs.*.trigger.model.aliases 1432 +resources.jobs.*.trigger.model.aliases[*] 1433 +resources.jobs.*.trigger.model.condition 1434 +resources.jobs.*.trigger.model.min_time_between_triggers_seconds 1435 +resources.jobs.*.trigger.model.securable_name 1436 +resources.jobs.*.trigger.model.wait_after_last_change_seconds 1437 +resources.jobs.*.trigger.pause_status 1438 +resources.jobs.*.trigger.periodic 1439 +resources.jobs.*.trigger.periodic.interval 1440 +resources.jobs.*.trigger.periodic.unit 1441 +resources.jobs.*.trigger.sql_condition 1442 +resources.jobs.*.trigger.sql_condition.sql_query_id 1443 +resources.jobs.*.trigger.sql_condition.trigger_mode 1444 +resources.jobs.*.trigger.sql_condition.warehouse_id 1445 +resources.jobs.*.trigger.table_update 1446 +resources.jobs.*.trigger.table_update.condition 1447 +resources.jobs.*.trigger.table_update.min_time_between_triggers_seconds 1448 +resources.jobs.*.trigger.table_update.table_names 1449 +resources.jobs.*.trigger.table_update.table_names[*] 1450 +resources.jobs.*.trigger.table_update.wait_after_last_change_seconds 1451 +resources.jobs.*.triggers 1452 +resources.jobs.*.triggers[*] 1453 +resources.jobs.*.triggers[*].continuous 1454 +resources.jobs.*.triggers[*].continuous.maintenance_window 1455 +resources.jobs.*.triggers[*].continuous.maintenance_window.day_of_week 1456 +resources.jobs.*.triggers[*].continuous.maintenance_window.start_hour 1457 +resources.jobs.*.triggers[*].continuous.maintenance_window.timezone_id 1458 +resources.jobs.*.triggers[*].continuous.task_retry_mode 1459 +resources.jobs.*.triggers[*].file_arrival 1460 +resources.jobs.*.triggers[*].file_arrival.min_time_between_triggers_seconds 1461 +resources.jobs.*.triggers[*].file_arrival.url 1462 +resources.jobs.*.triggers[*].file_arrival.wait_after_last_change_seconds 1463 +resources.jobs.*.triggers[*].job_completion 1464 +resources.jobs.*.triggers[*].job_completion.if_status 1465 +resources.jobs.*.triggers[*].job_completion.jobs 1466 +resources.jobs.*.triggers[*].job_completion.jobs[*] 1467 +resources.jobs.*.triggers[*].job_completion.jobs[*].job_id 1468 +resources.jobs.*.triggers[*].job_completion.jobs[*].workspace_id 1469 +resources.jobs.*.triggers[*].model 1470 +resources.jobs.*.triggers[*].model.aliases 1471 +resources.jobs.*.triggers[*].model.aliases[*] 1472 +resources.jobs.*.triggers[*].model.condition 1473 +resources.jobs.*.triggers[*].model.min_time_between_triggers_seconds 1474 +resources.jobs.*.triggers[*].model.securable_name 1475 +resources.jobs.*.triggers[*].model.wait_after_last_change_seconds 1476 +resources.jobs.*.triggers[*].pause_status 1477 +resources.jobs.*.triggers[*].periodic 1478 +resources.jobs.*.triggers[*].periodic.interval 1479 +resources.jobs.*.triggers[*].periodic.unit 1480 +resources.jobs.*.triggers[*].schedule 1481 +resources.jobs.*.triggers[*].schedule.quartz_cron_expression 1482 +resources.jobs.*.triggers[*].schedule.timezone_id 1483 +resources.jobs.*.triggers[*].sql_condition 1484 +resources.jobs.*.triggers[*].sql_condition.sql_query_id 1485 +resources.jobs.*.triggers[*].sql_condition.trigger_mode 1486 +resources.jobs.*.triggers[*].sql_condition.warehouse_id 1487 +resources.jobs.*.triggers[*].table_update 1488 +resources.jobs.*.triggers[*].table_update.condition 1489 +resources.jobs.*.triggers[*].table_update.min_time_between_triggers_seconds 1490 +resources.jobs.*.triggers[*].table_update.table_names 1491 +resources.jobs.*.triggers[*].table_update.table_names[*] 1492 +resources.jobs.*.triggers[*].table_update.wait_after_last_change_seconds 1493 +resources.jobs.*.usage_policy_id 1494 +resources.jobs.*.webhook_notifications 1495 +resources.jobs.*.webhook_notifications.on_duration_warning_threshold_exceeded 1496 +resources.jobs.*.webhook_notifications.on_duration_warning_threshold_exceeded[*] 1497 +resources.jobs.*.webhook_notifications.on_duration_warning_threshold_exceeded[*].id 1498 +resources.jobs.*.webhook_notifications.on_failure 1499 +resources.jobs.*.webhook_notifications.on_failure[*] 1500 +resources.jobs.*.webhook_notifications.on_failure[*].id 1501 +resources.jobs.*.webhook_notifications.on_maintenance_complete 1502 +resources.jobs.*.webhook_notifications.on_maintenance_complete[*] 1503 +resources.jobs.*.webhook_notifications.on_maintenance_complete[*].id 1504 +resources.jobs.*.webhook_notifications.on_maintenance_start 1505 +resources.jobs.*.webhook_notifications.on_maintenance_start[*] 1506 +resources.jobs.*.webhook_notifications.on_maintenance_start[*].id 1507 +resources.jobs.*.webhook_notifications.on_start 1508 +resources.jobs.*.webhook_notifications.on_start[*] 1509 +resources.jobs.*.webhook_notifications.on_start[*].id 1510 +resources.jobs.*.webhook_notifications.on_streaming_backlog_exceeded 1511 +resources.jobs.*.webhook_notifications.on_streaming_backlog_exceeded[*] 1512 +resources.jobs.*.webhook_notifications.on_streaming_backlog_exceeded[*].id 1513 +resources.jobs.*.webhook_notifications.on_success 1514 +resources.jobs.*.webhook_notifications.on_success[*] 1515 +resources.jobs.*.webhook_notifications.on_success[*].id 1516 +resources.jobs.*.permissions 1517 +resources.jobs.*.permissions[*] 1518 +resources.jobs.*.permissions[*].level 1519 +resources.jobs.*.permissions[*].user_name 1520 +resources.jobs.*.permissions[*].service_principal_name 1521 +resources.jobs.*.permissions[*].group_name 1522 diff --git a/acceptance/bundle/bitmap/full/output/materialization_sets.txt b/acceptance/bundle/bitmap/full/output/materialization_sets.txt new file mode 100644 index 00000000000..3ac0180ecbf --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/materialization_sets.txt @@ -0,0 +1,80 @@ +resources.materialization_sets 2744 +resources.materialization_sets.* 2745 +resources.materialization_sets.*.url 2746 +resources.materialization_sets.*.modified_status 2747 +resources.materialization_sets.*.lifecycle 2748 +resources.materialization_sets.*.lifecycle.prevent_destroy 2749 +resources.materialization_sets.*.lifecycle.prevent_destroy=true 2750 +resources.materialization_sets.*.lifecycle.prevent_destroy=false 2751 +resources.materialization_sets.*.lifecycle.depends_on 2752 +resources.materialization_sets.*.lifecycle.depends_on[*] 2753 +resources.materialization_sets.*.lifecycle.depends_on[*].resource 2754 +resources.materialization_sets.*.id 2755 +resources.materialization_sets.*.materialization_set_id 2756 +resources.materialization_sets.*.materialized_features 2757 +resources.materialization_sets.*.materialized_features[*] 2758 +resources.materialization_sets.*.materialized_features[*].budget_policy_id 2759 +resources.materialization_sets.*.materialized_features[*].cron_schedule 2760 +resources.materialization_sets.*.materialized_features[*].cron_schedule_trigger 2761 +resources.materialization_sets.*.materialized_features[*].cron_schedule_trigger.cron_expression 2762 +resources.materialization_sets.*.materialized_features[*].cron_schedule_trigger.mode 2763 +resources.materialization_sets.*.materialized_features[*].cron_schedule_trigger.timezone_id 2764 +resources.materialization_sets.*.materialized_features[*].feature_name 2765 +resources.materialization_sets.*.materialized_features[*].is_online 2766 +resources.materialization_sets.*.materialized_features[*].is_online=true 2767 +resources.materialization_sets.*.materialized_features[*].is_online=false 2768 +resources.materialization_sets.*.materialized_features[*].job_id 2769 +resources.materialization_sets.*.materialized_features[*].last_materialization_time 2770 +resources.materialization_sets.*.materialized_features[*].latest_backfill_operation 2771 +resources.materialization_sets.*.materialized_features[*].materialization_set_id 2772 +resources.materialization_sets.*.materialized_features[*].materialized_feature_id 2773 +resources.materialization_sets.*.materialized_features[*].notifications 2774 +resources.materialization_sets.*.materialized_features[*].notifications.on_failure 2775 +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.destination_ids 2776 +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.destination_ids[*] 2777 +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.email_addresses 2778 +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.email_addresses[*] 2779 +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.final_attempt_only 2780 +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.final_attempt_only=true 2781 +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.final_attempt_only=false 2782 +resources.materialization_sets.*.materialized_features[*].notifications.on_success 2783 +resources.materialization_sets.*.materialized_features[*].notifications.on_success.destination_ids 2784 +resources.materialization_sets.*.materialized_features[*].notifications.on_success.destination_ids[*] 2785 +resources.materialization_sets.*.materialized_features[*].notifications.on_success.email_addresses 2786 +resources.materialization_sets.*.materialized_features[*].notifications.on_success.email_addresses[*] 2787 +resources.materialization_sets.*.materialized_features[*].offline_store_config 2788 +resources.materialization_sets.*.materialized_features[*].offline_store_config.catalog_name 2789 +resources.materialization_sets.*.materialized_features[*].offline_store_config.schema_name 2790 +resources.materialization_sets.*.materialized_features[*].offline_store_config.table_name_prefix 2791 +resources.materialization_sets.*.materialized_features[*].online_store_config 2792 +resources.materialization_sets.*.materialized_features[*].online_store_config.catalog_name 2793 +resources.materialization_sets.*.materialized_features[*].online_store_config.online_store_name 2794 +resources.materialization_sets.*.materialized_features[*].online_store_config.schema_name 2795 +resources.materialization_sets.*.materialized_features[*].online_store_config.table_name_prefix 2796 +resources.materialization_sets.*.materialized_features[*].pipeline_id 2797 +resources.materialization_sets.*.materialized_features[*].pipeline_schedule_state 2798 +resources.materialization_sets.*.materialized_features[*].streaming_mode 2799 +resources.materialization_sets.*.materialized_features[*].streaming_mode.freshness_target 2800 +resources.materialization_sets.*.materialized_features[*].streaming_mode.mode 2801 +resources.materialization_sets.*.materialized_features[*].streaming_mode.shuffle_partitions 2802 +resources.materialization_sets.*.materialized_features[*].table_name 2803 +resources.materialization_sets.*.materialized_features[*].table_trigger 2804 +resources.materialization_sets.*.materialized_features[*].table_trigger.condition 2805 +resources.materialization_sets.*.materialized_features[*].table_trigger.min_time_between_triggers 2806 +resources.materialization_sets.*.materialized_features[*].table_trigger.wait_after_last_change 2807 +resources.materialization_sets.*.materialized_features[*].tags 2808 +resources.materialization_sets.*.materialized_features[*].tags.* 2809 +resources.materialization_sets.*.notifications 2810 +resources.materialization_sets.*.notifications.on_failure 2811 +resources.materialization_sets.*.notifications.on_failure.destination_ids 2812 +resources.materialization_sets.*.notifications.on_failure.destination_ids[*] 2813 +resources.materialization_sets.*.notifications.on_failure.email_addresses 2814 +resources.materialization_sets.*.notifications.on_failure.email_addresses[*] 2815 +resources.materialization_sets.*.notifications.on_failure.final_attempt_only 2816 +resources.materialization_sets.*.notifications.on_failure.final_attempt_only=true 2817 +resources.materialization_sets.*.notifications.on_failure.final_attempt_only=false 2818 +resources.materialization_sets.*.notifications.on_success 2819 +resources.materialization_sets.*.notifications.on_success.destination_ids 2820 +resources.materialization_sets.*.notifications.on_success.destination_ids[*] 2821 +resources.materialization_sets.*.notifications.on_success.email_addresses 2822 +resources.materialization_sets.*.notifications.on_success.email_addresses[*] 2823 diff --git a/acceptance/bundle/bitmap/full/output/mcp_services.txt b/acceptance/bundle/bitmap/full/output/mcp_services.txt new file mode 100644 index 00000000000..1bbfc9255d9 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/mcp_services.txt @@ -0,0 +1,37 @@ +resources.mcp_services 3161 +resources.mcp_services.* 3162 +resources.mcp_services.*.url 3163 +resources.mcp_services.*.modified_status 3164 +resources.mcp_services.*.lifecycle 3165 +resources.mcp_services.*.lifecycle.prevent_destroy 3166 +resources.mcp_services.*.lifecycle.prevent_destroy=true 3167 +resources.mcp_services.*.lifecycle.prevent_destroy=false 3168 +resources.mcp_services.*.lifecycle.depends_on 3169 +resources.mcp_services.*.lifecycle.depends_on[*] 3170 +resources.mcp_services.*.lifecycle.depends_on[*].resource 3171 +resources.mcp_services.*.id 3172 +resources.mcp_services.*.parent 3173 +resources.mcp_services.*.mcp_service_id 3174 +resources.mcp_services.*.comment 3175 +resources.mcp_services.*.config 3176 +resources.mcp_services.*.config.include_tool_selectors 3177 +resources.mcp_services.*.config.include_tool_selectors[*] 3178 +resources.mcp_services.*.config.rate_limits 3179 +resources.mcp_services.*.config.rate_limits[*] 3180 +resources.mcp_services.*.config.rate_limits[*].key 3181 +resources.mcp_services.*.config.rate_limits[*].principal 3182 +resources.mcp_services.*.config.rate_limits[*].renewal_period 3183 +resources.mcp_services.*.config.rate_limits[*].requests 3184 +resources.mcp_services.*.config.rate_limits[*].tokens 3185 +resources.mcp_services.*.config.source_connection 3186 +resources.mcp_services.*.config.source_connection.is_deleted 3187 +resources.mcp_services.*.config.source_connection.is_deleted=true 3188 +resources.mcp_services.*.config.source_connection.is_deleted=false 3189 +resources.mcp_services.*.config.source_connection.name 3190 +resources.mcp_services.*.config.source_connection.options 3191 +resources.mcp_services.*.config.source_connection.options.* 3192 +resources.mcp_services.*.grants 3193 +resources.mcp_services.*.grants[*] 3194 +resources.mcp_services.*.grants[*].principal 3195 +resources.mcp_services.*.grants[*].privileges 3196 +resources.mcp_services.*.grants[*].privileges[*] 3197 diff --git a/acceptance/bundle/bitmap/full/output/model_provider_services.txt b/acceptance/bundle/bitmap/full/output/model_provider_services.txt new file mode 100644 index 00000000000..c67d75dddae --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/model_provider_services.txt @@ -0,0 +1,148 @@ +resources.model_provider_services 3198 +resources.model_provider_services.* 3199 +resources.model_provider_services.*.url 3200 +resources.model_provider_services.*.modified_status 3201 +resources.model_provider_services.*.lifecycle 3202 +resources.model_provider_services.*.lifecycle.prevent_destroy 3203 +resources.model_provider_services.*.lifecycle.prevent_destroy=true 3204 +resources.model_provider_services.*.lifecycle.prevent_destroy=false 3205 +resources.model_provider_services.*.lifecycle.depends_on 3206 +resources.model_provider_services.*.lifecycle.depends_on[*] 3207 +resources.model_provider_services.*.lifecycle.depends_on[*].resource 3208 +resources.model_provider_services.*.id 3209 +resources.model_provider_services.*.parent 3210 +resources.model_provider_services.*.model_provider_service_id 3211 +resources.model_provider_services.*.comment 3212 +resources.model_provider_services.*.config 3213 +resources.model_provider_services.*.config.allow_all_targets 3214 +resources.model_provider_services.*.config.allow_all_targets=true 3215 +resources.model_provider_services.*.config.allow_all_targets=false 3216 +resources.model_provider_services.*.config.amazon_bedrock 3217 +resources.model_provider_services.*.config.amazon_bedrock.direct 3218 +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key 3219 +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.access_key_id 3220 +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.secret_access_key 3221 +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.secret_access_key.plaintext 3222 +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.secret_access_key.secret_reference 3223 +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.secret_access_key.secret_reference.name 3224 +resources.model_provider_services.*.config.amazon_bedrock.direct.region 3225 +resources.model_provider_services.*.config.amazon_bedrock.direct.service_credential 3226 +resources.model_provider_services.*.config.amazon_bedrock.direct.service_credential.name 3227 +resources.model_provider_services.*.config.anthropic 3228 +resources.model_provider_services.*.config.anthropic.direct 3229 +resources.model_provider_services.*.config.anthropic.direct.api_key 3230 +resources.model_provider_services.*.config.anthropic.direct.api_key.plaintext 3231 +resources.model_provider_services.*.config.anthropic.direct.api_key.secret_reference 3232 +resources.model_provider_services.*.config.anthropic.direct.api_key.secret_reference.name 3233 +resources.model_provider_services.*.config.anthropic.relayed 3234 +resources.model_provider_services.*.config.azure_openai 3235 +resources.model_provider_services.*.config.azure_openai.direct 3236 +resources.model_provider_services.*.config.azure_openai.direct.api_key 3237 +resources.model_provider_services.*.config.azure_openai.direct.api_key.plaintext 3238 +resources.model_provider_services.*.config.azure_openai.direct.api_key.secret_reference 3239 +resources.model_provider_services.*.config.azure_openai.direct.api_key.secret_reference.name 3240 +resources.model_provider_services.*.config.azure_openai.direct.base_url 3241 +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal 3242 +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_id 3243 +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_secret 3244 +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_secret.plaintext 3245 +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_secret.secret_reference 3246 +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_secret.secret_reference.name 3247 +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.tenant_id 3248 +resources.model_provider_services.*.config.azure_openai.direct.service_credential 3249 +resources.model_provider_services.*.config.azure_openai.direct.service_credential.name 3250 +resources.model_provider_services.*.config.bedrock_mantle 3251 +resources.model_provider_services.*.config.bedrock_mantle.direct 3252 +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key 3253 +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.access_key_id 3254 +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.secret_access_key 3255 +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.secret_access_key.plaintext 3256 +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.secret_access_key.secret_reference 3257 +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.secret_access_key.secret_reference.name 3258 +resources.model_provider_services.*.config.bedrock_mantle.direct.region 3259 +resources.model_provider_services.*.config.bedrock_mantle.direct.service_credential 3260 +resources.model_provider_services.*.config.bedrock_mantle.direct.service_credential.name 3261 +resources.model_provider_services.*.config.custom 3262 +resources.model_provider_services.*.config.custom.direct 3263 +resources.model_provider_services.*.config.custom.direct.api_key 3264 +resources.model_provider_services.*.config.custom.direct.api_key.plaintext 3265 +resources.model_provider_services.*.config.custom.direct.api_key.secret_reference 3266 +resources.model_provider_services.*.config.custom.direct.api_key.secret_reference.name 3267 +resources.model_provider_services.*.config.custom.direct.base_url 3268 +resources.model_provider_services.*.config.custom.direct.header_auth 3269 +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_name 3270 +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_value 3271 +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_value.plaintext 3272 +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_value.secret_reference 3273 +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_value.secret_reference.name 3274 +resources.model_provider_services.*.config.forward_headers 3275 +resources.model_provider_services.*.config.forward_headers=true 3276 +resources.model_provider_services.*.config.forward_headers=false 3277 +resources.model_provider_services.*.config.forward_query_parameters 3278 +resources.model_provider_services.*.config.forward_query_parameters=true 3279 +resources.model_provider_services.*.config.forward_query_parameters=false 3280 +resources.model_provider_services.*.config.forward_unmanaged_paths 3281 +resources.model_provider_services.*.config.forward_unmanaged_paths=true 3282 +resources.model_provider_services.*.config.forward_unmanaged_paths=false 3283 +resources.model_provider_services.*.config.gemini_enterprise 3284 +resources.model_provider_services.*.config.gemini_enterprise.direct 3285 +resources.model_provider_services.*.config.gemini_enterprise.direct.api_key 3286 +resources.model_provider_services.*.config.gemini_enterprise.direct.api_key.plaintext 3287 +resources.model_provider_services.*.config.gemini_enterprise.direct.api_key.secret_reference 3288 +resources.model_provider_services.*.config.gemini_enterprise.direct.api_key.secret_reference.name 3289 +resources.model_provider_services.*.config.gemini_enterprise.direct.project_id 3290 +resources.model_provider_services.*.config.gemini_enterprise.direct.region 3291 +resources.model_provider_services.*.config.gemini_enterprise.direct.service_credential 3292 +resources.model_provider_services.*.config.gemini_enterprise.direct.service_credential.name 3293 +resources.model_provider_services.*.config.inference_table 3294 +resources.model_provider_services.*.config.inference_table.is_deleted 3295 +resources.model_provider_services.*.config.inference_table.is_deleted=true 3296 +resources.model_provider_services.*.config.inference_table.is_deleted=false 3297 +resources.model_provider_services.*.config.inference_table.parent 3298 +resources.model_provider_services.*.config.inference_table.table 3299 +resources.model_provider_services.*.config.inference_table.table_name_prefix 3300 +resources.model_provider_services.*.config.microsoft_foundry 3301 +resources.model_provider_services.*.config.microsoft_foundry.direct 3302 +resources.model_provider_services.*.config.microsoft_foundry.direct.api_key 3303 +resources.model_provider_services.*.config.microsoft_foundry.direct.api_key.plaintext 3304 +resources.model_provider_services.*.config.microsoft_foundry.direct.api_key.secret_reference 3305 +resources.model_provider_services.*.config.microsoft_foundry.direct.api_key.secret_reference.name 3306 +resources.model_provider_services.*.config.microsoft_foundry.direct.base_url 3307 +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal 3308 +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_id 3309 +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_secret 3310 +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_secret.plaintext 3311 +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_secret.secret_reference 3312 +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_secret.secret_reference.name 3313 +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.tenant_id 3314 +resources.model_provider_services.*.config.microsoft_foundry.direct.service_credential 3315 +resources.model_provider_services.*.config.microsoft_foundry.direct.service_credential.name 3316 +resources.model_provider_services.*.config.openai 3317 +resources.model_provider_services.*.config.openai.direct 3318 +resources.model_provider_services.*.config.openai.direct.api_key 3319 +resources.model_provider_services.*.config.openai.direct.api_key.plaintext 3320 +resources.model_provider_services.*.config.openai.direct.api_key.secret_reference 3321 +resources.model_provider_services.*.config.openai.direct.api_key.secret_reference.name 3322 +resources.model_provider_services.*.config.openai.direct.base_url 3323 +resources.model_provider_services.*.config.openai.direct.organization 3324 +resources.model_provider_services.*.config.pricing 3325 +resources.model_provider_services.*.config.pricing.default_discount_basis_points 3326 +resources.model_provider_services.*.config.provider_type 3327 +resources.model_provider_services.*.config.rate_limits 3328 +resources.model_provider_services.*.config.rate_limits[*] 3329 +resources.model_provider_services.*.config.rate_limits[*].key 3330 +resources.model_provider_services.*.config.rate_limits[*].principal 3331 +resources.model_provider_services.*.config.rate_limits[*].renewal_period 3332 +resources.model_provider_services.*.config.rate_limits[*].requests 3333 +resources.model_provider_services.*.config.rate_limits[*].tokens 3334 +resources.model_provider_services.*.config.targets 3335 +resources.model_provider_services.*.config.targets[*] 3336 +resources.model_provider_services.*.config.targets[*].endpoint_route 3337 +resources.model_provider_services.*.config.targets[*].model 3338 +resources.model_provider_services.*.config.targets[*].native_api_types 3339 +resources.model_provider_services.*.config.targets[*].native_api_types[*] 3340 +resources.model_provider_services.*.grants 3341 +resources.model_provider_services.*.grants[*] 3342 +resources.model_provider_services.*.grants[*].principal 3343 +resources.model_provider_services.*.grants[*].privileges 3344 +resources.model_provider_services.*.grants[*].privileges[*] 3345 diff --git a/acceptance/bundle/bitmap/full/output/model_services.txt b/acceptance/bundle/bitmap/full/output/model_services.txt new file mode 100644 index 00000000000..3d17f8b752a --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/model_services.txt @@ -0,0 +1,77 @@ +resources.model_services 3084 +resources.model_services.* 3085 +resources.model_services.*.url 3086 +resources.model_services.*.modified_status 3087 +resources.model_services.*.lifecycle 3088 +resources.model_services.*.lifecycle.prevent_destroy 3089 +resources.model_services.*.lifecycle.prevent_destroy=true 3090 +resources.model_services.*.lifecycle.prevent_destroy=false 3091 +resources.model_services.*.lifecycle.depends_on 3092 +resources.model_services.*.lifecycle.depends_on[*] 3093 +resources.model_services.*.lifecycle.depends_on[*].resource 3094 +resources.model_services.*.parent 3095 +resources.model_services.*.model_service_id 3096 +resources.model_services.*.comment 3097 +resources.model_services.*.config 3098 +resources.model_services.*.config.inference_table 3099 +resources.model_services.*.config.inference_table.is_deleted 3100 +resources.model_services.*.config.inference_table.is_deleted=true 3101 +resources.model_services.*.config.inference_table.is_deleted=false 3102 +resources.model_services.*.config.inference_table.parent 3103 +resources.model_services.*.config.inference_table.table 3104 +resources.model_services.*.config.inference_table.table_name_prefix 3105 +resources.model_services.*.config.rate_limits 3106 +resources.model_services.*.config.rate_limits[*] 3107 +resources.model_services.*.config.rate_limits[*].key 3108 +resources.model_services.*.config.rate_limits[*].principal 3109 +resources.model_services.*.config.rate_limits[*].renewal_period 3110 +resources.model_services.*.config.rate_limits[*].requests 3111 +resources.model_services.*.config.rate_limits[*].tokens 3112 +resources.model_services.*.config.routing 3113 +resources.model_services.*.config.routing.destinations 3114 +resources.model_services.*.config.routing.destinations[*] 3115 +resources.model_services.*.config.routing.destinations[*].destination_type 3116 +resources.model_services.*.config.routing.destinations[*].external_model_config 3117 +resources.model_services.*.config.routing.destinations[*].external_model_config.model_provider_service 3118 +resources.model_services.*.config.routing.destinations[*].external_model_config.target 3119 +resources.model_services.*.config.routing.destinations[*].external_model_config.target.endpoint_route 3120 +resources.model_services.*.config.routing.destinations[*].external_model_config.target.model 3121 +resources.model_services.*.config.routing.destinations[*].external_model_config.target.native_api_types 3122 +resources.model_services.*.config.routing.destinations[*].external_model_config.target.native_api_types[*] 3123 +resources.model_services.*.config.routing.destinations[*].is_deleted 3124 +resources.model_services.*.config.routing.destinations[*].is_deleted=true 3125 +resources.model_services.*.config.routing.destinations[*].is_deleted=false 3126 +resources.model_services.*.config.routing.destinations[*].name 3127 +resources.model_services.*.config.routing.destinations[*].pay_per_token_config 3128 +resources.model_services.*.config.routing.destinations[*].pay_per_token_config.model 3129 +resources.model_services.*.config.routing.destinations[*].provisioned_throughput_config 3130 +resources.model_services.*.config.routing.destinations[*].provisioned_throughput_config.model 3131 +resources.model_services.*.config.routing.destinations[*].provisioned_throughput_config.model_serving_endpoint 3132 +resources.model_services.*.config.routing.destinations[*].traffic_percentage 3133 +resources.model_services.*.config.routing.fallback 3134 +resources.model_services.*.config.routing.fallback.destinations 3135 +resources.model_services.*.config.routing.fallback.destinations[*] 3136 +resources.model_services.*.config.routing.fallback.destinations[*].destination_type 3137 +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config 3138 +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.model_provider_service 3139 +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target 3140 +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target.endpoint_route 3141 +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target.model 3142 +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target.native_api_types 3143 +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target.native_api_types[*] 3144 +resources.model_services.*.config.routing.fallback.destinations[*].is_deleted 3145 +resources.model_services.*.config.routing.fallback.destinations[*].is_deleted=true 3146 +resources.model_services.*.config.routing.fallback.destinations[*].is_deleted=false 3147 +resources.model_services.*.config.routing.fallback.destinations[*].name 3148 +resources.model_services.*.config.routing.fallback.destinations[*].pay_per_token_config 3149 +resources.model_services.*.config.routing.fallback.destinations[*].pay_per_token_config.model 3150 +resources.model_services.*.config.routing.fallback.destinations[*].provisioned_throughput_config 3151 +resources.model_services.*.config.routing.fallback.destinations[*].provisioned_throughput_config.model 3152 +resources.model_services.*.config.routing.fallback.destinations[*].provisioned_throughput_config.model_serving_endpoint 3153 +resources.model_services.*.config.routing.fallback.destinations[*].traffic_percentage 3154 +resources.model_services.*.id 3155 +resources.model_services.*.grants 3156 +resources.model_services.*.grants[*] 3157 +resources.model_services.*.grants[*].principal 3158 +resources.model_services.*.grants[*].privileges 3159 +resources.model_services.*.grants[*].privileges[*] 3160 diff --git a/acceptance/bundle/bitmap/full/output/model_serving_endpoints.txt b/acceptance/bundle/bitmap/full/output/model_serving_endpoints.txt new file mode 100644 index 00000000000..823a2eaf39e --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/model_serving_endpoints.txt @@ -0,0 +1,206 @@ +resources.model_serving_endpoints 2878 +resources.model_serving_endpoints.* 2879 +resources.model_serving_endpoints.*.url 2880 +resources.model_serving_endpoints.*.modified_status 2881 +resources.model_serving_endpoints.*.lifecycle 2882 +resources.model_serving_endpoints.*.lifecycle.prevent_destroy 2883 +resources.model_serving_endpoints.*.lifecycle.prevent_destroy=true 2884 +resources.model_serving_endpoints.*.lifecycle.prevent_destroy=false 2885 +resources.model_serving_endpoints.*.lifecycle.depends_on 2886 +resources.model_serving_endpoints.*.lifecycle.depends_on[*] 2887 +resources.model_serving_endpoints.*.lifecycle.depends_on[*].resource 2888 +resources.model_serving_endpoints.*.id 2889 +resources.model_serving_endpoints.*.ai_gateway 2890 +resources.model_serving_endpoints.*.ai_gateway.fallback_config 2891 +resources.model_serving_endpoints.*.ai_gateway.fallback_config.enabled 2892 +resources.model_serving_endpoints.*.ai_gateway.fallback_config.enabled=true 2893 +resources.model_serving_endpoints.*.ai_gateway.fallback_config.enabled=false 2894 +resources.model_serving_endpoints.*.ai_gateway.guardrails 2895 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input 2896 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.invalid_keywords 2897 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.invalid_keywords[*] 2898 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.pii 2899 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.pii.behavior 2900 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.safety 2901 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.safety=true 2902 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.safety=false 2903 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.valid_topics 2904 +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.valid_topics[*] 2905 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output 2906 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.invalid_keywords 2907 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.invalid_keywords[*] 2908 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.pii 2909 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.pii.behavior 2910 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.safety 2911 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.safety=true 2912 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.safety=false 2913 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.valid_topics 2914 +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.valid_topics[*] 2915 +resources.model_serving_endpoints.*.ai_gateway.inference_table_config 2916 +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.catalog_name 2917 +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.enabled 2918 +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.enabled=true 2919 +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.enabled=false 2920 +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.schema_name 2921 +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.table_name_prefix 2922 +resources.model_serving_endpoints.*.ai_gateway.rate_limits 2923 +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*] 2924 +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].calls 2925 +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].key 2926 +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].principal 2927 +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].renewal_period 2928 +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].tokens 2929 +resources.model_serving_endpoints.*.ai_gateway.usage_tracking_config 2930 +resources.model_serving_endpoints.*.ai_gateway.usage_tracking_config.enabled 2931 +resources.model_serving_endpoints.*.ai_gateway.usage_tracking_config.enabled=true 2932 +resources.model_serving_endpoints.*.ai_gateway.usage_tracking_config.enabled=false 2933 +resources.model_serving_endpoints.*.budget_policy_id 2934 +resources.model_serving_endpoints.*.config 2935 +resources.model_serving_endpoints.*.config.auto_capture_config 2936 +resources.model_serving_endpoints.*.config.auto_capture_config.catalog_name 2937 +resources.model_serving_endpoints.*.config.auto_capture_config.enabled 2938 +resources.model_serving_endpoints.*.config.auto_capture_config.enabled=true 2939 +resources.model_serving_endpoints.*.config.auto_capture_config.enabled=false 2940 +resources.model_serving_endpoints.*.config.auto_capture_config.schema_name 2941 +resources.model_serving_endpoints.*.config.auto_capture_config.table_name_prefix 2942 +resources.model_serving_endpoints.*.config.served_entities 2943 +resources.model_serving_endpoints.*.config.served_entities[*] 2944 +resources.model_serving_endpoints.*.config.served_entities[*].burst_scaling_enabled 2945 +resources.model_serving_endpoints.*.config.served_entities[*].burst_scaling_enabled=true 2946 +resources.model_serving_endpoints.*.config.served_entities[*].burst_scaling_enabled=false 2947 +resources.model_serving_endpoints.*.config.served_entities[*].entity_name 2948 +resources.model_serving_endpoints.*.config.served_entities[*].entity_version 2949 +resources.model_serving_endpoints.*.config.served_entities[*].environment_vars 2950 +resources.model_serving_endpoints.*.config.served_entities[*].environment_vars.* 2951 +resources.model_serving_endpoints.*.config.served_entities[*].external_model 2952 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.ai21labs_config 2953 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.ai21labs_config.ai21labs_api_key 2954 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.ai21labs_config.ai21labs_api_key_plaintext 2955 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config 2956 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_access_key_id 2957 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_access_key_id_plaintext 2958 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_region 2959 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_secret_access_key 2960 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_secret_access_key_plaintext 2961 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.bedrock_provider 2962 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.instance_profile_arn 2963 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.uc_service_credential_name 2964 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.anthropic_config 2965 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.anthropic_config.anthropic_api_key 2966 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.anthropic_config.anthropic_api_key_plaintext 2967 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.cohere_config 2968 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.cohere_config.cohere_api_base 2969 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.cohere_config.cohere_api_key 2970 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.cohere_config.cohere_api_key_plaintext 2971 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config 2972 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.api_key_auth 2973 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.api_key_auth.key 2974 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.api_key_auth.value 2975 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.api_key_auth.value_plaintext 2976 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.bearer_token_auth 2977 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.bearer_token_auth.token 2978 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.bearer_token_auth.token_plaintext 2979 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.custom_provider_url 2980 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.databricks_model_serving_config 2981 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.databricks_model_serving_config.databricks_api_token 2982 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.databricks_model_serving_config.databricks_api_token_plaintext 2983 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.databricks_model_serving_config.databricks_workspace_url 2984 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config 2985 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config.private_key 2986 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config.private_key_plaintext 2987 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config.project_id 2988 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config.region 2989 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.name 2990 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config 2991 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.microsoft_entra_client_id 2992 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.microsoft_entra_client_secret 2993 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.microsoft_entra_client_secret_plaintext 2994 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.microsoft_entra_tenant_id 2995 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_base 2996 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_key 2997 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_key_plaintext 2998 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_type 2999 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_version 3000 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_deployment_name 3001 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_organization 3002 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.palm_config 3003 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.palm_config.palm_api_key 3004 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.palm_config.palm_api_key_plaintext 3005 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.provider 3006 +resources.model_serving_endpoints.*.config.served_entities[*].external_model.task 3007 +resources.model_serving_endpoints.*.config.served_entities[*].instance_profile_arn 3008 +resources.model_serving_endpoints.*.config.served_entities[*].max_provisioned_concurrency 3009 +resources.model_serving_endpoints.*.config.served_entities[*].max_provisioned_throughput 3010 +resources.model_serving_endpoints.*.config.served_entities[*].min_provisioned_concurrency 3011 +resources.model_serving_endpoints.*.config.served_entities[*].min_provisioned_throughput 3012 +resources.model_serving_endpoints.*.config.served_entities[*].name 3013 +resources.model_serving_endpoints.*.config.served_entities[*].provisioned_model_units 3014 +resources.model_serving_endpoints.*.config.served_entities[*].scale_to_zero_enabled 3015 +resources.model_serving_endpoints.*.config.served_entities[*].scale_to_zero_enabled=true 3016 +resources.model_serving_endpoints.*.config.served_entities[*].scale_to_zero_enabled=false 3017 +resources.model_serving_endpoints.*.config.served_entities[*].workload_size 3018 +resources.model_serving_endpoints.*.config.served_entities[*].workload_type 3019 +resources.model_serving_endpoints.*.config.served_models 3020 +resources.model_serving_endpoints.*.config.served_models[*] 3021 +resources.model_serving_endpoints.*.config.served_models[*].burst_scaling_enabled 3022 +resources.model_serving_endpoints.*.config.served_models[*].burst_scaling_enabled=true 3023 +resources.model_serving_endpoints.*.config.served_models[*].burst_scaling_enabled=false 3024 +resources.model_serving_endpoints.*.config.served_models[*].environment_vars 3025 +resources.model_serving_endpoints.*.config.served_models[*].environment_vars.* 3026 +resources.model_serving_endpoints.*.config.served_models[*].instance_profile_arn 3027 +resources.model_serving_endpoints.*.config.served_models[*].max_provisioned_concurrency 3028 +resources.model_serving_endpoints.*.config.served_models[*].max_provisioned_throughput 3029 +resources.model_serving_endpoints.*.config.served_models[*].min_provisioned_concurrency 3030 +resources.model_serving_endpoints.*.config.served_models[*].min_provisioned_throughput 3031 +resources.model_serving_endpoints.*.config.served_models[*].model_name 3032 +resources.model_serving_endpoints.*.config.served_models[*].model_version 3033 +resources.model_serving_endpoints.*.config.served_models[*].name 3034 +resources.model_serving_endpoints.*.config.served_models[*].provisioned_model_units 3035 +resources.model_serving_endpoints.*.config.served_models[*].scale_to_zero_enabled 3036 +resources.model_serving_endpoints.*.config.served_models[*].scale_to_zero_enabled=true 3037 +resources.model_serving_endpoints.*.config.served_models[*].scale_to_zero_enabled=false 3038 +resources.model_serving_endpoints.*.config.served_models[*].workload_size 3039 +resources.model_serving_endpoints.*.config.served_models[*].workload_type 3040 +resources.model_serving_endpoints.*.config.traffic_config 3041 +resources.model_serving_endpoints.*.config.traffic_config.routes 3042 +resources.model_serving_endpoints.*.config.traffic_config.routes[*] 3043 +resources.model_serving_endpoints.*.config.traffic_config.routes[*].served_entity_name 3044 +resources.model_serving_endpoints.*.config.traffic_config.routes[*].served_model_name 3045 +resources.model_serving_endpoints.*.config.traffic_config.routes[*].traffic_percentage 3046 +resources.model_serving_endpoints.*.description 3047 +resources.model_serving_endpoints.*.email_notifications 3048 +resources.model_serving_endpoints.*.email_notifications.on_update_failure 3049 +resources.model_serving_endpoints.*.email_notifications.on_update_failure[*] 3050 +resources.model_serving_endpoints.*.email_notifications.on_update_success 3051 +resources.model_serving_endpoints.*.email_notifications.on_update_success[*] 3052 +resources.model_serving_endpoints.*.name 3053 +resources.model_serving_endpoints.*.rate_limits 3054 +resources.model_serving_endpoints.*.rate_limits[*] 3055 +resources.model_serving_endpoints.*.rate_limits[*].calls 3056 +resources.model_serving_endpoints.*.rate_limits[*].key 3057 +resources.model_serving_endpoints.*.rate_limits[*].renewal_period 3058 +resources.model_serving_endpoints.*.route_optimized 3059 +resources.model_serving_endpoints.*.route_optimized=true 3060 +resources.model_serving_endpoints.*.route_optimized=false 3061 +resources.model_serving_endpoints.*.tags 3062 +resources.model_serving_endpoints.*.tags[*] 3063 +resources.model_serving_endpoints.*.tags[*].key 3064 +resources.model_serving_endpoints.*.tags[*].value 3065 +resources.model_serving_endpoints.*.telemetry_config 3066 +resources.model_serving_endpoints.*.telemetry_config.enabled_telemetry_features 3067 +resources.model_serving_endpoints.*.telemetry_config.enabled_telemetry_features[*] 3068 +resources.model_serving_endpoints.*.telemetry_config.inference_table_config 3069 +resources.model_serving_endpoints.*.telemetry_config.inference_table_config.name 3070 +resources.model_serving_endpoints.*.telemetry_config.inference_table_config.sampling_fraction 3071 +resources.model_serving_endpoints.*.telemetry_config.table_names 3072 +resources.model_serving_endpoints.*.telemetry_config.table_names.annotations_table 3073 +resources.model_serving_endpoints.*.telemetry_config.table_names.logs_table 3074 +resources.model_serving_endpoints.*.telemetry_config.table_names.metrics_table 3075 +resources.model_serving_endpoints.*.telemetry_config.table_names.traces_table 3076 +resources.model_serving_endpoints.*.telemetry_config.telemetry_profile_id 3077 +resources.model_serving_endpoints.*.permissions 3078 +resources.model_serving_endpoints.*.permissions[*] 3079 +resources.model_serving_endpoints.*.permissions[*].level 3080 +resources.model_serving_endpoints.*.permissions[*].user_name 3081 +resources.model_serving_endpoints.*.permissions[*].service_principal_name 3082 +resources.model_serving_endpoints.*.permissions[*].group_name 3083 diff --git a/acceptance/bundle/bitmap/full/output/models.txt b/acceptance/bundle/bitmap/full/output/models.txt new file mode 100644 index 00000000000..ae3be643bb4 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/models.txt @@ -0,0 +1,24 @@ +resources.models 2824 +resources.models.* 2825 +resources.models.*.url 2826 +resources.models.*.modified_status 2827 +resources.models.*.lifecycle 2828 +resources.models.*.lifecycle.prevent_destroy 2829 +resources.models.*.lifecycle.prevent_destroy=true 2830 +resources.models.*.lifecycle.prevent_destroy=false 2831 +resources.models.*.lifecycle.depends_on 2832 +resources.models.*.lifecycle.depends_on[*] 2833 +resources.models.*.lifecycle.depends_on[*].resource 2834 +resources.models.*.id 2835 +resources.models.*.description 2836 +resources.models.*.name 2837 +resources.models.*.tags 2838 +resources.models.*.tags[*] 2839 +resources.models.*.tags[*].key 2840 +resources.models.*.tags[*].value 2841 +resources.models.*.permissions 2842 +resources.models.*.permissions[*] 2843 +resources.models.*.permissions[*].level 2844 +resources.models.*.permissions[*].user_name 2845 +resources.models.*.permissions[*].service_principal_name 2846 +resources.models.*.permissions[*].group_name 2847 diff --git a/acceptance/bundle/bitmap/full/output/pipelines.txt b/acceptance/bundle/bitmap/full/output/pipelines.txt new file mode 100644 index 00000000000..133b2855f65 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/pipelines.txt @@ -0,0 +1,986 @@ +resources.pipelines 1584 +resources.pipelines.* 1585 +resources.pipelines.*.url 1586 +resources.pipelines.*.modified_status 1587 +resources.pipelines.*.lifecycle 1588 +resources.pipelines.*.lifecycle.prevent_destroy 1589 +resources.pipelines.*.lifecycle.prevent_destroy=true 1590 +resources.pipelines.*.lifecycle.prevent_destroy=false 1591 +resources.pipelines.*.lifecycle.depends_on 1592 +resources.pipelines.*.lifecycle.depends_on[*] 1593 +resources.pipelines.*.lifecycle.depends_on[*].resource 1594 +resources.pipelines.*.allow_duplicate_names 1595 +resources.pipelines.*.allow_duplicate_names=true 1596 +resources.pipelines.*.allow_duplicate_names=false 1597 +resources.pipelines.*.budget_policy_id 1598 +resources.pipelines.*.catalog 1599 +resources.pipelines.*.channel 1600 +resources.pipelines.*.clusters 1601 +resources.pipelines.*.clusters[*] 1602 +resources.pipelines.*.clusters[*].apply_policy_default_values 1603 +resources.pipelines.*.clusters[*].apply_policy_default_values=true 1604 +resources.pipelines.*.clusters[*].apply_policy_default_values=false 1605 +resources.pipelines.*.clusters[*].autoscale 1606 +resources.pipelines.*.clusters[*].autoscale.max_workers 1607 +resources.pipelines.*.clusters[*].autoscale.min_workers 1608 +resources.pipelines.*.clusters[*].autoscale.mode 1609 +resources.pipelines.*.clusters[*].aws_attributes 1610 +resources.pipelines.*.clusters[*].aws_attributes.availability 1611 +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_count 1612 +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_iops 1613 +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_size 1614 +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_throughput 1615 +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_type 1616 +resources.pipelines.*.clusters[*].aws_attributes.first_on_demand 1617 +resources.pipelines.*.clusters[*].aws_attributes.instance_profile_arn 1618 +resources.pipelines.*.clusters[*].aws_attributes.spot_bid_price_percent 1619 +resources.pipelines.*.clusters[*].aws_attributes.zone_id 1620 +resources.pipelines.*.clusters[*].azure_attributes 1621 +resources.pipelines.*.clusters[*].azure_attributes.availability 1622 +resources.pipelines.*.clusters[*].azure_attributes.capacity_reservation_group 1623 +resources.pipelines.*.clusters[*].azure_attributes.first_on_demand 1624 +resources.pipelines.*.clusters[*].azure_attributes.log_analytics_info 1625 +resources.pipelines.*.clusters[*].azure_attributes.log_analytics_info.log_analytics_primary_key 1626 +resources.pipelines.*.clusters[*].azure_attributes.log_analytics_info.log_analytics_workspace_id 1627 +resources.pipelines.*.clusters[*].azure_attributes.spot_bid_max_price 1628 +resources.pipelines.*.clusters[*].cluster_log_conf 1629 +resources.pipelines.*.clusters[*].cluster_log_conf.dbfs 1630 +resources.pipelines.*.clusters[*].cluster_log_conf.dbfs.destination 1631 +resources.pipelines.*.clusters[*].cluster_log_conf.s3 1632 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.canned_acl 1633 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.destination 1634 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.enable_encryption 1635 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.enable_encryption=true 1636 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.enable_encryption=false 1637 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.encryption_type 1638 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.endpoint 1639 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.kms_key 1640 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.region 1641 +resources.pipelines.*.clusters[*].cluster_log_conf.volumes 1642 +resources.pipelines.*.clusters[*].cluster_log_conf.volumes.destination 1643 +resources.pipelines.*.clusters[*].custom_tags 1644 +resources.pipelines.*.clusters[*].custom_tags.* 1645 +resources.pipelines.*.clusters[*].driver_instance_pool_id 1646 +resources.pipelines.*.clusters[*].driver_node_type_id 1647 +resources.pipelines.*.clusters[*].enable_local_disk_encryption 1648 +resources.pipelines.*.clusters[*].enable_local_disk_encryption=true 1649 +resources.pipelines.*.clusters[*].enable_local_disk_encryption=false 1650 +resources.pipelines.*.clusters[*].gcp_attributes 1651 +resources.pipelines.*.clusters[*].gcp_attributes.availability 1652 +resources.pipelines.*.clusters[*].gcp_attributes.boot_disk_size 1653 +resources.pipelines.*.clusters[*].gcp_attributes.confidential_compute_type 1654 +resources.pipelines.*.clusters[*].gcp_attributes.first_on_demand 1655 +resources.pipelines.*.clusters[*].gcp_attributes.google_service_account 1656 +resources.pipelines.*.clusters[*].gcp_attributes.local_ssd_count 1657 +resources.pipelines.*.clusters[*].gcp_attributes.use_preemptible_executors 1658 +resources.pipelines.*.clusters[*].gcp_attributes.use_preemptible_executors=true 1659 +resources.pipelines.*.clusters[*].gcp_attributes.use_preemptible_executors=false 1660 +resources.pipelines.*.clusters[*].gcp_attributes.zone_id 1661 +resources.pipelines.*.clusters[*].init_scripts 1662 +resources.pipelines.*.clusters[*].init_scripts[*] 1663 +resources.pipelines.*.clusters[*].init_scripts[*].abfss 1664 +resources.pipelines.*.clusters[*].init_scripts[*].abfss.destination 1665 +resources.pipelines.*.clusters[*].init_scripts[*].dbfs 1666 +resources.pipelines.*.clusters[*].init_scripts[*].dbfs.destination 1667 +resources.pipelines.*.clusters[*].init_scripts[*].file 1668 +resources.pipelines.*.clusters[*].init_scripts[*].file.destination 1669 +resources.pipelines.*.clusters[*].init_scripts[*].gcs 1670 +resources.pipelines.*.clusters[*].init_scripts[*].gcs.destination 1671 +resources.pipelines.*.clusters[*].init_scripts[*].s3 1672 +resources.pipelines.*.clusters[*].init_scripts[*].s3.canned_acl 1673 +resources.pipelines.*.clusters[*].init_scripts[*].s3.destination 1674 +resources.pipelines.*.clusters[*].init_scripts[*].s3.enable_encryption 1675 +resources.pipelines.*.clusters[*].init_scripts[*].s3.enable_encryption=true 1676 +resources.pipelines.*.clusters[*].init_scripts[*].s3.enable_encryption=false 1677 +resources.pipelines.*.clusters[*].init_scripts[*].s3.encryption_type 1678 +resources.pipelines.*.clusters[*].init_scripts[*].s3.endpoint 1679 +resources.pipelines.*.clusters[*].init_scripts[*].s3.kms_key 1680 +resources.pipelines.*.clusters[*].init_scripts[*].s3.region 1681 +resources.pipelines.*.clusters[*].init_scripts[*].volumes 1682 +resources.pipelines.*.clusters[*].init_scripts[*].volumes.destination 1683 +resources.pipelines.*.clusters[*].init_scripts[*].workspace 1684 +resources.pipelines.*.clusters[*].init_scripts[*].workspace.destination 1685 +resources.pipelines.*.clusters[*].instance_pool_id 1686 +resources.pipelines.*.clusters[*].label 1687 +resources.pipelines.*.clusters[*].node_type_id 1688 +resources.pipelines.*.clusters[*].num_workers 1689 +resources.pipelines.*.clusters[*].policy_id 1690 +resources.pipelines.*.clusters[*].spark_conf 1691 +resources.pipelines.*.clusters[*].spark_conf.* 1692 +resources.pipelines.*.clusters[*].spark_env_vars 1693 +resources.pipelines.*.clusters[*].spark_env_vars.* 1694 +resources.pipelines.*.clusters[*].ssh_public_keys 1695 +resources.pipelines.*.clusters[*].ssh_public_keys[*] 1696 +resources.pipelines.*.configuration 1697 +resources.pipelines.*.configuration.* 1698 +resources.pipelines.*.continuous 1699 +resources.pipelines.*.continuous=true 1700 +resources.pipelines.*.continuous=false 1701 +resources.pipelines.*.deployment 1702 +resources.pipelines.*.deployment.deployment_id 1703 +resources.pipelines.*.deployment.kind 1704 +resources.pipelines.*.deployment.metadata_file_path 1705 +resources.pipelines.*.deployment.version_id 1706 +resources.pipelines.*.development 1707 +resources.pipelines.*.development=true 1708 +resources.pipelines.*.development=false 1709 +resources.pipelines.*.dry_run 1710 +resources.pipelines.*.dry_run=true 1711 +resources.pipelines.*.dry_run=false 1712 +resources.pipelines.*.edition 1713 +resources.pipelines.*.environment 1714 +resources.pipelines.*.environment.dependencies 1715 +resources.pipelines.*.environment.dependencies[*] 1716 +resources.pipelines.*.environment.environment_version 1717 +resources.pipelines.*.event_log 1718 +resources.pipelines.*.event_log.catalog 1719 +resources.pipelines.*.event_log.name 1720 +resources.pipelines.*.event_log.schema 1721 +resources.pipelines.*.filters 1722 +resources.pipelines.*.filters.exclude 1723 +resources.pipelines.*.filters.exclude[*] 1724 +resources.pipelines.*.filters.include 1725 +resources.pipelines.*.filters.include[*] 1726 +resources.pipelines.*.gateway_definition 1727 +resources.pipelines.*.gateway_definition.connection_id 1728 +resources.pipelines.*.gateway_definition.connection_name 1729 +resources.pipelines.*.gateway_definition.connection_parameters 1730 +resources.pipelines.*.gateway_definition.connection_parameters.source_catalog 1731 +resources.pipelines.*.gateway_definition.gateway_storage_catalog 1732 +resources.pipelines.*.gateway_definition.gateway_storage_name 1733 +resources.pipelines.*.gateway_definition.gateway_storage_schema 1734 +resources.pipelines.*.id 1735 +resources.pipelines.*.ingestion_definition 1736 +resources.pipelines.*.ingestion_definition.connection_name 1737 +resources.pipelines.*.ingestion_definition.connector_type 1738 +resources.pipelines.*.ingestion_definition.data_staging_options 1739 +resources.pipelines.*.ingestion_definition.data_staging_options.catalog_name 1740 +resources.pipelines.*.ingestion_definition.data_staging_options.schema_name 1741 +resources.pipelines.*.ingestion_definition.data_staging_options.volume_name 1742 +resources.pipelines.*.ingestion_definition.full_refresh_window 1743 +resources.pipelines.*.ingestion_definition.full_refresh_window.days_of_week 1744 +resources.pipelines.*.ingestion_definition.full_refresh_window.days_of_week[*] 1745 +resources.pipelines.*.ingestion_definition.full_refresh_window.start_hour 1746 +resources.pipelines.*.ingestion_definition.full_refresh_window.time_zone_id 1747 +resources.pipelines.*.ingestion_definition.ingest_from_uc_foreign_catalog 1748 +resources.pipelines.*.ingestion_definition.ingest_from_uc_foreign_catalog=true 1749 +resources.pipelines.*.ingestion_definition.ingest_from_uc_foreign_catalog=false 1750 +resources.pipelines.*.ingestion_definition.ingestion_gateway_id 1751 +resources.pipelines.*.ingestion_definition.netsuite_jar_path 1752 +resources.pipelines.*.ingestion_definition.objects 1753 +resources.pipelines.*.ingestion_definition.objects[*] 1754 +resources.pipelines.*.ingestion_definition.objects[*].report 1755 +resources.pipelines.*.ingestion_definition.objects[*].report.destination_catalog 1756 +resources.pipelines.*.ingestion_definition.objects[*].report.destination_schema 1757 +resources.pipelines.*.ingestion_definition.objects[*].report.destination_table 1758 +resources.pipelines.*.ingestion_definition.objects[*].report.source_url 1759 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration 1760 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy 1761 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.enabled 1762 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.enabled=true 1763 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.enabled=false 1764 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.min_interval_hours 1765 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.clustering_columns 1766 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.clustering_columns[*] 1767 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.enable_auto_clustering 1768 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.enable_auto_clustering=true 1769 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.enable_auto_clustering=false 1770 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.exclude_columns 1771 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.exclude_columns[*] 1772 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.include_columns 1773 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.include_columns[*] 1774 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.primary_keys 1775 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.primary_keys[*] 1776 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config 1777 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config.cursor_columns 1778 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config.cursor_columns[*] 1779 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config.deletion_condition 1780 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config.hard_deletion_sync_min_interval_in_seconds 1781 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.row_filter 1782 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.salesforce_include_formula_fields 1783 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.salesforce_include_formula_fields=true 1784 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.salesforce_include_formula_fields=false 1785 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.scd_type 1786 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.sequence_by 1787 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.sequence_by[*] 1788 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.source_metadata_column 1789 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.table_properties 1790 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.table_properties.* 1791 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters 1792 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.incremental 1793 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.incremental=true 1794 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.incremental=false 1795 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.parameters 1796 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.parameters.* 1797 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.report_parameters 1798 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.report_parameters[*] 1799 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.report_parameters[*].key 1800 +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.report_parameters[*].value 1801 +resources.pipelines.*.ingestion_definition.objects[*].schema 1802 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options 1803 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.api_source_connector_options 1804 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.api_source_connector_options.options 1805 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.api_source_connector_options.options.* 1806 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.confluence_options 1807 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.confluence_options.include_confluence_spaces 1808 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.confluence_options.include_confluence_spaces[*] 1809 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options 1810 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.entity_type 1811 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options 1812 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.corrupt_record_column 1813 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters 1814 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters[*] 1815 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters[*].modified_after 1816 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters[*].modified_before 1817 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters[*].path_filter 1818 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.format 1819 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.format_options 1820 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.format_options.* 1821 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files 1822 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files=true 1823 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files=false 1824 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.infer_column_types 1825 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.infer_column_types=true 1826 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.infer_column_types=false 1827 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive 1828 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive=true 1829 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive=false 1830 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.rescued_data_column 1831 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.schema_evolution_mode 1832 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.schema_hints 1833 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.single_variant_column 1834 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.url 1835 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options 1836 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options 1837 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.metrics 1838 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.metrics[*] 1839 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.resource 1840 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.resource_fields 1841 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.resource_fields[*] 1842 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.segments 1843 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.segments[*] 1844 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.lookback_window_days 1845 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.manager_account_id 1846 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.sync_start_date 1847 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.jira_options 1848 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.jira_options.include_jira_spaces 1849 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.jira_options.include_jira_spaces[*] 1850 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options 1851 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.client_config 1852 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.client_config.* 1853 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer 1854 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options 1855 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.parse_mode 1856 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema 1857 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_file_path 1858 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry 1859 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry.confluent_options 1860 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry.confluent_options.subject 1861 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry.connection_name 1862 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry.protobuf_message_name 1863 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.format 1864 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.input_column 1865 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options 1866 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.as_variant 1867 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.as_variant=true 1868 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.as_variant=false 1869 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.schema 1870 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.schema_evolution_mode 1871 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.schema_file_path 1872 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.schema_hints 1873 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.output_column 1874 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options 1875 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.desc_file_path 1876 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.message_name 1877 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.parse_mode 1878 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.recursive_fields_max_depth 1879 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry 1880 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.confluent_options 1881 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.confluent_options.subject 1882 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.connection_name 1883 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.protobuf_message_name 1884 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.max_offsets_per_trigger 1885 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.starting_offset 1886 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.topic_pattern 1887 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.topics 1888 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.topics[*] 1889 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer 1890 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options 1891 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.parse_mode 1892 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema 1893 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_file_path 1894 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry 1895 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry.confluent_options 1896 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry.confluent_options.subject 1897 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry.connection_name 1898 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry.protobuf_message_name 1899 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.format 1900 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.input_column 1901 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options 1902 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.as_variant 1903 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.as_variant=true 1904 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.as_variant=false 1905 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.schema 1906 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.schema_evolution_mode 1907 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.schema_file_path 1908 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.schema_hints 1909 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.output_column 1910 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options 1911 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.desc_file_path 1912 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.message_name 1913 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.parse_mode 1914 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.recursive_fields_max_depth 1915 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry 1916 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.confluent_options 1917 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.confluent_options.subject 1918 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.connection_name 1919 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.protobuf_message_name 1920 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options 1921 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options 1922 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.entity_granularity 1923 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.entity_granularity[*] 1924 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.finder 1925 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.metrics 1926 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.metrics[*] 1927 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.time_granularity 1928 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.lookback_window_days 1929 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.sync_start_date 1930 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.marketo_options 1931 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.marketo_options.sync_start_date 1932 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options 1933 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_attribution_windows 1934 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_attribution_windows[*] 1935 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_breakdowns 1936 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_breakdowns[*] 1937 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_report_time 1938 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.breakdowns 1939 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.breakdowns[*] 1940 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_insights_lookback_window 1941 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options 1942 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_attribution_windows 1943 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_attribution_windows[*] 1944 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_breakdowns 1945 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_breakdowns[*] 1946 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_report_time 1947 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.breakdowns 1948 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.breakdowns[*] 1949 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.level 1950 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.time_increment 1951 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.level 1952 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.start_date 1953 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.time_increment 1954 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options 1955 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.entity_type 1956 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options 1957 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.corrupt_record_column 1958 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters 1959 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*] 1960 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_after 1961 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_before 1962 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*].path_filter 1963 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format 1964 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format_options 1965 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format_options.* 1966 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files 1967 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files=true 1968 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files=false 1969 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.infer_column_types 1970 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.infer_column_types=true 1971 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.infer_column_types=false 1972 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive 1973 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive=true 1974 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive=false 1975 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.rescued_data_column 1976 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.schema_evolution_mode 1977 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.schema_hints 1978 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.single_variant_column 1979 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.url 1980 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options 1981 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.attachment_mode 1982 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.body_format 1983 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.folder_filter 1984 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.folder_filter[*] 1985 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_folders 1986 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_folders[*] 1987 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_mailboxes 1988 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_mailboxes[*] 1989 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_senders 1990 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_senders[*] 1991 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_subjects 1992 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_subjects[*] 1993 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.sender_filter 1994 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.sender_filter[*] 1995 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.start_date 1996 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.subject_filter 1997 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.subject_filter[*] 1998 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.rabbitmq_options 1999 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.rabbitmq_options.queue 2000 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options 2001 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options 2002 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options.breakdowns 2003 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options.breakdowns[*] 2004 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options.fields 2005 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options.fields[*] 2006 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.lookback_window_days 2007 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.sync_start_date 2008 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options 2009 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.entity_type 2010 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options 2011 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.corrupt_record_column 2012 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters 2013 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters[*] 2014 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].modified_after 2015 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].modified_before 2016 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].path_filter 2017 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.format 2018 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.format_options 2019 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.format_options.* 2020 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files 2021 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files=true 2022 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files=false 2023 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.infer_column_types 2024 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.infer_column_types=true 2025 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.infer_column_types=false 2026 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive 2027 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive=true 2028 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive=false 2029 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.rescued_data_column 2030 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.schema_evolution_mode 2031 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.schema_hints 2032 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.single_variant_column 2033 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.url 2034 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.smartsheet_options 2035 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.smartsheet_options.enforce_schema 2036 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.smartsheet_options.enforce_schema=true 2037 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.smartsheet_options.enforce_schema=false 2038 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options 2039 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options 2040 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.data_level 2041 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.dimensions 2042 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.dimensions[*] 2043 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.metrics 2044 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.metrics[*] 2045 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.query_lifetime 2046 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.query_lifetime=true 2047 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.query_lifetime=false 2048 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.report_type 2049 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.data_level 2050 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.dimensions 2051 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.dimensions[*] 2052 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.lookback_window_days 2053 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.metrics 2054 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.metrics[*] 2055 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.query_lifetime 2056 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.query_lifetime=true 2057 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.query_lifetime=false 2058 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.report_type 2059 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.sync_start_date 2060 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.zendesk_support_options 2061 +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.zendesk_support_options.start_date 2062 +resources.pipelines.*.ingestion_definition.objects[*].schema.destination_catalog 2063 +resources.pipelines.*.ingestion_definition.objects[*].schema.destination_schema 2064 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options 2065 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.fanout_by 2066 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms 2067 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*] 2068 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options 2069 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.parse_mode 2070 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema 2071 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_file_path 2072 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry 2073 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry.confluent_options 2074 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry.confluent_options.subject 2075 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry.connection_name 2076 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry.protobuf_message_name 2077 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].format 2078 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].input_column 2079 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options 2080 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.as_variant 2081 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.as_variant=true 2082 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.as_variant=false 2083 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.schema 2084 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.schema_evolution_mode 2085 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.schema_file_path 2086 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.schema_hints 2087 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].output_column 2088 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options 2089 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.desc_file_path 2090 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.message_name 2091 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.parse_mode 2092 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.recursive_fields_max_depth 2093 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry 2094 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry.confluent_options 2095 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry.confluent_options.subject 2096 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry.connection_name 2097 +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry.protobuf_message_name 2098 +resources.pipelines.*.ingestion_definition.objects[*].schema.source_catalog 2099 +resources.pipelines.*.ingestion_definition.objects[*].schema.source_schema 2100 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration 2101 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy 2102 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.enabled 2103 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.enabled=true 2104 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.enabled=false 2105 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.min_interval_hours 2106 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.clustering_columns 2107 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.clustering_columns[*] 2108 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.enable_auto_clustering 2109 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.enable_auto_clustering=true 2110 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.enable_auto_clustering=false 2111 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.exclude_columns 2112 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.exclude_columns[*] 2113 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.include_columns 2114 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.include_columns[*] 2115 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.primary_keys 2116 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.primary_keys[*] 2117 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config 2118 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config.cursor_columns 2119 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config.cursor_columns[*] 2120 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config.deletion_condition 2121 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config.hard_deletion_sync_min_interval_in_seconds 2122 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.row_filter 2123 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.salesforce_include_formula_fields 2124 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.salesforce_include_formula_fields=true 2125 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.salesforce_include_formula_fields=false 2126 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.scd_type 2127 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.sequence_by 2128 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.sequence_by[*] 2129 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.source_metadata_column 2130 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.table_properties 2131 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.table_properties.* 2132 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters 2133 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.incremental 2134 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.incremental=true 2135 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.incremental=false 2136 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.parameters 2137 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.parameters.* 2138 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.report_parameters 2139 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.report_parameters[*] 2140 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.report_parameters[*].key 2141 +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.report_parameters[*].value 2142 +resources.pipelines.*.ingestion_definition.objects[*].table 2143 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options 2144 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.api_source_connector_options 2145 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.api_source_connector_options.options 2146 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.api_source_connector_options.options.* 2147 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.confluence_options 2148 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.confluence_options.include_confluence_spaces 2149 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.confluence_options.include_confluence_spaces[*] 2150 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options 2151 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.entity_type 2152 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options 2153 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.corrupt_record_column 2154 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters 2155 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters[*] 2156 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters[*].modified_after 2157 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters[*].modified_before 2158 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters[*].path_filter 2159 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.format 2160 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.format_options 2161 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.format_options.* 2162 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files 2163 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files=true 2164 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files=false 2165 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.infer_column_types 2166 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.infer_column_types=true 2167 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.infer_column_types=false 2168 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive 2169 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive=true 2170 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive=false 2171 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.rescued_data_column 2172 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.schema_evolution_mode 2173 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.schema_hints 2174 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.single_variant_column 2175 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.url 2176 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options 2177 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options 2178 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.metrics 2179 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.metrics[*] 2180 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.resource 2181 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.resource_fields 2182 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.resource_fields[*] 2183 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.segments 2184 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.segments[*] 2185 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.lookback_window_days 2186 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.manager_account_id 2187 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.sync_start_date 2188 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.jira_options 2189 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.jira_options.include_jira_spaces 2190 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.jira_options.include_jira_spaces[*] 2191 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options 2192 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.client_config 2193 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.client_config.* 2194 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer 2195 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options 2196 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.parse_mode 2197 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema 2198 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_file_path 2199 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry 2200 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry.confluent_options 2201 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry.confluent_options.subject 2202 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry.connection_name 2203 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry.protobuf_message_name 2204 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.format 2205 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.input_column 2206 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options 2207 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.as_variant 2208 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.as_variant=true 2209 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.as_variant=false 2210 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.schema 2211 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.schema_evolution_mode 2212 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.schema_file_path 2213 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.schema_hints 2214 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.output_column 2215 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options 2216 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.desc_file_path 2217 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.message_name 2218 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.parse_mode 2219 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.recursive_fields_max_depth 2220 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry 2221 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.confluent_options 2222 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.confluent_options.subject 2223 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.connection_name 2224 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.protobuf_message_name 2225 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.max_offsets_per_trigger 2226 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.starting_offset 2227 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.topic_pattern 2228 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.topics 2229 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.topics[*] 2230 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer 2231 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options 2232 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.parse_mode 2233 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema 2234 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_file_path 2235 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry 2236 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry.confluent_options 2237 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry.confluent_options.subject 2238 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry.connection_name 2239 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry.protobuf_message_name 2240 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.format 2241 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.input_column 2242 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options 2243 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.as_variant 2244 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.as_variant=true 2245 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.as_variant=false 2246 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.schema 2247 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.schema_evolution_mode 2248 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.schema_file_path 2249 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.schema_hints 2250 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.output_column 2251 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options 2252 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.desc_file_path 2253 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.message_name 2254 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.parse_mode 2255 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.recursive_fields_max_depth 2256 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry 2257 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.confluent_options 2258 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.confluent_options.subject 2259 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.connection_name 2260 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.protobuf_message_name 2261 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options 2262 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options 2263 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.entity_granularity 2264 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.entity_granularity[*] 2265 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.finder 2266 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.metrics 2267 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.metrics[*] 2268 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.time_granularity 2269 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.lookback_window_days 2270 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.sync_start_date 2271 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.marketo_options 2272 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.marketo_options.sync_start_date 2273 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options 2274 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_attribution_windows 2275 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_attribution_windows[*] 2276 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_breakdowns 2277 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_breakdowns[*] 2278 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_report_time 2279 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.breakdowns 2280 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.breakdowns[*] 2281 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_insights_lookback_window 2282 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options 2283 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_attribution_windows 2284 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_attribution_windows[*] 2285 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_breakdowns 2286 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_breakdowns[*] 2287 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_report_time 2288 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.breakdowns 2289 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.breakdowns[*] 2290 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.level 2291 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.time_increment 2292 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.level 2293 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.start_date 2294 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.time_increment 2295 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options 2296 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.entity_type 2297 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options 2298 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.corrupt_record_column 2299 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters 2300 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*] 2301 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_after 2302 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_before 2303 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*].path_filter 2304 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format 2305 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format_options 2306 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format_options.* 2307 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files 2308 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files=true 2309 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files=false 2310 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.infer_column_types 2311 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.infer_column_types=true 2312 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.infer_column_types=false 2313 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive 2314 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive=true 2315 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive=false 2316 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.rescued_data_column 2317 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.schema_evolution_mode 2318 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.schema_hints 2319 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.single_variant_column 2320 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.url 2321 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options 2322 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.attachment_mode 2323 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.body_format 2324 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.folder_filter 2325 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.folder_filter[*] 2326 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_folders 2327 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_folders[*] 2328 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_mailboxes 2329 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_mailboxes[*] 2330 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_senders 2331 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_senders[*] 2332 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_subjects 2333 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_subjects[*] 2334 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.sender_filter 2335 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.sender_filter[*] 2336 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.start_date 2337 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.subject_filter 2338 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.subject_filter[*] 2339 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.rabbitmq_options 2340 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.rabbitmq_options.queue 2341 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options 2342 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options 2343 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options.breakdowns 2344 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options.breakdowns[*] 2345 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options.fields 2346 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options.fields[*] 2347 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.lookback_window_days 2348 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.sync_start_date 2349 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options 2350 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.entity_type 2351 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options 2352 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.corrupt_record_column 2353 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters 2354 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters[*] 2355 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].modified_after 2356 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].modified_before 2357 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].path_filter 2358 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.format 2359 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.format_options 2360 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.format_options.* 2361 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files 2362 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files=true 2363 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files=false 2364 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.infer_column_types 2365 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.infer_column_types=true 2366 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.infer_column_types=false 2367 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive 2368 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive=true 2369 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive=false 2370 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.rescued_data_column 2371 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.schema_evolution_mode 2372 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.schema_hints 2373 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.single_variant_column 2374 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.url 2375 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.smartsheet_options 2376 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.smartsheet_options.enforce_schema 2377 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.smartsheet_options.enforce_schema=true 2378 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.smartsheet_options.enforce_schema=false 2379 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options 2380 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options 2381 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.data_level 2382 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.dimensions 2383 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.dimensions[*] 2384 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.metrics 2385 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.metrics[*] 2386 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.query_lifetime 2387 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.query_lifetime=true 2388 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.query_lifetime=false 2389 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.report_type 2390 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.data_level 2391 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.dimensions 2392 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.dimensions[*] 2393 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.lookback_window_days 2394 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.metrics 2395 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.metrics[*] 2396 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.query_lifetime 2397 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.query_lifetime=true 2398 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.query_lifetime=false 2399 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.report_type 2400 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.sync_start_date 2401 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.zendesk_support_options 2402 +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.zendesk_support_options.start_date 2403 +resources.pipelines.*.ingestion_definition.objects[*].table.destination_catalog 2404 +resources.pipelines.*.ingestion_definition.objects[*].table.destination_schema 2405 +resources.pipelines.*.ingestion_definition.objects[*].table.destination_table 2406 +resources.pipelines.*.ingestion_definition.objects[*].table.source_catalog 2407 +resources.pipelines.*.ingestion_definition.objects[*].table.source_schema 2408 +resources.pipelines.*.ingestion_definition.objects[*].table.source_table 2409 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration 2410 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy 2411 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.enabled 2412 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.enabled=true 2413 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.enabled=false 2414 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.min_interval_hours 2415 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.clustering_columns 2416 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.clustering_columns[*] 2417 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.enable_auto_clustering 2418 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.enable_auto_clustering=true 2419 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.enable_auto_clustering=false 2420 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.exclude_columns 2421 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.exclude_columns[*] 2422 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.include_columns 2423 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.include_columns[*] 2424 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.primary_keys 2425 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.primary_keys[*] 2426 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config 2427 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config.cursor_columns 2428 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config.cursor_columns[*] 2429 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config.deletion_condition 2430 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config.hard_deletion_sync_min_interval_in_seconds 2431 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.row_filter 2432 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.salesforce_include_formula_fields 2433 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.salesforce_include_formula_fields=true 2434 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.salesforce_include_formula_fields=false 2435 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.scd_type 2436 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.sequence_by 2437 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.sequence_by[*] 2438 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.source_metadata_column 2439 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.table_properties 2440 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.table_properties.* 2441 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters 2442 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.incremental 2443 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.incremental=true 2444 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.incremental=false 2445 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.parameters 2446 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.parameters.* 2447 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.report_parameters 2448 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.report_parameters[*] 2449 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.report_parameters[*].key 2450 +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.report_parameters[*].value 2451 +resources.pipelines.*.ingestion_definition.source_configurations 2452 +resources.pipelines.*.ingestion_definition.source_configurations[*] 2453 +resources.pipelines.*.ingestion_definition.source_configurations[*].api_source_connector_config 2454 +resources.pipelines.*.ingestion_definition.source_configurations[*].api_source_connector_config.configs 2455 +resources.pipelines.*.ingestion_definition.source_configurations[*].api_source_connector_config.configs.* 2456 +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog 2457 +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.postgres 2458 +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.postgres.slot_config 2459 +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.postgres.slot_config.publication_name 2460 +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.postgres.slot_config.slot_name 2461 +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.source_catalog 2462 +resources.pipelines.*.ingestion_definition.source_configurations[*].google_ads_config 2463 +resources.pipelines.*.ingestion_definition.source_configurations[*].google_ads_config.manager_account_id 2464 +resources.pipelines.*.ingestion_definition.source_type 2465 +resources.pipelines.*.ingestion_definition.table_configuration 2466 +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy 2467 +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.enabled 2468 +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.enabled=true 2469 +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.enabled=false 2470 +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.min_interval_hours 2471 +resources.pipelines.*.ingestion_definition.table_configuration.clustering_columns 2472 +resources.pipelines.*.ingestion_definition.table_configuration.clustering_columns[*] 2473 +resources.pipelines.*.ingestion_definition.table_configuration.enable_auto_clustering 2474 +resources.pipelines.*.ingestion_definition.table_configuration.enable_auto_clustering=true 2475 +resources.pipelines.*.ingestion_definition.table_configuration.enable_auto_clustering=false 2476 +resources.pipelines.*.ingestion_definition.table_configuration.exclude_columns 2477 +resources.pipelines.*.ingestion_definition.table_configuration.exclude_columns[*] 2478 +resources.pipelines.*.ingestion_definition.table_configuration.include_columns 2479 +resources.pipelines.*.ingestion_definition.table_configuration.include_columns[*] 2480 +resources.pipelines.*.ingestion_definition.table_configuration.primary_keys 2481 +resources.pipelines.*.ingestion_definition.table_configuration.primary_keys[*] 2482 +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config 2483 +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config.cursor_columns 2484 +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config.cursor_columns[*] 2485 +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config.deletion_condition 2486 +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config.hard_deletion_sync_min_interval_in_seconds 2487 +resources.pipelines.*.ingestion_definition.table_configuration.row_filter 2488 +resources.pipelines.*.ingestion_definition.table_configuration.salesforce_include_formula_fields 2489 +resources.pipelines.*.ingestion_definition.table_configuration.salesforce_include_formula_fields=true 2490 +resources.pipelines.*.ingestion_definition.table_configuration.salesforce_include_formula_fields=false 2491 +resources.pipelines.*.ingestion_definition.table_configuration.scd_type 2492 +resources.pipelines.*.ingestion_definition.table_configuration.sequence_by 2493 +resources.pipelines.*.ingestion_definition.table_configuration.sequence_by[*] 2494 +resources.pipelines.*.ingestion_definition.table_configuration.source_metadata_column 2495 +resources.pipelines.*.ingestion_definition.table_configuration.table_properties 2496 +resources.pipelines.*.ingestion_definition.table_configuration.table_properties.* 2497 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters 2498 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.incremental 2499 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.incremental=true 2500 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.incremental=false 2501 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.parameters 2502 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.parameters.* 2503 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.report_parameters 2504 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.report_parameters[*] 2505 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.report_parameters[*].key 2506 +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.report_parameters[*].value 2507 +resources.pipelines.*.libraries 2508 +resources.pipelines.*.libraries[*] 2509 +resources.pipelines.*.libraries[*].file 2510 +resources.pipelines.*.libraries[*].file.path 2511 +resources.pipelines.*.libraries[*].glob 2512 +resources.pipelines.*.libraries[*].glob.include 2513 +resources.pipelines.*.libraries[*].jar 2514 +resources.pipelines.*.libraries[*].maven 2515 +resources.pipelines.*.libraries[*].maven.coordinates 2516 +resources.pipelines.*.libraries[*].maven.exclusions 2517 +resources.pipelines.*.libraries[*].maven.exclusions[*] 2518 +resources.pipelines.*.libraries[*].maven.repo 2519 +resources.pipelines.*.libraries[*].notebook 2520 +resources.pipelines.*.libraries[*].notebook.path 2521 +resources.pipelines.*.libraries[*].whl 2522 +resources.pipelines.*.name 2523 +resources.pipelines.*.notifications 2524 +resources.pipelines.*.notifications[*] 2525 +resources.pipelines.*.notifications[*].alerts 2526 +resources.pipelines.*.notifications[*].alerts[*] 2527 +resources.pipelines.*.notifications[*].email_recipients 2528 +resources.pipelines.*.notifications[*].email_recipients[*] 2529 +resources.pipelines.*.parameters 2530 +resources.pipelines.*.parameters.* 2531 +resources.pipelines.*.parent_path 2532 +resources.pipelines.*.photon 2533 +resources.pipelines.*.photon=true 2534 +resources.pipelines.*.photon=false 2535 +resources.pipelines.*.restart_window 2536 +resources.pipelines.*.restart_window.days_of_week 2537 +resources.pipelines.*.restart_window.days_of_week[*] 2538 +resources.pipelines.*.restart_window.start_hour 2539 +resources.pipelines.*.restart_window.time_zone_id 2540 +resources.pipelines.*.root_path 2541 +resources.pipelines.*.run_as 2542 +resources.pipelines.*.run_as.group_name 2543 +resources.pipelines.*.run_as.service_principal_name 2544 +resources.pipelines.*.run_as.user_name 2545 +resources.pipelines.*.schema 2546 +resources.pipelines.*.serverless 2547 +resources.pipelines.*.serverless=true 2548 +resources.pipelines.*.serverless=false 2549 +resources.pipelines.*.serverless_compute_id 2550 +resources.pipelines.*.storage 2551 +resources.pipelines.*.tags 2552 +resources.pipelines.*.tags.* 2553 +resources.pipelines.*.target 2554 +resources.pipelines.*.trigger 2555 +resources.pipelines.*.trigger.cron 2556 +resources.pipelines.*.trigger.cron.quartz_cron_schedule 2557 +resources.pipelines.*.trigger.cron.timezone_id 2558 +resources.pipelines.*.trigger.manual 2559 +resources.pipelines.*.usage_policy_id 2560 +resources.pipelines.*.permissions 2561 +resources.pipelines.*.permissions[*] 2562 +resources.pipelines.*.permissions[*].level 2563 +resources.pipelines.*.permissions[*].user_name 2564 +resources.pipelines.*.permissions[*].service_principal_name 2565 +resources.pipelines.*.permissions[*].group_name 2566 +resources.pipelines.*.cascade_on_destroy 2567 +resources.pipelines.*.cascade_on_destroy=true 2568 +resources.pipelines.*.cascade_on_destroy=false 2569 diff --git a/acceptance/bundle/bitmap/full/output/postgres_branches.txt b/acceptance/bundle/bitmap/full/output/postgres_branches.txt new file mode 100644 index 00000000000..0281ce70acf --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/postgres_branches.txt @@ -0,0 +1,32 @@ +resources.postgres_branches 4510 +resources.postgres_branches.* 4511 +resources.postgres_branches.*.url 4512 +resources.postgres_branches.*.modified_status 4513 +resources.postgres_branches.*.lifecycle 4514 +resources.postgres_branches.*.lifecycle.prevent_destroy 4515 +resources.postgres_branches.*.lifecycle.prevent_destroy=true 4516 +resources.postgres_branches.*.lifecycle.prevent_destroy=false 4517 +resources.postgres_branches.*.lifecycle.depends_on 4518 +resources.postgres_branches.*.lifecycle.depends_on[*] 4519 +resources.postgres_branches.*.lifecycle.depends_on[*].resource 4520 +resources.postgres_branches.*.id 4521 +resources.postgres_branches.*.expire_time 4522 +resources.postgres_branches.*.is_protected 4523 +resources.postgres_branches.*.is_protected=true 4524 +resources.postgres_branches.*.is_protected=false 4525 +resources.postgres_branches.*.no_expiry 4526 +resources.postgres_branches.*.no_expiry=true 4527 +resources.postgres_branches.*.no_expiry=false 4528 +resources.postgres_branches.*.source_branch 4529 +resources.postgres_branches.*.source_branch_lsn 4530 +resources.postgres_branches.*.source_branch_time 4531 +resources.postgres_branches.*.source_snapshot 4532 +resources.postgres_branches.*.ttl 4533 +resources.postgres_branches.*.branch_id 4534 +resources.postgres_branches.*.parent 4535 +resources.postgres_branches.*.replace_existing 4536 +resources.postgres_branches.*.replace_existing=true 4537 +resources.postgres_branches.*.replace_existing=false 4538 +resources.postgres_branches.*.purge_on_delete 4539 +resources.postgres_branches.*.purge_on_delete=true 4540 +resources.postgres_branches.*.purge_on_delete=false 4541 diff --git a/acceptance/bundle/bitmap/full/output/postgres_catalogs.txt b/acceptance/bundle/bitmap/full/output/postgres_catalogs.txt new file mode 100644 index 00000000000..aff38d23d6e --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/postgres_catalogs.txt @@ -0,0 +1,18 @@ +resources.postgres_catalogs 4578 +resources.postgres_catalogs.* 4579 +resources.postgres_catalogs.*.url 4580 +resources.postgres_catalogs.*.modified_status 4581 +resources.postgres_catalogs.*.lifecycle 4582 +resources.postgres_catalogs.*.lifecycle.prevent_destroy 4583 +resources.postgres_catalogs.*.lifecycle.prevent_destroy=true 4584 +resources.postgres_catalogs.*.lifecycle.prevent_destroy=false 4585 +resources.postgres_catalogs.*.lifecycle.depends_on 4586 +resources.postgres_catalogs.*.lifecycle.depends_on[*] 4587 +resources.postgres_catalogs.*.lifecycle.depends_on[*].resource 4588 +resources.postgres_catalogs.*.id 4589 +resources.postgres_catalogs.*.branch 4590 +resources.postgres_catalogs.*.create_database_if_missing 4591 +resources.postgres_catalogs.*.create_database_if_missing=true 4592 +resources.postgres_catalogs.*.create_database_if_missing=false 4593 +resources.postgres_catalogs.*.postgres_database 4594 +resources.postgres_catalogs.*.catalog_id 4595 diff --git a/acceptance/bundle/bitmap/full/output/postgres_data_apis.txt b/acceptance/bundle/bitmap/full/output/postgres_data_apis.txt new file mode 100644 index 00000000000..860b26d29d1 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/postgres_data_apis.txt @@ -0,0 +1,29 @@ +resources.postgres_data_apis 4714 +resources.postgres_data_apis.* 4715 +resources.postgres_data_apis.*.url 4716 +resources.postgres_data_apis.*.modified_status 4717 +resources.postgres_data_apis.*.lifecycle 4718 +resources.postgres_data_apis.*.lifecycle.prevent_destroy 4719 +resources.postgres_data_apis.*.lifecycle.prevent_destroy=true 4720 +resources.postgres_data_apis.*.lifecycle.prevent_destroy=false 4721 +resources.postgres_data_apis.*.lifecycle.depends_on 4722 +resources.postgres_data_apis.*.lifecycle.depends_on[*] 4723 +resources.postgres_data_apis.*.lifecycle.depends_on[*].resource 4724 +resources.postgres_data_apis.*.id 4725 +resources.postgres_data_apis.*.db_aggregates_enabled 4726 +resources.postgres_data_apis.*.db_aggregates_enabled=true 4727 +resources.postgres_data_apis.*.db_aggregates_enabled=false 4728 +resources.postgres_data_apis.*.db_extra_search_path 4729 +resources.postgres_data_apis.*.db_extra_search_path[*] 4730 +resources.postgres_data_apis.*.db_max_rows 4731 +resources.postgres_data_apis.*.db_schemas 4732 +resources.postgres_data_apis.*.db_schemas[*] 4733 +resources.postgres_data_apis.*.jwt_cache_max_lifetime 4734 +resources.postgres_data_apis.*.jwt_role_claim_key 4735 +resources.postgres_data_apis.*.openapi_mode 4736 +resources.postgres_data_apis.*.server_cors_allowed_origins 4737 +resources.postgres_data_apis.*.server_cors_allowed_origins[*] 4738 +resources.postgres_data_apis.*.server_timing_enabled 4739 +resources.postgres_data_apis.*.server_timing_enabled=true 4740 +resources.postgres_data_apis.*.server_timing_enabled=false 4741 +resources.postgres_data_apis.*.parent 4742 diff --git a/acceptance/bundle/bitmap/full/output/postgres_databases.txt b/acceptance/bundle/bitmap/full/output/postgres_databases.txt new file mode 100644 index 00000000000..674ca50e666 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/postgres_databases.txt @@ -0,0 +1,19 @@ +resources.postgres_databases 4596 +resources.postgres_databases.* 4597 +resources.postgres_databases.*.url 4598 +resources.postgres_databases.*.modified_status 4599 +resources.postgres_databases.*.lifecycle 4600 +resources.postgres_databases.*.lifecycle.prevent_destroy 4601 +resources.postgres_databases.*.lifecycle.prevent_destroy=true 4602 +resources.postgres_databases.*.lifecycle.prevent_destroy=false 4603 +resources.postgres_databases.*.lifecycle.depends_on 4604 +resources.postgres_databases.*.lifecycle.depends_on[*] 4605 +resources.postgres_databases.*.lifecycle.depends_on[*].resource 4606 +resources.postgres_databases.*.id 4607 +resources.postgres_databases.*.postgres_database 4608 +resources.postgres_databases.*.role 4609 +resources.postgres_databases.*.database_id 4610 +resources.postgres_databases.*.parent 4611 +resources.postgres_databases.*.replace_existing 4612 +resources.postgres_databases.*.replace_existing=true 4613 +resources.postgres_databases.*.replace_existing=false 4614 diff --git a/acceptance/bundle/bitmap/full/output/postgres_endpoints.txt b/acceptance/bundle/bitmap/full/output/postgres_endpoints.txt new file mode 100644 index 00000000000..f34094e68be --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/postgres_endpoints.txt @@ -0,0 +1,36 @@ +resources.postgres_endpoints 4542 +resources.postgres_endpoints.* 4543 +resources.postgres_endpoints.*.url 4544 +resources.postgres_endpoints.*.modified_status 4545 +resources.postgres_endpoints.*.lifecycle 4546 +resources.postgres_endpoints.*.lifecycle.prevent_destroy 4547 +resources.postgres_endpoints.*.lifecycle.prevent_destroy=true 4548 +resources.postgres_endpoints.*.lifecycle.prevent_destroy=false 4549 +resources.postgres_endpoints.*.lifecycle.depends_on 4550 +resources.postgres_endpoints.*.lifecycle.depends_on[*] 4551 +resources.postgres_endpoints.*.lifecycle.depends_on[*].resource 4552 +resources.postgres_endpoints.*.id 4553 +resources.postgres_endpoints.*.autoscaling_limit_max_cu 4554 +resources.postgres_endpoints.*.autoscaling_limit_min_cu 4555 +resources.postgres_endpoints.*.disabled 4556 +resources.postgres_endpoints.*.disabled=true 4557 +resources.postgres_endpoints.*.disabled=false 4558 +resources.postgres_endpoints.*.endpoint_type 4559 +resources.postgres_endpoints.*.group 4560 +resources.postgres_endpoints.*.group.enable_readable_secondaries 4561 +resources.postgres_endpoints.*.group.enable_readable_secondaries=true 4562 +resources.postgres_endpoints.*.group.enable_readable_secondaries=false 4563 +resources.postgres_endpoints.*.group.max 4564 +resources.postgres_endpoints.*.group.min 4565 +resources.postgres_endpoints.*.no_suspension 4566 +resources.postgres_endpoints.*.no_suspension=true 4567 +resources.postgres_endpoints.*.no_suspension=false 4568 +resources.postgres_endpoints.*.settings 4569 +resources.postgres_endpoints.*.settings.pg_settings 4570 +resources.postgres_endpoints.*.settings.pg_settings.* 4571 +resources.postgres_endpoints.*.suspend_timeout_duration 4572 +resources.postgres_endpoints.*.endpoint_id 4573 +resources.postgres_endpoints.*.parent 4574 +resources.postgres_endpoints.*.replace_existing 4575 +resources.postgres_endpoints.*.replace_existing=true 4576 +resources.postgres_endpoints.*.replace_existing=false 4577 diff --git a/acceptance/bundle/bitmap/full/output/postgres_projects.txt b/acceptance/bundle/bitmap/full/output/postgres_projects.txt new file mode 100644 index 00000000000..95ed9135796 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/postgres_projects.txt @@ -0,0 +1,43 @@ +resources.postgres_projects 4467 +resources.postgres_projects.* 4468 +resources.postgres_projects.*.url 4469 +resources.postgres_projects.*.modified_status 4470 +resources.postgres_projects.*.lifecycle 4471 +resources.postgres_projects.*.lifecycle.prevent_destroy 4472 +resources.postgres_projects.*.lifecycle.prevent_destroy=true 4473 +resources.postgres_projects.*.lifecycle.prevent_destroy=false 4474 +resources.postgres_projects.*.lifecycle.depends_on 4475 +resources.postgres_projects.*.lifecycle.depends_on[*] 4476 +resources.postgres_projects.*.lifecycle.depends_on[*].resource 4477 +resources.postgres_projects.*.id 4478 +resources.postgres_projects.*.budget_policy_id 4479 +resources.postgres_projects.*.custom_tags 4480 +resources.postgres_projects.*.custom_tags[*] 4481 +resources.postgres_projects.*.custom_tags[*].key 4482 +resources.postgres_projects.*.custom_tags[*].value 4483 +resources.postgres_projects.*.default_branch 4484 +resources.postgres_projects.*.default_endpoint_settings 4485 +resources.postgres_projects.*.default_endpoint_settings.autoscaling_limit_max_cu 4486 +resources.postgres_projects.*.default_endpoint_settings.autoscaling_limit_min_cu 4487 +resources.postgres_projects.*.default_endpoint_settings.no_suspension 4488 +resources.postgres_projects.*.default_endpoint_settings.no_suspension=true 4489 +resources.postgres_projects.*.default_endpoint_settings.no_suspension=false 4490 +resources.postgres_projects.*.default_endpoint_settings.pg_settings 4491 +resources.postgres_projects.*.default_endpoint_settings.pg_settings.* 4492 +resources.postgres_projects.*.default_endpoint_settings.suspend_timeout_duration 4493 +resources.postgres_projects.*.display_name 4494 +resources.postgres_projects.*.enable_pg_native_login 4495 +resources.postgres_projects.*.enable_pg_native_login=true 4496 +resources.postgres_projects.*.enable_pg_native_login=false 4497 +resources.postgres_projects.*.history_retention_duration 4498 +resources.postgres_projects.*.pg_version 4499 +resources.postgres_projects.*.project_id 4500 +resources.postgres_projects.*.purge_on_delete 4501 +resources.postgres_projects.*.purge_on_delete=true 4502 +resources.postgres_projects.*.purge_on_delete=false 4503 +resources.postgres_projects.*.permissions 4504 +resources.postgres_projects.*.permissions[*] 4505 +resources.postgres_projects.*.permissions[*].level 4506 +resources.postgres_projects.*.permissions[*].user_name 4507 +resources.postgres_projects.*.permissions[*].service_principal_name 4508 +resources.postgres_projects.*.permissions[*].group_name 4509 diff --git a/acceptance/bundle/bitmap/full/output/postgres_roles.txt b/acceptance/bundle/bitmap/full/output/postgres_roles.txt new file mode 100644 index 00000000000..8681ecbdea2 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/postgres_roles.txt @@ -0,0 +1,32 @@ +resources.postgres_roles 4615 +resources.postgres_roles.* 4616 +resources.postgres_roles.*.url 4617 +resources.postgres_roles.*.modified_status 4618 +resources.postgres_roles.*.lifecycle 4619 +resources.postgres_roles.*.lifecycle.prevent_destroy 4620 +resources.postgres_roles.*.lifecycle.prevent_destroy=true 4621 +resources.postgres_roles.*.lifecycle.prevent_destroy=false 4622 +resources.postgres_roles.*.lifecycle.depends_on 4623 +resources.postgres_roles.*.lifecycle.depends_on[*] 4624 +resources.postgres_roles.*.lifecycle.depends_on[*].resource 4625 +resources.postgres_roles.*.id 4626 +resources.postgres_roles.*.attributes 4627 +resources.postgres_roles.*.attributes.bypassrls 4628 +resources.postgres_roles.*.attributes.bypassrls=true 4629 +resources.postgres_roles.*.attributes.bypassrls=false 4630 +resources.postgres_roles.*.attributes.createdb 4631 +resources.postgres_roles.*.attributes.createdb=true 4632 +resources.postgres_roles.*.attributes.createdb=false 4633 +resources.postgres_roles.*.attributes.createrole 4634 +resources.postgres_roles.*.attributes.createrole=true 4635 +resources.postgres_roles.*.attributes.createrole=false 4636 +resources.postgres_roles.*.auth_method 4637 +resources.postgres_roles.*.identity_type 4638 +resources.postgres_roles.*.membership_roles 4639 +resources.postgres_roles.*.membership_roles[*] 4640 +resources.postgres_roles.*.postgres_role 4641 +resources.postgres_roles.*.role_id 4642 +resources.postgres_roles.*.parent 4643 +resources.postgres_roles.*.replace_existing 4644 +resources.postgres_roles.*.replace_existing=true 4645 +resources.postgres_roles.*.replace_existing=false 4646 diff --git a/acceptance/bundle/bitmap/full/output/postgres_snapshot_schedules.txt b/acceptance/bundle/bitmap/full/output/postgres_snapshot_schedules.txt new file mode 100644 index 00000000000..37d5f1455c7 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/postgres_snapshot_schedules.txt @@ -0,0 +1,24 @@ +resources.postgres_snapshot_schedules 4690 +resources.postgres_snapshot_schedules.* 4691 +resources.postgres_snapshot_schedules.*.url 4692 +resources.postgres_snapshot_schedules.*.modified_status 4693 +resources.postgres_snapshot_schedules.*.lifecycle 4694 +resources.postgres_snapshot_schedules.*.lifecycle.prevent_destroy 4695 +resources.postgres_snapshot_schedules.*.lifecycle.prevent_destroy=true 4696 +resources.postgres_snapshot_schedules.*.lifecycle.prevent_destroy=false 4697 +resources.postgres_snapshot_schedules.*.lifecycle.depends_on 4698 +resources.postgres_snapshot_schedules.*.lifecycle.depends_on[*] 4699 +resources.postgres_snapshot_schedules.*.lifecycle.depends_on[*].resource 4700 +resources.postgres_snapshot_schedules.*.id 4701 +resources.postgres_snapshot_schedules.*.branch 4702 +resources.postgres_snapshot_schedules.*.schedule 4703 +resources.postgres_snapshot_schedules.*.schedule[*] 4704 +resources.postgres_snapshot_schedules.*.schedule[*].daily_schedule 4705 +resources.postgres_snapshot_schedules.*.schedule[*].daily_schedule.hour 4706 +resources.postgres_snapshot_schedules.*.schedule[*].monthly_schedule 4707 +resources.postgres_snapshot_schedules.*.schedule[*].monthly_schedule.day 4708 +resources.postgres_snapshot_schedules.*.schedule[*].monthly_schedule.hour 4709 +resources.postgres_snapshot_schedules.*.schedule[*].retention 4710 +resources.postgres_snapshot_schedules.*.schedule[*].weekly_schedule 4711 +resources.postgres_snapshot_schedules.*.schedule[*].weekly_schedule.day_of_week 4712 +resources.postgres_snapshot_schedules.*.schedule[*].weekly_schedule.hour 4713 diff --git a/acceptance/bundle/bitmap/full/output/postgres_synced_tables.txt b/acceptance/bundle/bitmap/full/output/postgres_synced_tables.txt new file mode 100644 index 00000000000..588d3813300 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/postgres_synced_tables.txt @@ -0,0 +1,43 @@ +resources.postgres_synced_tables 4647 +resources.postgres_synced_tables.* 4648 +resources.postgres_synced_tables.*.url 4649 +resources.postgres_synced_tables.*.modified_status 4650 +resources.postgres_synced_tables.*.lifecycle 4651 +resources.postgres_synced_tables.*.lifecycle.prevent_destroy 4652 +resources.postgres_synced_tables.*.lifecycle.prevent_destroy=true 4653 +resources.postgres_synced_tables.*.lifecycle.prevent_destroy=false 4654 +resources.postgres_synced_tables.*.lifecycle.depends_on 4655 +resources.postgres_synced_tables.*.lifecycle.depends_on[*] 4656 +resources.postgres_synced_tables.*.lifecycle.depends_on[*].resource 4657 +resources.postgres_synced_tables.*.id 4658 +resources.postgres_synced_tables.*.accelerated_sync 4659 +resources.postgres_synced_tables.*.accelerated_sync=true 4660 +resources.postgres_synced_tables.*.accelerated_sync=false 4661 +resources.postgres_synced_tables.*.branch 4662 +resources.postgres_synced_tables.*.create_database_objects_if_missing 4663 +resources.postgres_synced_tables.*.create_database_objects_if_missing=true 4664 +resources.postgres_synced_tables.*.create_database_objects_if_missing=false 4665 +resources.postgres_synced_tables.*.existing_pipeline_id 4666 +resources.postgres_synced_tables.*.extra_columns 4667 +resources.postgres_synced_tables.*.extra_columns[*] 4668 +resources.postgres_synced_tables.*.extra_columns[*].column_name 4669 +resources.postgres_synced_tables.*.extra_columns[*].column_type 4670 +resources.postgres_synced_tables.*.extra_columns[*].compute 4671 +resources.postgres_synced_tables.*.extra_columns[*].maintenance 4672 +resources.postgres_synced_tables.*.new_pipeline_spec 4673 +resources.postgres_synced_tables.*.new_pipeline_spec.budget_policy_id 4674 +resources.postgres_synced_tables.*.new_pipeline_spec.pipeline_channel 4675 +resources.postgres_synced_tables.*.new_pipeline_spec.storage_catalog 4676 +resources.postgres_synced_tables.*.new_pipeline_spec.storage_schema 4677 +resources.postgres_synced_tables.*.postgres_database 4678 +resources.postgres_synced_tables.*.primary_key_columns 4679 +resources.postgres_synced_tables.*.primary_key_columns[*] 4680 +resources.postgres_synced_tables.*.scheduling_policy 4681 +resources.postgres_synced_tables.*.source_table_full_name 4682 +resources.postgres_synced_tables.*.timeseries_key 4683 +resources.postgres_synced_tables.*.type_overrides 4684 +resources.postgres_synced_tables.*.type_overrides[*] 4685 +resources.postgres_synced_tables.*.type_overrides[*].column_name 4686 +resources.postgres_synced_tables.*.type_overrides[*].pg_type 4687 +resources.postgres_synced_tables.*.type_overrides[*].size 4688 +resources.postgres_synced_tables.*.synced_table_id 4689 diff --git a/acceptance/bundle/bitmap/full/output/quality_monitors.txt b/acceptance/bundle/bitmap/full/output/quality_monitors.txt new file mode 100644 index 00000000000..d5bd94c49d2 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/quality_monitors.txt @@ -0,0 +1,60 @@ +resources.quality_monitors 3386 +resources.quality_monitors.* 3387 +resources.quality_monitors.*.url 3388 +resources.quality_monitors.*.modified_status 3389 +resources.quality_monitors.*.lifecycle 3390 +resources.quality_monitors.*.lifecycle.prevent_destroy 3391 +resources.quality_monitors.*.lifecycle.prevent_destroy=true 3392 +resources.quality_monitors.*.lifecycle.prevent_destroy=false 3393 +resources.quality_monitors.*.lifecycle.depends_on 3394 +resources.quality_monitors.*.lifecycle.depends_on[*] 3395 +resources.quality_monitors.*.lifecycle.depends_on[*].resource 3396 +resources.quality_monitors.*.id 3397 +resources.quality_monitors.*.assets_dir 3398 +resources.quality_monitors.*.baseline_table_name 3399 +resources.quality_monitors.*.custom_metrics 3400 +resources.quality_monitors.*.custom_metrics[*] 3401 +resources.quality_monitors.*.custom_metrics[*].definition 3402 +resources.quality_monitors.*.custom_metrics[*].input_columns 3403 +resources.quality_monitors.*.custom_metrics[*].input_columns[*] 3404 +resources.quality_monitors.*.custom_metrics[*].name 3405 +resources.quality_monitors.*.custom_metrics[*].output_data_type 3406 +resources.quality_monitors.*.custom_metrics[*].type 3407 +resources.quality_monitors.*.data_classification_config 3408 +resources.quality_monitors.*.data_classification_config.enabled 3409 +resources.quality_monitors.*.data_classification_config.enabled=true 3410 +resources.quality_monitors.*.data_classification_config.enabled=false 3411 +resources.quality_monitors.*.inference_log 3412 +resources.quality_monitors.*.inference_log.granularities 3413 +resources.quality_monitors.*.inference_log.granularities[*] 3414 +resources.quality_monitors.*.inference_log.label_col 3415 +resources.quality_monitors.*.inference_log.model_id_col 3416 +resources.quality_monitors.*.inference_log.prediction_col 3417 +resources.quality_monitors.*.inference_log.prediction_proba_col 3418 +resources.quality_monitors.*.inference_log.problem_type 3419 +resources.quality_monitors.*.inference_log.timestamp_col 3420 +resources.quality_monitors.*.latest_monitor_failure_msg 3421 +resources.quality_monitors.*.notifications 3422 +resources.quality_monitors.*.notifications.on_failure 3423 +resources.quality_monitors.*.notifications.on_failure.email_addresses 3424 +resources.quality_monitors.*.notifications.on_failure.email_addresses[*] 3425 +resources.quality_monitors.*.notifications.on_new_classification_tag_detected 3426 +resources.quality_monitors.*.notifications.on_new_classification_tag_detected.email_addresses 3427 +resources.quality_monitors.*.notifications.on_new_classification_tag_detected.email_addresses[*] 3428 +resources.quality_monitors.*.output_schema_name 3429 +resources.quality_monitors.*.schedule 3430 +resources.quality_monitors.*.schedule.pause_status 3431 +resources.quality_monitors.*.schedule.quartz_cron_expression 3432 +resources.quality_monitors.*.schedule.timezone_id 3433 +resources.quality_monitors.*.skip_builtin_dashboard 3434 +resources.quality_monitors.*.skip_builtin_dashboard=true 3435 +resources.quality_monitors.*.skip_builtin_dashboard=false 3436 +resources.quality_monitors.*.slicing_exprs 3437 +resources.quality_monitors.*.slicing_exprs[*] 3438 +resources.quality_monitors.*.snapshot 3439 +resources.quality_monitors.*.time_series 3440 +resources.quality_monitors.*.time_series.granularities 3441 +resources.quality_monitors.*.time_series.granularities[*] 3442 +resources.quality_monitors.*.time_series.timestamp_col 3443 +resources.quality_monitors.*.warehouse_id 3444 +resources.quality_monitors.*.table_name 3445 diff --git a/acceptance/bundle/bitmap/full/output/registered_models.txt b/acceptance/bundle/bitmap/full/output/registered_models.txt new file mode 100644 index 00000000000..b73e24de589 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/registered_models.txt @@ -0,0 +1,40 @@ +resources.registered_models 3346 +resources.registered_models.* 3347 +resources.registered_models.*.url 3348 +resources.registered_models.*.modified_status 3349 +resources.registered_models.*.lifecycle 3350 +resources.registered_models.*.lifecycle.prevent_destroy 3351 +resources.registered_models.*.lifecycle.prevent_destroy=true 3352 +resources.registered_models.*.lifecycle.prevent_destroy=false 3353 +resources.registered_models.*.lifecycle.depends_on 3354 +resources.registered_models.*.lifecycle.depends_on[*] 3355 +resources.registered_models.*.lifecycle.depends_on[*].resource 3356 +resources.registered_models.*.id 3357 +resources.registered_models.*.aliases 3358 +resources.registered_models.*.aliases[*] 3359 +resources.registered_models.*.aliases[*].alias_name 3360 +resources.registered_models.*.aliases[*].catalog_name 3361 +resources.registered_models.*.aliases[*].id 3362 +resources.registered_models.*.aliases[*].model_name 3363 +resources.registered_models.*.aliases[*].schema_name 3364 +resources.registered_models.*.aliases[*].version_num 3365 +resources.registered_models.*.browse_only 3366 +resources.registered_models.*.browse_only=true 3367 +resources.registered_models.*.browse_only=false 3368 +resources.registered_models.*.catalog_name 3369 +resources.registered_models.*.comment 3370 +resources.registered_models.*.created_at 3371 +resources.registered_models.*.created_by 3372 +resources.registered_models.*.full_name 3373 +resources.registered_models.*.metastore_id 3374 +resources.registered_models.*.name 3375 +resources.registered_models.*.owner 3376 +resources.registered_models.*.schema_name 3377 +resources.registered_models.*.storage_location 3378 +resources.registered_models.*.updated_at 3379 +resources.registered_models.*.updated_by 3380 +resources.registered_models.*.grants 3381 +resources.registered_models.*.grants[*] 3382 +resources.registered_models.*.grants[*].principal 3383 +resources.registered_models.*.grants[*].privileges 3384 +resources.registered_models.*.grants[*].privileges[*] 3385 diff --git a/acceptance/bundle/bitmap/full/output/root.txt b/acceptance/bundle/bitmap/full/output/root.txt new file mode 100644 index 00000000000..7073beb3b68 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/root.txt @@ -0,0 +1,371 @@ +variables 0 +variables.* 1 +variables.*.type 2 +variables.*.default 3 +variables.*.description 4 +variables.*.sensitive 5 +variables.*.sensitive=true 6 +variables.*.sensitive=false 7 +variables.*.value 8 +variables.*.lookup 9 +variables.*.lookup.alert 10 +variables.*.lookup.cluster_policy 11 +variables.*.lookup.cluster 12 +variables.*.lookup.dashboard 13 +variables.*.lookup.instance_pool 14 +variables.*.lookup.job 15 +variables.*.lookup.metastore 16 +variables.*.lookup.notification_destination 17 +variables.*.lookup.pipeline 18 +variables.*.lookup.query 19 +variables.*.lookup.service_principal 20 +variables.*.lookup.warehouse 21 +bundle 22 +bundle.name 23 +bundle.target 24 +bundle.environment 25 +bundle.terraform 26 +bundle.terraform.exec_path 27 +bundle.force 28 +bundle.force=true 29 +bundle.force=false 30 +bundle.git 31 +bundle.git.branch 32 +bundle.git.origin_url 33 +bundle.git.commit 34 +bundle.git.bundle_root_path 35 +bundle.git.actual_branch 36 +bundle.mode 37 +bundle.compute_id 38 +bundle.cluster_id 39 +bundle.engine 40 +bundle.deployment 41 +bundle.deployment.fail_on_active_runs 42 +bundle.deployment.fail_on_active_runs=true 43 +bundle.deployment.fail_on_active_runs=false 44 +bundle.deployment.lock 45 +bundle.deployment.lock.enabled 46 +bundle.deployment.lock.enabled=true 47 +bundle.deployment.lock.enabled=false 48 +bundle.deployment.lock.force 49 +bundle.deployment.lock.force=true 50 +bundle.deployment.lock.force=false 51 +bundle.deployment.deployment_id 52 +bundle.deployment.latest_version_id 53 +bundle.databricks_cli_version 54 +bundle.uuid 55 +include 56 +include[*] 57 +workspace 58 +workspace.host 59 +workspace.profile 60 +workspace.auth_type 61 +workspace.metadata_service_url 62 +workspace.client_id 63 +workspace.google_service_account 64 +workspace.azure_workspace_resource_id 65 +workspace.azure_use_msi 66 +workspace.azure_use_msi=true 67 +workspace.azure_use_msi=false 68 +workspace.azure_client_id 69 +workspace.azure_tenant_id 70 +workspace.azure_environment 71 +workspace.azure_login_app_id 72 +workspace.experimental_is_unified_host 73 +workspace.experimental_is_unified_host=true 74 +workspace.experimental_is_unified_host=false 75 +workspace.account_id 76 +workspace.workspace_id 77 +workspace.current_user 78 +workspace.current_user.short_name 79 +workspace.current_user.domain_friendly_name 80 +workspace.current_user.active 81 +workspace.current_user.active=true 82 +workspace.current_user.active=false 83 +workspace.current_user.displayName 84 +workspace.current_user.emails 85 +workspace.current_user.emails[*] 86 +workspace.current_user.emails[*].display 87 +workspace.current_user.emails[*].primary 88 +workspace.current_user.emails[*].primary=true 89 +workspace.current_user.emails[*].primary=false 90 +workspace.current_user.emails[*].$ref 91 +workspace.current_user.emails[*].type 92 +workspace.current_user.emails[*].value 93 +workspace.current_user.entitlements 94 +workspace.current_user.entitlements[*] 95 +workspace.current_user.entitlements[*].display 96 +workspace.current_user.entitlements[*].primary 97 +workspace.current_user.entitlements[*].primary=true 98 +workspace.current_user.entitlements[*].primary=false 99 +workspace.current_user.entitlements[*].$ref 100 +workspace.current_user.entitlements[*].type 101 +workspace.current_user.entitlements[*].value 102 +workspace.current_user.externalId 103 +workspace.current_user.groups 104 +workspace.current_user.groups[*] 105 +workspace.current_user.groups[*].display 106 +workspace.current_user.groups[*].primary 107 +workspace.current_user.groups[*].primary=true 108 +workspace.current_user.groups[*].primary=false 109 +workspace.current_user.groups[*].$ref 110 +workspace.current_user.groups[*].type 111 +workspace.current_user.groups[*].value 112 +workspace.current_user.id 113 +workspace.current_user.name 114 +workspace.current_user.name.familyName 115 +workspace.current_user.name.givenName 116 +workspace.current_user.roles 117 +workspace.current_user.roles[*] 118 +workspace.current_user.roles[*].display 119 +workspace.current_user.roles[*].primary 120 +workspace.current_user.roles[*].primary=true 121 +workspace.current_user.roles[*].primary=false 122 +workspace.current_user.roles[*].$ref 123 +workspace.current_user.roles[*].type 124 +workspace.current_user.roles[*].value 125 +workspace.current_user.schemas 126 +workspace.current_user.schemas[*] 127 +workspace.current_user.userName 128 +workspace.root_path 129 +workspace.file_path 130 +workspace.resource_path 131 +workspace.artifact_path 132 +workspace.state_path 133 +workspace.sync_mode 134 +artifacts 135 +artifacts.* 136 +artifacts.*.type 137 +artifacts.*.path 138 +artifacts.*.files 139 +artifacts.*.files[*] 140 +artifacts.*.files[*].source 141 +artifacts.*.files[*].patched 142 +artifacts.*.files[*].remote_path 143 +artifacts.*.build 144 +artifacts.*.executable 145 +artifacts.*.dynamic_version 146 +artifacts.*.dynamic_version=true 147 +artifacts.*.dynamic_version=false 148 +artifacts.*.include 149 +artifacts.*.include[*] 150 +artifacts.*.git 151 +artifacts.*.git.branch 152 +artifacts.*.git.commit 153 +resources 154 +sync 4968 +sync.paths 4969 +sync.paths[*] 4970 +sync.include 4971 +sync.include[*] 4972 +sync.exclude 4973 +sync.exclude[*] 4974 +run_as 4975 +run_as.group_name 4976 +run_as.service_principal_name 4977 +run_as.user_name 4978 +presets 4979 +presets.name_prefix 4980 +presets.pipelines_development 4981 +presets.pipelines_development=true 4982 +presets.pipelines_development=false 4983 +presets.trigger_pause_status 4984 +presets.jobs_max_concurrent_runs 4985 +presets.source_linked_deployment 4986 +presets.source_linked_deployment=true 4987 +presets.source_linked_deployment=false 4988 +presets.artifacts_dynamic_version 4989 +presets.artifacts_dynamic_version=true 4990 +presets.artifacts_dynamic_version=false 4991 +presets.tags 4992 +presets.tags.* 4993 +experimental 4994 +experimental.scripts 4995 +experimental.scripts.* 4996 +experimental.immutable_folder 4997 +experimental.immutable_folder=true 4998 +experimental.immutable_folder=false 4999 +experimental.python_wheel_wrapper 5000 +experimental.python_wheel_wrapper=true 5001 +experimental.python_wheel_wrapper=false 5002 +experimental.use_legacy_run_as 5003 +experimental.use_legacy_run_as=true 5004 +experimental.use_legacy_run_as=false 5005 +experimental.pydabs 5006 +experimental.pydabs.enabled 5007 +experimental.pydabs.enabled=true 5008 +experimental.pydabs.enabled=false 5009 +experimental.python 5010 +experimental.python.resources 5011 +experimental.python.resources[*] 5012 +experimental.python.mutators 5013 +experimental.python.mutators[*] 5014 +experimental.python.venv_path 5015 +experimental.skip_artifact_cleanup 5016 +experimental.skip_artifact_cleanup=true 5017 +experimental.skip_artifact_cleanup=false 5018 +experimental.skip_name_prefix_for_schema 5019 +experimental.skip_name_prefix_for_schema=true 5020 +experimental.skip_name_prefix_for_schema=false 5021 +experimental.deployment_history 5022 +experimental.deployment_history=true 5023 +experimental.deployment_history=false 5024 +permissions 5025 +permissions[*] 5026 +permissions[*].level 5027 +permissions[*].user_name 5028 +permissions[*].service_principal_name 5029 +permissions[*].group_name 5030 +scripts 5031 +scripts.* 5032 +scripts.*.content 5033 +scripts.*.env 5034 +scripts.*.env.* 5035 +python 5036 +python.resources 5037 +python.resources[*] 5038 +python.mutators 5039 +python.mutators[*] 5040 +python.venv_path 5041 +definitions 5042 +telemetry.PythonWheelWrapperIsSet 5043 +telemetry.PythonWheelWrapperIsSet=true 5044 +telemetry.PythonWheelWrapperIsSet=false 5045 +telemetry.ArtifactDynamicVersionIsSet 5046 +telemetry.ArtifactDynamicVersionIsSet=true 5047 +telemetry.ArtifactDynamicVersionIsSet=false 5048 +telemetry.ArtifactBuildCommandIsSet 5049 +telemetry.ArtifactBuildCommandIsSet=true 5050 +telemetry.ArtifactBuildCommandIsSet=false 5051 +telemetry.ArtifactFilesIsSet 5052 +telemetry.ArtifactFilesIsSet=true 5053 +telemetry.ArtifactFilesIsSet=false 5054 +telemetry.PresetsNamePrefixIsSet 5055 +telemetry.PresetsNamePrefixIsSet=true 5056 +telemetry.PresetsNamePrefixIsSet=false 5057 +telemetry.AppLifecycleStarted 5058 +telemetry.AppLifecycleStarted=true 5059 +telemetry.AppLifecycleStarted=false 5060 +telemetry.ClusterLifecycleStarted 5061 +telemetry.ClusterLifecycleStarted=true 5062 +telemetry.ClusterLifecycleStarted=false 5063 +telemetry.DeploymentHistoryEnabled 5064 +telemetry.DeploymentHistoryEnabled=true 5065 +telemetry.DeploymentHistoryEnabled=false 5066 +telemetry.SqlWarehouseLifecycleStarted 5067 +telemetry.SqlWarehouseLifecycleStarted=true 5068 +telemetry.SqlWarehouseLifecycleStarted=false 5069 +telemetry.SelectUsed 5070 +telemetry.SelectUsed=true 5071 +telemetry.SelectUsed=false 5072 +telemetry.ImmutableSnapshotUsed 5073 +telemetry.ImmutableSnapshotUsed=true 5074 +telemetry.ImmutableSnapshotUsed=false 5075 +telemetry.DirectMigrateError 5076 +telemetry.DirectMigrateError=true 5077 +telemetry.DirectMigrateError=false 5078 +telemetry.DirectMigrateWarnings 5079 +telemetry.DirectMigrateWarnings=true 5080 +telemetry.DirectMigrateWarnings=false 5081 +telemetry.DirectMigratePlanError 5082 +telemetry.DirectMigratePlanError=true 5083 +telemetry.DirectMigratePlanError=false 5084 +telemetry.DirectMigrateRecreatePlanned 5085 +telemetry.DirectMigrateRecreatePlanned=true 5086 +telemetry.DirectMigrateRecreatePlanned=false 5087 +telemetry.DirectAutoMigrateViaConfig 5088 +telemetry.DirectAutoMigrateViaConfig=true 5089 +telemetry.DirectAutoMigrateViaConfig=false 5090 +telemetry.DirectAutoMigrateViaEnv 5091 +telemetry.DirectAutoMigrateViaEnv=true 5092 +telemetry.DirectAutoMigrateViaEnv=false 5093 +telemetry.DirectAutoMigrateViaDefault 5094 +telemetry.DirectAutoMigrateViaDefault=true 5095 +telemetry.DirectAutoMigrateViaDefault=false 5096 +telemetry.EngineTerraformConfig 5097 +telemetry.EngineTerraformConfig=true 5098 +telemetry.EngineTerraformConfig=false 5099 +telemetry.EngineTerraformEnv 5100 +telemetry.EngineTerraformEnv=true 5101 +telemetry.EngineTerraformEnv=false 5102 +telemetry.StatePathIsShared 5103 +telemetry.StatePathIsShared=true 5104 +telemetry.StatePathIsShared=false 5105 +telemetry.DMSCompatAuto 5106 +telemetry.DMSCompatAuto=true 5107 +telemetry.DMSCompatAuto=false 5108 +telemetry.DMSCompatOnlySelfUndeclared 5109 +telemetry.DMSCompatOnlySelfUndeclared=true 5110 +telemetry.DMSCompatOnlySelfUndeclared=false 5111 +telemetry.DMSCompatNot 5112 +telemetry.DMSCompatNot=true 5113 +telemetry.DMSCompatNot=false 5114 +telemetry.PermissionsSectionSet 5115 +telemetry.PermissionsSectionSet=true 5116 +telemetry.PermissionsSectionSet=false 5117 +telemetry.StatePathInDeployerHome 5118 +telemetry.StatePathInDeployerHome=true 5119 +telemetry.StatePathInDeployerHome=false 5120 +telemetry.StatePathInOtherUserHome 5121 +telemetry.StatePathInOtherUserHome=true 5122 +telemetry.StatePathInOtherUserHome=false 5123 +telemetry.StatePathOther 5124 +telemetry.StatePathOther=true 5125 +telemetry.StatePathOther=false 5126 +telemetry.DMSUndeclaredDeployingUser 5127 +telemetry.DMSUndeclaredDeployingUser=true 5128 +telemetry.DMSUndeclaredDeployingUser=false 5129 +telemetry.DMSUndeclaredOtherUser 5130 +telemetry.DMSUndeclaredOtherUser=true 5131 +telemetry.DMSUndeclaredOtherUser=false 5132 +telemetry.DMSUndeclaredServicePrincipal 5133 +telemetry.DMSUndeclaredServicePrincipal=true 5134 +telemetry.DMSUndeclaredServicePrincipal=false 5135 +telemetry.DMSUndeclaredGroup 5136 +telemetry.DMSUndeclaredGroup=true 5137 +telemetry.DMSUndeclaredGroup=false 5138 +telemetry.AiRuntimeTaskScheduled 5139 +telemetry.AiRuntimeTaskScheduled=true 5140 +telemetry.AiRuntimeTaskScheduled=false 5141 +telemetry.AiRuntimeTaskMultitask 5142 +telemetry.AiRuntimeTaskMultitask=true 5143 +telemetry.AiRuntimeTaskMultitask=false 5144 +telemetry.SkipArtifactCleanup 5145 +telemetry.SkipArtifactCleanup=true 5146 +telemetry.SkipArtifactCleanup=false 5147 +telemetry.SourceLinkedSetForNonDevelopment 5148 +telemetry.SourceLinkedSetForNonDevelopment=true 5149 +telemetry.SourceLinkedSetForNonDevelopment=false 5150 +telemetry.ConfigHasDoubleDollarBrace 5151 +telemetry.ConfigHasDoubleDollarBrace=true 5152 +telemetry.ConfigHasDoubleDollarBrace=false 5153 +telemetry.ConfigHasDoubleDollar 5154 +telemetry.ConfigHasDoubleDollar=true 5155 +telemetry.ConfigHasDoubleDollar=false 5156 +telemetry.ConfigHasBackslashDollarBrace 5157 +telemetry.ConfigHasBackslashDollarBrace=true 5158 +telemetry.ConfigHasBackslashDollarBrace=false 5159 +telemetry.ConfigHasBackslashDollar 5160 +telemetry.ConfigHasBackslashDollar=true 5161 +telemetry.ConfigHasBackslashDollar=false 5162 +telemetry.ArtifactsReferenceUsed 5163 +telemetry.ArtifactsReferenceUsed=true 5164 +telemetry.ArtifactsReferenceUsed=false 5165 +telemetry.UseLegacyRunAs 5166 +telemetry.UseLegacyRunAs=true 5167 +telemetry.UseLegacyRunAs=false 5168 +telemetry.RunAsSet 5169 +telemetry.RunAsSet=true 5170 +telemetry.RunAsSet=false 5171 +telemetry.HasTfOnlyReferences 5172 +telemetry.HasTfOnlyReferences=true 5173 +telemetry.HasTfOnlyReferences=false 5174 +telemetry.HasServerlessCompute 5175 +telemetry.HasServerlessCompute=true 5176 +telemetry.HasServerlessCompute=false 5177 +telemetry.HasClassicJobCompute 5178 +telemetry.HasClassicJobCompute=true 5179 +telemetry.HasClassicJobCompute=false 5180 +telemetry.HasClassicInteractiveCompute 5181 +telemetry.HasClassicInteractiveCompute=true 5182 +telemetry.HasClassicInteractiveCompute=false 5183 diff --git a/acceptance/bundle/bitmap/full/output/schemas.txt b/acceptance/bundle/bitmap/full/output/schemas.txt new file mode 100644 index 00000000000..ea7f928602e --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/schemas.txt @@ -0,0 +1,24 @@ +resources.schemas 3571 +resources.schemas.* 3572 +resources.schemas.*.url 3573 +resources.schemas.*.modified_status 3574 +resources.schemas.*.lifecycle 3575 +resources.schemas.*.lifecycle.prevent_destroy 3576 +resources.schemas.*.lifecycle.prevent_destroy=true 3577 +resources.schemas.*.lifecycle.prevent_destroy=false 3578 +resources.schemas.*.lifecycle.depends_on 3579 +resources.schemas.*.lifecycle.depends_on[*] 3580 +resources.schemas.*.lifecycle.depends_on[*].resource 3581 +resources.schemas.*.id 3582 +resources.schemas.*.catalog_name 3583 +resources.schemas.*.comment 3584 +resources.schemas.*.custom_max_retention_hours 3585 +resources.schemas.*.name 3586 +resources.schemas.*.properties 3587 +resources.schemas.*.properties.* 3588 +resources.schemas.*.storage_root 3589 +resources.schemas.*.grants 3590 +resources.schemas.*.grants[*] 3591 +resources.schemas.*.grants[*].principal 3592 +resources.schemas.*.grants[*].privileges 3593 +resources.schemas.*.grants[*].privileges[*] 3594 diff --git a/acceptance/bundle/bitmap/full/output/secret_scopes.txt b/acceptance/bundle/bitmap/full/output/secret_scopes.txt new file mode 100644 index 00000000000..a1a4b6a0249 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/secret_scopes.txt @@ -0,0 +1,23 @@ +resources.secret_scopes 4148 +resources.secret_scopes.* 4149 +resources.secret_scopes.*.url 4150 +resources.secret_scopes.*.modified_status 4151 +resources.secret_scopes.*.lifecycle 4152 +resources.secret_scopes.*.lifecycle.prevent_destroy 4153 +resources.secret_scopes.*.lifecycle.prevent_destroy=true 4154 +resources.secret_scopes.*.lifecycle.prevent_destroy=false 4155 +resources.secret_scopes.*.lifecycle.depends_on 4156 +resources.secret_scopes.*.lifecycle.depends_on[*] 4157 +resources.secret_scopes.*.lifecycle.depends_on[*].resource 4158 +resources.secret_scopes.*.id 4159 +resources.secret_scopes.*.name 4160 +resources.secret_scopes.*.permissions 4161 +resources.secret_scopes.*.permissions[*] 4162 +resources.secret_scopes.*.permissions[*].level 4163 +resources.secret_scopes.*.permissions[*].user_name 4164 +resources.secret_scopes.*.permissions[*].service_principal_name 4165 +resources.secret_scopes.*.permissions[*].group_name 4166 +resources.secret_scopes.*.backend_type 4167 +resources.secret_scopes.*.keyvault_metadata 4168 +resources.secret_scopes.*.keyvault_metadata.dns_name 4169 +resources.secret_scopes.*.keyvault_metadata.resource_id 4170 diff --git a/acceptance/bundle/bitmap/full/output/secrets.txt b/acceptance/bundle/bitmap/full/output/secrets.txt new file mode 100644 index 00000000000..ff3e6474b02 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/secrets.txt @@ -0,0 +1,32 @@ +resources.secrets 4879 +resources.secrets.* 4880 +resources.secrets.*.url 4881 +resources.secrets.*.modified_status 4882 +resources.secrets.*.lifecycle 4883 +resources.secrets.*.lifecycle.prevent_destroy 4884 +resources.secrets.*.lifecycle.prevent_destroy=true 4885 +resources.secrets.*.lifecycle.prevent_destroy=false 4886 +resources.secrets.*.lifecycle.depends_on 4887 +resources.secrets.*.lifecycle.depends_on[*] 4888 +resources.secrets.*.lifecycle.depends_on[*].resource 4889 +resources.secrets.*.id 4890 +resources.secrets.*.catalog_name 4891 +resources.secrets.*.comment 4892 +resources.secrets.*.create_time 4893 +resources.secrets.*.created_by 4894 +resources.secrets.*.effective_owner 4895 +resources.secrets.*.effective_value 4896 +resources.secrets.*.expire_time 4897 +resources.secrets.*.full_name 4898 +resources.secrets.*.metastore_id 4899 +resources.secrets.*.name 4900 +resources.secrets.*.owner 4901 +resources.secrets.*.schema_name 4902 +resources.secrets.*.update_time 4903 +resources.secrets.*.updated_by 4904 +resources.secrets.*.value 4905 +resources.secrets.*.grants 4906 +resources.secrets.*.grants[*] 4907 +resources.secrets.*.grants[*].principal 4908 +resources.secrets.*.grants[*].privileges 4909 +resources.secrets.*.grants[*].privileges[*] 4910 diff --git a/acceptance/bundle/bitmap/full/output/sql_warehouses.txt b/acceptance/bundle/bitmap/full/output/sql_warehouses.txt new file mode 100644 index 00000000000..bed3a6ca78f --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/sql_warehouses.txt @@ -0,0 +1,48 @@ +resources.sql_warehouses 4246 +resources.sql_warehouses.* 4247 +resources.sql_warehouses.*.url 4248 +resources.sql_warehouses.*.modified_status 4249 +resources.sql_warehouses.*.lifecycle 4250 +resources.sql_warehouses.*.lifecycle.prevent_destroy 4251 +resources.sql_warehouses.*.lifecycle.prevent_destroy=true 4252 +resources.sql_warehouses.*.lifecycle.prevent_destroy=false 4253 +resources.sql_warehouses.*.lifecycle.depends_on 4254 +resources.sql_warehouses.*.lifecycle.depends_on[*] 4255 +resources.sql_warehouses.*.lifecycle.depends_on[*].resource 4256 +resources.sql_warehouses.*.id 4257 +resources.sql_warehouses.*.auto_stop_mins 4258 +resources.sql_warehouses.*.channel 4259 +resources.sql_warehouses.*.channel.dbsql_version 4260 +resources.sql_warehouses.*.channel.name 4261 +resources.sql_warehouses.*.cluster_size 4262 +resources.sql_warehouses.*.creator_name 4263 +resources.sql_warehouses.*.customer_version_label 4264 +resources.sql_warehouses.*.enable_photon 4265 +resources.sql_warehouses.*.enable_photon=true 4266 +resources.sql_warehouses.*.enable_photon=false 4267 +resources.sql_warehouses.*.enable_serverless_compute 4268 +resources.sql_warehouses.*.enable_serverless_compute=true 4269 +resources.sql_warehouses.*.enable_serverless_compute=false 4270 +resources.sql_warehouses.*.instance_profile_arn 4271 +resources.sql_warehouses.*.max_dbu 4272 +resources.sql_warehouses.*.max_num_clusters 4273 +resources.sql_warehouses.*.min_num_clusters 4274 +resources.sql_warehouses.*.name 4275 +resources.sql_warehouses.*.reyden_cluster_size_multiplier 4276 +resources.sql_warehouses.*.spot_instance_policy 4277 +resources.sql_warehouses.*.statement_timeout 4278 +resources.sql_warehouses.*.tags 4279 +resources.sql_warehouses.*.tags.custom_tags 4280 +resources.sql_warehouses.*.tags.custom_tags[*] 4281 +resources.sql_warehouses.*.tags.custom_tags[*].key 4282 +resources.sql_warehouses.*.tags.custom_tags[*].value 4283 +resources.sql_warehouses.*.warehouse_type 4284 +resources.sql_warehouses.*.lifecycle.started 4285 +resources.sql_warehouses.*.lifecycle.started=true 4286 +resources.sql_warehouses.*.lifecycle.started=false 4287 +resources.sql_warehouses.*.permissions 4288 +resources.sql_warehouses.*.permissions[*] 4289 +resources.sql_warehouses.*.permissions[*].level 4290 +resources.sql_warehouses.*.permissions[*].user_name 4291 +resources.sql_warehouses.*.permissions[*].service_principal_name 4292 +resources.sql_warehouses.*.permissions[*].group_name 4293 diff --git a/acceptance/bundle/bitmap/full/output/synced_database_tables.txt b/acceptance/bundle/bitmap/full/output/synced_database_tables.txt new file mode 100644 index 00000000000..157f2154a3b --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/synced_database_tables.txt @@ -0,0 +1,81 @@ +resources.synced_database_tables 4386 +resources.synced_database_tables.* 4387 +resources.synced_database_tables.*.url 4388 +resources.synced_database_tables.*.modified_status 4389 +resources.synced_database_tables.*.lifecycle 4390 +resources.synced_database_tables.*.lifecycle.prevent_destroy 4391 +resources.synced_database_tables.*.lifecycle.prevent_destroy=true 4392 +resources.synced_database_tables.*.lifecycle.prevent_destroy=false 4393 +resources.synced_database_tables.*.lifecycle.depends_on 4394 +resources.synced_database_tables.*.lifecycle.depends_on[*] 4395 +resources.synced_database_tables.*.lifecycle.depends_on[*].resource 4396 +resources.synced_database_tables.*.id 4397 +resources.synced_database_tables.*.data_synchronization_status 4398 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status 4399 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress 4400 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.estimated_completion_time_seconds 4401 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.latest_version_currently_processing 4402 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.provisioning_phase 4403 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.sync_progress_completion 4404 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.synced_row_count 4405 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.total_row_count 4406 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.last_processed_commit_version 4407 +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.timestamp 4408 +resources.synced_database_tables.*.data_synchronization_status.detailed_state 4409 +resources.synced_database_tables.*.data_synchronization_status.failed_status 4410 +resources.synced_database_tables.*.data_synchronization_status.failed_status.last_processed_commit_version 4411 +resources.synced_database_tables.*.data_synchronization_status.failed_status.timestamp 4412 +resources.synced_database_tables.*.data_synchronization_status.last_sync 4413 +resources.synced_database_tables.*.data_synchronization_status.last_sync.delta_table_sync_info 4414 +resources.synced_database_tables.*.data_synchronization_status.last_sync.delta_table_sync_info.delta_commit_timestamp 4415 +resources.synced_database_tables.*.data_synchronization_status.last_sync.delta_table_sync_info.delta_commit_version 4416 +resources.synced_database_tables.*.data_synchronization_status.last_sync.sync_end_timestamp 4417 +resources.synced_database_tables.*.data_synchronization_status.last_sync.sync_start_timestamp 4418 +resources.synced_database_tables.*.data_synchronization_status.message 4419 +resources.synced_database_tables.*.data_synchronization_status.pipeline_id 4420 +resources.synced_database_tables.*.data_synchronization_status.provisioning_status 4421 +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress 4422 +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.estimated_completion_time_seconds 4423 +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.latest_version_currently_processing 4424 +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.provisioning_phase 4425 +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.sync_progress_completion 4426 +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.synced_row_count 4427 +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.total_row_count 4428 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status 4429 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.last_processed_commit_version 4430 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.timestamp 4431 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress 4432 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.estimated_completion_time_seconds 4433 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.latest_version_currently_processing 4434 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.provisioning_phase 4435 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.sync_progress_completion 4436 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.synced_row_count 4437 +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.total_row_count 4438 +resources.synced_database_tables.*.database_instance_name 4439 +resources.synced_database_tables.*.effective_database_instance_name 4440 +resources.synced_database_tables.*.effective_logical_database_name 4441 +resources.synced_database_tables.*.logical_database_name 4442 +resources.synced_database_tables.*.name 4443 +resources.synced_database_tables.*.spec 4444 +resources.synced_database_tables.*.spec.accelerated_sync 4445 +resources.synced_database_tables.*.spec.accelerated_sync=true 4446 +resources.synced_database_tables.*.spec.accelerated_sync=false 4447 +resources.synced_database_tables.*.spec.create_database_objects_if_missing 4448 +resources.synced_database_tables.*.spec.create_database_objects_if_missing=true 4449 +resources.synced_database_tables.*.spec.create_database_objects_if_missing=false 4450 +resources.synced_database_tables.*.spec.existing_pipeline_id 4451 +resources.synced_database_tables.*.spec.new_pipeline_spec 4452 +resources.synced_database_tables.*.spec.new_pipeline_spec.budget_policy_id 4453 +resources.synced_database_tables.*.spec.new_pipeline_spec.storage_catalog 4454 +resources.synced_database_tables.*.spec.new_pipeline_spec.storage_schema 4455 +resources.synced_database_tables.*.spec.primary_key_columns 4456 +resources.synced_database_tables.*.spec.primary_key_columns[*] 4457 +resources.synced_database_tables.*.spec.scheduling_policy 4458 +resources.synced_database_tables.*.spec.source_table_full_name 4459 +resources.synced_database_tables.*.spec.timeseries_key 4460 +resources.synced_database_tables.*.spec.type_overrides 4461 +resources.synced_database_tables.*.spec.type_overrides[*] 4462 +resources.synced_database_tables.*.spec.type_overrides[*].column_name 4463 +resources.synced_database_tables.*.spec.type_overrides[*].pg_type 4464 +resources.synced_database_tables.*.spec.type_overrides[*].size 4465 +resources.synced_database_tables.*.unity_catalog_provisioning_state 4466 diff --git a/acceptance/bundle/bitmap/full/output/vector_search_endpoints.txt b/acceptance/bundle/bitmap/full/output/vector_search_endpoints.txt new file mode 100644 index 00000000000..03fa97270ee --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/vector_search_endpoints.txt @@ -0,0 +1,23 @@ +resources.vector_search_endpoints 4743 +resources.vector_search_endpoints.* 4744 +resources.vector_search_endpoints.*.url 4745 +resources.vector_search_endpoints.*.modified_status 4746 +resources.vector_search_endpoints.*.lifecycle 4747 +resources.vector_search_endpoints.*.lifecycle.prevent_destroy 4748 +resources.vector_search_endpoints.*.lifecycle.prevent_destroy=true 4749 +resources.vector_search_endpoints.*.lifecycle.prevent_destroy=false 4750 +resources.vector_search_endpoints.*.lifecycle.depends_on 4751 +resources.vector_search_endpoints.*.lifecycle.depends_on[*] 4752 +resources.vector_search_endpoints.*.lifecycle.depends_on[*].resource 4753 +resources.vector_search_endpoints.*.id 4754 +resources.vector_search_endpoints.*.budget_policy_id 4755 +resources.vector_search_endpoints.*.endpoint_type 4756 +resources.vector_search_endpoints.*.name 4757 +resources.vector_search_endpoints.*.target_qps 4758 +resources.vector_search_endpoints.*.usage_policy_id 4759 +resources.vector_search_endpoints.*.permissions 4760 +resources.vector_search_endpoints.*.permissions[*] 4761 +resources.vector_search_endpoints.*.permissions[*].level 4762 +resources.vector_search_endpoints.*.permissions[*].user_name 4763 +resources.vector_search_endpoints.*.permissions[*].service_principal_name 4764 +resources.vector_search_endpoints.*.permissions[*].group_name 4765 diff --git a/acceptance/bundle/bitmap/full/output/vector_search_indexes.txt b/acceptance/bundle/bitmap/full/output/vector_search_indexes.txt new file mode 100644 index 00000000000..5ed1a289117 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/vector_search_indexes.txt @@ -0,0 +1,50 @@ +resources.vector_search_indexes 4766 +resources.vector_search_indexes.* 4767 +resources.vector_search_indexes.*.url 4768 +resources.vector_search_indexes.*.modified_status 4769 +resources.vector_search_indexes.*.lifecycle 4770 +resources.vector_search_indexes.*.lifecycle.prevent_destroy 4771 +resources.vector_search_indexes.*.lifecycle.prevent_destroy=true 4772 +resources.vector_search_indexes.*.lifecycle.prevent_destroy=false 4773 +resources.vector_search_indexes.*.lifecycle.depends_on 4774 +resources.vector_search_indexes.*.lifecycle.depends_on[*] 4775 +resources.vector_search_indexes.*.lifecycle.depends_on[*].resource 4776 +resources.vector_search_indexes.*.id 4777 +resources.vector_search_indexes.*.delta_sync_index_spec 4778 +resources.vector_search_indexes.*.delta_sync_index_spec.columns_to_index 4779 +resources.vector_search_indexes.*.delta_sync_index_spec.columns_to_index[*] 4780 +resources.vector_search_indexes.*.delta_sync_index_spec.columns_to_sync 4781 +resources.vector_search_indexes.*.delta_sync_index_spec.columns_to_sync[*] 4782 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns 4783 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns[*] 4784 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns[*].embedding_model_endpoint_name 4785 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns[*].model_endpoint_name_for_query 4786 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns[*].name 4787 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_vector_columns 4788 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_vector_columns[*] 4789 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_vector_columns[*].embedding_dimension 4790 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_vector_columns[*].name 4791 +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_writeback_table 4792 +resources.vector_search_indexes.*.delta_sync_index_spec.pipeline_type 4793 +resources.vector_search_indexes.*.delta_sync_index_spec.source_table 4794 +resources.vector_search_indexes.*.direct_access_index_spec 4795 +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns 4796 +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns[*] 4797 +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns[*].embedding_model_endpoint_name 4798 +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns[*].model_endpoint_name_for_query 4799 +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns[*].name 4800 +resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns 4801 +resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns[*] 4802 +resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns[*].embedding_dimension 4803 +resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns[*].name 4804 +resources.vector_search_indexes.*.direct_access_index_spec.schema_json 4805 +resources.vector_search_indexes.*.endpoint_name 4806 +resources.vector_search_indexes.*.index_subtype 4807 +resources.vector_search_indexes.*.index_type 4808 +resources.vector_search_indexes.*.name 4809 +resources.vector_search_indexes.*.primary_key 4810 +resources.vector_search_indexes.*.grants 4811 +resources.vector_search_indexes.*.grants[*] 4812 +resources.vector_search_indexes.*.grants[*].principal 4813 +resources.vector_search_indexes.*.grants[*].privileges 4814 +resources.vector_search_indexes.*.grants[*].privileges[*] 4815 diff --git a/acceptance/bundle/bitmap/full/output/volumes.txt b/acceptance/bundle/bitmap/full/output/volumes.txt new file mode 100644 index 00000000000..e4ea1c33550 --- /dev/null +++ b/acceptance/bundle/bitmap/full/output/volumes.txt @@ -0,0 +1,24 @@ +resources.volumes 3595 +resources.volumes.* 3596 +resources.volumes.*.url 3597 +resources.volumes.*.modified_status 3598 +resources.volumes.*.lifecycle 3599 +resources.volumes.*.lifecycle.prevent_destroy 3600 +resources.volumes.*.lifecycle.prevent_destroy=true 3601 +resources.volumes.*.lifecycle.prevent_destroy=false 3602 +resources.volumes.*.lifecycle.depends_on 3603 +resources.volumes.*.lifecycle.depends_on[*] 3604 +resources.volumes.*.lifecycle.depends_on[*].resource 3605 +resources.volumes.*.id 3606 +resources.volumes.*.catalog_name 3607 +resources.volumes.*.comment 3608 +resources.volumes.*.name 3609 +resources.volumes.*.schema_name 3610 +resources.volumes.*.storage_location 3611 +resources.volumes.*.volume_type 3612 +resources.volumes.*.volume_path 3613 +resources.volumes.*.grants 3614 +resources.volumes.*.grants[*] 3615 +resources.volumes.*.grants[*].principal 3616 +resources.volumes.*.grants[*].privileges 3617 +resources.volumes.*.grants[*].privileges[*] 3618 diff --git a/acceptance/bundle/bitmap/full/script b/acceptance/bundle/bitmap/full/script new file mode 100644 index 00000000000..54553baef6f --- /dev/null +++ b/acceptance/bundle/bitmap/full/script @@ -0,0 +1,4 @@ +# Records every schema line with its bit, split per resource type, so a PR that adds a config +# field shows where it landed in the append-only schema. Refreshed by 'task generate-bitmap-schema'; +# ../presence pins the semantics of the bits. +$CLI bundle bitmap schema | python3 split.py diff --git a/acceptance/bundle/bitmap/full/split.py b/acceptance/bundle/bitmap/full/split.py new file mode 100644 index 00000000000..4b3a45eaa62 --- /dev/null +++ b/acceptance/bundle/bitmap/full/split.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +"""Split the bitmap schema from stdin: resources..* goes to output/.txt, the rest to output/root.txt. + +Each line is "\t", so a file still shows where each of its fields sits in the schema.""" + +import os +import sys + +files = {} +os.makedirs("output", exist_ok=True) +for bit, line in enumerate(sys.stdin): + path = line.rstrip("\n") + parts = path.split(".") + name = parts[1] if parts[0] == "resources" and len(parts) > 1 else "root" + if name not in files: + files[name] = open(f"output/{name}.txt", "w", newline="\n") + files[name].write(f"{path}\t{bit}\n") +for f in files.values(): + f.close() diff --git a/acceptance/bundle/bitmap/full/test.toml b/acceptance/bundle/bitmap/full/test.toml new file mode 100644 index 00000000000..d3a556b4329 --- /dev/null +++ b/acceptance/bundle/bitmap/full/test.toml @@ -0,0 +1,2 @@ +# The schema does not depend on the bundle or the DMS variant. +EnvMatrix.DMS = [] diff --git a/acceptance/bundle/bitmap/presence/databricks.yml b/acceptance/bundle/bitmap/presence/databricks.yml new file mode 100644 index 00000000000..8a72a8522da --- /dev/null +++ b/acceptance/bundle/bitmap/presence/databricks.yml @@ -0,0 +1,90 @@ +bundle: + name: test-bundle + +variables: + scalar_var: + description: a variable + default: abc + complex_var: + type: complex + default: + key: value + flag: + default: true + +# Known gap: an explicit false on an omitempty bool of a CLI-defined struct (11 +# such fields, all without ForceSendFields) is dropped when the loader syncs typed +# config back to dyn, so only "experimental" itself is recorded here. SDK bools +# keep it (see disable_auto_optimization below). +experimental: + use_legacy_run_as: false + +presets: + name_prefix: dev_ + pipelines_development: false + +run_as: + service_principal_name: sp-1234 + +artifacts: + # One artifact with a build command and one with files only, so each + # per-artifact flag records both outcomes. + with_build: + type: whl + build: "true" + with_files: + type: whl + files: + - source: wheels/*.whl + +resources: + jobs: + my_job: + name: My Job + description: "escaped $${var.scalar_var}" + timeout_seconds: 0 + email_notifications: {} + parameters: [] + tags: + team: data + "a.b": c + # Unresolved when the bitmap snapshots the config: present, with no value bit. + notification_settings: + no_alert_for_skipped_runs: ${var.flag} + # true here and false in other_job: both value bits are set. + queue: + enabled: true + tasks: + - task_key: a + # SDK bool with omitempty: an explicit false is kept via ForceSendFields. + disable_auto_optimization: false + notebook_task: + notebook_path: ./notebook.py + - task_key: b + depends_on: + - task_key: a + notebook_task: + notebook_path: ./notebook.py + other_job: + name: Other Job + queue: + enabled: false + clusters: + # lifecycle.started is a *bool, so the explicit false is kept: true on one cluster + # and false on the other sets both value bits. + started_cluster: + cluster_name: started + lifecycle: + started: true + stopped_cluster: + cluster_name: stopped + lifecycle: + started: false + +targets: + dev: + default: true + resources: + jobs: + my_job: + max_concurrent_runs: 2 diff --git a/acceptance/bundle/bitmap/presence/invalid/databricks.yml b/acceptance/bundle/bitmap/presence/invalid/databricks.yml new file mode 100644 index 00000000000..cb7920d4386 --- /dev/null +++ b/acceptance/bundle/bitmap/presence/invalid/databricks.yml @@ -0,0 +1,5 @@ +bundle: + name: test-bundle + +artifacts: + broken: diff --git a/acceptance/bundle/bitmap/presence/notebook.py b/acceptance/bundle/bitmap/presence/notebook.py new file mode 100644 index 00000000000..1645e04b1de --- /dev/null +++ b/acceptance/bundle/bitmap/presence/notebook.py @@ -0,0 +1 @@ +# Databricks notebook source diff --git a/acceptance/bundle/bitmap/presence/out.bitmap.json b/acceptance/bundle/bitmap/presence/out.bitmap.json new file mode 100644 index 00000000000..e4d29527590 --- /dev/null +++ b/acceptance/bundle/bitmap/presence/out.bitmap.json @@ -0,0 +1,144 @@ +{ + "size": [SCHEMA_SIZE], + "context": 0, + "presence": { + "artifacts": { + "*": { + "build": true, + "files": { + "[*]": { + "source": true + } + }, + "type": true + } + }, + "bundle": { + "environment": true, + "name": true, + "target": true + }, + "experimental": true, + "presets": { + "name_prefix": true, + "pipelines_development": true + }, + "resources": { + "clusters": { + "*": { + "cluster_name": true, + "lifecycle": { + "started": true + } + } + }, + "jobs": { + "*": { + "description": true, + "email_notifications": true, + "max_concurrent_runs": true, + "name": true, + "notification_settings": { + "no_alert_for_skipped_runs": true + }, + "parameters": true, + "queue": { + "enabled": true + }, + "tags": { + "*": true + }, + "tasks": { + "[*]": { + "depends_on": { + "[*]": { + "task_key": true + } + }, + "disable_auto_optimization": true, + "notebook_task": { + "notebook_path": true + }, + "task_key": true + } + }, + "timeout_seconds": true + } + } + }, + "run_as": { + "service_principal_name": true + }, + "telemetry": { + "ArtifactBuildCommandIsSet": true, + "ArtifactFilesIsSet": true, + "ConfigHasDoubleDollarBrace": true, + "PresetsNamePrefixIsSet": true, + "RunAsSet": true, + "UseLegacyRunAs": true + }, + "variables": { + "*": { + "default": true, + "description": true, + "type": true + } + } + }, + "true": { + "resources": { + "clusters": { + "*": { + "lifecycle": { + "started": true + } + } + }, + "jobs": { + "*": { + "queue": { + "enabled": true + } + } + } + }, + "telemetry": { + "ArtifactBuildCommandIsSet": true, + "ArtifactFilesIsSet": true, + "ConfigHasDoubleDollarBrace": true, + "PresetsNamePrefixIsSet": true, + "RunAsSet": true + } + }, + "false": { + "presets": { + "pipelines_development": true + }, + "resources": { + "clusters": { + "*": { + "lifecycle": { + "started": true + } + } + }, + "jobs": { + "*": { + "queue": { + "enabled": true + }, + "tasks": { + "[*]": { + "disable_auto_optimization": true + } + } + } + } + }, + "telemetry": { + "ArtifactBuildCommandIsSet": true, + "ArtifactFilesIsSet": true, + "UseLegacyRunAs": true + } + } +} diff --git a/acceptance/bundle/bitmap/presence/out.bitmap.txt b/acceptance/bundle/bitmap/presence/out.bitmap.txt new file mode 100644 index 00000000000..d5d8dd70306 --- /dev/null +++ b/acceptance/bundle/bitmap/presence/out.bitmap.txt @@ -0,0 +1,62 @@ +size=[SCHEMA_SIZE] context=0 +1 variables +1 variables.* +1 variables.*.type +1 variables.*.default +1 variables.*.description +1 bundle +1 bundle.name +1 bundle.target +1 bundle.environment +1 artifacts +1 artifacts.* +1 artifacts.*.type +1 artifacts.*.files +1 artifacts.*.files[*] +1 artifacts.*.files[*].source +1 artifacts.*.build +1 resources +1 resources.jobs +1 resources.jobs.* +1 resources.jobs.*.description +1 resources.jobs.*.email_notifications +1 resources.jobs.*.max_concurrent_runs +1 resources.jobs.*.name +1 resources.jobs.*.notification_settings +1 resources.jobs.*.notification_settings.no_alert_for_skipped_runs +1 resources.jobs.*.parameters +1 resources.jobs.*.queue +T resources.jobs.*.queue.enabled +F resources.jobs.*.queue.enabled +1 resources.jobs.*.tags +1 resources.jobs.*.tags.* +1 resources.jobs.*.tasks +1 resources.jobs.*.tasks[*] +1 resources.jobs.*.tasks[*].depends_on +1 resources.jobs.*.tasks[*].depends_on[*] +1 resources.jobs.*.tasks[*].depends_on[*].task_key +F resources.jobs.*.tasks[*].disable_auto_optimization +1 resources.jobs.*.tasks[*].notebook_task +1 resources.jobs.*.tasks[*].notebook_task.notebook_path +1 resources.jobs.*.tasks[*].task_key +1 resources.jobs.*.timeout_seconds +1 resources.clusters +1 resources.clusters.* +1 resources.clusters.*.lifecycle +1 resources.clusters.*.cluster_name +T resources.clusters.*.lifecycle.started +F resources.clusters.*.lifecycle.started +1 run_as +1 run_as.service_principal_name +1 presets +1 presets.name_prefix +F presets.pipelines_development +1 experimental +T telemetry.ArtifactBuildCommandIsSet +F telemetry.ArtifactBuildCommandIsSet +T telemetry.ArtifactFilesIsSet +F telemetry.ArtifactFilesIsSet +T telemetry.PresetsNamePrefixIsSet +T telemetry.ConfigHasDoubleDollarBrace +F telemetry.UseLegacyRunAs +T telemetry.RunAsSet diff --git a/acceptance/bundle/bitmap/presence/out.test.toml b/acceptance/bundle/bitmap/presence/out.test.toml new file mode 100644 index 00000000000..a927a5fbc06 --- /dev/null +++ b/acceptance/bundle/bitmap/presence/out.test.toml @@ -0,0 +1,2 @@ +Cloud = false +EnvMatrix.DMS = ["", "true"] diff --git a/acceptance/bundle/bitmap/presence/output.txt b/acceptance/bundle/bitmap/presence/output.txt new file mode 100644 index 00000000000..c7c6a6650df --- /dev/null +++ b/acceptance/bundle/bitmap/presence/output.txt @@ -0,0 +1,55 @@ + +>>> [CLI] bundle bitmap bitmap -o text + +>>> [CLI] bundle bitmap bitmap -o json + +>>> [CLI] bundle bitmap bitmap + +>>> [CLI] bundle bitmap decode + +>>> [CLI] bundle bitmap decode -o json + +>>> [CLI] bundle bitmap decode -o compressed + +>>> uv run --isolated --no-project --reinstall-package databricks-bundles --with [DATABRICKS_BUNDLES_WHEEL] -q python -m databricks.bundles._bitmap + +>>> [CLI] bundle bitmap update-schema --validate + +=== decode rejects input that is not an encoded bitmap + +>>> musterr [CLI] bundle bitmap decode +Error: base64: illegal base64 data at input byte 3 + +=== -o accepts compressed, text and json + +>>> musterr [CLI] bundle bitmap bitmap -o yaml +Error: invalid argument "yaml" for "-o, --output" flag: accepted values are compressed, text and json + +Usage: + databricks bundle bitmap bitmap [flags] + +Flags: + -h, --help help for bitmap + -o, --output format output format: + compressed: base64 of the DEFLATE-compressed wire format + text: a "size=N context=C" header, then one " " line per + set field: "T" or "F" for a boolean field holding that value, "1" + for any other field; unset fields are omitted + json: size, context, and trees of the fields present ("presence") and of + the boolean fields seen holding "true" and "false" (default compressed) + +Global Flags: + --debug enable debug logging + -p, --profile string ~/.databrickscfg profile + -t, --target string bundle target to use (if applicable) + --var strings set values for variables defined in bundle config. Example: --var="foo=bar" + + +=== An invalid bundle fails instead of printing a bitmap + +>>> musterr [CLI] bundle bitmap bitmap +Error: Artifact not properly configured + in databricks.yml:5:10 + +please specify artifact properties + diff --git a/acceptance/bundle/bitmap/presence/script b/acceptance/bundle/bitmap/presence/script new file mode 100644 index 00000000000..2b5486ac061 --- /dev/null +++ b/acceptance/bundle/bitmap/presence/script @@ -0,0 +1,35 @@ +# The size grows with every field appended to the schema; replacing it keeps these goldens +# stable while still asserting that the bitmap covers the whole schema (../full records it). +add_repl "$($CLI bundle bitmap schema | wc -l | tr -d ' ')" SCHEMA_SIZE + +# One line per set field ("1", or "T"/"F" for a bool) after a size/context header. +trace $CLI bundle bitmap bitmap -o text > out.bitmap.txt +trace $CLI bundle bitmap bitmap -o json > out.bitmap.json + +# The encoded bitmap decodes back to the same fields, with the CLI and with the +# self-contained decoder in databricks-bundles. --reinstall-package: the wheel's +# version does not change with the code, and uv would reuse a cached install. +trace $CLI bundle bitmap bitmap > bitmap.b64 +trace $CLI bundle bitmap decode < bitmap.b64 > decoded.txt +diff.py out.bitmap.txt decoded.txt +trace $CLI bundle bitmap decode -o json < bitmap.b64 > decoded.json +diff.py out.bitmap.json decoded.json +# Encoding is deterministic, so re-encoding a decoded bitmap gives the same bytes. +trace $CLI bundle bitmap decode -o compressed < bitmap.b64 > recoded.b64 +diff.py bitmap.b64 recoded.b64 +trace uv run --isolated --no-project --reinstall-package databricks-bundles --with "$DATABRICKS_BUNDLES_WHEEL" -q python -m databricks.bundles._bitmap < bitmap.b64 > decoded-python.txt +diff.py out.bitmap.txt decoded-python.txt + +trace $CLI bundle bitmap update-schema --validate + +title "decode rejects input that is not an encoded bitmap\n" +echo not-a-bitmap | trace musterr $CLI bundle bitmap decode + +title "-o accepts compressed, text and json\n" +trace musterr $CLI bundle bitmap bitmap -o yaml +# The message comes from Python's base64 module and varies by version, so it is logged, not diffed. +echo not-a-bitmap | trace musterr uv run --isolated --no-project --reinstall-package databricks-bundles --with "$DATABRICKS_BUNDLES_WHEEL" -q python -m databricks.bundles._bitmap 2> LOG.decode_python + +title "An invalid bundle fails instead of printing a bitmap\n" +cd invalid +trace musterr $CLI bundle bitmap bitmap diff --git a/acceptance/bundle/bitmap/presence/test.toml b/acceptance/bundle/bitmap/presence/test.toml new file mode 100644 index 00000000000..236eb727dd6 --- /dev/null +++ b/acceptance/bundle/bitmap/presence/test.toml @@ -0,0 +1,2 @@ +# Scratch files of the round-trip check; out.bitmap.txt and out.bitmap.json are the goldens. +Ignore = [".databricks", "bitmap.b64", "recoded.b64", "decoded.txt", "decoded.json", "decoded-python.txt"] diff --git a/acceptance/bundle/bitmap/presence/wheels/test_bundle-0.1-py3-none-any.whl b/acceptance/bundle/bitmap/presence/wheels/test_bundle-0.1-py3-none-any.whl new file mode 100644 index 00000000000..e69de29bb2d diff --git a/acceptance/bundle/invariant/validate_bitmap/out.test.toml b/acceptance/bundle/invariant/validate_bitmap/out.test.toml new file mode 100644 index 00000000000..605c7888391 --- /dev/null +++ b/acceptance/bundle/invariant/validate_bitmap/out.test.toml @@ -0,0 +1,70 @@ +Cloud = false +EnvMatrix.DMS = [] +EnvMatrix.INPUT_CONFIG = [ + "alert.yml.tmpl", + "app.yml.tmpl", + "catalog.yml.tmpl", + "catalog_optional_fields.yml.tmpl", + "cluster.yml.tmpl", + "cluster_apply_policy_default_values.yml.tmpl", + "cluster_libraries.yml.tmpl", + "cluster_policy.yml.tmpl", + "dashboard.yml.tmpl", + "job_apply_policy_default_values_job_cluster.yml.tmpl", + "job_apply_policy_default_values_task_cluster.yml.tmpl", + "job_apply_policy_default_values_for_each_task.yml.tmpl", + "data_quality_monitor.yml.tmpl", + "database_catalog.yml.tmpl", + "database_instance.yml.tmpl", + "experiment.yml.tmpl", + "external_location.yml.tmpl", + "feature.yml.tmpl", + "genie_space.yml.tmpl", + "instance_pool.yml.tmpl", + "job.yml.tmpl", + "job_pydabs_10_tasks.yml.tmpl", + "job_pydabs_1000_tasks.yml.tmpl", + "job_cross_resource_ref.yml.tmpl", + "job_escaped_refs.yml.tmpl", + "job_permission_ref.yml.tmpl", + "job_run.yml.tmpl", + "job_run_job_ref.yml.tmpl", + "job_table_update_trigger.yml.tmpl", + "job_with_depends_on.yml.tmpl", + "job_with_task.yml.tmpl", + "model.yml.tmpl", + "model_with_permissions.yml.tmpl", + "model_serving_endpoint.yml.tmpl", + "model_serving_endpoint_telemetry.yml.tmpl", + "pipeline.yml.tmpl", + "pipeline_allow_duplicate_names.yml.tmpl", + "pipeline_apply_policy_default_values.yml.tmpl", + "pipeline_config_dots.yml.tmpl", + "postgres_branch.yml.tmpl", + "postgres_catalog.yml.tmpl", + "postgres_data_api.yml.tmpl", + "postgres_database.yml.tmpl", + "postgres_endpoint.yml.tmpl", + "postgres_project.yml.tmpl", + "postgres_role.yml.tmpl", + "postgres_synced_table.yml.tmpl", + "registered_model.yml.tmpl", + "schema.yml.tmpl", + "schema_tf_compat.yml.tmpl", + "schema_empty_grants.yml.tmpl", + "schema_grant_ref.yml.tmpl", + "schema_uppercase_name.yml.tmpl", + "secret.yml.tmpl", + "secret_scope.yml.tmpl", + "secret_scope_default_backend_type.yml.tmpl", + "sql_warehouse.yml.tmpl", + "synced_database_table.yml.tmpl", + "uc_trailing_slash.yml.tmpl", + "vector_search_endpoint.yml.tmpl", + "vector_search_index.yml.tmpl", + "volume.yml.tmpl", + "volume_external.yml.tmpl", + "volume_path_job_ref.yml.tmpl", + "volume_uppercase_name.yml.tmpl", + "model_service.yml.tmpl" +] diff --git a/acceptance/bundle/invariant/validate_bitmap/output.txt b/acceptance/bundle/invariant/validate_bitmap/output.txt new file mode 100644 index 00000000000..7a28cb73a58 --- /dev/null +++ b/acceptance/bundle/invariant/validate_bitmap/output.txt @@ -0,0 +1 @@ +INPUT_CONFIG_OK diff --git a/acceptance/bundle/invariant/validate_bitmap/script b/acceptance/bundle/invariant/validate_bitmap/script new file mode 100644 index 00000000000..671d89cd7e6 --- /dev/null +++ b/acceptance/bundle/invariant/validate_bitmap/script @@ -0,0 +1,36 @@ +# Invariant to test: every config validates, and its bitmap survives encoding: the CLI decoder +# (text and JSON) and the databricks-bundles Python decoder (text) reproduce what the bitmap +# command prints before encoding. +# Nothing is deployed, so there is nothing to clean up. + +invariant_render + +# Validation output differs per config: log it, check for panics. +$CLI bundle validate &> LOG.validate +cat LOG.validate | contains.py '!panic:' '!internal error' > /dev/null +$CLI bundle validate -o json > LOG.validate_json 2> LOG.validate_json_err +cat LOG.validate_json_err | contains.py '!panic:' '!internal error' > /dev/null + +# Tells the fuzzer the generated config was valid; failures after this count as bugs. +echo INPUT_CONFIG_OK + +$CLI bundle bitmap bitmap -o text > LOG.bitmap_text 2> LOG.bitmap_text_err +cat LOG.bitmap_text_err | contains.py '!panic:' '!internal error' > /dev/null +# Every config names its bundle; guards against comparing two empty decodes. +cat LOG.bitmap_text | contains.py '1 bundle.name' > /dev/null + +$CLI bundle bitmap bitmap -o json > LOG.bitmap_json 2> LOG.bitmap_json_err +cat LOG.bitmap_json_err | contains.py '!panic:' '!internal error' > /dev/null + +$CLI bundle bitmap bitmap > LOG.bitmap 2> LOG.bitmap_err +cat LOG.bitmap_err | contains.py '!panic:' '!internal error' > /dev/null + +$CLI bundle bitmap decode < LOG.bitmap > LOG.bitmap_decoded +$CLI bundle bitmap decode -o json < LOG.bitmap > LOG.bitmap_decoded_json +# --reinstall-package: the wheel's version does not change with the code, and uv would reuse a +# cached install. +uv run --isolated --no-project --reinstall-package databricks-bundles --with "$DATABRICKS_BUNDLES_WHEEL" -q python -m databricks.bundles._bitmap < LOG.bitmap > LOG.bitmap_decoded_python + +diff.py LOG.bitmap_text LOG.bitmap_decoded +diff.py LOG.bitmap_json LOG.bitmap_decoded_json +diff.py LOG.bitmap_text LOG.bitmap_decoded_python diff --git a/acceptance/bundle/invariant/validate_bitmap/test.toml b/acceptance/bundle/invariant/validate_bitmap/test.toml new file mode 100644 index 00000000000..6ccc31b67aa --- /dev/null +++ b/acceptance/bundle/invariant/validate_bitmap/test.toml @@ -0,0 +1,5 @@ +# Nothing is deployed, so the local test server is enough. +Cloud = false + +# Neither validate nor the bitmap uses the deployment metadata service. +EnvMatrix.DMS = [] diff --git a/acceptance/bundle/python/telemetry/output.txt b/acceptance/bundle/python/telemetry/output.txt index 1b6ba81e813..c704d515701 100644 --- a/acceptance/bundle/python/telemetry/output.txt +++ b/acceptance/bundle/python/telemetry/output.txt @@ -68,3 +68,9 @@ Resources: 0 created, 0 changed, 0 deleted, 4 unchanged "schemas" ] } + +=== Bitmap includes resources defined in Python +>>> uv run [UV_ARGS] -q [CLI] bundle bitmap bitmap -o text +1 resources.pipelines +1 resources.pipelines.* +1 resources.pipelines.*.name diff --git a/acceptance/bundle/python/telemetry/script b/acceptance/bundle/python/telemetry/script index 311998c3e9c..7daa18be564 100644 --- a/acceptance/bundle/python/telemetry/script +++ b/acceptance/bundle/python/telemetry/script @@ -17,4 +17,9 @@ trace update_file.py databricks.yml 'python: {resources: ["resources:load_resour trace uv run $UV_ARGS -q $CLI bundle deploy print_pydabs_telemetry +# The pipeline is defined only in Python. The bitmap records it as written: +# its name, without the defaults the CLI fills in afterwards. +title "Bitmap includes resources defined in Python" +trace uv run $UV_ARGS -q $CLI bundle bitmap bitmap -o text | grep ' resources.pipelines' + rm -fr .databricks __pycache__ diff --git a/acceptance/bundle/telemetry/deploy-app-lifecycle-started/databricks.yml b/acceptance/bundle/telemetry/deploy-app-lifecycle-started/databricks.yml index 73279b89f9b..cd237f9e6e5 100644 --- a/acceptance/bundle/telemetry/deploy-app-lifecycle-started/databricks.yml +++ b/acceptance/bundle/telemetry/deploy-app-lifecycle-started/databricks.yml @@ -3,8 +3,14 @@ bundle: resources: apps: + # One app started and one stopped: app_lifecycle_started reports each value once. myapp: name: my-app source_code_path: . lifecycle: started: true + stopped_app: + name: stopped-app + source_code_path: ./stopped + lifecycle: + started: false diff --git a/acceptance/bundle/telemetry/deploy-app-lifecycle-started/output.txt b/acceptance/bundle/telemetry/deploy-app-lifecycle-started/output.txt index 4362ebba960..6b828f7b641 100644 --- a/acceptance/bundle/telemetry/deploy-app-lifecycle-started/output.txt +++ b/acceptance/bundle/telemetry/deploy-app-lifecycle-started/output.txt @@ -1,46 +1,46 @@ >>> [CLI] bundle deploy Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle/default/files... -✓ Deployment succeeded Created apps.myapp -Files: 1 uploaded, 0 deleted -Resources: 1 created, 0 changed, 0 deleted, 0 unchanged +Created apps.stopped_app +Files: 2 uploaded, 0 deleted +Resources: 2 created, 0 changed, 0 deleted, 0 unchanged >>> cat [OUTPUT_DIR]/out.requests.txt { "bool_values": [ { - "key": "local.cache.attempt", - "value": true - }, - { - "key": "local.cache.miss", - "value": true + "key": "python_wheel_wrapper_is_set", + "value": false }, { - "key": "experimental.use_legacy_run_as", + "key": "presets_name_prefix_is_set", "value": false }, { - "key": "run_as_set", - "value": false + "key": "app_lifecycle_started", + "value": true }, { - "key": "presets_name_prefix_is_set", + "key": "app_lifecycle_started", "value": false }, { - "key": "python_wheel_wrapper_is_set", + "key": "deployment_history_enabled", "value": false }, { - "key": "skip_artifact_cleanup", + "key": "immutable_snapshot_used", "value": false }, { "key": "state_path_is_shared", "value": false }, + { + "key": "dms_compat_auto", + "value": true + }, { "key": "permissions_section_set", "value": false @@ -74,31 +74,35 @@ Resources: 1 created, 0 changed, 0 deleted, 0 unchanged "value": false }, { - "key": "dms_compat_auto", - "value": true + "key": "skip_artifact_cleanup", + "value": false }, { - "key": "has_serverless_compute", + "key": "experimental.use_legacy_run_as", "value": false }, { - "key": "has_classic_job_compute", + "key": "run_as_set", "value": false }, { - "key": "has_classic_interactive_compute", + "key": "has_serverless_compute", "value": false }, { - "key": "deployment_history_enabled", + "key": "has_classic_job_compute", "value": false }, { - "key": "immutable_snapshot_used", + "key": "has_classic_interactive_compute", "value": false }, { - "key": "app_lifecycle_started", + "key": "local.cache.attempt", + "value": true + }, + { + "key": "local.cache.miss", "value": true } ] diff --git a/acceptance/bundle/telemetry/deploy-app-lifecycle-started/stopped/app.py b/acceptance/bundle/telemetry/deploy-app-lifecycle-started/stopped/app.py new file mode 100644 index 00000000000..81c2b1e610f --- /dev/null +++ b/acceptance/bundle/telemetry/deploy-app-lifecycle-started/stopped/app.py @@ -0,0 +1 @@ +print("stopped") diff --git a/acceptance/bundle/telemetry/deploy-app-lifecycle-started/test.toml b/acceptance/bundle/telemetry/deploy-app-lifecycle-started/test.toml new file mode 100644 index 00000000000..f03b652f20a --- /dev/null +++ b/acceptance/bundle/telemetry/deploy-app-lifecycle-started/test.toml @@ -0,0 +1,4 @@ +# The two apps deploy in parallel and only the started one prints its deployment +# message, which can land on either side of the stopped app's "Created" line. +# Suppressing it leaves the "Created" lines adjacent, so deploy_actions sorts them. +SuppressLines.app_deployment = '^✓ Deployment succeeded$' diff --git a/acceptance/bundle/telemetry/deploy/out.telemetry.txt b/acceptance/bundle/telemetry/deploy/out.telemetry.txt index cb92e434e30..5a8df9d4970 100644 --- a/acceptance/bundle/telemetry/deploy/out.telemetry.txt +++ b/acceptance/bundle/telemetry/deploy/out.telemetry.txt @@ -43,19 +43,7 @@ "target_count": 1, "bool_values": [ { - "key": "local.cache.attempt", - "value": true - }, - { - "key": "local.cache.miss", - "value": true - }, - { - "key": "experimental.use_legacy_run_as", - "value": false - }, - { - "key": "run_as_set", + "key": "python_wheel_wrapper_is_set", "value": false }, { @@ -63,17 +51,21 @@ "value": false }, { - "key": "python_wheel_wrapper_is_set", + "key": "deployment_history_enabled", "value": false }, { - "key": "skip_artifact_cleanup", + "key": "immutable_snapshot_used", "value": false }, { "key": "state_path_is_shared", "value": false }, + { + "key": "dms_compat_auto", + "value": true + }, { "key": "permissions_section_set", "value": false @@ -107,8 +99,16 @@ "value": false }, { - "key": "dms_compat_auto", - "value": true + "key": "skip_artifact_cleanup", + "value": false + }, + { + "key": "experimental.use_legacy_run_as", + "value": false + }, + { + "key": "run_as_set", + "value": false }, { "key": "has_serverless_compute", @@ -123,12 +123,12 @@ "value": false }, { - "key": "deployment_history_enabled", - "value": false + "key": "local.cache.attempt", + "value": true }, { - "key": "immutable_snapshot_used", - "value": false + "key": "local.cache.miss", + "value": true } ], "bundle_mode": "TYPE_UNSPECIFIED", diff --git a/acceptance/bundle/templates/default-python/classic/out.bitmap.txt b/acceptance/bundle/templates/default-python/classic/out.bitmap.txt new file mode 100644 index 00000000000..8778e923e8d --- /dev/null +++ b/acceptance/bundle/templates/default-python/classic/out.bitmap.txt @@ -0,0 +1,78 @@ +1 variables +1 variables.* +1 variables.*.default +1 variables.*.description +1 bundle +1 bundle.name +1 bundle.target +1 bundle.environment +1 bundle.mode +1 bundle.uuid +1 include +1 include[*] +1 workspace +1 workspace.host +1 artifacts +1 artifacts.* +1 artifacts.*.type +1 artifacts.*.build +1 resources +1 resources.jobs +1 resources.jobs.* +1 resources.jobs.*.job_clusters +1 resources.jobs.*.job_clusters[*] +1 resources.jobs.*.job_clusters[*].job_cluster_key +1 resources.jobs.*.job_clusters[*].new_cluster +1 resources.jobs.*.job_clusters[*].new_cluster.autoscale +1 resources.jobs.*.job_clusters[*].new_cluster.autoscale.max_workers +1 resources.jobs.*.job_clusters[*].new_cluster.autoscale.min_workers +1 resources.jobs.*.job_clusters[*].new_cluster.data_security_mode +1 resources.jobs.*.job_clusters[*].new_cluster.node_type_id +1 resources.jobs.*.job_clusters[*].new_cluster.spark_version +1 resources.jobs.*.name +1 resources.jobs.*.parameters +1 resources.jobs.*.parameters[*] +1 resources.jobs.*.parameters[*].default +1 resources.jobs.*.parameters[*].name +1 resources.jobs.*.tasks +1 resources.jobs.*.tasks[*] +1 resources.jobs.*.tasks[*].depends_on +1 resources.jobs.*.tasks[*].depends_on[*] +1 resources.jobs.*.tasks[*].depends_on[*].task_key +1 resources.jobs.*.tasks[*].job_cluster_key +1 resources.jobs.*.tasks[*].libraries +1 resources.jobs.*.tasks[*].libraries[*] +1 resources.jobs.*.tasks[*].libraries[*].whl +1 resources.jobs.*.tasks[*].notebook_task +1 resources.jobs.*.tasks[*].notebook_task.notebook_path +1 resources.jobs.*.tasks[*].pipeline_task +1 resources.jobs.*.tasks[*].pipeline_task.pipeline_id +1 resources.jobs.*.tasks[*].python_wheel_task +1 resources.jobs.*.tasks[*].python_wheel_task.entry_point +1 resources.jobs.*.tasks[*].python_wheel_task.package_name +1 resources.jobs.*.tasks[*].python_wheel_task.parameters +1 resources.jobs.*.tasks[*].python_wheel_task.parameters[*] +1 resources.jobs.*.tasks[*].task_key +1 resources.jobs.*.trigger +1 resources.jobs.*.trigger.periodic +1 resources.jobs.*.trigger.periodic.interval +1 resources.jobs.*.trigger.periodic.unit +1 resources.pipelines +1 resources.pipelines.* +1 resources.pipelines.*.environment +1 resources.pipelines.*.environment.dependencies +1 resources.pipelines.*.environment.dependencies[*] +1 resources.pipelines.*.libraries +1 resources.pipelines.*.libraries[*] +1 resources.pipelines.*.libraries[*].glob +1 resources.pipelines.*.libraries[*].glob.include +1 resources.pipelines.*.name +1 resources.pipelines.*.root_path +1 resources.pipelines.*.schema +1 presets +T presets.artifacts_dynamic_version +T telemetry.ArtifactBuildCommandIsSet +F telemetry.ArtifactFilesIsSet +T telemetry.PresetsNamePrefixIsSet +F telemetry.UseLegacyRunAs +F telemetry.RunAsSet diff --git a/acceptance/bundle/templates/default-python/classic/script b/acceptance/bundle/templates/default-python/classic/script index a1227e1fb0d..fa6049b2826 100644 --- a/acceptance/bundle/templates/default-python/classic/script +++ b/acceptance/bundle/templates/default-python/classic/script @@ -4,6 +4,10 @@ cd output/my_default_python trace $CLI bundle validate -t dev trace $CLI bundle validate -t prod +# Record which fields of this realistic template the bitmap reports as set. tail skips the +# size=N header: N grows with every field appended to the schema. +$CLI bundle bitmap bitmap -o text -t dev | tail -n +2 > ../../out.bitmap.txt + trace $CLI bundle plan -t dev trace $CLI bundle plan -t prod diff --git a/acceptance/selftest/selection/output.txt b/acceptance/selftest/selection/output.txt index 7e2c55b1c1d..2b0d00380dc 100644 --- a/acceptance/selftest/selection/output.txt +++ b/acceptance/selftest/selection/output.txt @@ -28,7 +28,7 @@ Selected 2 changed tests (limit=50, 0 not selected) === Touching an invariant config runs every invariant test, for that config only >>> selection M:acceptance/bundle/invariant/configs/job.yml.tmpl -Selected 6 changed tests (limit=50, 0 not selected) +Selected 7 changed tests (limit=50, 0 not selected) 5 ^bundle$/^invariant$/^auto-migrate$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ 5 ^bundle$/^invariant$/^continue_293$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ 5 ^bundle$/^invariant$/^delete_idempotent$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ @@ -36,11 +36,12 @@ Selected 6 changed tests (limit=50, 0 not selected) 5 ^bundle$/^invariant$/^migrate$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ 5 ^bundle$/^invariant$/^no_drift$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ 5 ^bundle$/^invariant$/^no_drift$/^DMS=true$/^INPUT_CONFIG=job\.yml\.tmpl$ + 5 ^bundle$/^invariant$/^validate_bitmap$/^INPUT_CONFIG=job\.yml\.tmpl$ === Adding one invariant config and touching another: only the new variant is new >>> selection A:acceptance/bundle/invariant/configs/pipeline.yml.tmpl M:acceptance/bundle/invariant/configs/job.yml.tmpl -Selected 12 changed tests (limit=50, 0 not selected) +Selected 14 changed tests (limit=50, 0 not selected) 10 ^bundle$/^invariant$/^auto-migrate$/^DMS=$/^INPUT_CONFIG=pipeline\.yml\.tmpl$ 10 ^bundle$/^invariant$/^continue_293$/^DMS=$/^INPUT_CONFIG=pipeline\.yml\.tmpl$ 10 ^bundle$/^invariant$/^delete_idempotent$/^DMS=$/^INPUT_CONFIG=pipeline\.yml\.tmpl$ @@ -48,6 +49,7 @@ Selected 12 changed tests (limit=50, 0 not selected) 10 ^bundle$/^invariant$/^migrate$/^DMS=$/^INPUT_CONFIG=pipeline\.yml\.tmpl$ 10 ^bundle$/^invariant$/^no_drift$/^DMS=$/^INPUT_CONFIG=pipeline\.yml\.tmpl$ 10 ^bundle$/^invariant$/^no_drift$/^DMS=true$/^INPUT_CONFIG=pipeline\.yml\.tmpl$ + 10 ^bundle$/^invariant$/^validate_bitmap$/^INPUT_CONFIG=pipeline\.yml\.tmpl$ 5 ^bundle$/^invariant$/^auto-migrate$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ 5 ^bundle$/^invariant$/^continue_293$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ 5 ^bundle$/^invariant$/^delete_idempotent$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ @@ -55,15 +57,17 @@ Selected 12 changed tests (limit=50, 0 not selected) 5 ^bundle$/^invariant$/^migrate$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ 5 ^bundle$/^invariant$/^no_drift$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ 5 ^bundle$/^invariant$/^no_drift$/^DMS=true$/^INPUT_CONFIG=job\.yml\.tmpl$ + 5 ^bundle$/^invariant$/^validate_bitmap$/^INPUT_CONFIG=job\.yml\.tmpl$ === A config an invariant test excludes does not select that test >>> selection M:acceptance/bundle/invariant/configs/vector_search_index.yml.tmpl -Selected 3 changed tests (limit=50, 0 not selected) +Selected 4 changed tests (limit=50, 0 not selected) 5 ^bundle$/^invariant$/^delete_idempotent$/^DMS=$/^INPUT_CONFIG=vector_search_index\.yml\.tmpl$ 5 ^bundle$/^invariant$/^destroy_idempotent$/^DMS=$/^INPUT_CONFIG=vector_search_index\.yml\.tmpl$ 5 ^bundle$/^invariant$/^no_drift$/^DMS=$/^INPUT_CONFIG=vector_search_index\.yml\.tmpl$ 5 ^bundle$/^invariant$/^no_drift$/^DMS=true$/^INPUT_CONFIG=vector_search_index\.yml\.tmpl$ + 5 ^bundle$/^invariant$/^validate_bitmap$/^INPUT_CONFIG=vector_search_index\.yml\.tmpl$ === Renaming a fixture out of a test selects the test that lost it @@ -74,7 +78,7 @@ Selected 1 changed tests (limit=50, 0 not selected) === The limit keeps the highest scoring tests >>> selection -limit 3 A:acceptance/selftest/basic/script M:acceptance/selftest/diff/script M:acceptance/bundle/invariant/configs/job.yml.tmpl -Selected 3 changed tests (limit=3, 5 not selected) +Selected 3 changed tests (limit=3, 6 not selected) 10 ^selftest$/^basic$ 5 ^bundle$/^invariant$/^auto-migrate$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ 5 ^bundle$/^invariant$/^continue_293$/^DMS=$/^INPUT_CONFIG=job\.yml\.tmpl$ diff --git a/bundle/artifacts/build.go b/bundle/artifacts/build.go index 6c7ab622737..01fdb394b3c 100644 --- a/bundle/artifacts/build.go +++ b/bundle/artifacts/build.go @@ -10,7 +10,6 @@ import ( "github.com/databricks/cli/bundle" "github.com/databricks/cli/bundle/config" - "github.com/databricks/cli/bundle/metrics" "github.com/databricks/cli/libs/cmdio" "github.com/databricks/cli/libs/diag" "github.com/databricks/cli/libs/exec" @@ -80,7 +79,7 @@ func (m *build) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnostics { } if a.Type == "whl" && a.DynamicVersion && cacheDir != "" { - b.Metrics.AddBoolValue(metrics.ArtifactDynamicVersionIsSet, true) + b.Telemetry.ArtifactDynamicVersionIsSet.SetBool(true) for ind, artifactFile := range a.Files { patchedWheel := makePatchedWheel(ctx, cacheDir, artifactName, artifactFile.Source) log.Debugf(ctx, "Patching ind=%d artifactName=%s Source=%s patchedWheel=%s", ind, artifactName, artifactFile.Source, patchedWheel) diff --git a/bundle/artifacts/prepare.go b/bundle/artifacts/prepare.go index e285eb1ee30..8ac914b2eb8 100644 --- a/bundle/artifacts/prepare.go +++ b/bundle/artifacts/prepare.go @@ -12,7 +12,6 @@ import ( "github.com/databricks/cli/bundle" "github.com/databricks/cli/bundle/config" "github.com/databricks/cli/bundle/libraries" - "github.com/databricks/cli/bundle/metrics" "github.com/databricks/cli/libs/diag" "github.com/databricks/cli/libs/log" "github.com/databricks/cli/libs/logdiag" @@ -47,8 +46,8 @@ func (m *prepare) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnostics }) continue } - b.Metrics.AddBoolValue(metrics.ArtifactBuildCommandIsSet, artifact.BuildCommand != "") - b.Metrics.AddBoolValue(metrics.ArtifactFilesIsSet, len(artifact.Files) != 0) + b.Telemetry.ArtifactBuildCommandIsSet.SetBool(artifact.BuildCommand != "") + b.Telemetry.ArtifactFilesIsSet.SetBool(len(artifact.Files) != 0) // A `tgz` artifact with `include`/`git` is built by DABs itself in the build // phase (see artifacts.Build). `build` and `git`/`include` are mutually diff --git a/bundle/artifacts/upload.go b/bundle/artifacts/upload.go index 341c1ee632e..f7ea53e1b16 100644 --- a/bundle/artifacts/upload.go +++ b/bundle/artifacts/upload.go @@ -27,7 +27,7 @@ func (m *cleanUp) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnostics } skipArtifactsCleanup := b.Config.Experimental != nil && b.Config.Experimental.SkipArtifactCleanup - b.Metrics.AddBoolValue("skip_artifact_cleanup", skipArtifactsCleanup) + b.Telemetry.SkipArtifactCleanup = new(skipArtifactsCleanup) if skipArtifactsCleanup { log.Info(ctx, "Skip cleaning up artifacts folder") } else { diff --git a/bundle/bitmap/bitmap.go b/bundle/bitmap/bitmap.go new file mode 100644 index 00000000000..131da3ed63d --- /dev/null +++ b/bundle/bitmap/bitmap.go @@ -0,0 +1,432 @@ +// Package bitmap encodes the presence of every bundle configuration field as a +// single bit. The schema (the ordered list of field paths) is derived by +// reflecting over config.Root and recorded in schema.txt, which is embedded into +// the binary. The schema is append-only so that bit positions stay stable across +// releases: a newer binary can decode an older bitmap and vice versa. +// +// The bits describe the configuration as the user wrote it (bundle.UserConfig), +// not the result of Initialize, so defaults the CLI fills in are not counted. +package bitmap + +import ( + "bytes" + "compress/flate" + "encoding/base64" + "encoding/binary" + "fmt" + "io" + "reflect" + "strings" + + "github.com/databricks/cli/bundle/config" + "github.com/databricks/cli/libs/dyn" + "github.com/databricks/cli/libs/structs/structpath" + "github.com/databricks/cli/libs/structs/structwalk" +) + +// magic identifies a bundle telemetry bitmap. The bytes are chosen so they do +// not collide with the leading bytes of the compression formats we wrap the +// payload in (gzip 0x1f 0x8b, zlib 0x78), so a decoder can tell a raw payload +// from a compressed one. +const magic = "DBTB" + +// ContextFullBundle marks a bitmap covering the whole user-authored config. Other +// context values are reserved for narrower bitmaps in the future. +const ContextFullBundle uint16 = 0 + +// headerSize is the size of the fixed header: magic (4) + size (4) + context (2). +const headerSize = 10 + +// EmbeddedSchema returns the schema baked into the binary at build time. +func EmbeddedSchema() []string { + return parseSchema(schemaBytes) +} + +// telemetryPrefix namespaces the internal telemetry struct's fields in the +// schema so they never collide with config.Root paths. +const telemetryPrefix = "telemetry" + +// Every bool field has two value entries after its presence entry, so the +// bitmap records true and false apart. A present field with neither value bit +// holds an unresolved variable reference. +const ( + trueSuffix = "=true" + falseSuffix = "=false" +) + +// listSuffix marks a list element in a schema path. +const listSuffix = "[*]" + +// WalkSchema reflects over config.Root and the internal telemetry struct and +// returns the ordered list of field paths, one per field, with map keys +// rendered as ".*" and slice elements as "[*]", and a "=true" and "=false" +// entry after each bool field. The telemetry struct's fields are namespaced +// under "telemetry.". This is the freshly computed schema; the +// committed schema.txt is a prefix of it plus any fields since removed. +// +// telemetryType is the internal telemetry struct type (bundle.Telemetry), +// passed in so this package does not import the bundle package. +func WalkSchema(telemetryType reflect.Type) ([]string, error) { + paths, err := walkTypePaths(reflect.TypeFor[config.Root](), "", isPruned) + if err != nil { + return nil, err + } + tmPaths, err := walkTypePaths(telemetryType, telemetryPrefix+".", nil) + if err != nil { + return nil, err + } + return append(paths, tmPaths...), nil +} + +// walkTypePaths walks a struct type and returns each field path, prefixed and +// with pruned subtrees removed. prune may be nil. +func walkTypePaths(t reflect.Type, prefix string, prune func(string) bool) ([]string, error) { + var paths []string + err := structwalk.WalkType(t, func(path *structpath.PatternNode, typ reflect.Type, _ *reflect.StructField) bool { + if path == nil { + return true + } + p := path.String() + if prune != nil && prune(p) { + return false + } + paths = append(paths, prefix+p) + if typ.Kind() == reflect.Pointer { + typ = typ.Elem() + } + if typ.Kind() == reflect.Bool || typ.Implements(boolValuesType) { + paths = append(paths, prefix+p+trueSuffix, prefix+p+falseSuffix) + } + return true + }) + if err != nil { + return nil, err + } + return paths, nil +} + +// isPruned reports whether a schema path should be excluded from the bitmap. +func isPruned(p string) bool { + // targets/environments are per-target overrides that are merged away and set + // to nil by the SelectTarget mutator, so they are never present at deploy + // time and would only duplicate the merged tree. __locations is an + // output-only internal field. + switch { + case p == "targets" || strings.HasPrefix(p, "targets."): + return true + case p == "environments" || strings.HasPrefix(p, "environments."): + return true + case p == "__locations" || strings.HasPrefix(p, "__locations."): + return true + } + return false +} + +// Merge appends to old any paths in fresh that are not already present, keeping +// old's order intact. Paths removed from config.Root remain in the merged schema +// so that existing bit positions never shift. It returns the merged schema and +// the list of newly added paths. +func Merge(old, fresh []string) (merged, added []string) { + seen := make(map[string]struct{}, len(old)) + for _, p := range old { + seen[p] = struct{}{} + } + merged = append(merged, old...) + for _, p := range fresh { + if _, ok := seen[p]; ok { + continue + } + seen[p] = struct{}{} + merged = append(merged, p) + added = append(added, p) + } + return merged, added +} + +// Bits returns a bit per schema entry: true when that config field or telemetry +// flag is present, or for a "=true"/"=false" entry, when the bool holds that +// value. The config is walked as its dyn.Value rather than the typed struct so +// that presence is exactly what the config holds: an interface-typed field +// (variables.*.default) or an empty container ({} or []) counts, and a zero +// value counts only when it is written out. The telemetry struct's paths are +// namespaced under "telemetry.". +func Bits(cfg dyn.Value, telemetry any, schema []string) ([]bool, error) { + index := indexSchema(schema) + bits := make([]bool, len(schema)) + if err := markTelemetry(telemetry, index, bits); err != nil { + return nil, err + } + markChildren(cfg, "", index, bits) + return bits, nil +} + +// boolValues is implemented by bundle.BoolSet, a telemetry field that records +// each value it took. It is matched by method so that this package does not +// import the bundle package. +type boolValues interface{ Values() []bool } + +var boolValuesType = reflect.TypeFor[boolValues]() + +// markTelemetry sets the bits of the measured telemetry fields: the presence +// bit and the bit of each value taken. A bool counts only when true. +func markTelemetry(telemetry any, index map[string]int, bits []bool) error { + v := reflect.ValueOf(telemetry) + for i := range v.NumField() { + name := v.Type().Field(i).Name + var values []bool + switch f := v.Field(i).Interface().(type) { + case bool: + if f { + values = []bool{true} + } + case *bool: + if f != nil { + values = []bool{*f} + } + case boolValues: + values = f.Values() + default: + return fmt.Errorf("telemetry field %s has unsupported type %s", name, v.Field(i).Type()) + } + path := joinField(telemetryPrefix, name) + for _, value := range values { + setBit(index, bits, path) + setBit(index, bits, path+valueSuffix(value)) + } + } + return nil +} + +// markChildren marks every child of v whose schema pattern is known. A map key +// resolves to the struct field of that name when the schema has one and to the +// ".*" wildcard otherwise; a sequence element resolves to "[*]". +func markChildren(v dyn.Value, pattern string, index map[string]int, bits []bool) { + if m, ok := v.AsMap(); ok { + for _, pair := range m.Pairs() { + child := joinField(pattern, pair.Key.MustString()) + if _, ok := index[child]; !ok { + child = joinField(pattern, "*") + } + mark(pair.Value, child, index, bits) + } + } + if s, ok := v.AsSequence(); ok { + for _, elem := range s { + mark(elem, pattern+listSuffix, index, bits) + } + } +} + +// mark sets the bit for a present (non-null) value and recurses into it. A +// pattern outside the schema is not descended into: that covers the pruned +// subtrees and the contents of interface-typed fields, whose own bit is set. +func mark(v dyn.Value, pattern string, index map[string]int, bits []bool) { + i, ok := index[pattern] + if !ok || v.Kind() == dyn.KindNil { + return + } + bits[i] = true + if value, ok := v.AsBool(); ok { + setBit(index, bits, pattern+valueSuffix(value)) + } + markChildren(v, pattern, index, bits) +} + +// setBit sets the bit of schema path p, if the schema has it. +func setBit(index map[string]int, bits []bool, p string) { + if i, ok := index[p]; ok { + bits[i] = true + } +} + +// valueSuffix returns the suffix of the schema entry for a bool value. +func valueSuffix(value bool) string { + if value { + return trueSuffix + } + return falseSuffix +} + +func joinField(pattern, key string) string { + if pattern == "" { + return key + } + return pattern + "." + key +} + +// Text renders the bitmap as a "size=N context=C" header followed by one +// " " line per set field in schema order: "T" or "F" for a bool +// field holding that value, "1" for any other present field. A bool shown as "1" +// holds an unresolved variable reference; one shown as both "T" and "F" has both +// values under a wildcard. Unset fields are omitted. bits may be shorter than +// schema (a bitmap from an older CLI) but not longer. +func Text(schema []string, bits []bool, context uint16) []string { + index := indexSchema(schema[:len(bits)]) + lines := []string{fmt.Sprintf("size=%d context=%d", len(bits), context)} + for i, p := range schema[:len(bits)] { + if !bits[i] { + continue + } + if field, ok := strings.CutSuffix(p, trueSuffix); ok { + lines = append(lines, "T "+field) + continue + } + if field, ok := strings.CutSuffix(p, falseSuffix); ok { + lines = append(lines, "F "+field) + continue + } + // A bool with a value bit is shown by its value line instead. + if isSet(index, bits, p+trueSuffix) || isSet(index, bits, p+falseSuffix) { + continue + } + lines = append(lines, "1 "+p) + } + return lines +} + +// JSON is the JSON rendering of a bitmap. Presence, True and False are trees +// keyed by path segment ("*" for any map key, "[*]" for any list element) with +// true leaves: Presence holds every set field, True and False the bool fields +// seen with that value. A field with set children is a subtree rather than a +// leaf, since a child is only set when its parent is. +type JSON struct { + Size int `json:"size"` + Context uint16 `json:"context"` + Presence map[string]any `json:"presence"` + True map[string]any `json:"true"` + False map[string]any `json:"false"` +} + +// ToJSON renders bits as JSON. bits may be shorter than schema but not longer. +func ToJSON(schema []string, bits []bool, context uint16) JSON { + out := JSON{ + Size: len(bits), + Context: context, + Presence: map[string]any{}, + True: map[string]any{}, + False: map[string]any{}, + } + for i, p := range schema[:len(bits)] { + if !bits[i] { + continue + } + tree := out.Presence + if field, ok := strings.CutSuffix(p, trueSuffix); ok { + tree, p = out.True, field + } else if field, ok := strings.CutSuffix(p, falseSuffix); ok { + tree, p = out.False, field + } + insertPath(tree, treeKeys(p)) + } + return out +} + +// treeKeys splits a schema path into its segments: "a.*.b[*].c" becomes +// a, *, b, [*], c. Schema paths only contain field names, ".*" and "[*]". +func treeKeys(p string) []string { + var keys []string + for part := range strings.SplitSeq(p, ".") { + name, lists := strings.CutSuffix(part, listSuffix) + keys = append(keys, name) + if lists { + keys = append(keys, listSuffix) + } + } + return keys +} + +// insertPath adds a true leaf at keys, turning a leaf on the way into a subtree. +func insertPath(tree map[string]any, keys []string) { + for _, k := range keys[:len(keys)-1] { + child, ok := tree[k].(map[string]any) + if !ok { + child = map[string]any{} + tree[k] = child + } + tree = child + } + if _, ok := tree[keys[len(keys)-1]]; !ok { + tree[keys[len(keys)-1]] = true + } +} + +func isSet(index map[string]int, bits []bool, p string) bool { + i, ok := index[p] + return ok && bits[i] +} + +// indexSchema maps each schema path to its bit position. +func indexSchema(schema []string) map[string]int { + index := make(map[string]int, len(schema)) + for i, p := range schema { + index[p] = i + } + return index +} + +// Encode packs bits into the wire format (magic, size, context, bitmap), +// compresses it with DEFLATE, and base64-encodes the result. DEFLATE is used +// rather than gzip because it has no timestamp, keeping the output deterministic. +func Encode(bits []bool, context uint16) (string, error) { + n := len(bits) + raw := make([]byte, headerSize+(n+7)/8) + copy(raw, magic) + binary.BigEndian.PutUint32(raw[4:], uint32(n)) + binary.BigEndian.PutUint16(raw[8:], context) + for i, set := range bits { + if set { + raw[headerSize+i/8] |= 1 << uint(7-i%8) + } + } + + var buf bytes.Buffer + w, err := flate.NewWriter(&buf, flate.BestCompression) + if err != nil { + return "", err + } + if _, err := w.Write(raw); err != nil { + return "", err + } + if err := w.Close(); err != nil { + return "", err + } + return base64.StdEncoding.EncodeToString(buf.Bytes()), nil +} + +// Decode reverses Encode: it base64-decodes, inflates, validates the header, and +// returns the bits and context. +func Decode(encoded string) (bits []bool, context uint16, err error) { + compressed, err := base64.StdEncoding.DecodeString(encoded) + if err != nil { + return nil, 0, fmt.Errorf("base64: %w", err) + } + raw, err := io.ReadAll(flate.NewReader(bytes.NewReader(compressed))) + if err != nil { + return nil, 0, fmt.Errorf("inflate: %w", err) + } + if len(raw) < headerSize { + return nil, 0, fmt.Errorf("payload too short: %d bytes", len(raw)) + } + if string(raw[:4]) != magic { + return nil, 0, fmt.Errorf("bad magic %q", raw[:4]) + } + n := binary.BigEndian.Uint32(raw[4:]) + context = binary.BigEndian.Uint16(raw[8:]) + // Compare in uint64 so a corrupt size near 2^32 cannot overflow int on 32-bit platforms. + if uint64(len(raw)-headerSize) != (uint64(n)+7)/8 { + return nil, 0, fmt.Errorf("payload size mismatch: %d bits, %d bytes", n, len(raw)) + } + bits = make([]bool, n) + for i := range bits { + bits[i] = raw[headerSize+i/8]&(1< 0 { + assert.Equal(t, bits, decoded) + } + } + } +} + +func TestEncodeBitOrder(t *testing.T) { + encoded, err := Encode([]bool{true, false, false, false, false, false, false, true, true}, ContextFullBundle) + require.NoError(t, err) + + compressed, err := base64.StdEncoding.DecodeString(encoded) + require.NoError(t, err) + var raw bytes.Buffer + _, err = raw.ReadFrom(flate.NewReader(bytes.NewReader(compressed))) + require.NoError(t, err) + + assert.Equal(t, []byte{'D', 'B', 'T', 'B', 0, 0, 0, 9, 0, 0, 0b1000_0001, 0b1000_0000}, raw.Bytes()) +} + +// deflateBase64 wraps a raw payload the way Encode does, so Decode's header +// checks can be exercised on hand-built payloads. +func deflateBase64(t *testing.T, raw []byte) string { + var buf bytes.Buffer + w, err := flate.NewWriter(&buf, flate.BestCompression) + require.NoError(t, err) + _, err = w.Write(raw) + require.NoError(t, err) + require.NoError(t, w.Close()) + return base64.StdEncoding.EncodeToString(buf.Bytes()) +} + +func header(magic string, size uint32) []byte { + raw := make([]byte, headerSize) + copy(raw, magic) + binary.BigEndian.PutUint32(raw[4:], size) + return raw +} + +func TestDecodeErrors(t *testing.T) { + for _, tc := range []struct { + name string + encoded string + err string + }{ + {"bad base64", "not-valid-base64!!!", "base64"}, + {"not deflate", base64.StdEncoding.EncodeToString([]byte{0xff, 0xff}), "inflate"}, + {"short header", deflateBase64(t, []byte("DBTB")), "payload too short"}, + {"bad magic", deflateBase64(t, append(header("XXXX", 1), 0x80)), "bad magic"}, + {"missing bitmap bytes", deflateBase64(t, header(magic, 9)), "payload size mismatch"}, + {"extra bitmap bytes", deflateBase64(t, append(header(magic, 1), 0x80, 0x00)), "payload size mismatch"}, + {"size near 2^32", deflateBase64(t, header(magic, 0xFFFFFFFF)), "payload size mismatch"}, + } { + t.Run(tc.name, func(t *testing.T) { + _, _, err := Decode(tc.encoded) + assert.ErrorContains(t, err, tc.err) + }) + } +} + +func BenchmarkBits(b *testing.B) { + schema := EmbeddedSchema() + root, diags := config.LoadFromBytes("databricks.yml", []byte(` +bundle: + name: bench +resources: + jobs: + j: + name: My Job + tags: {team: data, env: prod} + tasks: + - task_key: a + notebook_task: {notebook_path: /nb} + - task_key: b + new_cluster: {num_workers: 2} +`)) + require.Empty(b, diags) + var tm bundle.Telemetry + tm.SelectUsed = true + b.ReportAllocs() + for b.Loop() { + _, err := Bits(root.Value(), tm, schema) + if err != nil { + b.Fatal(err) + } + } +} + +func BenchmarkWalkSchema(b *testing.B) { + b.ReportAllocs() + for b.Loop() { + _, err := WalkSchema(reflect.TypeFor[bundle.Telemetry]()) + if err != nil { + b.Fatal(err) + } + } +} + +func TestText(t *testing.T) { + schema := []string{ + "bundle", "bundle.name", + "flag", "flag=true", "flag=false", + "jobs.*.enabled", "jobs.*.enabled=true", "jobs.*.enabled=false", + "ref", "ref=true", "ref=false", + "later", + } + for _, tc := range []struct { + name string + set []string + want []string + }{ + {"nothing set", nil, nil}, + {"field", []string{"bundle", "bundle.name"}, []string{"1 bundle", "1 bundle.name"}}, + {"bool true", []string{"flag", "flag=true"}, []string{"T flag"}}, + {"bool false", []string{"flag", "flag=false"}, []string{"F flag"}}, + {"both values under a wildcard", []string{"jobs.*.enabled", "jobs.*.enabled=true", "jobs.*.enabled=false"}, []string{"T jobs.*.enabled", "F jobs.*.enabled"}}, + {"unresolved reference", []string{"ref"}, []string{"1 ref"}}, + } { + t.Run(tc.name, func(t *testing.T) { + want := append([]string{"size=12 context=0"}, tc.want...) + assert.Equal(t, want, Text(schema, bitsFor(schema, tc.set), ContextFullBundle)) + }) + } + + // A bitmap from an older CLI has fewer bits; the rest of the schema is unset. + assert.Equal(t, []string{"size=1 context=7", "1 bundle"}, Text(schema, []bool{true}, 7)) +} + +func TestToJSON(t *testing.T) { + schema := []string{ + "bundle", "bundle.name", + "jobs", "jobs.*", "jobs.*.tasks", "jobs.*.tasks[*]", + "jobs.*.tasks[*].enabled", "jobs.*.tasks[*].enabled=true", "jobs.*.tasks[*].enabled=false", + "later", + } + tasks := func(leaf any) map[string]any { + return map[string]any{"jobs": map[string]any{"*": map[string]any{"tasks": leaf}}} + } + enabled := tasks(map[string]any{"[*]": map[string]any{"enabled": true}}) + for _, tc := range []struct { + name string + set []string + presence, isTrue, isF map[string]any + }{ + {"nothing set", nil, map[string]any{}, map[string]any{}, map[string]any{}}, + { + "a parent with set children is a subtree", + []string{"bundle", "bundle.name"}, + map[string]any{"bundle": map[string]any{"name": true}}, + map[string]any{}, + map[string]any{}, + }, + { + "a set field without set children is a leaf", + []string{"jobs", "jobs.*", "jobs.*.tasks"}, + tasks(true), + map[string]any{}, + map[string]any{}, + }, + { + "bool false", + []string{"jobs", "jobs.*", "jobs.*.tasks", "jobs.*.tasks[*]", "jobs.*.tasks[*].enabled", "jobs.*.tasks[*].enabled=false"}, + enabled, + map[string]any{}, + enabled, + }, + { + "both values under a wildcard", + []string{"jobs", "jobs.*", "jobs.*.tasks", "jobs.*.tasks[*]", "jobs.*.tasks[*].enabled", "jobs.*.tasks[*].enabled=true", "jobs.*.tasks[*].enabled=false"}, + enabled, enabled, enabled, + }, + } { + t.Run(tc.name, func(t *testing.T) { + got := ToJSON(schema, bitsFor(schema, tc.set), ContextFullBundle) + assert.Equal(t, JSON{Size: len(schema), Presence: tc.presence, True: tc.isTrue, False: tc.isF}, got) + }) + } + + // A bitmap from an older CLI has fewer bits; the rest of the schema is unset. + got := ToJSON(schema, []bool{true}, 7) + assert.Equal(t, JSON{Size: 1, Context: 7, Presence: map[string]any{"bundle": true}, True: map[string]any{}, False: map[string]any{}}, got) +} + +// TestToJSONIsLossless checks that every entry of the embedded schema maps to +// its own tree node, so the JSON form keeps every set bit. +func TestToJSONIsLossless(t *testing.T) { + schema := EmbeddedSchema() + bits := make([]bool, len(schema)) + for i := range bits { + bits[i] = true + } + got := ToJSON(schema, bits, ContextFullBundle) + + var presence, trueValues, falseValues int + for _, p := range schema { + switch { + case strings.HasSuffix(p, trueSuffix): + trueValues++ + case strings.HasSuffix(p, falseSuffix): + falseValues++ + default: + presence++ + } + } + // "telemetry" namespaces the telemetry fields but is not a schema entry. + assert.Equal(t, presence+1, countNodes(got.Presence)) + // A bool field has no children, so each value entry is a leaf. + assert.Equal(t, trueValues, countLeaves(got.True)) + assert.Equal(t, falseValues, countLeaves(got.False)) +} + +func countNodes(tree map[string]any) int { + n := len(tree) + for _, v := range tree { + if child, ok := v.(map[string]any); ok { + n += countNodes(child) + } + } + return n +} + +func countLeaves(tree map[string]any) int { + n := 0 + for _, v := range tree { + if child, ok := v.(map[string]any); ok { + n += countLeaves(child) + } else { + n++ + } + } + return n +} + +// bitsFor returns bits with the given schema paths set. +func bitsFor(schema, set []string) []bool { + bits := make([]bool, len(schema)) + for _, p := range set { + bits[slices.Index(schema, p)] = true + } + return bits +} diff --git a/bundle/bitmap/embed.go b/bundle/bitmap/embed.go new file mode 100644 index 00000000000..c5cb9c5bbd2 --- /dev/null +++ b/bundle/bitmap/embed.go @@ -0,0 +1,6 @@ +package bitmap + +import _ "embed" + +//go:embed schema.txt +var schemaBytes []byte diff --git a/bundle/bitmap/genpython/main.go b/bundle/bitmap/genpython/main.go new file mode 100644 index 00000000000..5fadc18ec0d --- /dev/null +++ b/bundle/bitmap/genpython/main.go @@ -0,0 +1,71 @@ +// Command genpython embeds the bitmap schema into the databricks-bundles Python +// decoder (python/databricks/bundles/_bitmap/_schema.py), compressed. It +// compresses in Go rather than in Python because Python builds link different +// zlib implementations whose output differs, while compress/flate is the same +// everywhere, so the generated file does not depend on who ran the generator. +package main + +import ( + "bytes" + "compress/flate" + "encoding/base64" + "fmt" + "os" + "strings" + + "github.com/databricks/cli/bundle/bitmap" +) + +const header = `# Code generated by bundle/bitmap/genpython from bundle/bitmap/schema.txt. DO NOT EDIT. +# Regenerate with './task generate-bitmap-schema'. + +import base64 +import zlib + +# Raw DEFLATE of the schema, one field path per line. +_COMPRESSED = ( +` + +const footer = `) + +SCHEMA: list[str] = zlib.decompress(base64.b64decode(_COMPRESSED), -15).decode().split() +` + +// lineWidth keeps each string literal within the repo's ruff line length. +const lineWidth = 100 + +func main() { + if len(os.Args) != 2 { + fmt.Fprintln(os.Stderr, "usage: genpython OUTPUT_PY") + os.Exit(2) + } + if err := generate(os.Args[1]); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } +} + +func generate(path string) error { + var compressed bytes.Buffer + w, err := flate.NewWriter(&compressed, flate.BestCompression) + if err != nil { + return err + } + if _, err := w.Write([]byte(strings.Join(bitmap.EmbeddedSchema(), "\n") + "\n")); err != nil { + return err + } + if err := w.Close(); err != nil { + return err + } + encoded := base64.StdEncoding.EncodeToString(compressed.Bytes()) + + var out strings.Builder + out.WriteString(header) + for len(encoded) > 0 { + n := min(lineWidth, len(encoded)) + fmt.Fprintf(&out, " %q\n", encoded[:n]) + encoded = encoded[n:] + } + out.WriteString(footer) + return os.WriteFile(path, []byte(out.String()), 0o644) +} diff --git a/bundle/bitmap/schema.txt b/bundle/bitmap/schema.txt new file mode 100644 index 00000000000..5fabb3e02e8 --- /dev/null +++ b/bundle/bitmap/schema.txt @@ -0,0 +1,5184 @@ +variables +variables.* +variables.*.type +variables.*.default +variables.*.description +variables.*.sensitive +variables.*.sensitive=true +variables.*.sensitive=false +variables.*.value +variables.*.lookup +variables.*.lookup.alert +variables.*.lookup.cluster_policy +variables.*.lookup.cluster +variables.*.lookup.dashboard +variables.*.lookup.instance_pool +variables.*.lookup.job +variables.*.lookup.metastore +variables.*.lookup.notification_destination +variables.*.lookup.pipeline +variables.*.lookup.query +variables.*.lookup.service_principal +variables.*.lookup.warehouse +bundle +bundle.name +bundle.target +bundle.environment +bundle.terraform +bundle.terraform.exec_path +bundle.force +bundle.force=true +bundle.force=false +bundle.git +bundle.git.branch +bundle.git.origin_url +bundle.git.commit +bundle.git.bundle_root_path +bundle.git.actual_branch +bundle.mode +bundle.compute_id +bundle.cluster_id +bundle.engine +bundle.deployment +bundle.deployment.fail_on_active_runs +bundle.deployment.fail_on_active_runs=true +bundle.deployment.fail_on_active_runs=false +bundle.deployment.lock +bundle.deployment.lock.enabled +bundle.deployment.lock.enabled=true +bundle.deployment.lock.enabled=false +bundle.deployment.lock.force +bundle.deployment.lock.force=true +bundle.deployment.lock.force=false +bundle.deployment.deployment_id +bundle.deployment.latest_version_id +bundle.databricks_cli_version +bundle.uuid +include +include[*] +workspace +workspace.host +workspace.profile +workspace.auth_type +workspace.metadata_service_url +workspace.client_id +workspace.google_service_account +workspace.azure_workspace_resource_id +workspace.azure_use_msi +workspace.azure_use_msi=true +workspace.azure_use_msi=false +workspace.azure_client_id +workspace.azure_tenant_id +workspace.azure_environment +workspace.azure_login_app_id +workspace.experimental_is_unified_host +workspace.experimental_is_unified_host=true +workspace.experimental_is_unified_host=false +workspace.account_id +workspace.workspace_id +workspace.current_user +workspace.current_user.short_name +workspace.current_user.domain_friendly_name +workspace.current_user.active +workspace.current_user.active=true +workspace.current_user.active=false +workspace.current_user.displayName +workspace.current_user.emails +workspace.current_user.emails[*] +workspace.current_user.emails[*].display +workspace.current_user.emails[*].primary +workspace.current_user.emails[*].primary=true +workspace.current_user.emails[*].primary=false +workspace.current_user.emails[*].$ref +workspace.current_user.emails[*].type +workspace.current_user.emails[*].value +workspace.current_user.entitlements +workspace.current_user.entitlements[*] +workspace.current_user.entitlements[*].display +workspace.current_user.entitlements[*].primary +workspace.current_user.entitlements[*].primary=true +workspace.current_user.entitlements[*].primary=false +workspace.current_user.entitlements[*].$ref +workspace.current_user.entitlements[*].type +workspace.current_user.entitlements[*].value +workspace.current_user.externalId +workspace.current_user.groups +workspace.current_user.groups[*] +workspace.current_user.groups[*].display +workspace.current_user.groups[*].primary +workspace.current_user.groups[*].primary=true +workspace.current_user.groups[*].primary=false +workspace.current_user.groups[*].$ref +workspace.current_user.groups[*].type +workspace.current_user.groups[*].value +workspace.current_user.id +workspace.current_user.name +workspace.current_user.name.familyName +workspace.current_user.name.givenName +workspace.current_user.roles +workspace.current_user.roles[*] +workspace.current_user.roles[*].display +workspace.current_user.roles[*].primary +workspace.current_user.roles[*].primary=true +workspace.current_user.roles[*].primary=false +workspace.current_user.roles[*].$ref +workspace.current_user.roles[*].type +workspace.current_user.roles[*].value +workspace.current_user.schemas +workspace.current_user.schemas[*] +workspace.current_user.userName +workspace.root_path +workspace.file_path +workspace.resource_path +workspace.artifact_path +workspace.state_path +workspace.sync_mode +artifacts +artifacts.* +artifacts.*.type +artifacts.*.path +artifacts.*.files +artifacts.*.files[*] +artifacts.*.files[*].source +artifacts.*.files[*].patched +artifacts.*.files[*].remote_path +artifacts.*.build +artifacts.*.executable +artifacts.*.dynamic_version +artifacts.*.dynamic_version=true +artifacts.*.dynamic_version=false +artifacts.*.include +artifacts.*.include[*] +artifacts.*.git +artifacts.*.git.branch +artifacts.*.git.commit +resources +resources.jobs +resources.jobs.* +resources.jobs.*.url +resources.jobs.*.modified_status +resources.jobs.*.lifecycle +resources.jobs.*.lifecycle.prevent_destroy +resources.jobs.*.lifecycle.prevent_destroy=true +resources.jobs.*.lifecycle.prevent_destroy=false +resources.jobs.*.lifecycle.depends_on +resources.jobs.*.lifecycle.depends_on[*] +resources.jobs.*.lifecycle.depends_on[*].resource +resources.jobs.*.id +resources.jobs.*.budget_policy_id +resources.jobs.*.continuous +resources.jobs.*.continuous.maintenance_window +resources.jobs.*.continuous.maintenance_window.day_of_week +resources.jobs.*.continuous.maintenance_window.start_hour +resources.jobs.*.continuous.maintenance_window.timezone_id +resources.jobs.*.continuous.pause_status +resources.jobs.*.continuous.task_retry_mode +resources.jobs.*.deployment +resources.jobs.*.deployment.deployment_id +resources.jobs.*.deployment.kind +resources.jobs.*.deployment.metadata_file_path +resources.jobs.*.deployment.version_id +resources.jobs.*.description +resources.jobs.*.duration_target +resources.jobs.*.edit_mode +resources.jobs.*.email_notifications +resources.jobs.*.email_notifications.no_alert_for_skipped_runs +resources.jobs.*.email_notifications.no_alert_for_skipped_runs=true +resources.jobs.*.email_notifications.no_alert_for_skipped_runs=false +resources.jobs.*.email_notifications.on_duration_warning_threshold_exceeded +resources.jobs.*.email_notifications.on_duration_warning_threshold_exceeded[*] +resources.jobs.*.email_notifications.on_failure +resources.jobs.*.email_notifications.on_failure[*] +resources.jobs.*.email_notifications.on_maintenance_complete +resources.jobs.*.email_notifications.on_maintenance_complete[*] +resources.jobs.*.email_notifications.on_maintenance_start +resources.jobs.*.email_notifications.on_maintenance_start[*] +resources.jobs.*.email_notifications.on_start +resources.jobs.*.email_notifications.on_start[*] +resources.jobs.*.email_notifications.on_streaming_backlog_exceeded +resources.jobs.*.email_notifications.on_streaming_backlog_exceeded[*] +resources.jobs.*.email_notifications.on_success +resources.jobs.*.email_notifications.on_success[*] +resources.jobs.*.environment_variables +resources.jobs.*.environment_variables[*] +resources.jobs.*.environment_variables[*].environment_variables_key +resources.jobs.*.environment_variables[*].spec +resources.jobs.*.environment_variables[*].spec.files +resources.jobs.*.environment_variables[*].spec.files[*] +resources.jobs.*.environment_variables[*].spec.variables +resources.jobs.*.environment_variables[*].spec.variables.* +resources.jobs.*.environments +resources.jobs.*.environments[*] +resources.jobs.*.environments[*].environment_key +resources.jobs.*.environments[*].spec +resources.jobs.*.environments[*].spec.base_environment +resources.jobs.*.environments[*].spec.client +resources.jobs.*.environments[*].spec.dependencies +resources.jobs.*.environments[*].spec.dependencies[*] +resources.jobs.*.environments[*].spec.environment_version +resources.jobs.*.environments[*].spec.java_dependencies +resources.jobs.*.environments[*].spec.java_dependencies[*] +resources.jobs.*.environments[*].spec.project_environment +resources.jobs.*.format +resources.jobs.*.git_source +resources.jobs.*.git_source.git_branch +resources.jobs.*.git_source.git_commit +resources.jobs.*.git_source.git_provider +resources.jobs.*.git_source.git_snapshot +resources.jobs.*.git_source.git_snapshot.used_commit +resources.jobs.*.git_source.git_tag +resources.jobs.*.git_source.git_url +resources.jobs.*.git_source.job_source +resources.jobs.*.git_source.job_source.dirty_state +resources.jobs.*.git_source.job_source.import_from_git_branch +resources.jobs.*.git_source.job_source.job_config_path +resources.jobs.*.git_source.sparse_checkout +resources.jobs.*.git_source.sparse_checkout.patterns +resources.jobs.*.git_source.sparse_checkout.patterns[*] +resources.jobs.*.health +resources.jobs.*.health.rules +resources.jobs.*.health.rules[*] +resources.jobs.*.health.rules[*].metric +resources.jobs.*.health.rules[*].op +resources.jobs.*.health.rules[*].value +resources.jobs.*.job_clusters +resources.jobs.*.job_clusters[*] +resources.jobs.*.job_clusters[*].job_cluster_key +resources.jobs.*.job_clusters[*].new_cluster +resources.jobs.*.job_clusters[*].new_cluster.apply_policy_default_values +resources.jobs.*.job_clusters[*].new_cluster.apply_policy_default_values=true +resources.jobs.*.job_clusters[*].new_cluster.apply_policy_default_values=false +resources.jobs.*.job_clusters[*].new_cluster.autoscale +resources.jobs.*.job_clusters[*].new_cluster.autoscale.max_workers +resources.jobs.*.job_clusters[*].new_cluster.autoscale.min_workers +resources.jobs.*.job_clusters[*].new_cluster.autotermination_minutes +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.availability +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_count +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_iops +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_size +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_throughput +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.ebs_volume_type +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.first_on_demand +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.instance_profile_arn +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.spot_bid_price_percent +resources.jobs.*.job_clusters[*].new_cluster.aws_attributes.zone_id +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.availability +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.capacity_reservation_group +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.first_on_demand +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.log_analytics_info +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_primary_key +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_workspace_id +resources.jobs.*.job_clusters[*].new_cluster.azure_attributes.spot_bid_max_price +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.dbfs +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.dbfs.destination +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3 +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.canned_acl +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.destination +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.enable_encryption +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.enable_encryption=true +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.enable_encryption=false +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.encryption_type +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.endpoint +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.kms_key +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.s3.region +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.volumes +resources.jobs.*.job_clusters[*].new_cluster.cluster_log_conf.volumes.destination +resources.jobs.*.job_clusters[*].new_cluster.cluster_name +resources.jobs.*.job_clusters[*].new_cluster.custom_tags +resources.jobs.*.job_clusters[*].new_cluster.custom_tags.* +resources.jobs.*.job_clusters[*].new_cluster.data_security_mode +resources.jobs.*.job_clusters[*].new_cluster.dependency_mode +resources.jobs.*.job_clusters[*].new_cluster.docker_image +resources.jobs.*.job_clusters[*].new_cluster.docker_image.basic_auth +resources.jobs.*.job_clusters[*].new_cluster.docker_image.basic_auth.password +resources.jobs.*.job_clusters[*].new_cluster.docker_image.basic_auth.username +resources.jobs.*.job_clusters[*].new_cluster.docker_image.url +resources.jobs.*.job_clusters[*].new_cluster.driver_instance_pool_id +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_flexibility +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_flexibility.alternate_node_type_ids +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_flexibility.alternate_node_type_ids[*] +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_flexibility.aws_context_id +resources.jobs.*.job_clusters[*].new_cluster.driver_node_type_id +resources.jobs.*.job_clusters[*].new_cluster.enable_elastic_disk +resources.jobs.*.job_clusters[*].new_cluster.enable_elastic_disk=true +resources.jobs.*.job_clusters[*].new_cluster.enable_elastic_disk=false +resources.jobs.*.job_clusters[*].new_cluster.enable_local_disk_encryption +resources.jobs.*.job_clusters[*].new_cluster.enable_local_disk_encryption=true +resources.jobs.*.job_clusters[*].new_cluster.enable_local_disk_encryption=false +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.availability +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.boot_disk_size +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.confidential_compute_type +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.first_on_demand +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.google_service_account +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.local_ssd_count +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.use_preemptible_executors +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.use_preemptible_executors=true +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.use_preemptible_executors=false +resources.jobs.*.job_clusters[*].new_cluster.gcp_attributes.zone_id +resources.jobs.*.job_clusters[*].new_cluster.init_scripts +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*] +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].abfss +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].abfss.destination +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].dbfs +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].dbfs.destination +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].file +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].file.destination +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].gcs +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].gcs.destination +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3 +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.canned_acl +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.destination +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.enable_encryption +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.enable_encryption=true +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.enable_encryption=false +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.encryption_type +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.endpoint +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.kms_key +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].s3.region +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].volumes +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].volumes.destination +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].workspace +resources.jobs.*.job_clusters[*].new_cluster.init_scripts[*].workspace.destination +resources.jobs.*.job_clusters[*].new_cluster.instance_pool_id +resources.jobs.*.job_clusters[*].new_cluster.is_single_node +resources.jobs.*.job_clusters[*].new_cluster.is_single_node=true +resources.jobs.*.job_clusters[*].new_cluster.is_single_node=false +resources.jobs.*.job_clusters[*].new_cluster.kind +resources.jobs.*.job_clusters[*].new_cluster.node_type_id +resources.jobs.*.job_clusters[*].new_cluster.num_workers +resources.jobs.*.job_clusters[*].new_cluster.policy_id +resources.jobs.*.job_clusters[*].new_cluster.remote_disk_throughput +resources.jobs.*.job_clusters[*].new_cluster.runtime_engine +resources.jobs.*.job_clusters[*].new_cluster.single_user_name +resources.jobs.*.job_clusters[*].new_cluster.spark_conf +resources.jobs.*.job_clusters[*].new_cluster.spark_conf.* +resources.jobs.*.job_clusters[*].new_cluster.spark_env_vars +resources.jobs.*.job_clusters[*].new_cluster.spark_env_vars.* +resources.jobs.*.job_clusters[*].new_cluster.spark_version +resources.jobs.*.job_clusters[*].new_cluster.ssh_public_keys +resources.jobs.*.job_clusters[*].new_cluster.ssh_public_keys[*] +resources.jobs.*.job_clusters[*].new_cluster.total_initial_remote_disk_size +resources.jobs.*.job_clusters[*].new_cluster.use_ml_runtime +resources.jobs.*.job_clusters[*].new_cluster.use_ml_runtime=true +resources.jobs.*.job_clusters[*].new_cluster.use_ml_runtime=false +resources.jobs.*.job_clusters[*].new_cluster.worker_node_type_flexibility +resources.jobs.*.job_clusters[*].new_cluster.worker_node_type_flexibility.alternate_node_type_ids +resources.jobs.*.job_clusters[*].new_cluster.worker_node_type_flexibility.alternate_node_type_ids[*] +resources.jobs.*.job_clusters[*].new_cluster.worker_node_type_flexibility.aws_context_id +resources.jobs.*.job_clusters[*].new_cluster.workload_type +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.jobs +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.jobs=true +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.jobs=false +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.notebooks +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.notebooks=true +resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.notebooks=false +resources.jobs.*.job_clusters[*].serverless_compute +resources.jobs.*.job_clusters[*].serverless_compute.policy_id +resources.jobs.*.job_clusters[*].serverless_compute_id +resources.jobs.*.max_concurrent_runs +resources.jobs.*.name +resources.jobs.*.notification_settings +resources.jobs.*.notification_settings.no_alert_for_canceled_runs +resources.jobs.*.notification_settings.no_alert_for_canceled_runs=true +resources.jobs.*.notification_settings.no_alert_for_canceled_runs=false +resources.jobs.*.notification_settings.no_alert_for_skipped_runs +resources.jobs.*.notification_settings.no_alert_for_skipped_runs=true +resources.jobs.*.notification_settings.no_alert_for_skipped_runs=false +resources.jobs.*.parameters +resources.jobs.*.parameters[*] +resources.jobs.*.parameters[*].default +resources.jobs.*.parameters[*].name +resources.jobs.*.parent_path +resources.jobs.*.performance_target +resources.jobs.*.queue +resources.jobs.*.queue.enabled +resources.jobs.*.queue.enabled=true +resources.jobs.*.queue.enabled=false +resources.jobs.*.run_as +resources.jobs.*.run_as.group_name +resources.jobs.*.run_as.service_principal_name +resources.jobs.*.run_as.user_name +resources.jobs.*.schedule +resources.jobs.*.schedule.pause_status +resources.jobs.*.schedule.quartz_cron_expression +resources.jobs.*.schedule.sql_condition +resources.jobs.*.schedule.sql_condition.sql_query_id +resources.jobs.*.schedule.sql_condition.trigger_mode +resources.jobs.*.schedule.sql_condition.warehouse_id +resources.jobs.*.schedule.timezone_id +resources.jobs.*.tags +resources.jobs.*.tags.* +resources.jobs.*.tasks +resources.jobs.*.tasks[*] +resources.jobs.*.tasks[*].ai_function_task +resources.jobs.*.tasks[*].ai_function_task.ai_classify +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_confidence_scores +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_confidence_scores=true +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_confidence_scores=false +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_rationales +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_rationales=true +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_rationales=false +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*] +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*].description +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*].name +resources.jobs.*.tasks[*].ai_function_task.ai_classify.instructions +resources.jobs.*.tasks[*].ai_function_task.ai_classify.multilabel +resources.jobs.*.tasks[*].ai_function_task.ai_classify.multilabel=true +resources.jobs.*.tasks[*].ai_function_task.ai_classify.multilabel=false +resources.jobs.*.tasks[*].ai_function_task.ai_classify.version +resources.jobs.*.tasks[*].ai_function_task.ai_extract +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_citations +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_citations=true +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_citations=false +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_confidence_scores +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_confidence_scores=true +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_confidence_scores=false +resources.jobs.*.tasks[*].ai_function_task.ai_extract.instructions +resources.jobs.*.tasks[*].ai_function_task.ai_extract.mode +resources.jobs.*.tasks[*].ai_function_task.ai_extract.schema +resources.jobs.*.tasks[*].ai_function_task.ai_extract.version +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.description_element_types +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.description_element_types[*] +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.image_output_path +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.page_range +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.version +resources.jobs.*.tasks[*].ai_function_task.delta_table +resources.jobs.*.tasks[*].ai_function_task.delta_table.input_column +resources.jobs.*.tasks[*].ai_function_task.delta_table.merge_key_columns +resources.jobs.*.tasks[*].ai_function_task.delta_table.merge_key_columns[*] +resources.jobs.*.tasks[*].ai_function_task.delta_table.table_name +resources.jobs.*.tasks[*].ai_function_task.output +resources.jobs.*.tasks[*].ai_function_task.output.catalog +resources.jobs.*.tasks[*].ai_function_task.output.schema +resources.jobs.*.tasks[*].ai_function_task.output.table +resources.jobs.*.tasks[*].ai_function_task.volume +resources.jobs.*.tasks[*].ai_function_task.volume.volume_path +resources.jobs.*.tasks[*].ai_runtime_task +resources.jobs.*.tasks[*].ai_runtime_task.code_source_path +resources.jobs.*.tasks[*].ai_runtime_task.deployments +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*] +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].command_path +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].compute +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].compute.accelerator_count +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].compute.accelerator_type +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].compute.provisioned_capacity_id +resources.jobs.*.tasks[*].ai_runtime_task.deployments[*].name +resources.jobs.*.tasks[*].ai_runtime_task.docker_image_url +resources.jobs.*.tasks[*].ai_runtime_task.experiment +resources.jobs.*.tasks[*].ai_runtime_task.mlflow_artifact_location +resources.jobs.*.tasks[*].ai_runtime_task.mlflow_experiment_directory +resources.jobs.*.tasks[*].ai_runtime_task.mlflow_run +resources.jobs.*.tasks[*].ai_runtime_task.priority_class +resources.jobs.*.tasks[*].ai_runtime_task.unity_catalog_image_path +resources.jobs.*.tasks[*].alert_task +resources.jobs.*.tasks[*].alert_task.alert_id +resources.jobs.*.tasks[*].alert_task.parameters +resources.jobs.*.tasks[*].alert_task.parameters.* +resources.jobs.*.tasks[*].alert_task.subscribers +resources.jobs.*.tasks[*].alert_task.subscribers[*] +resources.jobs.*.tasks[*].alert_task.subscribers[*].destination_id +resources.jobs.*.tasks[*].alert_task.subscribers[*].user_name +resources.jobs.*.tasks[*].alert_task.warehouse_id +resources.jobs.*.tasks[*].alert_task.workspace_path +resources.jobs.*.tasks[*].clean_rooms_notebook_task +resources.jobs.*.tasks[*].clean_rooms_notebook_task.clean_room_name +resources.jobs.*.tasks[*].clean_rooms_notebook_task.etag +resources.jobs.*.tasks[*].clean_rooms_notebook_task.notebook_base_parameters +resources.jobs.*.tasks[*].clean_rooms_notebook_task.notebook_base_parameters.* +resources.jobs.*.tasks[*].clean_rooms_notebook_task.notebook_name +resources.jobs.*.tasks[*].compute +resources.jobs.*.tasks[*].compute.hardware_accelerator +resources.jobs.*.tasks[*].condition_task +resources.jobs.*.tasks[*].condition_task.left +resources.jobs.*.tasks[*].condition_task.op +resources.jobs.*.tasks[*].condition_task.right +resources.jobs.*.tasks[*].dashboard_task +resources.jobs.*.tasks[*].dashboard_task.dashboard_id +resources.jobs.*.tasks[*].dashboard_task.filters +resources.jobs.*.tasks[*].dashboard_task.filters.* +resources.jobs.*.tasks[*].dashboard_task.subscription +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.file_format +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.include_applied_filters +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.include_applied_filters=true +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.include_applied_filters=false +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.widgets +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.widgets[*] +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.widgets[*].page_id +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.data_attachment.widgets[*].widget_id +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.page_attachment +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.page_attachment.page_ids +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.page_attachment.page_ids[*] +resources.jobs.*.tasks[*].dashboard_task.subscription.attachment.page_attachment.page_selection +resources.jobs.*.tasks[*].dashboard_task.subscription.custom_subject +resources.jobs.*.tasks[*].dashboard_task.subscription.paused +resources.jobs.*.tasks[*].dashboard_task.subscription.paused=true +resources.jobs.*.tasks[*].dashboard_task.subscription.paused=false +resources.jobs.*.tasks[*].dashboard_task.subscription.subscribers +resources.jobs.*.tasks[*].dashboard_task.subscription.subscribers[*] +resources.jobs.*.tasks[*].dashboard_task.subscription.subscribers[*].destination_id +resources.jobs.*.tasks[*].dashboard_task.subscription.subscribers[*].user_name +resources.jobs.*.tasks[*].dashboard_task.warehouse_id +resources.jobs.*.tasks[*].dbt_cloud_task +resources.jobs.*.tasks[*].dbt_cloud_task.connection_resource_name +resources.jobs.*.tasks[*].dbt_cloud_task.dbt_cloud_job_id +resources.jobs.*.tasks[*].dbt_platform_task +resources.jobs.*.tasks[*].dbt_platform_task.connection_resource_name +resources.jobs.*.tasks[*].dbt_platform_task.dbt_platform_job_id +resources.jobs.*.tasks[*].dbt_task +resources.jobs.*.tasks[*].dbt_task.catalog +resources.jobs.*.tasks[*].dbt_task.commands +resources.jobs.*.tasks[*].dbt_task.commands[*] +resources.jobs.*.tasks[*].dbt_task.profiles_directory +resources.jobs.*.tasks[*].dbt_task.project_directory +resources.jobs.*.tasks[*].dbt_task.schema +resources.jobs.*.tasks[*].dbt_task.source +resources.jobs.*.tasks[*].dbt_task.warehouse_id +resources.jobs.*.tasks[*].depends_on +resources.jobs.*.tasks[*].depends_on[*] +resources.jobs.*.tasks[*].depends_on[*].outcome +resources.jobs.*.tasks[*].depends_on[*].task_key +resources.jobs.*.tasks[*].description +resources.jobs.*.tasks[*].disable_auto_optimization +resources.jobs.*.tasks[*].disable_auto_optimization=true +resources.jobs.*.tasks[*].disable_auto_optimization=false +resources.jobs.*.tasks[*].disabled +resources.jobs.*.tasks[*].disabled=true +resources.jobs.*.tasks[*].disabled=false +resources.jobs.*.tasks[*].email_notifications +resources.jobs.*.tasks[*].email_notifications.no_alert_for_skipped_runs +resources.jobs.*.tasks[*].email_notifications.no_alert_for_skipped_runs=true +resources.jobs.*.tasks[*].email_notifications.no_alert_for_skipped_runs=false +resources.jobs.*.tasks[*].email_notifications.on_duration_warning_threshold_exceeded +resources.jobs.*.tasks[*].email_notifications.on_duration_warning_threshold_exceeded[*] +resources.jobs.*.tasks[*].email_notifications.on_failure +resources.jobs.*.tasks[*].email_notifications.on_failure[*] +resources.jobs.*.tasks[*].email_notifications.on_maintenance_complete +resources.jobs.*.tasks[*].email_notifications.on_maintenance_complete[*] +resources.jobs.*.tasks[*].email_notifications.on_maintenance_start +resources.jobs.*.tasks[*].email_notifications.on_maintenance_start[*] +resources.jobs.*.tasks[*].email_notifications.on_start +resources.jobs.*.tasks[*].email_notifications.on_start[*] +resources.jobs.*.tasks[*].email_notifications.on_streaming_backlog_exceeded +resources.jobs.*.tasks[*].email_notifications.on_streaming_backlog_exceeded[*] +resources.jobs.*.tasks[*].email_notifications.on_success +resources.jobs.*.tasks[*].email_notifications.on_success[*] +resources.jobs.*.tasks[*].environment_key +resources.jobs.*.tasks[*].environment_variables_key +resources.jobs.*.tasks[*].existing_cluster_id +resources.jobs.*.tasks[*].for_each_task +resources.jobs.*.tasks[*].for_each_task.concurrency +resources.jobs.*.tasks[*].for_each_task.inputs +resources.jobs.*.tasks[*].for_each_task.task +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_confidence_scores +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_confidence_scores=true +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_confidence_scores=false +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_rationales +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_rationales=true +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_rationales=false +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*] +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*].description +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*].name +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.instructions +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.multilabel +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.multilabel=true +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.multilabel=false +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.version +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_citations +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_citations=true +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_citations=false +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_confidence_scores +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_confidence_scores=true +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_confidence_scores=false +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.instructions +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.mode +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.schema +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.version +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.description_element_types +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.description_element_types[*] +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.image_output_path +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.page_range +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.version +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.input_column +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.merge_key_columns +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.merge_key_columns[*] +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.table_name +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.catalog +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.schema +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.table +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.volume +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.volume.volume_path +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.code_source_path +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*] +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].command_path +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].compute +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].compute.accelerator_count +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].compute.accelerator_type +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].compute.provisioned_capacity_id +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments[*].name +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.docker_image_url +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.experiment +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.mlflow_artifact_location +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.mlflow_experiment_directory +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.mlflow_run +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.priority_class +resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.unity_catalog_image_path +resources.jobs.*.tasks[*].for_each_task.task.alert_task +resources.jobs.*.tasks[*].for_each_task.task.alert_task.alert_id +resources.jobs.*.tasks[*].for_each_task.task.alert_task.parameters +resources.jobs.*.tasks[*].for_each_task.task.alert_task.parameters.* +resources.jobs.*.tasks[*].for_each_task.task.alert_task.subscribers +resources.jobs.*.tasks[*].for_each_task.task.alert_task.subscribers[*] +resources.jobs.*.tasks[*].for_each_task.task.alert_task.subscribers[*].destination_id +resources.jobs.*.tasks[*].for_each_task.task.alert_task.subscribers[*].user_name +resources.jobs.*.tasks[*].for_each_task.task.alert_task.warehouse_id +resources.jobs.*.tasks[*].for_each_task.task.alert_task.workspace_path +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.clean_room_name +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.etag +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.notebook_base_parameters +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.notebook_base_parameters.* +resources.jobs.*.tasks[*].for_each_task.task.clean_rooms_notebook_task.notebook_name +resources.jobs.*.tasks[*].for_each_task.task.compute +resources.jobs.*.tasks[*].for_each_task.task.compute.hardware_accelerator +resources.jobs.*.tasks[*].for_each_task.task.condition_task +resources.jobs.*.tasks[*].for_each_task.task.condition_task.left +resources.jobs.*.tasks[*].for_each_task.task.condition_task.op +resources.jobs.*.tasks[*].for_each_task.task.condition_task.right +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.dashboard_id +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.filters +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.filters.* +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.file_format +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.include_applied_filters +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.include_applied_filters=true +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.include_applied_filters=false +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.widgets +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.widgets[*] +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.widgets[*].page_id +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.data_attachment.widgets[*].widget_id +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.page_attachment +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.page_attachment.page_ids +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.page_attachment.page_ids[*] +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.attachment.page_attachment.page_selection +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.custom_subject +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.paused +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.paused=true +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.paused=false +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.subscribers +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.subscribers[*] +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.subscribers[*].destination_id +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.subscription.subscribers[*].user_name +resources.jobs.*.tasks[*].for_each_task.task.dashboard_task.warehouse_id +resources.jobs.*.tasks[*].for_each_task.task.dbt_cloud_task +resources.jobs.*.tasks[*].for_each_task.task.dbt_cloud_task.connection_resource_name +resources.jobs.*.tasks[*].for_each_task.task.dbt_cloud_task.dbt_cloud_job_id +resources.jobs.*.tasks[*].for_each_task.task.dbt_platform_task +resources.jobs.*.tasks[*].for_each_task.task.dbt_platform_task.connection_resource_name +resources.jobs.*.tasks[*].for_each_task.task.dbt_platform_task.dbt_platform_job_id +resources.jobs.*.tasks[*].for_each_task.task.dbt_task +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.catalog +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.commands +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.commands[*] +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.profiles_directory +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.project_directory +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.schema +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.source +resources.jobs.*.tasks[*].for_each_task.task.dbt_task.warehouse_id +resources.jobs.*.tasks[*].for_each_task.task.depends_on +resources.jobs.*.tasks[*].for_each_task.task.depends_on[*] +resources.jobs.*.tasks[*].for_each_task.task.depends_on[*].outcome +resources.jobs.*.tasks[*].for_each_task.task.depends_on[*].task_key +resources.jobs.*.tasks[*].for_each_task.task.description +resources.jobs.*.tasks[*].for_each_task.task.disable_auto_optimization +resources.jobs.*.tasks[*].for_each_task.task.disable_auto_optimization=true +resources.jobs.*.tasks[*].for_each_task.task.disable_auto_optimization=false +resources.jobs.*.tasks[*].for_each_task.task.disabled +resources.jobs.*.tasks[*].for_each_task.task.disabled=true +resources.jobs.*.tasks[*].for_each_task.task.disabled=false +resources.jobs.*.tasks[*].for_each_task.task.email_notifications +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.no_alert_for_skipped_runs +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.no_alert_for_skipped_runs=true +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.no_alert_for_skipped_runs=false +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_duration_warning_threshold_exceeded +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_duration_warning_threshold_exceeded[*] +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_failure +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_failure[*] +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_maintenance_complete +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_maintenance_complete[*] +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_maintenance_start +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_maintenance_start[*] +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_start +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_start[*] +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_streaming_backlog_exceeded +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_streaming_backlog_exceeded[*] +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_success +resources.jobs.*.tasks[*].for_each_task.task.email_notifications.on_success[*] +resources.jobs.*.tasks[*].for_each_task.task.environment_key +resources.jobs.*.tasks[*].for_each_task.task.environment_variables_key +resources.jobs.*.tasks[*].for_each_task.task.existing_cluster_id +resources.jobs.*.tasks[*].for_each_task.task.for_each_task +resources.jobs.*.tasks[*].for_each_task.task.for_each_task.concurrency +resources.jobs.*.tasks[*].for_each_task.task.for_each_task.inputs +resources.jobs.*.tasks[*].for_each_task.task.for_each_task.task +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.command +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.compute +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.compute.gpu_node_pool_id +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.compute.gpu_type +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.compute.num_gpus +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.dl_runtime_image +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.mlflow_experiment_name +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.source +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.training_script_path +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.yaml_parameters +resources.jobs.*.tasks[*].for_each_task.task.gen_ai_compute_task.yaml_parameters_file_path +resources.jobs.*.tasks[*].for_each_task.task.health +resources.jobs.*.tasks[*].for_each_task.task.health.rules +resources.jobs.*.tasks[*].for_each_task.task.health.rules[*] +resources.jobs.*.tasks[*].for_each_task.task.health.rules[*].metric +resources.jobs.*.tasks[*].for_each_task.task.health.rules[*].op +resources.jobs.*.tasks[*].for_each_task.task.health.rules[*].value +resources.jobs.*.tasks[*].for_each_task.task.job_cluster_key +resources.jobs.*.tasks[*].for_each_task.task.libraries +resources.jobs.*.tasks[*].for_each_task.task.libraries[*] +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].cran +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].cran.package +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].cran.repo +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].egg +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].jar +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven.coordinates +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven.exclusions +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven.exclusions[*] +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].maven.repo +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].pypi +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].pypi.package +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].pypi.repo +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].requirements +resources.jobs.*.tasks[*].for_each_task.task.libraries[*].whl +resources.jobs.*.tasks[*].for_each_task.task.max_retries +resources.jobs.*.tasks[*].for_each_task.task.min_retry_interval_millis +resources.jobs.*.tasks[*].for_each_task.task.new_cluster +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.apply_policy_default_values +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.apply_policy_default_values=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.apply_policy_default_values=false +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.autoscale +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.autoscale.max_workers +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.autoscale.min_workers +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.autotermination_minutes +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.availability +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_count +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_iops +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_size +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_throughput +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.ebs_volume_type +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.first_on_demand +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.instance_profile_arn +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.spot_bid_price_percent +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.aws_attributes.zone_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.availability +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.capacity_reservation_group +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.first_on_demand +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.log_analytics_info +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.log_analytics_info.log_analytics_primary_key +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.log_analytics_info.log_analytics_workspace_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.azure_attributes.spot_bid_max_price +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.dbfs +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.dbfs.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.canned_acl +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.enable_encryption +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.enable_encryption=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.enable_encryption=false +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.encryption_type +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.endpoint +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.kms_key +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.s3.region +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.volumes +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_log_conf.volumes.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.cluster_name +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.custom_tags +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.custom_tags.* +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.data_security_mode +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.dependency_mode +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image.basic_auth +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image.basic_auth.password +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image.basic_auth.username +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.docker_image.url +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_instance_pool_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_flexibility +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_flexibility.alternate_node_type_ids +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_flexibility.alternate_node_type_ids[*] +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_flexibility.aws_context_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.driver_node_type_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_elastic_disk +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_elastic_disk=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_elastic_disk=false +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_local_disk_encryption +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_local_disk_encryption=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.enable_local_disk_encryption=false +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.availability +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.boot_disk_size +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.confidential_compute_type +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.first_on_demand +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.google_service_account +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.local_ssd_count +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.use_preemptible_executors +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.use_preemptible_executors=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.use_preemptible_executors=false +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.gcp_attributes.zone_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*] +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].abfss +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].abfss.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].dbfs +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].dbfs.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].file +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].file.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].gcs +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].gcs.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3 +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.canned_acl +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.enable_encryption +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.enable_encryption=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.enable_encryption=false +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.encryption_type +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.endpoint +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.kms_key +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].s3.region +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].volumes +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].volumes.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].workspace +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.init_scripts[*].workspace.destination +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.instance_pool_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.is_single_node +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.is_single_node=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.is_single_node=false +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.kind +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.node_type_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.num_workers +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.policy_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.remote_disk_throughput +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.runtime_engine +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.single_user_name +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_conf +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_conf.* +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_env_vars +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_env_vars.* +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.spark_version +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.ssh_public_keys +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.ssh_public_keys[*] +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.total_initial_remote_disk_size +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.use_ml_runtime +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.use_ml_runtime=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.use_ml_runtime=false +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.worker_node_type_flexibility +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.worker_node_type_flexibility.alternate_node_type_ids +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.worker_node_type_flexibility.alternate_node_type_ids[*] +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.worker_node_type_flexibility.aws_context_id +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.jobs +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.jobs=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.jobs=false +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.notebooks +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.notebooks=true +resources.jobs.*.tasks[*].for_each_task.task.new_cluster.workload_type.clients.notebooks=false +resources.jobs.*.tasks[*].for_each_task.task.notebook_task +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.base_parameters +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.base_parameters.* +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.notebook_path +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.source +resources.jobs.*.tasks[*].for_each_task.task.notebook_task.warehouse_id +resources.jobs.*.tasks[*].for_each_task.task.notification_settings +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.alert_on_last_attempt +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.alert_on_last_attempt=true +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.alert_on_last_attempt=false +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_canceled_runs +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_canceled_runs=true +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_canceled_runs=false +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_skipped_runs +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_skipped_runs=true +resources.jobs.*.tasks[*].for_each_task.task.notification_settings.no_alert_for_skipped_runs=false +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh=true +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh=false +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh_selection +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.full_refresh_selection[*] +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.parameters +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.parameters.* +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.pipeline_id +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.refresh_flow_selection +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.refresh_flow_selection[*] +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.refresh_selection +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.refresh_selection[*] +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.reset_checkpoint_selection +resources.jobs.*.tasks[*].for_each_task.task.pipeline_task.reset_checkpoint_selection[*] +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.connection_resource_name +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.authentication_method +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.model_name +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.overwrite_existing +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.overwrite_existing=true +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.overwrite_existing=false +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.storage_mode +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.power_bi_model.workspace_name +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.refresh_after_update +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.refresh_after_update=true +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.refresh_after_update=false +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*] +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*].catalog +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*].name +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*].schema +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.tables[*].storage_mode +resources.jobs.*.tasks[*].for_each_task.task.power_bi_task.warehouse_id +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.main +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.parameters +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.parameters[*] +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.parameters[*].name +resources.jobs.*.tasks[*].for_each_task.task.python_operator_task.parameters[*].value +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.entry_point +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.named_parameters +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.named_parameters.* +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.package_name +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.parameters +resources.jobs.*.tasks[*].for_each_task.task.python_wheel_task.parameters[*] +resources.jobs.*.tasks[*].for_each_task.task.retry_on_timeout +resources.jobs.*.tasks[*].for_each_task.task.retry_on_timeout=true +resources.jobs.*.tasks[*].for_each_task.task.retry_on_timeout=false +resources.jobs.*.tasks[*].for_each_task.task.run_if +resources.jobs.*.tasks[*].for_each_task.task.run_job_task +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.dbt_commands +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.dbt_commands[*] +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.jar_params +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.jar_params[*] +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.job_id +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.job_parameters +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.job_parameters.* +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.notebook_params +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.notebook_params.* +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh=true +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh=false +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh_selection +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.full_refresh_selection[*] +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.refresh_flow_selection +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.refresh_flow_selection[*] +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.refresh_selection +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.refresh_selection[*] +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.reset_checkpoint_selection +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.pipeline_params.reset_checkpoint_selection[*] +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.python_named_params +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.python_named_params.* +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.python_params +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.python_params[*] +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.spark_submit_params +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.spark_submit_params[*] +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.sql_params +resources.jobs.*.tasks[*].for_each_task.task.run_job_task.sql_params.* +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.jar_uri +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.main_class_name +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.parameters +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.parameters[*] +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.run_as_repl +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.run_as_repl=true +resources.jobs.*.tasks[*].for_each_task.task.spark_jar_task.run_as_repl=false +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task.parameters +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task.parameters[*] +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task.python_file +resources.jobs.*.tasks[*].for_each_task.task.spark_python_task.source +resources.jobs.*.tasks[*].for_each_task.task.spark_submit_task +resources.jobs.*.tasks[*].for_each_task.task.spark_submit_task.parameters +resources.jobs.*.tasks[*].for_each_task.task.spark_submit_task.parameters[*] +resources.jobs.*.tasks[*].for_each_task.task.sql_task +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.alert_id +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.pause_subscriptions +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.pause_subscriptions=true +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.pause_subscriptions=false +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.subscriptions +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.subscriptions[*] +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.subscriptions[*].destination_id +resources.jobs.*.tasks[*].for_each_task.task.sql_task.alert.subscriptions[*].user_name +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.custom_subject +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.dashboard_id +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.pause_subscriptions +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.pause_subscriptions=true +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.pause_subscriptions=false +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.subscriptions +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.subscriptions[*] +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.subscriptions[*].destination_id +resources.jobs.*.tasks[*].for_each_task.task.sql_task.dashboard.subscriptions[*].user_name +resources.jobs.*.tasks[*].for_each_task.task.sql_task.file +resources.jobs.*.tasks[*].for_each_task.task.sql_task.file.path +resources.jobs.*.tasks[*].for_each_task.task.sql_task.file.source +resources.jobs.*.tasks[*].for_each_task.task.sql_task.parameters +resources.jobs.*.tasks[*].for_each_task.task.sql_task.parameters.* +resources.jobs.*.tasks[*].for_each_task.task.sql_task.query +resources.jobs.*.tasks[*].for_each_task.task.sql_task.query.query_id +resources.jobs.*.tasks[*].for_each_task.task.sql_task.warehouse_id +resources.jobs.*.tasks[*].for_each_task.task.task_key +resources.jobs.*.tasks[*].for_each_task.task.timeout_seconds +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_duration_warning_threshold_exceeded +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_duration_warning_threshold_exceeded[*] +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_duration_warning_threshold_exceeded[*].id +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_failure +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_failure[*] +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_failure[*].id +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_complete +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_complete[*] +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_complete[*].id +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_start +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_start[*] +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_maintenance_start[*].id +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_start +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_start[*] +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_start[*].id +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_streaming_backlog_exceeded +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_streaming_backlog_exceeded[*] +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_streaming_backlog_exceeded[*].id +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_success +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_success[*] +resources.jobs.*.tasks[*].for_each_task.task.webhook_notifications.on_success[*].id +resources.jobs.*.tasks[*].gen_ai_compute_task +resources.jobs.*.tasks[*].gen_ai_compute_task.command +resources.jobs.*.tasks[*].gen_ai_compute_task.compute +resources.jobs.*.tasks[*].gen_ai_compute_task.compute.gpu_node_pool_id +resources.jobs.*.tasks[*].gen_ai_compute_task.compute.gpu_type +resources.jobs.*.tasks[*].gen_ai_compute_task.compute.num_gpus +resources.jobs.*.tasks[*].gen_ai_compute_task.dl_runtime_image +resources.jobs.*.tasks[*].gen_ai_compute_task.mlflow_experiment_name +resources.jobs.*.tasks[*].gen_ai_compute_task.source +resources.jobs.*.tasks[*].gen_ai_compute_task.training_script_path +resources.jobs.*.tasks[*].gen_ai_compute_task.yaml_parameters +resources.jobs.*.tasks[*].gen_ai_compute_task.yaml_parameters_file_path +resources.jobs.*.tasks[*].health +resources.jobs.*.tasks[*].health.rules +resources.jobs.*.tasks[*].health.rules[*] +resources.jobs.*.tasks[*].health.rules[*].metric +resources.jobs.*.tasks[*].health.rules[*].op +resources.jobs.*.tasks[*].health.rules[*].value +resources.jobs.*.tasks[*].job_cluster_key +resources.jobs.*.tasks[*].libraries +resources.jobs.*.tasks[*].libraries[*] +resources.jobs.*.tasks[*].libraries[*].cran +resources.jobs.*.tasks[*].libraries[*].cran.package +resources.jobs.*.tasks[*].libraries[*].cran.repo +resources.jobs.*.tasks[*].libraries[*].egg +resources.jobs.*.tasks[*].libraries[*].jar +resources.jobs.*.tasks[*].libraries[*].maven +resources.jobs.*.tasks[*].libraries[*].maven.coordinates +resources.jobs.*.tasks[*].libraries[*].maven.exclusions +resources.jobs.*.tasks[*].libraries[*].maven.exclusions[*] +resources.jobs.*.tasks[*].libraries[*].maven.repo +resources.jobs.*.tasks[*].libraries[*].pypi +resources.jobs.*.tasks[*].libraries[*].pypi.package +resources.jobs.*.tasks[*].libraries[*].pypi.repo +resources.jobs.*.tasks[*].libraries[*].requirements +resources.jobs.*.tasks[*].libraries[*].whl +resources.jobs.*.tasks[*].max_retries +resources.jobs.*.tasks[*].min_retry_interval_millis +resources.jobs.*.tasks[*].new_cluster +resources.jobs.*.tasks[*].new_cluster.apply_policy_default_values +resources.jobs.*.tasks[*].new_cluster.apply_policy_default_values=true +resources.jobs.*.tasks[*].new_cluster.apply_policy_default_values=false +resources.jobs.*.tasks[*].new_cluster.autoscale +resources.jobs.*.tasks[*].new_cluster.autoscale.max_workers +resources.jobs.*.tasks[*].new_cluster.autoscale.min_workers +resources.jobs.*.tasks[*].new_cluster.autotermination_minutes +resources.jobs.*.tasks[*].new_cluster.aws_attributes +resources.jobs.*.tasks[*].new_cluster.aws_attributes.availability +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_count +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_iops +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_size +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_throughput +resources.jobs.*.tasks[*].new_cluster.aws_attributes.ebs_volume_type +resources.jobs.*.tasks[*].new_cluster.aws_attributes.first_on_demand +resources.jobs.*.tasks[*].new_cluster.aws_attributes.instance_profile_arn +resources.jobs.*.tasks[*].new_cluster.aws_attributes.spot_bid_price_percent +resources.jobs.*.tasks[*].new_cluster.aws_attributes.zone_id +resources.jobs.*.tasks[*].new_cluster.azure_attributes +resources.jobs.*.tasks[*].new_cluster.azure_attributes.availability +resources.jobs.*.tasks[*].new_cluster.azure_attributes.capacity_reservation_group +resources.jobs.*.tasks[*].new_cluster.azure_attributes.first_on_demand +resources.jobs.*.tasks[*].new_cluster.azure_attributes.log_analytics_info +resources.jobs.*.tasks[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_primary_key +resources.jobs.*.tasks[*].new_cluster.azure_attributes.log_analytics_info.log_analytics_workspace_id +resources.jobs.*.tasks[*].new_cluster.azure_attributes.spot_bid_max_price +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.dbfs +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.dbfs.destination +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3 +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.canned_acl +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.destination +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.enable_encryption +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.enable_encryption=true +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.enable_encryption=false +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.encryption_type +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.endpoint +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.kms_key +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.s3.region +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.volumes +resources.jobs.*.tasks[*].new_cluster.cluster_log_conf.volumes.destination +resources.jobs.*.tasks[*].new_cluster.cluster_name +resources.jobs.*.tasks[*].new_cluster.custom_tags +resources.jobs.*.tasks[*].new_cluster.custom_tags.* +resources.jobs.*.tasks[*].new_cluster.data_security_mode +resources.jobs.*.tasks[*].new_cluster.dependency_mode +resources.jobs.*.tasks[*].new_cluster.docker_image +resources.jobs.*.tasks[*].new_cluster.docker_image.basic_auth +resources.jobs.*.tasks[*].new_cluster.docker_image.basic_auth.password +resources.jobs.*.tasks[*].new_cluster.docker_image.basic_auth.username +resources.jobs.*.tasks[*].new_cluster.docker_image.url +resources.jobs.*.tasks[*].new_cluster.driver_instance_pool_id +resources.jobs.*.tasks[*].new_cluster.driver_node_type_flexibility +resources.jobs.*.tasks[*].new_cluster.driver_node_type_flexibility.alternate_node_type_ids +resources.jobs.*.tasks[*].new_cluster.driver_node_type_flexibility.alternate_node_type_ids[*] +resources.jobs.*.tasks[*].new_cluster.driver_node_type_flexibility.aws_context_id +resources.jobs.*.tasks[*].new_cluster.driver_node_type_id +resources.jobs.*.tasks[*].new_cluster.enable_elastic_disk +resources.jobs.*.tasks[*].new_cluster.enable_elastic_disk=true +resources.jobs.*.tasks[*].new_cluster.enable_elastic_disk=false +resources.jobs.*.tasks[*].new_cluster.enable_local_disk_encryption +resources.jobs.*.tasks[*].new_cluster.enable_local_disk_encryption=true +resources.jobs.*.tasks[*].new_cluster.enable_local_disk_encryption=false +resources.jobs.*.tasks[*].new_cluster.gcp_attributes +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.availability +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.boot_disk_size +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.confidential_compute_type +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.first_on_demand +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.google_service_account +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.local_ssd_count +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.use_preemptible_executors +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.use_preemptible_executors=true +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.use_preemptible_executors=false +resources.jobs.*.tasks[*].new_cluster.gcp_attributes.zone_id +resources.jobs.*.tasks[*].new_cluster.init_scripts +resources.jobs.*.tasks[*].new_cluster.init_scripts[*] +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].abfss +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].abfss.destination +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].dbfs +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].dbfs.destination +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].file +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].file.destination +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].gcs +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].gcs.destination +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3 +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.canned_acl +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.destination +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.enable_encryption +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.enable_encryption=true +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.enable_encryption=false +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.encryption_type +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.endpoint +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.kms_key +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].s3.region +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].volumes +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].volumes.destination +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].workspace +resources.jobs.*.tasks[*].new_cluster.init_scripts[*].workspace.destination +resources.jobs.*.tasks[*].new_cluster.instance_pool_id +resources.jobs.*.tasks[*].new_cluster.is_single_node +resources.jobs.*.tasks[*].new_cluster.is_single_node=true +resources.jobs.*.tasks[*].new_cluster.is_single_node=false +resources.jobs.*.tasks[*].new_cluster.kind +resources.jobs.*.tasks[*].new_cluster.node_type_id +resources.jobs.*.tasks[*].new_cluster.num_workers +resources.jobs.*.tasks[*].new_cluster.policy_id +resources.jobs.*.tasks[*].new_cluster.remote_disk_throughput +resources.jobs.*.tasks[*].new_cluster.runtime_engine +resources.jobs.*.tasks[*].new_cluster.single_user_name +resources.jobs.*.tasks[*].new_cluster.spark_conf +resources.jobs.*.tasks[*].new_cluster.spark_conf.* +resources.jobs.*.tasks[*].new_cluster.spark_env_vars +resources.jobs.*.tasks[*].new_cluster.spark_env_vars.* +resources.jobs.*.tasks[*].new_cluster.spark_version +resources.jobs.*.tasks[*].new_cluster.ssh_public_keys +resources.jobs.*.tasks[*].new_cluster.ssh_public_keys[*] +resources.jobs.*.tasks[*].new_cluster.total_initial_remote_disk_size +resources.jobs.*.tasks[*].new_cluster.use_ml_runtime +resources.jobs.*.tasks[*].new_cluster.use_ml_runtime=true +resources.jobs.*.tasks[*].new_cluster.use_ml_runtime=false +resources.jobs.*.tasks[*].new_cluster.worker_node_type_flexibility +resources.jobs.*.tasks[*].new_cluster.worker_node_type_flexibility.alternate_node_type_ids +resources.jobs.*.tasks[*].new_cluster.worker_node_type_flexibility.alternate_node_type_ids[*] +resources.jobs.*.tasks[*].new_cluster.worker_node_type_flexibility.aws_context_id +resources.jobs.*.tasks[*].new_cluster.workload_type +resources.jobs.*.tasks[*].new_cluster.workload_type.clients +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.jobs +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.jobs=true +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.jobs=false +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.notebooks +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.notebooks=true +resources.jobs.*.tasks[*].new_cluster.workload_type.clients.notebooks=false +resources.jobs.*.tasks[*].notebook_task +resources.jobs.*.tasks[*].notebook_task.base_parameters +resources.jobs.*.tasks[*].notebook_task.base_parameters.* +resources.jobs.*.tasks[*].notebook_task.notebook_path +resources.jobs.*.tasks[*].notebook_task.source +resources.jobs.*.tasks[*].notebook_task.warehouse_id +resources.jobs.*.tasks[*].notification_settings +resources.jobs.*.tasks[*].notification_settings.alert_on_last_attempt +resources.jobs.*.tasks[*].notification_settings.alert_on_last_attempt=true +resources.jobs.*.tasks[*].notification_settings.alert_on_last_attempt=false +resources.jobs.*.tasks[*].notification_settings.no_alert_for_canceled_runs +resources.jobs.*.tasks[*].notification_settings.no_alert_for_canceled_runs=true +resources.jobs.*.tasks[*].notification_settings.no_alert_for_canceled_runs=false +resources.jobs.*.tasks[*].notification_settings.no_alert_for_skipped_runs +resources.jobs.*.tasks[*].notification_settings.no_alert_for_skipped_runs=true +resources.jobs.*.tasks[*].notification_settings.no_alert_for_skipped_runs=false +resources.jobs.*.tasks[*].pipeline_task +resources.jobs.*.tasks[*].pipeline_task.full_refresh +resources.jobs.*.tasks[*].pipeline_task.full_refresh=true +resources.jobs.*.tasks[*].pipeline_task.full_refresh=false +resources.jobs.*.tasks[*].pipeline_task.full_refresh_selection +resources.jobs.*.tasks[*].pipeline_task.full_refresh_selection[*] +resources.jobs.*.tasks[*].pipeline_task.parameters +resources.jobs.*.tasks[*].pipeline_task.parameters.* +resources.jobs.*.tasks[*].pipeline_task.pipeline_id +resources.jobs.*.tasks[*].pipeline_task.refresh_flow_selection +resources.jobs.*.tasks[*].pipeline_task.refresh_flow_selection[*] +resources.jobs.*.tasks[*].pipeline_task.refresh_selection +resources.jobs.*.tasks[*].pipeline_task.refresh_selection[*] +resources.jobs.*.tasks[*].pipeline_task.reset_checkpoint_selection +resources.jobs.*.tasks[*].pipeline_task.reset_checkpoint_selection[*] +resources.jobs.*.tasks[*].power_bi_task +resources.jobs.*.tasks[*].power_bi_task.connection_resource_name +resources.jobs.*.tasks[*].power_bi_task.power_bi_model +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.authentication_method +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.model_name +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.overwrite_existing +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.overwrite_existing=true +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.overwrite_existing=false +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.storage_mode +resources.jobs.*.tasks[*].power_bi_task.power_bi_model.workspace_name +resources.jobs.*.tasks[*].power_bi_task.refresh_after_update +resources.jobs.*.tasks[*].power_bi_task.refresh_after_update=true +resources.jobs.*.tasks[*].power_bi_task.refresh_after_update=false +resources.jobs.*.tasks[*].power_bi_task.tables +resources.jobs.*.tasks[*].power_bi_task.tables[*] +resources.jobs.*.tasks[*].power_bi_task.tables[*].catalog +resources.jobs.*.tasks[*].power_bi_task.tables[*].name +resources.jobs.*.tasks[*].power_bi_task.tables[*].schema +resources.jobs.*.tasks[*].power_bi_task.tables[*].storage_mode +resources.jobs.*.tasks[*].power_bi_task.warehouse_id +resources.jobs.*.tasks[*].python_operator_task +resources.jobs.*.tasks[*].python_operator_task.main +resources.jobs.*.tasks[*].python_operator_task.parameters +resources.jobs.*.tasks[*].python_operator_task.parameters[*] +resources.jobs.*.tasks[*].python_operator_task.parameters[*].name +resources.jobs.*.tasks[*].python_operator_task.parameters[*].value +resources.jobs.*.tasks[*].python_wheel_task +resources.jobs.*.tasks[*].python_wheel_task.entry_point +resources.jobs.*.tasks[*].python_wheel_task.named_parameters +resources.jobs.*.tasks[*].python_wheel_task.named_parameters.* +resources.jobs.*.tasks[*].python_wheel_task.package_name +resources.jobs.*.tasks[*].python_wheel_task.parameters +resources.jobs.*.tasks[*].python_wheel_task.parameters[*] +resources.jobs.*.tasks[*].retry_on_timeout +resources.jobs.*.tasks[*].retry_on_timeout=true +resources.jobs.*.tasks[*].retry_on_timeout=false +resources.jobs.*.tasks[*].run_if +resources.jobs.*.tasks[*].run_job_task +resources.jobs.*.tasks[*].run_job_task.dbt_commands +resources.jobs.*.tasks[*].run_job_task.dbt_commands[*] +resources.jobs.*.tasks[*].run_job_task.jar_params +resources.jobs.*.tasks[*].run_job_task.jar_params[*] +resources.jobs.*.tasks[*].run_job_task.job_id +resources.jobs.*.tasks[*].run_job_task.job_parameters +resources.jobs.*.tasks[*].run_job_task.job_parameters.* +resources.jobs.*.tasks[*].run_job_task.notebook_params +resources.jobs.*.tasks[*].run_job_task.notebook_params.* +resources.jobs.*.tasks[*].run_job_task.pipeline_params +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh=true +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh=false +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh_selection +resources.jobs.*.tasks[*].run_job_task.pipeline_params.full_refresh_selection[*] +resources.jobs.*.tasks[*].run_job_task.pipeline_params.refresh_flow_selection +resources.jobs.*.tasks[*].run_job_task.pipeline_params.refresh_flow_selection[*] +resources.jobs.*.tasks[*].run_job_task.pipeline_params.refresh_selection +resources.jobs.*.tasks[*].run_job_task.pipeline_params.refresh_selection[*] +resources.jobs.*.tasks[*].run_job_task.pipeline_params.reset_checkpoint_selection +resources.jobs.*.tasks[*].run_job_task.pipeline_params.reset_checkpoint_selection[*] +resources.jobs.*.tasks[*].run_job_task.python_named_params +resources.jobs.*.tasks[*].run_job_task.python_named_params.* +resources.jobs.*.tasks[*].run_job_task.python_params +resources.jobs.*.tasks[*].run_job_task.python_params[*] +resources.jobs.*.tasks[*].run_job_task.spark_submit_params +resources.jobs.*.tasks[*].run_job_task.spark_submit_params[*] +resources.jobs.*.tasks[*].run_job_task.sql_params +resources.jobs.*.tasks[*].run_job_task.sql_params.* +resources.jobs.*.tasks[*].spark_jar_task +resources.jobs.*.tasks[*].spark_jar_task.jar_uri +resources.jobs.*.tasks[*].spark_jar_task.main_class_name +resources.jobs.*.tasks[*].spark_jar_task.parameters +resources.jobs.*.tasks[*].spark_jar_task.parameters[*] +resources.jobs.*.tasks[*].spark_jar_task.run_as_repl +resources.jobs.*.tasks[*].spark_jar_task.run_as_repl=true +resources.jobs.*.tasks[*].spark_jar_task.run_as_repl=false +resources.jobs.*.tasks[*].spark_python_task +resources.jobs.*.tasks[*].spark_python_task.parameters +resources.jobs.*.tasks[*].spark_python_task.parameters[*] +resources.jobs.*.tasks[*].spark_python_task.python_file +resources.jobs.*.tasks[*].spark_python_task.source +resources.jobs.*.tasks[*].spark_submit_task +resources.jobs.*.tasks[*].spark_submit_task.parameters +resources.jobs.*.tasks[*].spark_submit_task.parameters[*] +resources.jobs.*.tasks[*].sql_task +resources.jobs.*.tasks[*].sql_task.alert +resources.jobs.*.tasks[*].sql_task.alert.alert_id +resources.jobs.*.tasks[*].sql_task.alert.pause_subscriptions +resources.jobs.*.tasks[*].sql_task.alert.pause_subscriptions=true +resources.jobs.*.tasks[*].sql_task.alert.pause_subscriptions=false +resources.jobs.*.tasks[*].sql_task.alert.subscriptions +resources.jobs.*.tasks[*].sql_task.alert.subscriptions[*] +resources.jobs.*.tasks[*].sql_task.alert.subscriptions[*].destination_id +resources.jobs.*.tasks[*].sql_task.alert.subscriptions[*].user_name +resources.jobs.*.tasks[*].sql_task.dashboard +resources.jobs.*.tasks[*].sql_task.dashboard.custom_subject +resources.jobs.*.tasks[*].sql_task.dashboard.dashboard_id +resources.jobs.*.tasks[*].sql_task.dashboard.pause_subscriptions +resources.jobs.*.tasks[*].sql_task.dashboard.pause_subscriptions=true +resources.jobs.*.tasks[*].sql_task.dashboard.pause_subscriptions=false +resources.jobs.*.tasks[*].sql_task.dashboard.subscriptions +resources.jobs.*.tasks[*].sql_task.dashboard.subscriptions[*] +resources.jobs.*.tasks[*].sql_task.dashboard.subscriptions[*].destination_id +resources.jobs.*.tasks[*].sql_task.dashboard.subscriptions[*].user_name +resources.jobs.*.tasks[*].sql_task.file +resources.jobs.*.tasks[*].sql_task.file.path +resources.jobs.*.tasks[*].sql_task.file.source +resources.jobs.*.tasks[*].sql_task.parameters +resources.jobs.*.tasks[*].sql_task.parameters.* +resources.jobs.*.tasks[*].sql_task.query +resources.jobs.*.tasks[*].sql_task.query.query_id +resources.jobs.*.tasks[*].sql_task.warehouse_id +resources.jobs.*.tasks[*].task_key +resources.jobs.*.tasks[*].timeout_seconds +resources.jobs.*.tasks[*].webhook_notifications +resources.jobs.*.tasks[*].webhook_notifications.on_duration_warning_threshold_exceeded +resources.jobs.*.tasks[*].webhook_notifications.on_duration_warning_threshold_exceeded[*] +resources.jobs.*.tasks[*].webhook_notifications.on_duration_warning_threshold_exceeded[*].id +resources.jobs.*.tasks[*].webhook_notifications.on_failure +resources.jobs.*.tasks[*].webhook_notifications.on_failure[*] +resources.jobs.*.tasks[*].webhook_notifications.on_failure[*].id +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_complete +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_complete[*] +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_complete[*].id +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_start +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_start[*] +resources.jobs.*.tasks[*].webhook_notifications.on_maintenance_start[*].id +resources.jobs.*.tasks[*].webhook_notifications.on_start +resources.jobs.*.tasks[*].webhook_notifications.on_start[*] +resources.jobs.*.tasks[*].webhook_notifications.on_start[*].id +resources.jobs.*.tasks[*].webhook_notifications.on_streaming_backlog_exceeded +resources.jobs.*.tasks[*].webhook_notifications.on_streaming_backlog_exceeded[*] +resources.jobs.*.tasks[*].webhook_notifications.on_streaming_backlog_exceeded[*].id +resources.jobs.*.tasks[*].webhook_notifications.on_success +resources.jobs.*.tasks[*].webhook_notifications.on_success[*] +resources.jobs.*.tasks[*].webhook_notifications.on_success[*].id +resources.jobs.*.timeout_seconds +resources.jobs.*.trigger +resources.jobs.*.trigger.file_arrival +resources.jobs.*.trigger.file_arrival.min_time_between_triggers_seconds +resources.jobs.*.trigger.file_arrival.url +resources.jobs.*.trigger.file_arrival.wait_after_last_change_seconds +resources.jobs.*.trigger.job_completion +resources.jobs.*.trigger.job_completion.if_status +resources.jobs.*.trigger.job_completion.jobs +resources.jobs.*.trigger.job_completion.jobs[*] +resources.jobs.*.trigger.job_completion.jobs[*].job_id +resources.jobs.*.trigger.job_completion.jobs[*].workspace_id +resources.jobs.*.trigger.model +resources.jobs.*.trigger.model.aliases +resources.jobs.*.trigger.model.aliases[*] +resources.jobs.*.trigger.model.condition +resources.jobs.*.trigger.model.min_time_between_triggers_seconds +resources.jobs.*.trigger.model.securable_name +resources.jobs.*.trigger.model.wait_after_last_change_seconds +resources.jobs.*.trigger.pause_status +resources.jobs.*.trigger.periodic +resources.jobs.*.trigger.periodic.interval +resources.jobs.*.trigger.periodic.unit +resources.jobs.*.trigger.sql_condition +resources.jobs.*.trigger.sql_condition.sql_query_id +resources.jobs.*.trigger.sql_condition.trigger_mode +resources.jobs.*.trigger.sql_condition.warehouse_id +resources.jobs.*.trigger.table_update +resources.jobs.*.trigger.table_update.condition +resources.jobs.*.trigger.table_update.min_time_between_triggers_seconds +resources.jobs.*.trigger.table_update.table_names +resources.jobs.*.trigger.table_update.table_names[*] +resources.jobs.*.trigger.table_update.wait_after_last_change_seconds +resources.jobs.*.triggers +resources.jobs.*.triggers[*] +resources.jobs.*.triggers[*].continuous +resources.jobs.*.triggers[*].continuous.maintenance_window +resources.jobs.*.triggers[*].continuous.maintenance_window.day_of_week +resources.jobs.*.triggers[*].continuous.maintenance_window.start_hour +resources.jobs.*.triggers[*].continuous.maintenance_window.timezone_id +resources.jobs.*.triggers[*].continuous.task_retry_mode +resources.jobs.*.triggers[*].file_arrival +resources.jobs.*.triggers[*].file_arrival.min_time_between_triggers_seconds +resources.jobs.*.triggers[*].file_arrival.url +resources.jobs.*.triggers[*].file_arrival.wait_after_last_change_seconds +resources.jobs.*.triggers[*].job_completion +resources.jobs.*.triggers[*].job_completion.if_status +resources.jobs.*.triggers[*].job_completion.jobs +resources.jobs.*.triggers[*].job_completion.jobs[*] +resources.jobs.*.triggers[*].job_completion.jobs[*].job_id +resources.jobs.*.triggers[*].job_completion.jobs[*].workspace_id +resources.jobs.*.triggers[*].model +resources.jobs.*.triggers[*].model.aliases +resources.jobs.*.triggers[*].model.aliases[*] +resources.jobs.*.triggers[*].model.condition +resources.jobs.*.triggers[*].model.min_time_between_triggers_seconds +resources.jobs.*.triggers[*].model.securable_name +resources.jobs.*.triggers[*].model.wait_after_last_change_seconds +resources.jobs.*.triggers[*].pause_status +resources.jobs.*.triggers[*].periodic +resources.jobs.*.triggers[*].periodic.interval +resources.jobs.*.triggers[*].periodic.unit +resources.jobs.*.triggers[*].schedule +resources.jobs.*.triggers[*].schedule.quartz_cron_expression +resources.jobs.*.triggers[*].schedule.timezone_id +resources.jobs.*.triggers[*].sql_condition +resources.jobs.*.triggers[*].sql_condition.sql_query_id +resources.jobs.*.triggers[*].sql_condition.trigger_mode +resources.jobs.*.triggers[*].sql_condition.warehouse_id +resources.jobs.*.triggers[*].table_update +resources.jobs.*.triggers[*].table_update.condition +resources.jobs.*.triggers[*].table_update.min_time_between_triggers_seconds +resources.jobs.*.triggers[*].table_update.table_names +resources.jobs.*.triggers[*].table_update.table_names[*] +resources.jobs.*.triggers[*].table_update.wait_after_last_change_seconds +resources.jobs.*.usage_policy_id +resources.jobs.*.webhook_notifications +resources.jobs.*.webhook_notifications.on_duration_warning_threshold_exceeded +resources.jobs.*.webhook_notifications.on_duration_warning_threshold_exceeded[*] +resources.jobs.*.webhook_notifications.on_duration_warning_threshold_exceeded[*].id +resources.jobs.*.webhook_notifications.on_failure +resources.jobs.*.webhook_notifications.on_failure[*] +resources.jobs.*.webhook_notifications.on_failure[*].id +resources.jobs.*.webhook_notifications.on_maintenance_complete +resources.jobs.*.webhook_notifications.on_maintenance_complete[*] +resources.jobs.*.webhook_notifications.on_maintenance_complete[*].id +resources.jobs.*.webhook_notifications.on_maintenance_start +resources.jobs.*.webhook_notifications.on_maintenance_start[*] +resources.jobs.*.webhook_notifications.on_maintenance_start[*].id +resources.jobs.*.webhook_notifications.on_start +resources.jobs.*.webhook_notifications.on_start[*] +resources.jobs.*.webhook_notifications.on_start[*].id +resources.jobs.*.webhook_notifications.on_streaming_backlog_exceeded +resources.jobs.*.webhook_notifications.on_streaming_backlog_exceeded[*] +resources.jobs.*.webhook_notifications.on_streaming_backlog_exceeded[*].id +resources.jobs.*.webhook_notifications.on_success +resources.jobs.*.webhook_notifications.on_success[*] +resources.jobs.*.webhook_notifications.on_success[*].id +resources.jobs.*.permissions +resources.jobs.*.permissions[*] +resources.jobs.*.permissions[*].level +resources.jobs.*.permissions[*].user_name +resources.jobs.*.permissions[*].service_principal_name +resources.jobs.*.permissions[*].group_name +resources.job_runs +resources.job_runs.* +resources.job_runs.*.url +resources.job_runs.*.modified_status +resources.job_runs.*.lifecycle +resources.job_runs.*.lifecycle.prevent_destroy +resources.job_runs.*.lifecycle.prevent_destroy=true +resources.job_runs.*.lifecycle.prevent_destroy=false +resources.job_runs.*.lifecycle.depends_on +resources.job_runs.*.lifecycle.depends_on[*] +resources.job_runs.*.lifecycle.depends_on[*].resource +resources.job_runs.*.id +resources.job_runs.*.dbt_commands +resources.job_runs.*.dbt_commands[*] +resources.job_runs.*.duration_target +resources.job_runs.*.idempotency_token +resources.job_runs.*.jar_params +resources.job_runs.*.jar_params[*] +resources.job_runs.*.job_id +resources.job_runs.*.job_parameters +resources.job_runs.*.job_parameters.* +resources.job_runs.*.notebook_params +resources.job_runs.*.notebook_params.* +resources.job_runs.*.only +resources.job_runs.*.only[*] +resources.job_runs.*.performance_target +resources.job_runs.*.pipeline_params +resources.job_runs.*.pipeline_params.full_refresh +resources.job_runs.*.pipeline_params.full_refresh=true +resources.job_runs.*.pipeline_params.full_refresh=false +resources.job_runs.*.pipeline_params.full_refresh_selection +resources.job_runs.*.pipeline_params.full_refresh_selection[*] +resources.job_runs.*.pipeline_params.refresh_flow_selection +resources.job_runs.*.pipeline_params.refresh_flow_selection[*] +resources.job_runs.*.pipeline_params.refresh_selection +resources.job_runs.*.pipeline_params.refresh_selection[*] +resources.job_runs.*.pipeline_params.reset_checkpoint_selection +resources.job_runs.*.pipeline_params.reset_checkpoint_selection[*] +resources.job_runs.*.python_named_params +resources.job_runs.*.python_named_params.* +resources.job_runs.*.python_params +resources.job_runs.*.python_params[*] +resources.job_runs.*.queue +resources.job_runs.*.queue.enabled +resources.job_runs.*.queue.enabled=true +resources.job_runs.*.queue.enabled=false +resources.job_runs.*.spark_submit_params +resources.job_runs.*.spark_submit_params[*] +resources.job_runs.*.sql_params +resources.job_runs.*.sql_params.* +resources.job_runs.*.lifecycle.triggers +resources.job_runs.*.lifecycle.triggers[*] +resources.job_runs.*.lifecycle.triggers[*].on_bundle_deploy +resources.job_runs.*.lifecycle.triggers[*].on_bundle_deploy=true +resources.job_runs.*.lifecycle.triggers[*].on_bundle_deploy=false +resources.job_runs.*.lifecycle.triggers[*].on_file_change +resources.job_runs.*.lifecycle.triggers_state +resources.job_runs.*.lifecycle.triggers_state.on_bundle_deploy +resources.job_runs.*.lifecycle.triggers_state.on_file_change +resources.job_runs.*.lifecycle.triggers_state.on_file_change.* +resources.job_runs.*.resolved_job_id +resources.pipelines +resources.pipelines.* +resources.pipelines.*.url +resources.pipelines.*.modified_status +resources.pipelines.*.lifecycle +resources.pipelines.*.lifecycle.prevent_destroy +resources.pipelines.*.lifecycle.prevent_destroy=true +resources.pipelines.*.lifecycle.prevent_destroy=false +resources.pipelines.*.lifecycle.depends_on +resources.pipelines.*.lifecycle.depends_on[*] +resources.pipelines.*.lifecycle.depends_on[*].resource +resources.pipelines.*.allow_duplicate_names +resources.pipelines.*.allow_duplicate_names=true +resources.pipelines.*.allow_duplicate_names=false +resources.pipelines.*.budget_policy_id +resources.pipelines.*.catalog +resources.pipelines.*.channel +resources.pipelines.*.clusters +resources.pipelines.*.clusters[*] +resources.pipelines.*.clusters[*].apply_policy_default_values +resources.pipelines.*.clusters[*].apply_policy_default_values=true +resources.pipelines.*.clusters[*].apply_policy_default_values=false +resources.pipelines.*.clusters[*].autoscale +resources.pipelines.*.clusters[*].autoscale.max_workers +resources.pipelines.*.clusters[*].autoscale.min_workers +resources.pipelines.*.clusters[*].autoscale.mode +resources.pipelines.*.clusters[*].aws_attributes +resources.pipelines.*.clusters[*].aws_attributes.availability +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_count +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_iops +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_size +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_throughput +resources.pipelines.*.clusters[*].aws_attributes.ebs_volume_type +resources.pipelines.*.clusters[*].aws_attributes.first_on_demand +resources.pipelines.*.clusters[*].aws_attributes.instance_profile_arn +resources.pipelines.*.clusters[*].aws_attributes.spot_bid_price_percent +resources.pipelines.*.clusters[*].aws_attributes.zone_id +resources.pipelines.*.clusters[*].azure_attributes +resources.pipelines.*.clusters[*].azure_attributes.availability +resources.pipelines.*.clusters[*].azure_attributes.capacity_reservation_group +resources.pipelines.*.clusters[*].azure_attributes.first_on_demand +resources.pipelines.*.clusters[*].azure_attributes.log_analytics_info +resources.pipelines.*.clusters[*].azure_attributes.log_analytics_info.log_analytics_primary_key +resources.pipelines.*.clusters[*].azure_attributes.log_analytics_info.log_analytics_workspace_id +resources.pipelines.*.clusters[*].azure_attributes.spot_bid_max_price +resources.pipelines.*.clusters[*].cluster_log_conf +resources.pipelines.*.clusters[*].cluster_log_conf.dbfs +resources.pipelines.*.clusters[*].cluster_log_conf.dbfs.destination +resources.pipelines.*.clusters[*].cluster_log_conf.s3 +resources.pipelines.*.clusters[*].cluster_log_conf.s3.canned_acl +resources.pipelines.*.clusters[*].cluster_log_conf.s3.destination +resources.pipelines.*.clusters[*].cluster_log_conf.s3.enable_encryption +resources.pipelines.*.clusters[*].cluster_log_conf.s3.enable_encryption=true +resources.pipelines.*.clusters[*].cluster_log_conf.s3.enable_encryption=false +resources.pipelines.*.clusters[*].cluster_log_conf.s3.encryption_type +resources.pipelines.*.clusters[*].cluster_log_conf.s3.endpoint +resources.pipelines.*.clusters[*].cluster_log_conf.s3.kms_key +resources.pipelines.*.clusters[*].cluster_log_conf.s3.region +resources.pipelines.*.clusters[*].cluster_log_conf.volumes +resources.pipelines.*.clusters[*].cluster_log_conf.volumes.destination +resources.pipelines.*.clusters[*].custom_tags +resources.pipelines.*.clusters[*].custom_tags.* +resources.pipelines.*.clusters[*].driver_instance_pool_id +resources.pipelines.*.clusters[*].driver_node_type_id +resources.pipelines.*.clusters[*].enable_local_disk_encryption +resources.pipelines.*.clusters[*].enable_local_disk_encryption=true +resources.pipelines.*.clusters[*].enable_local_disk_encryption=false +resources.pipelines.*.clusters[*].gcp_attributes +resources.pipelines.*.clusters[*].gcp_attributes.availability +resources.pipelines.*.clusters[*].gcp_attributes.boot_disk_size +resources.pipelines.*.clusters[*].gcp_attributes.confidential_compute_type +resources.pipelines.*.clusters[*].gcp_attributes.first_on_demand +resources.pipelines.*.clusters[*].gcp_attributes.google_service_account +resources.pipelines.*.clusters[*].gcp_attributes.local_ssd_count +resources.pipelines.*.clusters[*].gcp_attributes.use_preemptible_executors +resources.pipelines.*.clusters[*].gcp_attributes.use_preemptible_executors=true +resources.pipelines.*.clusters[*].gcp_attributes.use_preemptible_executors=false +resources.pipelines.*.clusters[*].gcp_attributes.zone_id +resources.pipelines.*.clusters[*].init_scripts +resources.pipelines.*.clusters[*].init_scripts[*] +resources.pipelines.*.clusters[*].init_scripts[*].abfss +resources.pipelines.*.clusters[*].init_scripts[*].abfss.destination +resources.pipelines.*.clusters[*].init_scripts[*].dbfs +resources.pipelines.*.clusters[*].init_scripts[*].dbfs.destination +resources.pipelines.*.clusters[*].init_scripts[*].file +resources.pipelines.*.clusters[*].init_scripts[*].file.destination +resources.pipelines.*.clusters[*].init_scripts[*].gcs +resources.pipelines.*.clusters[*].init_scripts[*].gcs.destination +resources.pipelines.*.clusters[*].init_scripts[*].s3 +resources.pipelines.*.clusters[*].init_scripts[*].s3.canned_acl +resources.pipelines.*.clusters[*].init_scripts[*].s3.destination +resources.pipelines.*.clusters[*].init_scripts[*].s3.enable_encryption +resources.pipelines.*.clusters[*].init_scripts[*].s3.enable_encryption=true +resources.pipelines.*.clusters[*].init_scripts[*].s3.enable_encryption=false +resources.pipelines.*.clusters[*].init_scripts[*].s3.encryption_type +resources.pipelines.*.clusters[*].init_scripts[*].s3.endpoint +resources.pipelines.*.clusters[*].init_scripts[*].s3.kms_key +resources.pipelines.*.clusters[*].init_scripts[*].s3.region +resources.pipelines.*.clusters[*].init_scripts[*].volumes +resources.pipelines.*.clusters[*].init_scripts[*].volumes.destination +resources.pipelines.*.clusters[*].init_scripts[*].workspace +resources.pipelines.*.clusters[*].init_scripts[*].workspace.destination +resources.pipelines.*.clusters[*].instance_pool_id +resources.pipelines.*.clusters[*].label +resources.pipelines.*.clusters[*].node_type_id +resources.pipelines.*.clusters[*].num_workers +resources.pipelines.*.clusters[*].policy_id +resources.pipelines.*.clusters[*].spark_conf +resources.pipelines.*.clusters[*].spark_conf.* +resources.pipelines.*.clusters[*].spark_env_vars +resources.pipelines.*.clusters[*].spark_env_vars.* +resources.pipelines.*.clusters[*].ssh_public_keys +resources.pipelines.*.clusters[*].ssh_public_keys[*] +resources.pipelines.*.configuration +resources.pipelines.*.configuration.* +resources.pipelines.*.continuous +resources.pipelines.*.continuous=true +resources.pipelines.*.continuous=false +resources.pipelines.*.deployment +resources.pipelines.*.deployment.deployment_id +resources.pipelines.*.deployment.kind +resources.pipelines.*.deployment.metadata_file_path +resources.pipelines.*.deployment.version_id +resources.pipelines.*.development +resources.pipelines.*.development=true +resources.pipelines.*.development=false +resources.pipelines.*.dry_run +resources.pipelines.*.dry_run=true +resources.pipelines.*.dry_run=false +resources.pipelines.*.edition +resources.pipelines.*.environment +resources.pipelines.*.environment.dependencies +resources.pipelines.*.environment.dependencies[*] +resources.pipelines.*.environment.environment_version +resources.pipelines.*.event_log +resources.pipelines.*.event_log.catalog +resources.pipelines.*.event_log.name +resources.pipelines.*.event_log.schema +resources.pipelines.*.filters +resources.pipelines.*.filters.exclude +resources.pipelines.*.filters.exclude[*] +resources.pipelines.*.filters.include +resources.pipelines.*.filters.include[*] +resources.pipelines.*.gateway_definition +resources.pipelines.*.gateway_definition.connection_id +resources.pipelines.*.gateway_definition.connection_name +resources.pipelines.*.gateway_definition.connection_parameters +resources.pipelines.*.gateway_definition.connection_parameters.source_catalog +resources.pipelines.*.gateway_definition.gateway_storage_catalog +resources.pipelines.*.gateway_definition.gateway_storage_name +resources.pipelines.*.gateway_definition.gateway_storage_schema +resources.pipelines.*.id +resources.pipelines.*.ingestion_definition +resources.pipelines.*.ingestion_definition.connection_name +resources.pipelines.*.ingestion_definition.connector_type +resources.pipelines.*.ingestion_definition.data_staging_options +resources.pipelines.*.ingestion_definition.data_staging_options.catalog_name +resources.pipelines.*.ingestion_definition.data_staging_options.schema_name +resources.pipelines.*.ingestion_definition.data_staging_options.volume_name +resources.pipelines.*.ingestion_definition.full_refresh_window +resources.pipelines.*.ingestion_definition.full_refresh_window.days_of_week +resources.pipelines.*.ingestion_definition.full_refresh_window.days_of_week[*] +resources.pipelines.*.ingestion_definition.full_refresh_window.start_hour +resources.pipelines.*.ingestion_definition.full_refresh_window.time_zone_id +resources.pipelines.*.ingestion_definition.ingest_from_uc_foreign_catalog +resources.pipelines.*.ingestion_definition.ingest_from_uc_foreign_catalog=true +resources.pipelines.*.ingestion_definition.ingest_from_uc_foreign_catalog=false +resources.pipelines.*.ingestion_definition.ingestion_gateway_id +resources.pipelines.*.ingestion_definition.netsuite_jar_path +resources.pipelines.*.ingestion_definition.objects +resources.pipelines.*.ingestion_definition.objects[*] +resources.pipelines.*.ingestion_definition.objects[*].report +resources.pipelines.*.ingestion_definition.objects[*].report.destination_catalog +resources.pipelines.*.ingestion_definition.objects[*].report.destination_schema +resources.pipelines.*.ingestion_definition.objects[*].report.destination_table +resources.pipelines.*.ingestion_definition.objects[*].report.source_url +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.enabled +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.enabled=true +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.enabled=false +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.auto_full_refresh_policy.min_interval_hours +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.clustering_columns +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.clustering_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.enable_auto_clustering +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.enable_auto_clustering=true +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.enable_auto_clustering=false +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.exclude_columns +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.exclude_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.include_columns +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.include_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.primary_keys +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.primary_keys[*] +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config.cursor_columns +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config.cursor_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config.deletion_condition +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.query_based_connector_config.hard_deletion_sync_min_interval_in_seconds +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.row_filter +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.salesforce_include_formula_fields +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.salesforce_include_formula_fields=true +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.salesforce_include_formula_fields=false +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.scd_type +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.sequence_by +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.sequence_by[*] +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.source_metadata_column +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.table_properties +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.table_properties.* +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.incremental +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.incremental=true +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.incremental=false +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.parameters +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.parameters.* +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.report_parameters +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.report_parameters[*] +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.report_parameters[*].key +resources.pipelines.*.ingestion_definition.objects[*].report.table_configuration.workday_report_parameters.report_parameters[*].value +resources.pipelines.*.ingestion_definition.objects[*].schema +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.api_source_connector_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.api_source_connector_options.options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.api_source_connector_options.options.* +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.confluence_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.confluence_options.include_confluence_spaces +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.confluence_options.include_confluence_spaces[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.entity_type +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.corrupt_record_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters[*].modified_after +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters[*].modified_before +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.file_filters[*].path_filter +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.format +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.format_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.format_options.* +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.infer_column_types +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.infer_column_types=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.infer_column_types=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.rescued_data_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.file_ingestion_options.single_variant_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.gdrive_options.url +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.metrics +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.metrics[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.resource +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.resource_fields +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.resource_fields[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.segments +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.custom_report_options.segments[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.lookback_window_days +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.manager_account_id +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.google_ads_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.jira_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.jira_options.include_jira_spaces +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.jira_options.include_jira_spaces[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.client_config +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.client_config.* +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.avro_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.format +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.input_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.as_variant +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.as_variant=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.as_variant=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.schema +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.json_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.output_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.desc_file_path +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.message_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.recursive_fields_max_depth +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.max_offsets_per_trigger +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.starting_offset +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.topic_pattern +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.topics +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.topics[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.avro_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.format +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.input_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.as_variant +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.as_variant=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.as_variant=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.schema +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.json_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.output_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.desc_file_path +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.message_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.recursive_fields_max_depth +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.entity_granularity +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.entity_granularity[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.finder +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.metrics +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.metrics[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.custom_report_options.time_granularity +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.lookback_window_days +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.linkedin_ads_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.marketo_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.marketo_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_attribution_windows +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_attribution_windows[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_breakdowns +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.action_report_time +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.breakdowns +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_insights_lookback_window +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_attribution_windows +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_attribution_windows[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_breakdowns +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.action_report_time +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.breakdowns +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.level +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.custom_report_options.time_increment +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.level +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.start_date +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.meta_ads_options.time_increment +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.entity_type +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.corrupt_record_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_after +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_before +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.file_filters[*].path_filter +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.format_options.* +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.infer_column_types +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.infer_column_types=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.infer_column_types=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.rescued_data_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.file_ingestion_options.single_variant_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.onedrive_options.url +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.attachment_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.body_format +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.folder_filter +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.folder_filter[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_folders +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_folders[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_mailboxes +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_mailboxes[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_senders +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_senders[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_subjects +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.include_subjects[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.sender_filter +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.sender_filter[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.start_date +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.subject_filter +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.outlook_options.subject_filter[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.rabbitmq_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.rabbitmq_options.queue +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options.breakdowns +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options.breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options.fields +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.custom_report_options.fields[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.lookback_window_days +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.reddit_ads_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.entity_type +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.corrupt_record_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].modified_after +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].modified_before +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].path_filter +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.format +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.format_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.format_options.* +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.infer_column_types +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.infer_column_types=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.infer_column_types=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.rescued_data_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.file_ingestion_options.single_variant_column +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.sharepoint_options.url +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.smartsheet_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.smartsheet_options.enforce_schema +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.smartsheet_options.enforce_schema=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.smartsheet_options.enforce_schema=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.data_level +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.dimensions +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.dimensions[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.metrics +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.metrics[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.query_lifetime +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.query_lifetime=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.query_lifetime=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.custom_report_options.report_type +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.data_level +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.dimensions +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.dimensions[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.lookback_window_days +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.metrics +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.metrics[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.query_lifetime +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.query_lifetime=true +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.query_lifetime=false +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.report_type +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.tiktok_ads_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.zendesk_support_options +resources.pipelines.*.ingestion_definition.objects[*].schema.connector_options.zendesk_support_options.start_date +resources.pipelines.*.ingestion_definition.objects[*].schema.destination_catalog +resources.pipelines.*.ingestion_definition.objects[*].schema.destination_schema +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.fanout_by +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].avro_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].format +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].input_column +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.as_variant +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.as_variant=true +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.as_variant=false +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.schema +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].json_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].output_column +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.desc_file_path +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.message_name +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.recursive_fields_max_depth +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].schema.fanout_options.transforms[*].protobuf_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].schema.source_catalog +resources.pipelines.*.ingestion_definition.objects[*].schema.source_schema +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.enabled +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.enabled=true +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.enabled=false +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.auto_full_refresh_policy.min_interval_hours +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.clustering_columns +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.clustering_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.enable_auto_clustering +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.enable_auto_clustering=true +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.enable_auto_clustering=false +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.exclude_columns +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.exclude_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.include_columns +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.include_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.primary_keys +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.primary_keys[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config.cursor_columns +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config.cursor_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config.deletion_condition +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.query_based_connector_config.hard_deletion_sync_min_interval_in_seconds +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.row_filter +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.salesforce_include_formula_fields +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.salesforce_include_formula_fields=true +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.salesforce_include_formula_fields=false +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.scd_type +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.sequence_by +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.sequence_by[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.source_metadata_column +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.table_properties +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.table_properties.* +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.incremental +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.incremental=true +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.incremental=false +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.parameters +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.parameters.* +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.report_parameters +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.report_parameters[*] +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.report_parameters[*].key +resources.pipelines.*.ingestion_definition.objects[*].schema.table_configuration.workday_report_parameters.report_parameters[*].value +resources.pipelines.*.ingestion_definition.objects[*].table +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.api_source_connector_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.api_source_connector_options.options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.api_source_connector_options.options.* +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.confluence_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.confluence_options.include_confluence_spaces +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.confluence_options.include_confluence_spaces[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.entity_type +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.corrupt_record_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters[*].modified_after +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters[*].modified_before +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.file_filters[*].path_filter +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.format +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.format_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.format_options.* +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.ignore_corrupt_files=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.infer_column_types +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.infer_column_types=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.infer_column_types=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.reader_case_sensitive=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.rescued_data_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.file_ingestion_options.single_variant_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.gdrive_options.url +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.metrics +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.metrics[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.resource +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.resource_fields +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.resource_fields[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.segments +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.custom_report_options.segments[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.lookback_window_days +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.manager_account_id +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.google_ads_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.jira_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.jira_options.include_jira_spaces +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.jira_options.include_jira_spaces[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.client_config +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.client_config.* +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.avro_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.format +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.input_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.as_variant +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.as_variant=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.as_variant=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.schema +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.json_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.output_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.desc_file_path +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.message_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.recursive_fields_max_depth +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.key_transformer.protobuf_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.max_offsets_per_trigger +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.starting_offset +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.topic_pattern +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.topics +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.topics[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.avro_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.format +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.input_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.as_variant +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.as_variant=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.as_variant=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.schema +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.schema_file_path +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.json_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.output_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.desc_file_path +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.message_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.parse_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.recursive_fields_max_depth +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.confluent_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.confluent_options.subject +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.connection_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.kafka_options.value_transformer.protobuf_options.schema_registry.protobuf_message_name +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.entity_granularity +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.entity_granularity[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.finder +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.metrics +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.metrics[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.custom_report_options.time_granularity +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.lookback_window_days +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.linkedin_ads_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.marketo_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.marketo_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_attribution_windows +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_attribution_windows[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_breakdowns +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.action_report_time +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.breakdowns +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_insights_lookback_window +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_attribution_windows +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_attribution_windows[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_breakdowns +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.action_report_time +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.breakdowns +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.level +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.custom_report_options.time_increment +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.level +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.start_date +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.meta_ads_options.time_increment +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.entity_type +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.corrupt_record_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_after +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*].modified_before +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.file_filters[*].path_filter +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.format_options.* +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.ignore_corrupt_files=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.infer_column_types +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.infer_column_types=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.infer_column_types=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.reader_case_sensitive=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.rescued_data_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.file_ingestion_options.single_variant_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.onedrive_options.url +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.attachment_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.body_format +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.folder_filter +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.folder_filter[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_folders +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_folders[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_mailboxes +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_mailboxes[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_senders +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_senders[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_subjects +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.include_subjects[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.sender_filter +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.sender_filter[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.start_date +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.subject_filter +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.outlook_options.subject_filter[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.rabbitmq_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.rabbitmq_options.queue +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options.breakdowns +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options.breakdowns[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options.fields +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.custom_report_options.fields[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.lookback_window_days +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.reddit_ads_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.entity_type +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.corrupt_record_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].modified_after +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].modified_before +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.file_filters[*].path_filter +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.format +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.format_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.format_options.* +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.ignore_corrupt_files=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.infer_column_types +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.infer_column_types=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.infer_column_types=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.reader_case_sensitive=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.rescued_data_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.schema_evolution_mode +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.schema_hints +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.file_ingestion_options.single_variant_column +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.sharepoint_options.url +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.smartsheet_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.smartsheet_options.enforce_schema +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.smartsheet_options.enforce_schema=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.smartsheet_options.enforce_schema=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.data_level +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.dimensions +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.dimensions[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.metrics +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.metrics[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.query_lifetime +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.query_lifetime=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.query_lifetime=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.custom_report_options.report_type +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.data_level +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.dimensions +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.dimensions[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.lookback_window_days +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.metrics +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.metrics[*] +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.query_lifetime +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.query_lifetime=true +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.query_lifetime=false +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.report_type +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.tiktok_ads_options.sync_start_date +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.zendesk_support_options +resources.pipelines.*.ingestion_definition.objects[*].table.connector_options.zendesk_support_options.start_date +resources.pipelines.*.ingestion_definition.objects[*].table.destination_catalog +resources.pipelines.*.ingestion_definition.objects[*].table.destination_schema +resources.pipelines.*.ingestion_definition.objects[*].table.destination_table +resources.pipelines.*.ingestion_definition.objects[*].table.source_catalog +resources.pipelines.*.ingestion_definition.objects[*].table.source_schema +resources.pipelines.*.ingestion_definition.objects[*].table.source_table +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.enabled +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.enabled=true +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.enabled=false +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.auto_full_refresh_policy.min_interval_hours +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.clustering_columns +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.clustering_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.enable_auto_clustering +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.enable_auto_clustering=true +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.enable_auto_clustering=false +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.exclude_columns +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.exclude_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.include_columns +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.include_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.primary_keys +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.primary_keys[*] +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config.cursor_columns +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config.cursor_columns[*] +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config.deletion_condition +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.query_based_connector_config.hard_deletion_sync_min_interval_in_seconds +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.row_filter +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.salesforce_include_formula_fields +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.salesforce_include_formula_fields=true +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.salesforce_include_formula_fields=false +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.scd_type +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.sequence_by +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.sequence_by[*] +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.source_metadata_column +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.table_properties +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.table_properties.* +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.incremental +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.incremental=true +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.incremental=false +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.parameters +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.parameters.* +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.report_parameters +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.report_parameters[*] +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.report_parameters[*].key +resources.pipelines.*.ingestion_definition.objects[*].table.table_configuration.workday_report_parameters.report_parameters[*].value +resources.pipelines.*.ingestion_definition.source_configurations +resources.pipelines.*.ingestion_definition.source_configurations[*] +resources.pipelines.*.ingestion_definition.source_configurations[*].api_source_connector_config +resources.pipelines.*.ingestion_definition.source_configurations[*].api_source_connector_config.configs +resources.pipelines.*.ingestion_definition.source_configurations[*].api_source_connector_config.configs.* +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.postgres +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.postgres.slot_config +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.postgres.slot_config.publication_name +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.postgres.slot_config.slot_name +resources.pipelines.*.ingestion_definition.source_configurations[*].catalog.source_catalog +resources.pipelines.*.ingestion_definition.source_configurations[*].google_ads_config +resources.pipelines.*.ingestion_definition.source_configurations[*].google_ads_config.manager_account_id +resources.pipelines.*.ingestion_definition.source_type +resources.pipelines.*.ingestion_definition.table_configuration +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.enabled +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.enabled=true +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.enabled=false +resources.pipelines.*.ingestion_definition.table_configuration.auto_full_refresh_policy.min_interval_hours +resources.pipelines.*.ingestion_definition.table_configuration.clustering_columns +resources.pipelines.*.ingestion_definition.table_configuration.clustering_columns[*] +resources.pipelines.*.ingestion_definition.table_configuration.enable_auto_clustering +resources.pipelines.*.ingestion_definition.table_configuration.enable_auto_clustering=true +resources.pipelines.*.ingestion_definition.table_configuration.enable_auto_clustering=false +resources.pipelines.*.ingestion_definition.table_configuration.exclude_columns +resources.pipelines.*.ingestion_definition.table_configuration.exclude_columns[*] +resources.pipelines.*.ingestion_definition.table_configuration.include_columns +resources.pipelines.*.ingestion_definition.table_configuration.include_columns[*] +resources.pipelines.*.ingestion_definition.table_configuration.primary_keys +resources.pipelines.*.ingestion_definition.table_configuration.primary_keys[*] +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config.cursor_columns +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config.cursor_columns[*] +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config.deletion_condition +resources.pipelines.*.ingestion_definition.table_configuration.query_based_connector_config.hard_deletion_sync_min_interval_in_seconds +resources.pipelines.*.ingestion_definition.table_configuration.row_filter +resources.pipelines.*.ingestion_definition.table_configuration.salesforce_include_formula_fields +resources.pipelines.*.ingestion_definition.table_configuration.salesforce_include_formula_fields=true +resources.pipelines.*.ingestion_definition.table_configuration.salesforce_include_formula_fields=false +resources.pipelines.*.ingestion_definition.table_configuration.scd_type +resources.pipelines.*.ingestion_definition.table_configuration.sequence_by +resources.pipelines.*.ingestion_definition.table_configuration.sequence_by[*] +resources.pipelines.*.ingestion_definition.table_configuration.source_metadata_column +resources.pipelines.*.ingestion_definition.table_configuration.table_properties +resources.pipelines.*.ingestion_definition.table_configuration.table_properties.* +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.incremental +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.incremental=true +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.incremental=false +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.parameters +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.parameters.* +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.report_parameters +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.report_parameters[*] +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.report_parameters[*].key +resources.pipelines.*.ingestion_definition.table_configuration.workday_report_parameters.report_parameters[*].value +resources.pipelines.*.libraries +resources.pipelines.*.libraries[*] +resources.pipelines.*.libraries[*].file +resources.pipelines.*.libraries[*].file.path +resources.pipelines.*.libraries[*].glob +resources.pipelines.*.libraries[*].glob.include +resources.pipelines.*.libraries[*].jar +resources.pipelines.*.libraries[*].maven +resources.pipelines.*.libraries[*].maven.coordinates +resources.pipelines.*.libraries[*].maven.exclusions +resources.pipelines.*.libraries[*].maven.exclusions[*] +resources.pipelines.*.libraries[*].maven.repo +resources.pipelines.*.libraries[*].notebook +resources.pipelines.*.libraries[*].notebook.path +resources.pipelines.*.libraries[*].whl +resources.pipelines.*.name +resources.pipelines.*.notifications +resources.pipelines.*.notifications[*] +resources.pipelines.*.notifications[*].alerts +resources.pipelines.*.notifications[*].alerts[*] +resources.pipelines.*.notifications[*].email_recipients +resources.pipelines.*.notifications[*].email_recipients[*] +resources.pipelines.*.parameters +resources.pipelines.*.parameters.* +resources.pipelines.*.parent_path +resources.pipelines.*.photon +resources.pipelines.*.photon=true +resources.pipelines.*.photon=false +resources.pipelines.*.restart_window +resources.pipelines.*.restart_window.days_of_week +resources.pipelines.*.restart_window.days_of_week[*] +resources.pipelines.*.restart_window.start_hour +resources.pipelines.*.restart_window.time_zone_id +resources.pipelines.*.root_path +resources.pipelines.*.run_as +resources.pipelines.*.run_as.group_name +resources.pipelines.*.run_as.service_principal_name +resources.pipelines.*.run_as.user_name +resources.pipelines.*.schema +resources.pipelines.*.serverless +resources.pipelines.*.serverless=true +resources.pipelines.*.serverless=false +resources.pipelines.*.serverless_compute_id +resources.pipelines.*.storage +resources.pipelines.*.tags +resources.pipelines.*.tags.* +resources.pipelines.*.target +resources.pipelines.*.trigger +resources.pipelines.*.trigger.cron +resources.pipelines.*.trigger.cron.quartz_cron_schedule +resources.pipelines.*.trigger.cron.timezone_id +resources.pipelines.*.trigger.manual +resources.pipelines.*.usage_policy_id +resources.pipelines.*.permissions +resources.pipelines.*.permissions[*] +resources.pipelines.*.permissions[*].level +resources.pipelines.*.permissions[*].user_name +resources.pipelines.*.permissions[*].service_principal_name +resources.pipelines.*.permissions[*].group_name +resources.pipelines.*.cascade_on_destroy +resources.pipelines.*.cascade_on_destroy=true +resources.pipelines.*.cascade_on_destroy=false +resources.features +resources.features.* +resources.features.*.url +resources.features.*.modified_status +resources.features.*.lifecycle +resources.features.*.lifecycle.prevent_destroy +resources.features.*.lifecycle.prevent_destroy=true +resources.features.*.lifecycle.prevent_destroy=false +resources.features.*.lifecycle.depends_on +resources.features.*.lifecycle.depends_on[*] +resources.features.*.lifecycle.depends_on[*].resource +resources.features.*.id +resources.features.*.catalog_name +resources.features.*.created_at +resources.features.*.created_by +resources.features.*.description +resources.features.*.entities +resources.features.*.entities[*] +resources.features.*.entities[*].name +resources.features.*.filter_condition +resources.features.*.full_name +resources.features.*.function +resources.features.*.function.aggregation_function +resources.features.*.function.aggregation_function.approx_count_distinct +resources.features.*.function.aggregation_function.approx_count_distinct.input +resources.features.*.function.aggregation_function.approx_count_distinct.relative_error +resources.features.*.function.aggregation_function.approx_count_distinct.relative_sd +resources.features.*.function.aggregation_function.approx_percentile +resources.features.*.function.aggregation_function.approx_percentile.accuracy +resources.features.*.function.aggregation_function.approx_percentile.input +resources.features.*.function.aggregation_function.approx_percentile.percentile +resources.features.*.function.aggregation_function.approx_percentile.relative_error +resources.features.*.function.aggregation_function.avg +resources.features.*.function.aggregation_function.avg.input +resources.features.*.function.aggregation_function.count_function +resources.features.*.function.aggregation_function.count_function.input +resources.features.*.function.aggregation_function.first +resources.features.*.function.aggregation_function.first.input +resources.features.*.function.aggregation_function.first_distinct +resources.features.*.function.aggregation_function.first_distinct.input +resources.features.*.function.aggregation_function.first_distinct.n +resources.features.*.function.aggregation_function.first_n +resources.features.*.function.aggregation_function.first_n.input +resources.features.*.function.aggregation_function.first_n.n +resources.features.*.function.aggregation_function.last +resources.features.*.function.aggregation_function.last.input +resources.features.*.function.aggregation_function.last_distinct +resources.features.*.function.aggregation_function.last_distinct.input +resources.features.*.function.aggregation_function.last_distinct.n +resources.features.*.function.aggregation_function.last_n +resources.features.*.function.aggregation_function.last_n.input +resources.features.*.function.aggregation_function.last_n.n +resources.features.*.function.aggregation_function.max +resources.features.*.function.aggregation_function.max.input +resources.features.*.function.aggregation_function.min +resources.features.*.function.aggregation_function.min.input +resources.features.*.function.aggregation_function.stddev_pop +resources.features.*.function.aggregation_function.stddev_pop.input +resources.features.*.function.aggregation_function.stddev_samp +resources.features.*.function.aggregation_function.stddev_samp.input +resources.features.*.function.aggregation_function.sum +resources.features.*.function.aggregation_function.sum.input +resources.features.*.function.aggregation_function.time_window +resources.features.*.function.aggregation_function.time_window.continuous +resources.features.*.function.aggregation_function.time_window.continuous.offset +resources.features.*.function.aggregation_function.time_window.continuous.window_duration +resources.features.*.function.aggregation_function.time_window.rolling +resources.features.*.function.aggregation_function.time_window.rolling.delay +resources.features.*.function.aggregation_function.time_window.rolling.window_duration +resources.features.*.function.aggregation_function.time_window.sawtooth +resources.features.*.function.aggregation_function.time_window.sawtooth.delay +resources.features.*.function.aggregation_function.time_window.sawtooth.window_duration +resources.features.*.function.aggregation_function.time_window.sliding +resources.features.*.function.aggregation_function.time_window.sliding.delay +resources.features.*.function.aggregation_function.time_window.sliding.offset +resources.features.*.function.aggregation_function.time_window.sliding.slide_duration +resources.features.*.function.aggregation_function.time_window.sliding.window_duration +resources.features.*.function.aggregation_function.time_window.start_time +resources.features.*.function.aggregation_function.time_window.tumbling +resources.features.*.function.aggregation_function.time_window.tumbling.delay +resources.features.*.function.aggregation_function.time_window.tumbling.offset +resources.features.*.function.aggregation_function.time_window.tumbling.window_duration +resources.features.*.function.aggregation_function.var_pop +resources.features.*.function.aggregation_function.var_pop.input +resources.features.*.function.aggregation_function.var_samp +resources.features.*.function.aggregation_function.var_samp.input +resources.features.*.function.column_selection +resources.features.*.function.column_selection.column +resources.features.*.function.custom_udf +resources.features.*.function.custom_udf.function_path +resources.features.*.function.custom_udf.input_bindings +resources.features.*.function.custom_udf.input_bindings[*] +resources.features.*.function.custom_udf.input_bindings[*].column +resources.features.*.function.custom_udf.input_bindings[*].parameter +resources.features.*.function.extra_parameters +resources.features.*.function.extra_parameters[*] +resources.features.*.function.extra_parameters[*].key +resources.features.*.function.extra_parameters[*].value +resources.features.*.function.function_type +resources.features.*.inputs +resources.features.*.inputs[*] +resources.features.*.lineage_context +resources.features.*.lineage_context.job_context +resources.features.*.lineage_context.job_context.job_id +resources.features.*.lineage_context.job_context.job_run_id +resources.features.*.lineage_context.notebook_id +resources.features.*.name +resources.features.*.schema_name +resources.features.*.source +resources.features.*.source.delta_table_source +resources.features.*.source.delta_table_source.dataframe_schema +resources.features.*.source.delta_table_source.entity_columns +resources.features.*.source.delta_table_source.entity_columns[*] +resources.features.*.source.delta_table_source.filter_condition +resources.features.*.source.delta_table_source.full_name +resources.features.*.source.delta_table_source.timeseries_column +resources.features.*.source.delta_table_source.transformation_sql +resources.features.*.source.feature_view_source +resources.features.*.source.feature_view_source.feature_references +resources.features.*.source.feature_view_source.feature_references[*] +resources.features.*.source.feature_view_source.feature_references[*].feature +resources.features.*.source.kafka_source +resources.features.*.source.kafka_source.entity_column_identifiers +resources.features.*.source.kafka_source.entity_column_identifiers[*] +resources.features.*.source.kafka_source.entity_column_identifiers[*].variant_expr_path +resources.features.*.source.kafka_source.filter_condition +resources.features.*.source.kafka_source.name +resources.features.*.source.kafka_source.timeseries_column_identifier +resources.features.*.source.kafka_source.timeseries_column_identifier.variant_expr_path +resources.features.*.source.lateness +resources.features.*.source.lateness.settling_delay +resources.features.*.source.request_source +resources.features.*.source.request_source.dataframe_schema +resources.features.*.source.request_source.flat_schema +resources.features.*.source.request_source.flat_schema.fields +resources.features.*.source.request_source.flat_schema.fields[*] +resources.features.*.source.request_source.flat_schema.fields[*].data_type +resources.features.*.source.request_source.flat_schema.fields[*].name +resources.features.*.source.sdp_source +resources.features.*.source.sdp_source.dataframe_schema +resources.features.*.source.sdp_source.filter_condition +resources.features.*.source.sdp_source.input_tables +resources.features.*.source.sdp_source.input_tables[*] +resources.features.*.source.sdp_source.output_table +resources.features.*.source.sdp_source.pipeline_id +resources.features.*.source.sdp_source.pipeline_state +resources.features.*.source.sdp_source.transformation_sql +resources.features.*.source.stream_source +resources.features.*.source.stream_source.dataframe_schema +resources.features.*.source.stream_source.filter_condition +resources.features.*.source.stream_source.full_name +resources.features.*.source.stream_source.transformation_sql +resources.features.*.time_window +resources.features.*.time_window.continuous +resources.features.*.time_window.continuous.offset +resources.features.*.time_window.continuous.window_duration +resources.features.*.time_window.rolling +resources.features.*.time_window.rolling.delay +resources.features.*.time_window.rolling.window_duration +resources.features.*.time_window.sawtooth +resources.features.*.time_window.sawtooth.delay +resources.features.*.time_window.sawtooth.window_duration +resources.features.*.time_window.sliding +resources.features.*.time_window.sliding.delay +resources.features.*.time_window.sliding.offset +resources.features.*.time_window.sliding.slide_duration +resources.features.*.time_window.sliding.window_duration +resources.features.*.time_window.start_time +resources.features.*.time_window.tumbling +resources.features.*.time_window.tumbling.delay +resources.features.*.time_window.tumbling.offset +resources.features.*.time_window.tumbling.window_duration +resources.features.*.timeseries_column +resources.features.*.timeseries_column.name +resources.materialization_sets +resources.materialization_sets.* +resources.materialization_sets.*.url +resources.materialization_sets.*.modified_status +resources.materialization_sets.*.lifecycle +resources.materialization_sets.*.lifecycle.prevent_destroy +resources.materialization_sets.*.lifecycle.prevent_destroy=true +resources.materialization_sets.*.lifecycle.prevent_destroy=false +resources.materialization_sets.*.lifecycle.depends_on +resources.materialization_sets.*.lifecycle.depends_on[*] +resources.materialization_sets.*.lifecycle.depends_on[*].resource +resources.materialization_sets.*.id +resources.materialization_sets.*.materialization_set_id +resources.materialization_sets.*.materialized_features +resources.materialization_sets.*.materialized_features[*] +resources.materialization_sets.*.materialized_features[*].budget_policy_id +resources.materialization_sets.*.materialized_features[*].cron_schedule +resources.materialization_sets.*.materialized_features[*].cron_schedule_trigger +resources.materialization_sets.*.materialized_features[*].cron_schedule_trigger.cron_expression +resources.materialization_sets.*.materialized_features[*].cron_schedule_trigger.mode +resources.materialization_sets.*.materialized_features[*].cron_schedule_trigger.timezone_id +resources.materialization_sets.*.materialized_features[*].feature_name +resources.materialization_sets.*.materialized_features[*].is_online +resources.materialization_sets.*.materialized_features[*].is_online=true +resources.materialization_sets.*.materialized_features[*].is_online=false +resources.materialization_sets.*.materialized_features[*].job_id +resources.materialization_sets.*.materialized_features[*].last_materialization_time +resources.materialization_sets.*.materialized_features[*].latest_backfill_operation +resources.materialization_sets.*.materialized_features[*].materialization_set_id +resources.materialization_sets.*.materialized_features[*].materialized_feature_id +resources.materialization_sets.*.materialized_features[*].notifications +resources.materialization_sets.*.materialized_features[*].notifications.on_failure +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.destination_ids +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.destination_ids[*] +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.email_addresses +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.email_addresses[*] +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.final_attempt_only +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.final_attempt_only=true +resources.materialization_sets.*.materialized_features[*].notifications.on_failure.final_attempt_only=false +resources.materialization_sets.*.materialized_features[*].notifications.on_success +resources.materialization_sets.*.materialized_features[*].notifications.on_success.destination_ids +resources.materialization_sets.*.materialized_features[*].notifications.on_success.destination_ids[*] +resources.materialization_sets.*.materialized_features[*].notifications.on_success.email_addresses +resources.materialization_sets.*.materialized_features[*].notifications.on_success.email_addresses[*] +resources.materialization_sets.*.materialized_features[*].offline_store_config +resources.materialization_sets.*.materialized_features[*].offline_store_config.catalog_name +resources.materialization_sets.*.materialized_features[*].offline_store_config.schema_name +resources.materialization_sets.*.materialized_features[*].offline_store_config.table_name_prefix +resources.materialization_sets.*.materialized_features[*].online_store_config +resources.materialization_sets.*.materialized_features[*].online_store_config.catalog_name +resources.materialization_sets.*.materialized_features[*].online_store_config.online_store_name +resources.materialization_sets.*.materialized_features[*].online_store_config.schema_name +resources.materialization_sets.*.materialized_features[*].online_store_config.table_name_prefix +resources.materialization_sets.*.materialized_features[*].pipeline_id +resources.materialization_sets.*.materialized_features[*].pipeline_schedule_state +resources.materialization_sets.*.materialized_features[*].streaming_mode +resources.materialization_sets.*.materialized_features[*].streaming_mode.freshness_target +resources.materialization_sets.*.materialized_features[*].streaming_mode.mode +resources.materialization_sets.*.materialized_features[*].streaming_mode.shuffle_partitions +resources.materialization_sets.*.materialized_features[*].table_name +resources.materialization_sets.*.materialized_features[*].table_trigger +resources.materialization_sets.*.materialized_features[*].table_trigger.condition +resources.materialization_sets.*.materialized_features[*].table_trigger.min_time_between_triggers +resources.materialization_sets.*.materialized_features[*].table_trigger.wait_after_last_change +resources.materialization_sets.*.materialized_features[*].tags +resources.materialization_sets.*.materialized_features[*].tags.* +resources.materialization_sets.*.notifications +resources.materialization_sets.*.notifications.on_failure +resources.materialization_sets.*.notifications.on_failure.destination_ids +resources.materialization_sets.*.notifications.on_failure.destination_ids[*] +resources.materialization_sets.*.notifications.on_failure.email_addresses +resources.materialization_sets.*.notifications.on_failure.email_addresses[*] +resources.materialization_sets.*.notifications.on_failure.final_attempt_only +resources.materialization_sets.*.notifications.on_failure.final_attempt_only=true +resources.materialization_sets.*.notifications.on_failure.final_attempt_only=false +resources.materialization_sets.*.notifications.on_success +resources.materialization_sets.*.notifications.on_success.destination_ids +resources.materialization_sets.*.notifications.on_success.destination_ids[*] +resources.materialization_sets.*.notifications.on_success.email_addresses +resources.materialization_sets.*.notifications.on_success.email_addresses[*] +resources.models +resources.models.* +resources.models.*.url +resources.models.*.modified_status +resources.models.*.lifecycle +resources.models.*.lifecycle.prevent_destroy +resources.models.*.lifecycle.prevent_destroy=true +resources.models.*.lifecycle.prevent_destroy=false +resources.models.*.lifecycle.depends_on +resources.models.*.lifecycle.depends_on[*] +resources.models.*.lifecycle.depends_on[*].resource +resources.models.*.id +resources.models.*.description +resources.models.*.name +resources.models.*.tags +resources.models.*.tags[*] +resources.models.*.tags[*].key +resources.models.*.tags[*].value +resources.models.*.permissions +resources.models.*.permissions[*] +resources.models.*.permissions[*].level +resources.models.*.permissions[*].user_name +resources.models.*.permissions[*].service_principal_name +resources.models.*.permissions[*].group_name +resources.experiments +resources.experiments.* +resources.experiments.*.url +resources.experiments.*.modified_status +resources.experiments.*.lifecycle +resources.experiments.*.lifecycle.prevent_destroy +resources.experiments.*.lifecycle.prevent_destroy=true +resources.experiments.*.lifecycle.prevent_destroy=false +resources.experiments.*.lifecycle.depends_on +resources.experiments.*.lifecycle.depends_on[*] +resources.experiments.*.lifecycle.depends_on[*].resource +resources.experiments.*.id +resources.experiments.*.artifact_location +resources.experiments.*.name +resources.experiments.*.tags +resources.experiments.*.tags[*] +resources.experiments.*.tags[*].key +resources.experiments.*.tags[*].value +resources.experiments.*.trace_location +resources.experiments.*.trace_location.uc_trace_location +resources.experiments.*.trace_location.uc_trace_location.catalog +resources.experiments.*.trace_location.uc_trace_location.effective_table_prefix +resources.experiments.*.trace_location.uc_trace_location.schema +resources.experiments.*.trace_location.uc_trace_location.table_prefix +resources.experiments.*.permissions +resources.experiments.*.permissions[*] +resources.experiments.*.permissions[*].level +resources.experiments.*.permissions[*].user_name +resources.experiments.*.permissions[*].service_principal_name +resources.experiments.*.permissions[*].group_name +resources.model_serving_endpoints +resources.model_serving_endpoints.* +resources.model_serving_endpoints.*.url +resources.model_serving_endpoints.*.modified_status +resources.model_serving_endpoints.*.lifecycle +resources.model_serving_endpoints.*.lifecycle.prevent_destroy +resources.model_serving_endpoints.*.lifecycle.prevent_destroy=true +resources.model_serving_endpoints.*.lifecycle.prevent_destroy=false +resources.model_serving_endpoints.*.lifecycle.depends_on +resources.model_serving_endpoints.*.lifecycle.depends_on[*] +resources.model_serving_endpoints.*.lifecycle.depends_on[*].resource +resources.model_serving_endpoints.*.id +resources.model_serving_endpoints.*.ai_gateway +resources.model_serving_endpoints.*.ai_gateway.fallback_config +resources.model_serving_endpoints.*.ai_gateway.fallback_config.enabled +resources.model_serving_endpoints.*.ai_gateway.fallback_config.enabled=true +resources.model_serving_endpoints.*.ai_gateway.fallback_config.enabled=false +resources.model_serving_endpoints.*.ai_gateway.guardrails +resources.model_serving_endpoints.*.ai_gateway.guardrails.input +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.invalid_keywords +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.invalid_keywords[*] +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.pii +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.pii.behavior +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.safety +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.safety=true +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.safety=false +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.valid_topics +resources.model_serving_endpoints.*.ai_gateway.guardrails.input.valid_topics[*] +resources.model_serving_endpoints.*.ai_gateway.guardrails.output +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.invalid_keywords +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.invalid_keywords[*] +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.pii +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.pii.behavior +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.safety +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.safety=true +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.safety=false +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.valid_topics +resources.model_serving_endpoints.*.ai_gateway.guardrails.output.valid_topics[*] +resources.model_serving_endpoints.*.ai_gateway.inference_table_config +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.catalog_name +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.enabled +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.enabled=true +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.enabled=false +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.schema_name +resources.model_serving_endpoints.*.ai_gateway.inference_table_config.table_name_prefix +resources.model_serving_endpoints.*.ai_gateway.rate_limits +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*] +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].calls +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].key +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].principal +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].renewal_period +resources.model_serving_endpoints.*.ai_gateway.rate_limits[*].tokens +resources.model_serving_endpoints.*.ai_gateway.usage_tracking_config +resources.model_serving_endpoints.*.ai_gateway.usage_tracking_config.enabled +resources.model_serving_endpoints.*.ai_gateway.usage_tracking_config.enabled=true +resources.model_serving_endpoints.*.ai_gateway.usage_tracking_config.enabled=false +resources.model_serving_endpoints.*.budget_policy_id +resources.model_serving_endpoints.*.config +resources.model_serving_endpoints.*.config.auto_capture_config +resources.model_serving_endpoints.*.config.auto_capture_config.catalog_name +resources.model_serving_endpoints.*.config.auto_capture_config.enabled +resources.model_serving_endpoints.*.config.auto_capture_config.enabled=true +resources.model_serving_endpoints.*.config.auto_capture_config.enabled=false +resources.model_serving_endpoints.*.config.auto_capture_config.schema_name +resources.model_serving_endpoints.*.config.auto_capture_config.table_name_prefix +resources.model_serving_endpoints.*.config.served_entities +resources.model_serving_endpoints.*.config.served_entities[*] +resources.model_serving_endpoints.*.config.served_entities[*].burst_scaling_enabled +resources.model_serving_endpoints.*.config.served_entities[*].burst_scaling_enabled=true +resources.model_serving_endpoints.*.config.served_entities[*].burst_scaling_enabled=false +resources.model_serving_endpoints.*.config.served_entities[*].entity_name +resources.model_serving_endpoints.*.config.served_entities[*].entity_version +resources.model_serving_endpoints.*.config.served_entities[*].environment_vars +resources.model_serving_endpoints.*.config.served_entities[*].environment_vars.* +resources.model_serving_endpoints.*.config.served_entities[*].external_model +resources.model_serving_endpoints.*.config.served_entities[*].external_model.ai21labs_config +resources.model_serving_endpoints.*.config.served_entities[*].external_model.ai21labs_config.ai21labs_api_key +resources.model_serving_endpoints.*.config.served_entities[*].external_model.ai21labs_config.ai21labs_api_key_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_access_key_id +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_access_key_id_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_region +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_secret_access_key +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.aws_secret_access_key_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.bedrock_provider +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.instance_profile_arn +resources.model_serving_endpoints.*.config.served_entities[*].external_model.amazon_bedrock_config.uc_service_credential_name +resources.model_serving_endpoints.*.config.served_entities[*].external_model.anthropic_config +resources.model_serving_endpoints.*.config.served_entities[*].external_model.anthropic_config.anthropic_api_key +resources.model_serving_endpoints.*.config.served_entities[*].external_model.anthropic_config.anthropic_api_key_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.cohere_config +resources.model_serving_endpoints.*.config.served_entities[*].external_model.cohere_config.cohere_api_base +resources.model_serving_endpoints.*.config.served_entities[*].external_model.cohere_config.cohere_api_key +resources.model_serving_endpoints.*.config.served_entities[*].external_model.cohere_config.cohere_api_key_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.api_key_auth +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.api_key_auth.key +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.api_key_auth.value +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.api_key_auth.value_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.bearer_token_auth +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.bearer_token_auth.token +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.bearer_token_auth.token_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.custom_provider_config.custom_provider_url +resources.model_serving_endpoints.*.config.served_entities[*].external_model.databricks_model_serving_config +resources.model_serving_endpoints.*.config.served_entities[*].external_model.databricks_model_serving_config.databricks_api_token +resources.model_serving_endpoints.*.config.served_entities[*].external_model.databricks_model_serving_config.databricks_api_token_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.databricks_model_serving_config.databricks_workspace_url +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config.private_key +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config.private_key_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config.project_id +resources.model_serving_endpoints.*.config.served_entities[*].external_model.google_cloud_vertex_ai_config.region +resources.model_serving_endpoints.*.config.served_entities[*].external_model.name +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.microsoft_entra_client_id +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.microsoft_entra_client_secret +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.microsoft_entra_client_secret_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.microsoft_entra_tenant_id +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_base +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_key +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_key_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_type +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_api_version +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_deployment_name +resources.model_serving_endpoints.*.config.served_entities[*].external_model.openai_config.openai_organization +resources.model_serving_endpoints.*.config.served_entities[*].external_model.palm_config +resources.model_serving_endpoints.*.config.served_entities[*].external_model.palm_config.palm_api_key +resources.model_serving_endpoints.*.config.served_entities[*].external_model.palm_config.palm_api_key_plaintext +resources.model_serving_endpoints.*.config.served_entities[*].external_model.provider +resources.model_serving_endpoints.*.config.served_entities[*].external_model.task +resources.model_serving_endpoints.*.config.served_entities[*].instance_profile_arn +resources.model_serving_endpoints.*.config.served_entities[*].max_provisioned_concurrency +resources.model_serving_endpoints.*.config.served_entities[*].max_provisioned_throughput +resources.model_serving_endpoints.*.config.served_entities[*].min_provisioned_concurrency +resources.model_serving_endpoints.*.config.served_entities[*].min_provisioned_throughput +resources.model_serving_endpoints.*.config.served_entities[*].name +resources.model_serving_endpoints.*.config.served_entities[*].provisioned_model_units +resources.model_serving_endpoints.*.config.served_entities[*].scale_to_zero_enabled +resources.model_serving_endpoints.*.config.served_entities[*].scale_to_zero_enabled=true +resources.model_serving_endpoints.*.config.served_entities[*].scale_to_zero_enabled=false +resources.model_serving_endpoints.*.config.served_entities[*].workload_size +resources.model_serving_endpoints.*.config.served_entities[*].workload_type +resources.model_serving_endpoints.*.config.served_models +resources.model_serving_endpoints.*.config.served_models[*] +resources.model_serving_endpoints.*.config.served_models[*].burst_scaling_enabled +resources.model_serving_endpoints.*.config.served_models[*].burst_scaling_enabled=true +resources.model_serving_endpoints.*.config.served_models[*].burst_scaling_enabled=false +resources.model_serving_endpoints.*.config.served_models[*].environment_vars +resources.model_serving_endpoints.*.config.served_models[*].environment_vars.* +resources.model_serving_endpoints.*.config.served_models[*].instance_profile_arn +resources.model_serving_endpoints.*.config.served_models[*].max_provisioned_concurrency +resources.model_serving_endpoints.*.config.served_models[*].max_provisioned_throughput +resources.model_serving_endpoints.*.config.served_models[*].min_provisioned_concurrency +resources.model_serving_endpoints.*.config.served_models[*].min_provisioned_throughput +resources.model_serving_endpoints.*.config.served_models[*].model_name +resources.model_serving_endpoints.*.config.served_models[*].model_version +resources.model_serving_endpoints.*.config.served_models[*].name +resources.model_serving_endpoints.*.config.served_models[*].provisioned_model_units +resources.model_serving_endpoints.*.config.served_models[*].scale_to_zero_enabled +resources.model_serving_endpoints.*.config.served_models[*].scale_to_zero_enabled=true +resources.model_serving_endpoints.*.config.served_models[*].scale_to_zero_enabled=false +resources.model_serving_endpoints.*.config.served_models[*].workload_size +resources.model_serving_endpoints.*.config.served_models[*].workload_type +resources.model_serving_endpoints.*.config.traffic_config +resources.model_serving_endpoints.*.config.traffic_config.routes +resources.model_serving_endpoints.*.config.traffic_config.routes[*] +resources.model_serving_endpoints.*.config.traffic_config.routes[*].served_entity_name +resources.model_serving_endpoints.*.config.traffic_config.routes[*].served_model_name +resources.model_serving_endpoints.*.config.traffic_config.routes[*].traffic_percentage +resources.model_serving_endpoints.*.description +resources.model_serving_endpoints.*.email_notifications +resources.model_serving_endpoints.*.email_notifications.on_update_failure +resources.model_serving_endpoints.*.email_notifications.on_update_failure[*] +resources.model_serving_endpoints.*.email_notifications.on_update_success +resources.model_serving_endpoints.*.email_notifications.on_update_success[*] +resources.model_serving_endpoints.*.name +resources.model_serving_endpoints.*.rate_limits +resources.model_serving_endpoints.*.rate_limits[*] +resources.model_serving_endpoints.*.rate_limits[*].calls +resources.model_serving_endpoints.*.rate_limits[*].key +resources.model_serving_endpoints.*.rate_limits[*].renewal_period +resources.model_serving_endpoints.*.route_optimized +resources.model_serving_endpoints.*.route_optimized=true +resources.model_serving_endpoints.*.route_optimized=false +resources.model_serving_endpoints.*.tags +resources.model_serving_endpoints.*.tags[*] +resources.model_serving_endpoints.*.tags[*].key +resources.model_serving_endpoints.*.tags[*].value +resources.model_serving_endpoints.*.telemetry_config +resources.model_serving_endpoints.*.telemetry_config.enabled_telemetry_features +resources.model_serving_endpoints.*.telemetry_config.enabled_telemetry_features[*] +resources.model_serving_endpoints.*.telemetry_config.inference_table_config +resources.model_serving_endpoints.*.telemetry_config.inference_table_config.name +resources.model_serving_endpoints.*.telemetry_config.inference_table_config.sampling_fraction +resources.model_serving_endpoints.*.telemetry_config.table_names +resources.model_serving_endpoints.*.telemetry_config.table_names.annotations_table +resources.model_serving_endpoints.*.telemetry_config.table_names.logs_table +resources.model_serving_endpoints.*.telemetry_config.table_names.metrics_table +resources.model_serving_endpoints.*.telemetry_config.table_names.traces_table +resources.model_serving_endpoints.*.telemetry_config.telemetry_profile_id +resources.model_serving_endpoints.*.permissions +resources.model_serving_endpoints.*.permissions[*] +resources.model_serving_endpoints.*.permissions[*].level +resources.model_serving_endpoints.*.permissions[*].user_name +resources.model_serving_endpoints.*.permissions[*].service_principal_name +resources.model_serving_endpoints.*.permissions[*].group_name +resources.model_services +resources.model_services.* +resources.model_services.*.url +resources.model_services.*.modified_status +resources.model_services.*.lifecycle +resources.model_services.*.lifecycle.prevent_destroy +resources.model_services.*.lifecycle.prevent_destroy=true +resources.model_services.*.lifecycle.prevent_destroy=false +resources.model_services.*.lifecycle.depends_on +resources.model_services.*.lifecycle.depends_on[*] +resources.model_services.*.lifecycle.depends_on[*].resource +resources.model_services.*.parent +resources.model_services.*.model_service_id +resources.model_services.*.comment +resources.model_services.*.config +resources.model_services.*.config.inference_table +resources.model_services.*.config.inference_table.is_deleted +resources.model_services.*.config.inference_table.is_deleted=true +resources.model_services.*.config.inference_table.is_deleted=false +resources.model_services.*.config.inference_table.parent +resources.model_services.*.config.inference_table.table +resources.model_services.*.config.inference_table.table_name_prefix +resources.model_services.*.config.rate_limits +resources.model_services.*.config.rate_limits[*] +resources.model_services.*.config.rate_limits[*].key +resources.model_services.*.config.rate_limits[*].principal +resources.model_services.*.config.rate_limits[*].renewal_period +resources.model_services.*.config.rate_limits[*].requests +resources.model_services.*.config.rate_limits[*].tokens +resources.model_services.*.config.routing +resources.model_services.*.config.routing.destinations +resources.model_services.*.config.routing.destinations[*] +resources.model_services.*.config.routing.destinations[*].destination_type +resources.model_services.*.config.routing.destinations[*].external_model_config +resources.model_services.*.config.routing.destinations[*].external_model_config.model_provider_service +resources.model_services.*.config.routing.destinations[*].external_model_config.target +resources.model_services.*.config.routing.destinations[*].external_model_config.target.endpoint_route +resources.model_services.*.config.routing.destinations[*].external_model_config.target.model +resources.model_services.*.config.routing.destinations[*].external_model_config.target.native_api_types +resources.model_services.*.config.routing.destinations[*].external_model_config.target.native_api_types[*] +resources.model_services.*.config.routing.destinations[*].is_deleted +resources.model_services.*.config.routing.destinations[*].is_deleted=true +resources.model_services.*.config.routing.destinations[*].is_deleted=false +resources.model_services.*.config.routing.destinations[*].name +resources.model_services.*.config.routing.destinations[*].pay_per_token_config +resources.model_services.*.config.routing.destinations[*].pay_per_token_config.model +resources.model_services.*.config.routing.destinations[*].provisioned_throughput_config +resources.model_services.*.config.routing.destinations[*].provisioned_throughput_config.model +resources.model_services.*.config.routing.destinations[*].provisioned_throughput_config.model_serving_endpoint +resources.model_services.*.config.routing.destinations[*].traffic_percentage +resources.model_services.*.config.routing.fallback +resources.model_services.*.config.routing.fallback.destinations +resources.model_services.*.config.routing.fallback.destinations[*] +resources.model_services.*.config.routing.fallback.destinations[*].destination_type +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.model_provider_service +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target.endpoint_route +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target.model +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target.native_api_types +resources.model_services.*.config.routing.fallback.destinations[*].external_model_config.target.native_api_types[*] +resources.model_services.*.config.routing.fallback.destinations[*].is_deleted +resources.model_services.*.config.routing.fallback.destinations[*].is_deleted=true +resources.model_services.*.config.routing.fallback.destinations[*].is_deleted=false +resources.model_services.*.config.routing.fallback.destinations[*].name +resources.model_services.*.config.routing.fallback.destinations[*].pay_per_token_config +resources.model_services.*.config.routing.fallback.destinations[*].pay_per_token_config.model +resources.model_services.*.config.routing.fallback.destinations[*].provisioned_throughput_config +resources.model_services.*.config.routing.fallback.destinations[*].provisioned_throughput_config.model +resources.model_services.*.config.routing.fallback.destinations[*].provisioned_throughput_config.model_serving_endpoint +resources.model_services.*.config.routing.fallback.destinations[*].traffic_percentage +resources.model_services.*.id +resources.model_services.*.grants +resources.model_services.*.grants[*] +resources.model_services.*.grants[*].principal +resources.model_services.*.grants[*].privileges +resources.model_services.*.grants[*].privileges[*] +resources.mcp_services +resources.mcp_services.* +resources.mcp_services.*.url +resources.mcp_services.*.modified_status +resources.mcp_services.*.lifecycle +resources.mcp_services.*.lifecycle.prevent_destroy +resources.mcp_services.*.lifecycle.prevent_destroy=true +resources.mcp_services.*.lifecycle.prevent_destroy=false +resources.mcp_services.*.lifecycle.depends_on +resources.mcp_services.*.lifecycle.depends_on[*] +resources.mcp_services.*.lifecycle.depends_on[*].resource +resources.mcp_services.*.id +resources.mcp_services.*.parent +resources.mcp_services.*.mcp_service_id +resources.mcp_services.*.comment +resources.mcp_services.*.config +resources.mcp_services.*.config.include_tool_selectors +resources.mcp_services.*.config.include_tool_selectors[*] +resources.mcp_services.*.config.rate_limits +resources.mcp_services.*.config.rate_limits[*] +resources.mcp_services.*.config.rate_limits[*].key +resources.mcp_services.*.config.rate_limits[*].principal +resources.mcp_services.*.config.rate_limits[*].renewal_period +resources.mcp_services.*.config.rate_limits[*].requests +resources.mcp_services.*.config.rate_limits[*].tokens +resources.mcp_services.*.config.source_connection +resources.mcp_services.*.config.source_connection.is_deleted +resources.mcp_services.*.config.source_connection.is_deleted=true +resources.mcp_services.*.config.source_connection.is_deleted=false +resources.mcp_services.*.config.source_connection.name +resources.mcp_services.*.config.source_connection.options +resources.mcp_services.*.config.source_connection.options.* +resources.mcp_services.*.grants +resources.mcp_services.*.grants[*] +resources.mcp_services.*.grants[*].principal +resources.mcp_services.*.grants[*].privileges +resources.mcp_services.*.grants[*].privileges[*] +resources.model_provider_services +resources.model_provider_services.* +resources.model_provider_services.*.url +resources.model_provider_services.*.modified_status +resources.model_provider_services.*.lifecycle +resources.model_provider_services.*.lifecycle.prevent_destroy +resources.model_provider_services.*.lifecycle.prevent_destroy=true +resources.model_provider_services.*.lifecycle.prevent_destroy=false +resources.model_provider_services.*.lifecycle.depends_on +resources.model_provider_services.*.lifecycle.depends_on[*] +resources.model_provider_services.*.lifecycle.depends_on[*].resource +resources.model_provider_services.*.id +resources.model_provider_services.*.parent +resources.model_provider_services.*.model_provider_service_id +resources.model_provider_services.*.comment +resources.model_provider_services.*.config +resources.model_provider_services.*.config.allow_all_targets +resources.model_provider_services.*.config.allow_all_targets=true +resources.model_provider_services.*.config.allow_all_targets=false +resources.model_provider_services.*.config.amazon_bedrock +resources.model_provider_services.*.config.amazon_bedrock.direct +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.access_key_id +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.secret_access_key +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.secret_access_key.plaintext +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.secret_access_key.secret_reference +resources.model_provider_services.*.config.amazon_bedrock.direct.aws_access_key.secret_access_key.secret_reference.name +resources.model_provider_services.*.config.amazon_bedrock.direct.region +resources.model_provider_services.*.config.amazon_bedrock.direct.service_credential +resources.model_provider_services.*.config.amazon_bedrock.direct.service_credential.name +resources.model_provider_services.*.config.anthropic +resources.model_provider_services.*.config.anthropic.direct +resources.model_provider_services.*.config.anthropic.direct.api_key +resources.model_provider_services.*.config.anthropic.direct.api_key.plaintext +resources.model_provider_services.*.config.anthropic.direct.api_key.secret_reference +resources.model_provider_services.*.config.anthropic.direct.api_key.secret_reference.name +resources.model_provider_services.*.config.anthropic.relayed +resources.model_provider_services.*.config.azure_openai +resources.model_provider_services.*.config.azure_openai.direct +resources.model_provider_services.*.config.azure_openai.direct.api_key +resources.model_provider_services.*.config.azure_openai.direct.api_key.plaintext +resources.model_provider_services.*.config.azure_openai.direct.api_key.secret_reference +resources.model_provider_services.*.config.azure_openai.direct.api_key.secret_reference.name +resources.model_provider_services.*.config.azure_openai.direct.base_url +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_id +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_secret +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_secret.plaintext +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_secret.secret_reference +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.client_secret.secret_reference.name +resources.model_provider_services.*.config.azure_openai.direct.entra_service_principal.tenant_id +resources.model_provider_services.*.config.azure_openai.direct.service_credential +resources.model_provider_services.*.config.azure_openai.direct.service_credential.name +resources.model_provider_services.*.config.bedrock_mantle +resources.model_provider_services.*.config.bedrock_mantle.direct +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.access_key_id +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.secret_access_key +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.secret_access_key.plaintext +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.secret_access_key.secret_reference +resources.model_provider_services.*.config.bedrock_mantle.direct.aws_access_key.secret_access_key.secret_reference.name +resources.model_provider_services.*.config.bedrock_mantle.direct.region +resources.model_provider_services.*.config.bedrock_mantle.direct.service_credential +resources.model_provider_services.*.config.bedrock_mantle.direct.service_credential.name +resources.model_provider_services.*.config.custom +resources.model_provider_services.*.config.custom.direct +resources.model_provider_services.*.config.custom.direct.api_key +resources.model_provider_services.*.config.custom.direct.api_key.plaintext +resources.model_provider_services.*.config.custom.direct.api_key.secret_reference +resources.model_provider_services.*.config.custom.direct.api_key.secret_reference.name +resources.model_provider_services.*.config.custom.direct.base_url +resources.model_provider_services.*.config.custom.direct.header_auth +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_name +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_value +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_value.plaintext +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_value.secret_reference +resources.model_provider_services.*.config.custom.direct.header_auth.api_key_value.secret_reference.name +resources.model_provider_services.*.config.forward_headers +resources.model_provider_services.*.config.forward_headers=true +resources.model_provider_services.*.config.forward_headers=false +resources.model_provider_services.*.config.forward_query_parameters +resources.model_provider_services.*.config.forward_query_parameters=true +resources.model_provider_services.*.config.forward_query_parameters=false +resources.model_provider_services.*.config.forward_unmanaged_paths +resources.model_provider_services.*.config.forward_unmanaged_paths=true +resources.model_provider_services.*.config.forward_unmanaged_paths=false +resources.model_provider_services.*.config.gemini_enterprise +resources.model_provider_services.*.config.gemini_enterprise.direct +resources.model_provider_services.*.config.gemini_enterprise.direct.api_key +resources.model_provider_services.*.config.gemini_enterprise.direct.api_key.plaintext +resources.model_provider_services.*.config.gemini_enterprise.direct.api_key.secret_reference +resources.model_provider_services.*.config.gemini_enterprise.direct.api_key.secret_reference.name +resources.model_provider_services.*.config.gemini_enterprise.direct.project_id +resources.model_provider_services.*.config.gemini_enterprise.direct.region +resources.model_provider_services.*.config.gemini_enterprise.direct.service_credential +resources.model_provider_services.*.config.gemini_enterprise.direct.service_credential.name +resources.model_provider_services.*.config.inference_table +resources.model_provider_services.*.config.inference_table.is_deleted +resources.model_provider_services.*.config.inference_table.is_deleted=true +resources.model_provider_services.*.config.inference_table.is_deleted=false +resources.model_provider_services.*.config.inference_table.parent +resources.model_provider_services.*.config.inference_table.table +resources.model_provider_services.*.config.inference_table.table_name_prefix +resources.model_provider_services.*.config.microsoft_foundry +resources.model_provider_services.*.config.microsoft_foundry.direct +resources.model_provider_services.*.config.microsoft_foundry.direct.api_key +resources.model_provider_services.*.config.microsoft_foundry.direct.api_key.plaintext +resources.model_provider_services.*.config.microsoft_foundry.direct.api_key.secret_reference +resources.model_provider_services.*.config.microsoft_foundry.direct.api_key.secret_reference.name +resources.model_provider_services.*.config.microsoft_foundry.direct.base_url +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_id +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_secret +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_secret.plaintext +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_secret.secret_reference +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.client_secret.secret_reference.name +resources.model_provider_services.*.config.microsoft_foundry.direct.entra_service_principal.tenant_id +resources.model_provider_services.*.config.microsoft_foundry.direct.service_credential +resources.model_provider_services.*.config.microsoft_foundry.direct.service_credential.name +resources.model_provider_services.*.config.openai +resources.model_provider_services.*.config.openai.direct +resources.model_provider_services.*.config.openai.direct.api_key +resources.model_provider_services.*.config.openai.direct.api_key.plaintext +resources.model_provider_services.*.config.openai.direct.api_key.secret_reference +resources.model_provider_services.*.config.openai.direct.api_key.secret_reference.name +resources.model_provider_services.*.config.openai.direct.base_url +resources.model_provider_services.*.config.openai.direct.organization +resources.model_provider_services.*.config.pricing +resources.model_provider_services.*.config.pricing.default_discount_basis_points +resources.model_provider_services.*.config.provider_type +resources.model_provider_services.*.config.rate_limits +resources.model_provider_services.*.config.rate_limits[*] +resources.model_provider_services.*.config.rate_limits[*].key +resources.model_provider_services.*.config.rate_limits[*].principal +resources.model_provider_services.*.config.rate_limits[*].renewal_period +resources.model_provider_services.*.config.rate_limits[*].requests +resources.model_provider_services.*.config.rate_limits[*].tokens +resources.model_provider_services.*.config.targets +resources.model_provider_services.*.config.targets[*] +resources.model_provider_services.*.config.targets[*].endpoint_route +resources.model_provider_services.*.config.targets[*].model +resources.model_provider_services.*.config.targets[*].native_api_types +resources.model_provider_services.*.config.targets[*].native_api_types[*] +resources.model_provider_services.*.grants +resources.model_provider_services.*.grants[*] +resources.model_provider_services.*.grants[*].principal +resources.model_provider_services.*.grants[*].privileges +resources.model_provider_services.*.grants[*].privileges[*] +resources.registered_models +resources.registered_models.* +resources.registered_models.*.url +resources.registered_models.*.modified_status +resources.registered_models.*.lifecycle +resources.registered_models.*.lifecycle.prevent_destroy +resources.registered_models.*.lifecycle.prevent_destroy=true +resources.registered_models.*.lifecycle.prevent_destroy=false +resources.registered_models.*.lifecycle.depends_on +resources.registered_models.*.lifecycle.depends_on[*] +resources.registered_models.*.lifecycle.depends_on[*].resource +resources.registered_models.*.id +resources.registered_models.*.aliases +resources.registered_models.*.aliases[*] +resources.registered_models.*.aliases[*].alias_name +resources.registered_models.*.aliases[*].catalog_name +resources.registered_models.*.aliases[*].id +resources.registered_models.*.aliases[*].model_name +resources.registered_models.*.aliases[*].schema_name +resources.registered_models.*.aliases[*].version_num +resources.registered_models.*.browse_only +resources.registered_models.*.browse_only=true +resources.registered_models.*.browse_only=false +resources.registered_models.*.catalog_name +resources.registered_models.*.comment +resources.registered_models.*.created_at +resources.registered_models.*.created_by +resources.registered_models.*.full_name +resources.registered_models.*.metastore_id +resources.registered_models.*.name +resources.registered_models.*.owner +resources.registered_models.*.schema_name +resources.registered_models.*.storage_location +resources.registered_models.*.updated_at +resources.registered_models.*.updated_by +resources.registered_models.*.grants +resources.registered_models.*.grants[*] +resources.registered_models.*.grants[*].principal +resources.registered_models.*.grants[*].privileges +resources.registered_models.*.grants[*].privileges[*] +resources.quality_monitors +resources.quality_monitors.* +resources.quality_monitors.*.url +resources.quality_monitors.*.modified_status +resources.quality_monitors.*.lifecycle +resources.quality_monitors.*.lifecycle.prevent_destroy +resources.quality_monitors.*.lifecycle.prevent_destroy=true +resources.quality_monitors.*.lifecycle.prevent_destroy=false +resources.quality_monitors.*.lifecycle.depends_on +resources.quality_monitors.*.lifecycle.depends_on[*] +resources.quality_monitors.*.lifecycle.depends_on[*].resource +resources.quality_monitors.*.id +resources.quality_monitors.*.assets_dir +resources.quality_monitors.*.baseline_table_name +resources.quality_monitors.*.custom_metrics +resources.quality_monitors.*.custom_metrics[*] +resources.quality_monitors.*.custom_metrics[*].definition +resources.quality_monitors.*.custom_metrics[*].input_columns +resources.quality_monitors.*.custom_metrics[*].input_columns[*] +resources.quality_monitors.*.custom_metrics[*].name +resources.quality_monitors.*.custom_metrics[*].output_data_type +resources.quality_monitors.*.custom_metrics[*].type +resources.quality_monitors.*.data_classification_config +resources.quality_monitors.*.data_classification_config.enabled +resources.quality_monitors.*.data_classification_config.enabled=true +resources.quality_monitors.*.data_classification_config.enabled=false +resources.quality_monitors.*.inference_log +resources.quality_monitors.*.inference_log.granularities +resources.quality_monitors.*.inference_log.granularities[*] +resources.quality_monitors.*.inference_log.label_col +resources.quality_monitors.*.inference_log.model_id_col +resources.quality_monitors.*.inference_log.prediction_col +resources.quality_monitors.*.inference_log.prediction_proba_col +resources.quality_monitors.*.inference_log.problem_type +resources.quality_monitors.*.inference_log.timestamp_col +resources.quality_monitors.*.latest_monitor_failure_msg +resources.quality_monitors.*.notifications +resources.quality_monitors.*.notifications.on_failure +resources.quality_monitors.*.notifications.on_failure.email_addresses +resources.quality_monitors.*.notifications.on_failure.email_addresses[*] +resources.quality_monitors.*.notifications.on_new_classification_tag_detected +resources.quality_monitors.*.notifications.on_new_classification_tag_detected.email_addresses +resources.quality_monitors.*.notifications.on_new_classification_tag_detected.email_addresses[*] +resources.quality_monitors.*.output_schema_name +resources.quality_monitors.*.schedule +resources.quality_monitors.*.schedule.pause_status +resources.quality_monitors.*.schedule.quartz_cron_expression +resources.quality_monitors.*.schedule.timezone_id +resources.quality_monitors.*.skip_builtin_dashboard +resources.quality_monitors.*.skip_builtin_dashboard=true +resources.quality_monitors.*.skip_builtin_dashboard=false +resources.quality_monitors.*.slicing_exprs +resources.quality_monitors.*.slicing_exprs[*] +resources.quality_monitors.*.snapshot +resources.quality_monitors.*.time_series +resources.quality_monitors.*.time_series.granularities +resources.quality_monitors.*.time_series.granularities[*] +resources.quality_monitors.*.time_series.timestamp_col +resources.quality_monitors.*.warehouse_id +resources.quality_monitors.*.table_name +resources.data_quality_monitors +resources.data_quality_monitors.* +resources.data_quality_monitors.*.url +resources.data_quality_monitors.*.modified_status +resources.data_quality_monitors.*.lifecycle +resources.data_quality_monitors.*.lifecycle.prevent_destroy +resources.data_quality_monitors.*.lifecycle.prevent_destroy=true +resources.data_quality_monitors.*.lifecycle.prevent_destroy=false +resources.data_quality_monitors.*.lifecycle.depends_on +resources.data_quality_monitors.*.lifecycle.depends_on[*] +resources.data_quality_monitors.*.lifecycle.depends_on[*].resource +resources.data_quality_monitors.*.id +resources.data_quality_monitors.*.anomaly_detection_config +resources.data_quality_monitors.*.anomaly_detection_config.excluded_table_full_names +resources.data_quality_monitors.*.anomaly_detection_config.excluded_table_full_names[*] +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.destination_ids +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.destination_ids[*] +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.destination_user_ids +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.destination_user_ids[*] +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.email_addresses +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_failure.email_addresses[*] +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.destination_ids +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.destination_ids[*] +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.destination_user_ids +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.destination_user_ids[*] +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.email_addresses +resources.data_quality_monitors.*.anomaly_detection_config.notification_settings.on_unhealthy_table.email_addresses[*] +resources.data_quality_monitors.*.data_profiling_config +resources.data_quality_monitors.*.data_profiling_config.assets_dir +resources.data_quality_monitors.*.data_profiling_config.baseline_table_name +resources.data_quality_monitors.*.data_profiling_config.custom_metrics +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*] +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].definition +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].input_columns +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].input_columns[*] +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].name +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].output_data_type +resources.data_quality_monitors.*.data_profiling_config.custom_metrics[*].type +resources.data_quality_monitors.*.data_profiling_config.dashboard_id +resources.data_quality_monitors.*.data_profiling_config.drift_metrics_table_name +resources.data_quality_monitors.*.data_profiling_config.effective_warehouse_id +resources.data_quality_monitors.*.data_profiling_config.inference_log +resources.data_quality_monitors.*.data_profiling_config.inference_log.granularities +resources.data_quality_monitors.*.data_profiling_config.inference_log.granularities[*] +resources.data_quality_monitors.*.data_profiling_config.inference_log.label_column +resources.data_quality_monitors.*.data_profiling_config.inference_log.model_id_column +resources.data_quality_monitors.*.data_profiling_config.inference_log.prediction_column +resources.data_quality_monitors.*.data_profiling_config.inference_log.problem_type +resources.data_quality_monitors.*.data_profiling_config.inference_log.timestamp_column +resources.data_quality_monitors.*.data_profiling_config.latest_monitor_failure_message +resources.data_quality_monitors.*.data_profiling_config.monitor_version +resources.data_quality_monitors.*.data_profiling_config.monitored_table_name +resources.data_quality_monitors.*.data_profiling_config.notification_settings +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.destination_ids +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.destination_ids[*] +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.destination_user_ids +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.destination_user_ids[*] +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.email_addresses +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_failure.email_addresses[*] +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.destination_ids +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.destination_ids[*] +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.destination_user_ids +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.destination_user_ids[*] +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.email_addresses +resources.data_quality_monitors.*.data_profiling_config.notification_settings.on_unhealthy_table.email_addresses[*] +resources.data_quality_monitors.*.data_profiling_config.output_schema_id +resources.data_quality_monitors.*.data_profiling_config.profile_metrics_table_name +resources.data_quality_monitors.*.data_profiling_config.schedule +resources.data_quality_monitors.*.data_profiling_config.schedule.pause_status +resources.data_quality_monitors.*.data_profiling_config.schedule.quartz_cron_expression +resources.data_quality_monitors.*.data_profiling_config.schedule.timezone_id +resources.data_quality_monitors.*.data_profiling_config.skip_builtin_dashboard +resources.data_quality_monitors.*.data_profiling_config.skip_builtin_dashboard=true +resources.data_quality_monitors.*.data_profiling_config.skip_builtin_dashboard=false +resources.data_quality_monitors.*.data_profiling_config.slicing_exprs +resources.data_quality_monitors.*.data_profiling_config.slicing_exprs[*] +resources.data_quality_monitors.*.data_profiling_config.snapshot +resources.data_quality_monitors.*.data_profiling_config.status +resources.data_quality_monitors.*.data_profiling_config.time_series +resources.data_quality_monitors.*.data_profiling_config.time_series.granularities +resources.data_quality_monitors.*.data_profiling_config.time_series.granularities[*] +resources.data_quality_monitors.*.data_profiling_config.time_series.timestamp_column +resources.data_quality_monitors.*.data_profiling_config.warehouse_id +resources.data_quality_monitors.*.object_id +resources.data_quality_monitors.*.object_type +resources.catalogs +resources.catalogs.* +resources.catalogs.*.url +resources.catalogs.*.modified_status +resources.catalogs.*.lifecycle +resources.catalogs.*.lifecycle.prevent_destroy +resources.catalogs.*.lifecycle.prevent_destroy=true +resources.catalogs.*.lifecycle.prevent_destroy=false +resources.catalogs.*.lifecycle.depends_on +resources.catalogs.*.lifecycle.depends_on[*] +resources.catalogs.*.lifecycle.depends_on[*].resource +resources.catalogs.*.id +resources.catalogs.*.comment +resources.catalogs.*.connection_name +resources.catalogs.*.custom_max_retention_hours +resources.catalogs.*.managed_encryption_settings +resources.catalogs.*.managed_encryption_settings.azure_encryption_settings +resources.catalogs.*.managed_encryption_settings.azure_encryption_settings.azure_cmk_access_connector_id +resources.catalogs.*.managed_encryption_settings.azure_encryption_settings.azure_cmk_managed_identity_id +resources.catalogs.*.managed_encryption_settings.azure_encryption_settings.azure_tenant_id +resources.catalogs.*.managed_encryption_settings.azure_key_vault_key_id +resources.catalogs.*.managed_encryption_settings.customer_managed_key_id +resources.catalogs.*.name +resources.catalogs.*.options +resources.catalogs.*.options.* +resources.catalogs.*.properties +resources.catalogs.*.properties.* +resources.catalogs.*.provider_name +resources.catalogs.*.share_name +resources.catalogs.*.storage_root +resources.catalogs.*.grants +resources.catalogs.*.grants[*] +resources.catalogs.*.grants[*].principal +resources.catalogs.*.grants[*].privileges +resources.catalogs.*.grants[*].privileges[*] +resources.schemas +resources.schemas.* +resources.schemas.*.url +resources.schemas.*.modified_status +resources.schemas.*.lifecycle +resources.schemas.*.lifecycle.prevent_destroy +resources.schemas.*.lifecycle.prevent_destroy=true +resources.schemas.*.lifecycle.prevent_destroy=false +resources.schemas.*.lifecycle.depends_on +resources.schemas.*.lifecycle.depends_on[*] +resources.schemas.*.lifecycle.depends_on[*].resource +resources.schemas.*.id +resources.schemas.*.catalog_name +resources.schemas.*.comment +resources.schemas.*.custom_max_retention_hours +resources.schemas.*.name +resources.schemas.*.properties +resources.schemas.*.properties.* +resources.schemas.*.storage_root +resources.schemas.*.grants +resources.schemas.*.grants[*] +resources.schemas.*.grants[*].principal +resources.schemas.*.grants[*].privileges +resources.schemas.*.grants[*].privileges[*] +resources.volumes +resources.volumes.* +resources.volumes.*.url +resources.volumes.*.modified_status +resources.volumes.*.lifecycle +resources.volumes.*.lifecycle.prevent_destroy +resources.volumes.*.lifecycle.prevent_destroy=true +resources.volumes.*.lifecycle.prevent_destroy=false +resources.volumes.*.lifecycle.depends_on +resources.volumes.*.lifecycle.depends_on[*] +resources.volumes.*.lifecycle.depends_on[*].resource +resources.volumes.*.id +resources.volumes.*.catalog_name +resources.volumes.*.comment +resources.volumes.*.name +resources.volumes.*.schema_name +resources.volumes.*.storage_location +resources.volumes.*.volume_type +resources.volumes.*.volume_path +resources.volumes.*.grants +resources.volumes.*.grants[*] +resources.volumes.*.grants[*].principal +resources.volumes.*.grants[*].privileges +resources.volumes.*.grants[*].privileges[*] +resources.external_locations +resources.external_locations.* +resources.external_locations.*.id +resources.external_locations.*.modified_status +resources.external_locations.*.lifecycle +resources.external_locations.*.lifecycle.prevent_destroy +resources.external_locations.*.lifecycle.prevent_destroy=true +resources.external_locations.*.lifecycle.prevent_destroy=false +resources.external_locations.*.lifecycle.depends_on +resources.external_locations.*.lifecycle.depends_on[*] +resources.external_locations.*.lifecycle.depends_on[*].resource +resources.external_locations.*.comment +resources.external_locations.*.credential_name +resources.external_locations.*.effective_enable_file_events +resources.external_locations.*.effective_enable_file_events=true +resources.external_locations.*.effective_enable_file_events=false +resources.external_locations.*.effective_file_event_queue +resources.external_locations.*.effective_file_event_queue.managed_aqs +resources.external_locations.*.effective_file_event_queue.managed_aqs.managed_resource_id +resources.external_locations.*.effective_file_event_queue.managed_aqs.queue_url +resources.external_locations.*.effective_file_event_queue.managed_aqs.resource_group +resources.external_locations.*.effective_file_event_queue.managed_aqs.subscription_id +resources.external_locations.*.effective_file_event_queue.managed_pubsub +resources.external_locations.*.effective_file_event_queue.managed_pubsub.managed_resource_id +resources.external_locations.*.effective_file_event_queue.managed_pubsub.subscription_name +resources.external_locations.*.effective_file_event_queue.managed_sqs +resources.external_locations.*.effective_file_event_queue.managed_sqs.managed_resource_id +resources.external_locations.*.effective_file_event_queue.managed_sqs.queue_url +resources.external_locations.*.effective_file_event_queue.provided_aqs +resources.external_locations.*.effective_file_event_queue.provided_aqs.managed_resource_id +resources.external_locations.*.effective_file_event_queue.provided_aqs.queue_url +resources.external_locations.*.effective_file_event_queue.provided_aqs.resource_group +resources.external_locations.*.effective_file_event_queue.provided_aqs.subscription_id +resources.external_locations.*.effective_file_event_queue.provided_pubsub +resources.external_locations.*.effective_file_event_queue.provided_pubsub.managed_resource_id +resources.external_locations.*.effective_file_event_queue.provided_pubsub.subscription_name +resources.external_locations.*.effective_file_event_queue.provided_sqs +resources.external_locations.*.effective_file_event_queue.provided_sqs.managed_resource_id +resources.external_locations.*.effective_file_event_queue.provided_sqs.queue_url +resources.external_locations.*.enable_file_events +resources.external_locations.*.enable_file_events=true +resources.external_locations.*.enable_file_events=false +resources.external_locations.*.encryption_details +resources.external_locations.*.encryption_details.sse_encryption_details +resources.external_locations.*.encryption_details.sse_encryption_details.algorithm +resources.external_locations.*.encryption_details.sse_encryption_details.aws_kms_key_arn +resources.external_locations.*.fallback +resources.external_locations.*.fallback=true +resources.external_locations.*.fallback=false +resources.external_locations.*.file_event_queue +resources.external_locations.*.file_event_queue.managed_aqs +resources.external_locations.*.file_event_queue.managed_aqs.managed_resource_id +resources.external_locations.*.file_event_queue.managed_aqs.queue_url +resources.external_locations.*.file_event_queue.managed_aqs.resource_group +resources.external_locations.*.file_event_queue.managed_aqs.subscription_id +resources.external_locations.*.file_event_queue.managed_pubsub +resources.external_locations.*.file_event_queue.managed_pubsub.managed_resource_id +resources.external_locations.*.file_event_queue.managed_pubsub.subscription_name +resources.external_locations.*.file_event_queue.managed_sqs +resources.external_locations.*.file_event_queue.managed_sqs.managed_resource_id +resources.external_locations.*.file_event_queue.managed_sqs.queue_url +resources.external_locations.*.file_event_queue.provided_aqs +resources.external_locations.*.file_event_queue.provided_aqs.managed_resource_id +resources.external_locations.*.file_event_queue.provided_aqs.queue_url +resources.external_locations.*.file_event_queue.provided_aqs.resource_group +resources.external_locations.*.file_event_queue.provided_aqs.subscription_id +resources.external_locations.*.file_event_queue.provided_pubsub +resources.external_locations.*.file_event_queue.provided_pubsub.managed_resource_id +resources.external_locations.*.file_event_queue.provided_pubsub.subscription_name +resources.external_locations.*.file_event_queue.provided_sqs +resources.external_locations.*.file_event_queue.provided_sqs.managed_resource_id +resources.external_locations.*.file_event_queue.provided_sqs.queue_url +resources.external_locations.*.name +resources.external_locations.*.read_only +resources.external_locations.*.read_only=true +resources.external_locations.*.read_only=false +resources.external_locations.*.skip_validation +resources.external_locations.*.skip_validation=true +resources.external_locations.*.skip_validation=false +resources.external_locations.*.url +resources.external_locations.*.grants +resources.external_locations.*.grants[*] +resources.external_locations.*.grants[*].principal +resources.external_locations.*.grants[*].privileges +resources.external_locations.*.grants[*].privileges[*] +resources.clusters +resources.clusters.* +resources.clusters.*.url +resources.clusters.*.modified_status +resources.clusters.*.lifecycle +resources.clusters.*.lifecycle.prevent_destroy +resources.clusters.*.lifecycle.prevent_destroy=true +resources.clusters.*.lifecycle.prevent_destroy=false +resources.clusters.*.lifecycle.depends_on +resources.clusters.*.lifecycle.depends_on[*] +resources.clusters.*.lifecycle.depends_on[*].resource +resources.clusters.*.id +resources.clusters.*.apply_policy_default_values +resources.clusters.*.apply_policy_default_values=true +resources.clusters.*.apply_policy_default_values=false +resources.clusters.*.autoscale +resources.clusters.*.autoscale.max_workers +resources.clusters.*.autoscale.min_workers +resources.clusters.*.autotermination_minutes +resources.clusters.*.aws_attributes +resources.clusters.*.aws_attributes.availability +resources.clusters.*.aws_attributes.ebs_volume_count +resources.clusters.*.aws_attributes.ebs_volume_iops +resources.clusters.*.aws_attributes.ebs_volume_size +resources.clusters.*.aws_attributes.ebs_volume_throughput +resources.clusters.*.aws_attributes.ebs_volume_type +resources.clusters.*.aws_attributes.first_on_demand +resources.clusters.*.aws_attributes.instance_profile_arn +resources.clusters.*.aws_attributes.spot_bid_price_percent +resources.clusters.*.aws_attributes.zone_id +resources.clusters.*.azure_attributes +resources.clusters.*.azure_attributes.availability +resources.clusters.*.azure_attributes.capacity_reservation_group +resources.clusters.*.azure_attributes.first_on_demand +resources.clusters.*.azure_attributes.log_analytics_info +resources.clusters.*.azure_attributes.log_analytics_info.log_analytics_primary_key +resources.clusters.*.azure_attributes.log_analytics_info.log_analytics_workspace_id +resources.clusters.*.azure_attributes.spot_bid_max_price +resources.clusters.*.cluster_log_conf +resources.clusters.*.cluster_log_conf.dbfs +resources.clusters.*.cluster_log_conf.dbfs.destination +resources.clusters.*.cluster_log_conf.s3 +resources.clusters.*.cluster_log_conf.s3.canned_acl +resources.clusters.*.cluster_log_conf.s3.destination +resources.clusters.*.cluster_log_conf.s3.enable_encryption +resources.clusters.*.cluster_log_conf.s3.enable_encryption=true +resources.clusters.*.cluster_log_conf.s3.enable_encryption=false +resources.clusters.*.cluster_log_conf.s3.encryption_type +resources.clusters.*.cluster_log_conf.s3.endpoint +resources.clusters.*.cluster_log_conf.s3.kms_key +resources.clusters.*.cluster_log_conf.s3.region +resources.clusters.*.cluster_log_conf.volumes +resources.clusters.*.cluster_log_conf.volumes.destination +resources.clusters.*.cluster_name +resources.clusters.*.custom_tags +resources.clusters.*.custom_tags.* +resources.clusters.*.data_security_mode +resources.clusters.*.dependency_mode +resources.clusters.*.docker_image +resources.clusters.*.docker_image.basic_auth +resources.clusters.*.docker_image.basic_auth.password +resources.clusters.*.docker_image.basic_auth.username +resources.clusters.*.docker_image.url +resources.clusters.*.driver_instance_pool_id +resources.clusters.*.driver_node_type_flexibility +resources.clusters.*.driver_node_type_flexibility.alternate_node_type_ids +resources.clusters.*.driver_node_type_flexibility.alternate_node_type_ids[*] +resources.clusters.*.driver_node_type_flexibility.aws_context_id +resources.clusters.*.driver_node_type_id +resources.clusters.*.enable_elastic_disk +resources.clusters.*.enable_elastic_disk=true +resources.clusters.*.enable_elastic_disk=false +resources.clusters.*.enable_local_disk_encryption +resources.clusters.*.enable_local_disk_encryption=true +resources.clusters.*.enable_local_disk_encryption=false +resources.clusters.*.gcp_attributes +resources.clusters.*.gcp_attributes.availability +resources.clusters.*.gcp_attributes.boot_disk_size +resources.clusters.*.gcp_attributes.confidential_compute_type +resources.clusters.*.gcp_attributes.first_on_demand +resources.clusters.*.gcp_attributes.google_service_account +resources.clusters.*.gcp_attributes.local_ssd_count +resources.clusters.*.gcp_attributes.use_preemptible_executors +resources.clusters.*.gcp_attributes.use_preemptible_executors=true +resources.clusters.*.gcp_attributes.use_preemptible_executors=false +resources.clusters.*.gcp_attributes.zone_id +resources.clusters.*.init_scripts +resources.clusters.*.init_scripts[*] +resources.clusters.*.init_scripts[*].abfss +resources.clusters.*.init_scripts[*].abfss.destination +resources.clusters.*.init_scripts[*].dbfs +resources.clusters.*.init_scripts[*].dbfs.destination +resources.clusters.*.init_scripts[*].file +resources.clusters.*.init_scripts[*].file.destination +resources.clusters.*.init_scripts[*].gcs +resources.clusters.*.init_scripts[*].gcs.destination +resources.clusters.*.init_scripts[*].s3 +resources.clusters.*.init_scripts[*].s3.canned_acl +resources.clusters.*.init_scripts[*].s3.destination +resources.clusters.*.init_scripts[*].s3.enable_encryption +resources.clusters.*.init_scripts[*].s3.enable_encryption=true +resources.clusters.*.init_scripts[*].s3.enable_encryption=false +resources.clusters.*.init_scripts[*].s3.encryption_type +resources.clusters.*.init_scripts[*].s3.endpoint +resources.clusters.*.init_scripts[*].s3.kms_key +resources.clusters.*.init_scripts[*].s3.region +resources.clusters.*.init_scripts[*].volumes +resources.clusters.*.init_scripts[*].volumes.destination +resources.clusters.*.init_scripts[*].workspace +resources.clusters.*.init_scripts[*].workspace.destination +resources.clusters.*.instance_pool_id +resources.clusters.*.is_single_node +resources.clusters.*.is_single_node=true +resources.clusters.*.is_single_node=false +resources.clusters.*.kind +resources.clusters.*.node_type_id +resources.clusters.*.num_workers +resources.clusters.*.policy_id +resources.clusters.*.remote_disk_throughput +resources.clusters.*.runtime_engine +resources.clusters.*.single_user_name +resources.clusters.*.spark_conf +resources.clusters.*.spark_conf.* +resources.clusters.*.spark_env_vars +resources.clusters.*.spark_env_vars.* +resources.clusters.*.spark_version +resources.clusters.*.ssh_public_keys +resources.clusters.*.ssh_public_keys[*] +resources.clusters.*.total_initial_remote_disk_size +resources.clusters.*.use_ml_runtime +resources.clusters.*.use_ml_runtime=true +resources.clusters.*.use_ml_runtime=false +resources.clusters.*.worker_node_type_flexibility +resources.clusters.*.worker_node_type_flexibility.alternate_node_type_ids +resources.clusters.*.worker_node_type_flexibility.alternate_node_type_ids[*] +resources.clusters.*.worker_node_type_flexibility.aws_context_id +resources.clusters.*.workload_type +resources.clusters.*.workload_type.clients +resources.clusters.*.workload_type.clients.jobs +resources.clusters.*.workload_type.clients.jobs=true +resources.clusters.*.workload_type.clients.jobs=false +resources.clusters.*.workload_type.clients.notebooks +resources.clusters.*.workload_type.clients.notebooks=true +resources.clusters.*.workload_type.clients.notebooks=false +resources.clusters.*.lifecycle.started +resources.clusters.*.lifecycle.started=true +resources.clusters.*.lifecycle.started=false +resources.clusters.*.libraries +resources.clusters.*.libraries[*] +resources.clusters.*.libraries[*].cran +resources.clusters.*.libraries[*].cran.package +resources.clusters.*.libraries[*].cran.repo +resources.clusters.*.libraries[*].egg +resources.clusters.*.libraries[*].jar +resources.clusters.*.libraries[*].maven +resources.clusters.*.libraries[*].maven.coordinates +resources.clusters.*.libraries[*].maven.exclusions +resources.clusters.*.libraries[*].maven.exclusions[*] +resources.clusters.*.libraries[*].maven.repo +resources.clusters.*.libraries[*].pypi +resources.clusters.*.libraries[*].pypi.package +resources.clusters.*.libraries[*].pypi.repo +resources.clusters.*.libraries[*].requirements +resources.clusters.*.libraries[*].whl +resources.clusters.*.permissions +resources.clusters.*.permissions[*] +resources.clusters.*.permissions[*].level +resources.clusters.*.permissions[*].user_name +resources.clusters.*.permissions[*].service_principal_name +resources.clusters.*.permissions[*].group_name +resources.dashboards +resources.dashboards.* +resources.dashboards.*.url +resources.dashboards.*.modified_status +resources.dashboards.*.lifecycle +resources.dashboards.*.lifecycle.prevent_destroy +resources.dashboards.*.lifecycle.prevent_destroy=true +resources.dashboards.*.lifecycle.prevent_destroy=false +resources.dashboards.*.lifecycle.depends_on +resources.dashboards.*.lifecycle.depends_on[*] +resources.dashboards.*.lifecycle.depends_on[*].resource +resources.dashboards.*.id +resources.dashboards.*.create_time +resources.dashboards.*.dashboard_id +resources.dashboards.*.display_name +resources.dashboards.*.etag +resources.dashboards.*.lifecycle_state +resources.dashboards.*.parent_path +resources.dashboards.*.path +resources.dashboards.*.update_time +resources.dashboards.*.warehouse_id +resources.dashboards.*.serialized_dashboard +resources.dashboards.*.embed_credentials +resources.dashboards.*.embed_credentials=true +resources.dashboards.*.embed_credentials=false +resources.dashboards.*.dataset_catalog +resources.dashboards.*.dataset_schema +resources.dashboards.*.permissions +resources.dashboards.*.permissions[*] +resources.dashboards.*.permissions[*].level +resources.dashboards.*.permissions[*].user_name +resources.dashboards.*.permissions[*].service_principal_name +resources.dashboards.*.permissions[*].group_name +resources.dashboards.*.file_path +resources.genie_spaces +resources.genie_spaces.* +resources.genie_spaces.*.url +resources.genie_spaces.*.modified_status +resources.genie_spaces.*.lifecycle +resources.genie_spaces.*.lifecycle.prevent_destroy +resources.genie_spaces.*.lifecycle.prevent_destroy=true +resources.genie_spaces.*.lifecycle.prevent_destroy=false +resources.genie_spaces.*.lifecycle.depends_on +resources.genie_spaces.*.lifecycle.depends_on[*] +resources.genie_spaces.*.lifecycle.depends_on[*].resource +resources.genie_spaces.*.id +resources.genie_spaces.*.description +resources.genie_spaces.*.etag +resources.genie_spaces.*.title +resources.genie_spaces.*.warehouse_id +resources.genie_spaces.*.parent_path +resources.genie_spaces.*.serialized_space +resources.genie_spaces.*.permissions +resources.genie_spaces.*.permissions[*] +resources.genie_spaces.*.permissions[*].level +resources.genie_spaces.*.permissions[*].user_name +resources.genie_spaces.*.permissions[*].service_principal_name +resources.genie_spaces.*.permissions[*].group_name +resources.genie_spaces.*.file_path +resources.apps +resources.apps.* +resources.apps.*.url +resources.apps.*.modified_status +resources.apps.*.lifecycle +resources.apps.*.lifecycle.prevent_destroy +resources.apps.*.lifecycle.prevent_destroy=true +resources.apps.*.lifecycle.prevent_destroy=false +resources.apps.*.lifecycle.depends_on +resources.apps.*.lifecycle.depends_on[*] +resources.apps.*.lifecycle.depends_on[*].resource +resources.apps.*.active_deployment +resources.apps.*.active_deployment.command +resources.apps.*.active_deployment.command[*] +resources.apps.*.active_deployment.create_time +resources.apps.*.active_deployment.creator +resources.apps.*.active_deployment.deployment_artifacts +resources.apps.*.active_deployment.deployment_artifacts.source_code_path +resources.apps.*.active_deployment.deployment_id +resources.apps.*.active_deployment.env_vars +resources.apps.*.active_deployment.env_vars[*] +resources.apps.*.active_deployment.env_vars[*].name +resources.apps.*.active_deployment.env_vars[*].value +resources.apps.*.active_deployment.env_vars[*].value_from +resources.apps.*.active_deployment.git_source +resources.apps.*.active_deployment.git_source.branch +resources.apps.*.active_deployment.git_source.commit +resources.apps.*.active_deployment.git_source.git_repository +resources.apps.*.active_deployment.git_source.git_repository.auto_deploy +resources.apps.*.active_deployment.git_source.git_repository.auto_deploy=true +resources.apps.*.active_deployment.git_source.git_repository.auto_deploy=false +resources.apps.*.active_deployment.git_source.git_repository.caller_credential_id +resources.apps.*.active_deployment.git_source.git_repository.provider +resources.apps.*.active_deployment.git_source.git_repository.url +resources.apps.*.active_deployment.git_source.resolved_commit +resources.apps.*.active_deployment.git_source.source_code_path +resources.apps.*.active_deployment.git_source.tag +resources.apps.*.active_deployment.health_check +resources.apps.*.active_deployment.health_check.path +resources.apps.*.active_deployment.health_check.timeout +resources.apps.*.active_deployment.mode +resources.apps.*.active_deployment.source_code_path +resources.apps.*.active_deployment.status +resources.apps.*.active_deployment.status.message +resources.apps.*.active_deployment.status.state +resources.apps.*.active_deployment.update_time +resources.apps.*.app_status +resources.apps.*.app_status.message +resources.apps.*.app_status.running_instances +resources.apps.*.app_status.state +resources.apps.*.budget_policy_id +resources.apps.*.compute_max_instances +resources.apps.*.compute_min_instances +resources.apps.*.compute_size +resources.apps.*.compute_status +resources.apps.*.compute_status.active_instances +resources.apps.*.compute_status.message +resources.apps.*.compute_status.state +resources.apps.*.create_time +resources.apps.*.creator +resources.apps.*.default_git_source +resources.apps.*.default_git_source.branch +resources.apps.*.default_git_source.commit +resources.apps.*.default_git_source.git_repository +resources.apps.*.default_git_source.git_repository.auto_deploy +resources.apps.*.default_git_source.git_repository.auto_deploy=true +resources.apps.*.default_git_source.git_repository.auto_deploy=false +resources.apps.*.default_git_source.git_repository.caller_credential_id +resources.apps.*.default_git_source.git_repository.provider +resources.apps.*.default_git_source.git_repository.url +resources.apps.*.default_git_source.resolved_commit +resources.apps.*.default_git_source.source_code_path +resources.apps.*.default_git_source.tag +resources.apps.*.default_source_code_path +resources.apps.*.description +resources.apps.*.effective_budget_policy_id +resources.apps.*.effective_usage_policy_id +resources.apps.*.effective_user_api_scopes +resources.apps.*.effective_user_api_scopes[*] +resources.apps.*.forward_user_access_token +resources.apps.*.forward_user_access_token=true +resources.apps.*.forward_user_access_token=false +resources.apps.*.git_repository +resources.apps.*.git_repository.auto_deploy +resources.apps.*.git_repository.auto_deploy=true +resources.apps.*.git_repository.auto_deploy=false +resources.apps.*.git_repository.caller_credential_id +resources.apps.*.git_repository.provider +resources.apps.*.git_repository.url +resources.apps.*.git_source +resources.apps.*.git_source.branch +resources.apps.*.git_source.commit +resources.apps.*.git_source.git_repository +resources.apps.*.git_source.git_repository.auto_deploy +resources.apps.*.git_source.git_repository.auto_deploy=true +resources.apps.*.git_source.git_repository.auto_deploy=false +resources.apps.*.git_source.git_repository.caller_credential_id +resources.apps.*.git_source.git_repository.provider +resources.apps.*.git_source.git_repository.url +resources.apps.*.git_source.resolved_commit +resources.apps.*.git_source.source_code_path +resources.apps.*.git_source.tag +resources.apps.*.id +resources.apps.*.name +resources.apps.*.oauth2_app_client_id +resources.apps.*.oauth2_app_integration_id +resources.apps.*.pending_deployment +resources.apps.*.pending_deployment.command +resources.apps.*.pending_deployment.command[*] +resources.apps.*.pending_deployment.create_time +resources.apps.*.pending_deployment.creator +resources.apps.*.pending_deployment.deployment_artifacts +resources.apps.*.pending_deployment.deployment_artifacts.source_code_path +resources.apps.*.pending_deployment.deployment_id +resources.apps.*.pending_deployment.env_vars +resources.apps.*.pending_deployment.env_vars[*] +resources.apps.*.pending_deployment.env_vars[*].name +resources.apps.*.pending_deployment.env_vars[*].value +resources.apps.*.pending_deployment.env_vars[*].value_from +resources.apps.*.pending_deployment.git_source +resources.apps.*.pending_deployment.git_source.branch +resources.apps.*.pending_deployment.git_source.commit +resources.apps.*.pending_deployment.git_source.git_repository +resources.apps.*.pending_deployment.git_source.git_repository.auto_deploy +resources.apps.*.pending_deployment.git_source.git_repository.auto_deploy=true +resources.apps.*.pending_deployment.git_source.git_repository.auto_deploy=false +resources.apps.*.pending_deployment.git_source.git_repository.caller_credential_id +resources.apps.*.pending_deployment.git_source.git_repository.provider +resources.apps.*.pending_deployment.git_source.git_repository.url +resources.apps.*.pending_deployment.git_source.resolved_commit +resources.apps.*.pending_deployment.git_source.source_code_path +resources.apps.*.pending_deployment.git_source.tag +resources.apps.*.pending_deployment.health_check +resources.apps.*.pending_deployment.health_check.path +resources.apps.*.pending_deployment.health_check.timeout +resources.apps.*.pending_deployment.mode +resources.apps.*.pending_deployment.source_code_path +resources.apps.*.pending_deployment.status +resources.apps.*.pending_deployment.status.message +resources.apps.*.pending_deployment.status.state +resources.apps.*.pending_deployment.update_time +resources.apps.*.resources +resources.apps.*.resources[*] +resources.apps.*.resources[*].app +resources.apps.*.resources[*].app.name +resources.apps.*.resources[*].app.permission +resources.apps.*.resources[*].database +resources.apps.*.resources[*].database.database_name +resources.apps.*.resources[*].database.instance_name +resources.apps.*.resources[*].database.permission +resources.apps.*.resources[*].description +resources.apps.*.resources[*].experiment +resources.apps.*.resources[*].experiment.experiment_id +resources.apps.*.resources[*].experiment.permission +resources.apps.*.resources[*].genie_space +resources.apps.*.resources[*].genie_space.name +resources.apps.*.resources[*].genie_space.permission +resources.apps.*.resources[*].genie_space.space_id +resources.apps.*.resources[*].job +resources.apps.*.resources[*].job.id +resources.apps.*.resources[*].job.permission +resources.apps.*.resources[*].name +resources.apps.*.resources[*].postgres +resources.apps.*.resources[*].postgres.branch +resources.apps.*.resources[*].postgres.database +resources.apps.*.resources[*].postgres.permission +resources.apps.*.resources[*].secret +resources.apps.*.resources[*].secret.key +resources.apps.*.resources[*].secret.permission +resources.apps.*.resources[*].secret.scope +resources.apps.*.resources[*].serving_endpoint +resources.apps.*.resources[*].serving_endpoint.name +resources.apps.*.resources[*].serving_endpoint.permission +resources.apps.*.resources[*].sql_warehouse +resources.apps.*.resources[*].sql_warehouse.id +resources.apps.*.resources[*].sql_warehouse.permission +resources.apps.*.resources[*].uc_securable +resources.apps.*.resources[*].uc_securable.permission +resources.apps.*.resources[*].uc_securable.securable_full_name +resources.apps.*.resources[*].uc_securable.securable_kind +resources.apps.*.resources[*].uc_securable.securable_type +resources.apps.*.service_principal_client_id +resources.apps.*.service_principal_id +resources.apps.*.service_principal_name +resources.apps.*.source_code_path +resources.apps.*.space +resources.apps.*.telemetry_export_destinations +resources.apps.*.telemetry_export_destinations[*] +resources.apps.*.telemetry_export_destinations[*].unity_catalog +resources.apps.*.telemetry_export_destinations[*].unity_catalog.logs_table +resources.apps.*.telemetry_export_destinations[*].unity_catalog.metrics_table +resources.apps.*.telemetry_export_destinations[*].unity_catalog.traces_table +resources.apps.*.thumbnail_url +resources.apps.*.update_time +resources.apps.*.updater +resources.apps.*.usage_policy_id +resources.apps.*.user_api_scopes +resources.apps.*.user_api_scopes[*] +resources.apps.*.lifecycle.started +resources.apps.*.lifecycle.started=true +resources.apps.*.lifecycle.started=false +resources.apps.*.config +resources.apps.*.config.command +resources.apps.*.config.command[*] +resources.apps.*.config.env +resources.apps.*.config.env[*] +resources.apps.*.config.env[*].name +resources.apps.*.config.env[*].value +resources.apps.*.config.env[*].value_from +resources.apps.*.permissions +resources.apps.*.permissions[*] +resources.apps.*.permissions[*].level +resources.apps.*.permissions[*].user_name +resources.apps.*.permissions[*].service_principal_name +resources.apps.*.permissions[*].group_name +resources.secret_scopes +resources.secret_scopes.* +resources.secret_scopes.*.url +resources.secret_scopes.*.modified_status +resources.secret_scopes.*.lifecycle +resources.secret_scopes.*.lifecycle.prevent_destroy +resources.secret_scopes.*.lifecycle.prevent_destroy=true +resources.secret_scopes.*.lifecycle.prevent_destroy=false +resources.secret_scopes.*.lifecycle.depends_on +resources.secret_scopes.*.lifecycle.depends_on[*] +resources.secret_scopes.*.lifecycle.depends_on[*].resource +resources.secret_scopes.*.id +resources.secret_scopes.*.name +resources.secret_scopes.*.permissions +resources.secret_scopes.*.permissions[*] +resources.secret_scopes.*.permissions[*].level +resources.secret_scopes.*.permissions[*].user_name +resources.secret_scopes.*.permissions[*].service_principal_name +resources.secret_scopes.*.permissions[*].group_name +resources.secret_scopes.*.backend_type +resources.secret_scopes.*.keyvault_metadata +resources.secret_scopes.*.keyvault_metadata.dns_name +resources.secret_scopes.*.keyvault_metadata.resource_id +resources.alerts +resources.alerts.* +resources.alerts.*.url +resources.alerts.*.modified_status +resources.alerts.*.lifecycle +resources.alerts.*.lifecycle.prevent_destroy +resources.alerts.*.lifecycle.prevent_destroy=true +resources.alerts.*.lifecycle.prevent_destroy=false +resources.alerts.*.lifecycle.depends_on +resources.alerts.*.lifecycle.depends_on[*] +resources.alerts.*.lifecycle.depends_on[*].resource +resources.alerts.*.create_time +resources.alerts.*.custom_description +resources.alerts.*.custom_summary +resources.alerts.*.custom_template_format +resources.alerts.*.display_name +resources.alerts.*.effective_run_as +resources.alerts.*.effective_run_as.service_principal_name +resources.alerts.*.effective_run_as.user_name +resources.alerts.*.evaluation +resources.alerts.*.evaluation.comparison_operator +resources.alerts.*.evaluation.empty_result_state +resources.alerts.*.evaluation.last_evaluated_at +resources.alerts.*.evaluation.notification +resources.alerts.*.evaluation.notification.notify_on_ok +resources.alerts.*.evaluation.notification.notify_on_ok=true +resources.alerts.*.evaluation.notification.notify_on_ok=false +resources.alerts.*.evaluation.notification.retrigger_seconds +resources.alerts.*.evaluation.notification.subscriptions +resources.alerts.*.evaluation.notification.subscriptions[*] +resources.alerts.*.evaluation.notification.subscriptions[*].destination_id +resources.alerts.*.evaluation.notification.subscriptions[*].user_email +resources.alerts.*.evaluation.source +resources.alerts.*.evaluation.source.aggregation +resources.alerts.*.evaluation.source.display +resources.alerts.*.evaluation.source.name +resources.alerts.*.evaluation.state +resources.alerts.*.evaluation.threshold +resources.alerts.*.evaluation.threshold.column +resources.alerts.*.evaluation.threshold.column.aggregation +resources.alerts.*.evaluation.threshold.column.display +resources.alerts.*.evaluation.threshold.column.name +resources.alerts.*.evaluation.threshold.value +resources.alerts.*.evaluation.threshold.value.bool_value +resources.alerts.*.evaluation.threshold.value.bool_value=true +resources.alerts.*.evaluation.threshold.value.bool_value=false +resources.alerts.*.evaluation.threshold.value.double_value +resources.alerts.*.evaluation.threshold.value.string_value +resources.alerts.*.id +resources.alerts.*.lifecycle_state +resources.alerts.*.owner_user_name +resources.alerts.*.parameters +resources.alerts.*.parameters[*] +resources.alerts.*.parameters[*].name +resources.alerts.*.parameters[*].type +resources.alerts.*.parameters[*].value +resources.alerts.*.parent_path +resources.alerts.*.query_text +resources.alerts.*.run_as +resources.alerts.*.run_as.service_principal_name +resources.alerts.*.run_as.user_name +resources.alerts.*.run_as_user_name +resources.alerts.*.schedule +resources.alerts.*.schedule.pause_status +resources.alerts.*.schedule.quartz_cron_schedule +resources.alerts.*.schedule.timezone_id +resources.alerts.*.update_time +resources.alerts.*.warehouse_id +resources.alerts.*.permissions +resources.alerts.*.permissions[*] +resources.alerts.*.permissions[*].level +resources.alerts.*.permissions[*].user_name +resources.alerts.*.permissions[*].service_principal_name +resources.alerts.*.permissions[*].group_name +resources.alerts.*.file_path +resources.sql_warehouses +resources.sql_warehouses.* +resources.sql_warehouses.*.url +resources.sql_warehouses.*.modified_status +resources.sql_warehouses.*.lifecycle +resources.sql_warehouses.*.lifecycle.prevent_destroy +resources.sql_warehouses.*.lifecycle.prevent_destroy=true +resources.sql_warehouses.*.lifecycle.prevent_destroy=false +resources.sql_warehouses.*.lifecycle.depends_on +resources.sql_warehouses.*.lifecycle.depends_on[*] +resources.sql_warehouses.*.lifecycle.depends_on[*].resource +resources.sql_warehouses.*.id +resources.sql_warehouses.*.auto_stop_mins +resources.sql_warehouses.*.channel +resources.sql_warehouses.*.channel.dbsql_version +resources.sql_warehouses.*.channel.name +resources.sql_warehouses.*.cluster_size +resources.sql_warehouses.*.creator_name +resources.sql_warehouses.*.customer_version_label +resources.sql_warehouses.*.enable_photon +resources.sql_warehouses.*.enable_photon=true +resources.sql_warehouses.*.enable_photon=false +resources.sql_warehouses.*.enable_serverless_compute +resources.sql_warehouses.*.enable_serverless_compute=true +resources.sql_warehouses.*.enable_serverless_compute=false +resources.sql_warehouses.*.instance_profile_arn +resources.sql_warehouses.*.max_dbu +resources.sql_warehouses.*.max_num_clusters +resources.sql_warehouses.*.min_num_clusters +resources.sql_warehouses.*.name +resources.sql_warehouses.*.reyden_cluster_size_multiplier +resources.sql_warehouses.*.spot_instance_policy +resources.sql_warehouses.*.statement_timeout +resources.sql_warehouses.*.tags +resources.sql_warehouses.*.tags.custom_tags +resources.sql_warehouses.*.tags.custom_tags[*] +resources.sql_warehouses.*.tags.custom_tags[*].key +resources.sql_warehouses.*.tags.custom_tags[*].value +resources.sql_warehouses.*.warehouse_type +resources.sql_warehouses.*.lifecycle.started +resources.sql_warehouses.*.lifecycle.started=true +resources.sql_warehouses.*.lifecycle.started=false +resources.sql_warehouses.*.permissions +resources.sql_warehouses.*.permissions[*] +resources.sql_warehouses.*.permissions[*].level +resources.sql_warehouses.*.permissions[*].user_name +resources.sql_warehouses.*.permissions[*].service_principal_name +resources.sql_warehouses.*.permissions[*].group_name +resources.database_instances +resources.database_instances.* +resources.database_instances.*.url +resources.database_instances.*.modified_status +resources.database_instances.*.lifecycle +resources.database_instances.*.lifecycle.prevent_destroy +resources.database_instances.*.lifecycle.prevent_destroy=true +resources.database_instances.*.lifecycle.prevent_destroy=false +resources.database_instances.*.lifecycle.depends_on +resources.database_instances.*.lifecycle.depends_on[*] +resources.database_instances.*.lifecycle.depends_on[*].resource +resources.database_instances.*.id +resources.database_instances.*.capacity +resources.database_instances.*.child_instance_refs +resources.database_instances.*.child_instance_refs[*] +resources.database_instances.*.child_instance_refs[*].branch_time +resources.database_instances.*.child_instance_refs[*].effective_lsn +resources.database_instances.*.child_instance_refs[*].lsn +resources.database_instances.*.child_instance_refs[*].name +resources.database_instances.*.child_instance_refs[*].uid +resources.database_instances.*.creation_time +resources.database_instances.*.creator +resources.database_instances.*.custom_tags +resources.database_instances.*.custom_tags[*] +resources.database_instances.*.custom_tags[*].key +resources.database_instances.*.custom_tags[*].value +resources.database_instances.*.effective_capacity +resources.database_instances.*.effective_custom_tags +resources.database_instances.*.effective_custom_tags[*] +resources.database_instances.*.effective_custom_tags[*].key +resources.database_instances.*.effective_custom_tags[*].value +resources.database_instances.*.effective_enable_pg_native_login +resources.database_instances.*.effective_enable_pg_native_login=true +resources.database_instances.*.effective_enable_pg_native_login=false +resources.database_instances.*.effective_enable_readable_secondaries +resources.database_instances.*.effective_enable_readable_secondaries=true +resources.database_instances.*.effective_enable_readable_secondaries=false +resources.database_instances.*.effective_node_count +resources.database_instances.*.effective_retention_window_in_days +resources.database_instances.*.effective_stopped +resources.database_instances.*.effective_stopped=true +resources.database_instances.*.effective_stopped=false +resources.database_instances.*.effective_usage_policy_id +resources.database_instances.*.enable_pg_native_login +resources.database_instances.*.enable_pg_native_login=true +resources.database_instances.*.enable_pg_native_login=false +resources.database_instances.*.enable_readable_secondaries +resources.database_instances.*.enable_readable_secondaries=true +resources.database_instances.*.enable_readable_secondaries=false +resources.database_instances.*.name +resources.database_instances.*.node_count +resources.database_instances.*.parent_instance_ref +resources.database_instances.*.parent_instance_ref.branch_time +resources.database_instances.*.parent_instance_ref.effective_lsn +resources.database_instances.*.parent_instance_ref.lsn +resources.database_instances.*.parent_instance_ref.name +resources.database_instances.*.parent_instance_ref.uid +resources.database_instances.*.pg_version +resources.database_instances.*.read_only_dns +resources.database_instances.*.read_write_dns +resources.database_instances.*.retention_window_in_days +resources.database_instances.*.state +resources.database_instances.*.stopped +resources.database_instances.*.stopped=true +resources.database_instances.*.stopped=false +resources.database_instances.*.uid +resources.database_instances.*.usage_policy_id +resources.database_instances.*.permissions +resources.database_instances.*.permissions[*] +resources.database_instances.*.permissions[*].level +resources.database_instances.*.permissions[*].user_name +resources.database_instances.*.permissions[*].service_principal_name +resources.database_instances.*.permissions[*].group_name +resources.database_catalogs +resources.database_catalogs.* +resources.database_catalogs.*.url +resources.database_catalogs.*.modified_status +resources.database_catalogs.*.lifecycle +resources.database_catalogs.*.lifecycle.prevent_destroy +resources.database_catalogs.*.lifecycle.prevent_destroy=true +resources.database_catalogs.*.lifecycle.prevent_destroy=false +resources.database_catalogs.*.lifecycle.depends_on +resources.database_catalogs.*.lifecycle.depends_on[*] +resources.database_catalogs.*.lifecycle.depends_on[*].resource +resources.database_catalogs.*.id +resources.database_catalogs.*.create_database_if_not_exists +resources.database_catalogs.*.create_database_if_not_exists=true +resources.database_catalogs.*.create_database_if_not_exists=false +resources.database_catalogs.*.database_instance_name +resources.database_catalogs.*.database_name +resources.database_catalogs.*.name +resources.database_catalogs.*.uid +resources.synced_database_tables +resources.synced_database_tables.* +resources.synced_database_tables.*.url +resources.synced_database_tables.*.modified_status +resources.synced_database_tables.*.lifecycle +resources.synced_database_tables.*.lifecycle.prevent_destroy +resources.synced_database_tables.*.lifecycle.prevent_destroy=true +resources.synced_database_tables.*.lifecycle.prevent_destroy=false +resources.synced_database_tables.*.lifecycle.depends_on +resources.synced_database_tables.*.lifecycle.depends_on[*] +resources.synced_database_tables.*.lifecycle.depends_on[*].resource +resources.synced_database_tables.*.id +resources.synced_database_tables.*.data_synchronization_status +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.estimated_completion_time_seconds +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.latest_version_currently_processing +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.provisioning_phase +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.sync_progress_completion +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.synced_row_count +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.initial_pipeline_sync_progress.total_row_count +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.last_processed_commit_version +resources.synced_database_tables.*.data_synchronization_status.continuous_update_status.timestamp +resources.synced_database_tables.*.data_synchronization_status.detailed_state +resources.synced_database_tables.*.data_synchronization_status.failed_status +resources.synced_database_tables.*.data_synchronization_status.failed_status.last_processed_commit_version +resources.synced_database_tables.*.data_synchronization_status.failed_status.timestamp +resources.synced_database_tables.*.data_synchronization_status.last_sync +resources.synced_database_tables.*.data_synchronization_status.last_sync.delta_table_sync_info +resources.synced_database_tables.*.data_synchronization_status.last_sync.delta_table_sync_info.delta_commit_timestamp +resources.synced_database_tables.*.data_synchronization_status.last_sync.delta_table_sync_info.delta_commit_version +resources.synced_database_tables.*.data_synchronization_status.last_sync.sync_end_timestamp +resources.synced_database_tables.*.data_synchronization_status.last_sync.sync_start_timestamp +resources.synced_database_tables.*.data_synchronization_status.message +resources.synced_database_tables.*.data_synchronization_status.pipeline_id +resources.synced_database_tables.*.data_synchronization_status.provisioning_status +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.estimated_completion_time_seconds +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.latest_version_currently_processing +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.provisioning_phase +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.sync_progress_completion +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.synced_row_count +resources.synced_database_tables.*.data_synchronization_status.provisioning_status.initial_pipeline_sync_progress.total_row_count +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.last_processed_commit_version +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.timestamp +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.estimated_completion_time_seconds +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.latest_version_currently_processing +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.provisioning_phase +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.sync_progress_completion +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.synced_row_count +resources.synced_database_tables.*.data_synchronization_status.triggered_update_status.triggered_update_progress.total_row_count +resources.synced_database_tables.*.database_instance_name +resources.synced_database_tables.*.effective_database_instance_name +resources.synced_database_tables.*.effective_logical_database_name +resources.synced_database_tables.*.logical_database_name +resources.synced_database_tables.*.name +resources.synced_database_tables.*.spec +resources.synced_database_tables.*.spec.accelerated_sync +resources.synced_database_tables.*.spec.accelerated_sync=true +resources.synced_database_tables.*.spec.accelerated_sync=false +resources.synced_database_tables.*.spec.create_database_objects_if_missing +resources.synced_database_tables.*.spec.create_database_objects_if_missing=true +resources.synced_database_tables.*.spec.create_database_objects_if_missing=false +resources.synced_database_tables.*.spec.existing_pipeline_id +resources.synced_database_tables.*.spec.new_pipeline_spec +resources.synced_database_tables.*.spec.new_pipeline_spec.budget_policy_id +resources.synced_database_tables.*.spec.new_pipeline_spec.storage_catalog +resources.synced_database_tables.*.spec.new_pipeline_spec.storage_schema +resources.synced_database_tables.*.spec.primary_key_columns +resources.synced_database_tables.*.spec.primary_key_columns[*] +resources.synced_database_tables.*.spec.scheduling_policy +resources.synced_database_tables.*.spec.source_table_full_name +resources.synced_database_tables.*.spec.timeseries_key +resources.synced_database_tables.*.spec.type_overrides +resources.synced_database_tables.*.spec.type_overrides[*] +resources.synced_database_tables.*.spec.type_overrides[*].column_name +resources.synced_database_tables.*.spec.type_overrides[*].pg_type +resources.synced_database_tables.*.spec.type_overrides[*].size +resources.synced_database_tables.*.unity_catalog_provisioning_state +resources.postgres_projects +resources.postgres_projects.* +resources.postgres_projects.*.url +resources.postgres_projects.*.modified_status +resources.postgres_projects.*.lifecycle +resources.postgres_projects.*.lifecycle.prevent_destroy +resources.postgres_projects.*.lifecycle.prevent_destroy=true +resources.postgres_projects.*.lifecycle.prevent_destroy=false +resources.postgres_projects.*.lifecycle.depends_on +resources.postgres_projects.*.lifecycle.depends_on[*] +resources.postgres_projects.*.lifecycle.depends_on[*].resource +resources.postgres_projects.*.id +resources.postgres_projects.*.budget_policy_id +resources.postgres_projects.*.custom_tags +resources.postgres_projects.*.custom_tags[*] +resources.postgres_projects.*.custom_tags[*].key +resources.postgres_projects.*.custom_tags[*].value +resources.postgres_projects.*.default_branch +resources.postgres_projects.*.default_endpoint_settings +resources.postgres_projects.*.default_endpoint_settings.autoscaling_limit_max_cu +resources.postgres_projects.*.default_endpoint_settings.autoscaling_limit_min_cu +resources.postgres_projects.*.default_endpoint_settings.no_suspension +resources.postgres_projects.*.default_endpoint_settings.no_suspension=true +resources.postgres_projects.*.default_endpoint_settings.no_suspension=false +resources.postgres_projects.*.default_endpoint_settings.pg_settings +resources.postgres_projects.*.default_endpoint_settings.pg_settings.* +resources.postgres_projects.*.default_endpoint_settings.suspend_timeout_duration +resources.postgres_projects.*.display_name +resources.postgres_projects.*.enable_pg_native_login +resources.postgres_projects.*.enable_pg_native_login=true +resources.postgres_projects.*.enable_pg_native_login=false +resources.postgres_projects.*.history_retention_duration +resources.postgres_projects.*.pg_version +resources.postgres_projects.*.project_id +resources.postgres_projects.*.purge_on_delete +resources.postgres_projects.*.purge_on_delete=true +resources.postgres_projects.*.purge_on_delete=false +resources.postgres_projects.*.permissions +resources.postgres_projects.*.permissions[*] +resources.postgres_projects.*.permissions[*].level +resources.postgres_projects.*.permissions[*].user_name +resources.postgres_projects.*.permissions[*].service_principal_name +resources.postgres_projects.*.permissions[*].group_name +resources.postgres_branches +resources.postgres_branches.* +resources.postgres_branches.*.url +resources.postgres_branches.*.modified_status +resources.postgres_branches.*.lifecycle +resources.postgres_branches.*.lifecycle.prevent_destroy +resources.postgres_branches.*.lifecycle.prevent_destroy=true +resources.postgres_branches.*.lifecycle.prevent_destroy=false +resources.postgres_branches.*.lifecycle.depends_on +resources.postgres_branches.*.lifecycle.depends_on[*] +resources.postgres_branches.*.lifecycle.depends_on[*].resource +resources.postgres_branches.*.id +resources.postgres_branches.*.expire_time +resources.postgres_branches.*.is_protected +resources.postgres_branches.*.is_protected=true +resources.postgres_branches.*.is_protected=false +resources.postgres_branches.*.no_expiry +resources.postgres_branches.*.no_expiry=true +resources.postgres_branches.*.no_expiry=false +resources.postgres_branches.*.source_branch +resources.postgres_branches.*.source_branch_lsn +resources.postgres_branches.*.source_branch_time +resources.postgres_branches.*.source_snapshot +resources.postgres_branches.*.ttl +resources.postgres_branches.*.branch_id +resources.postgres_branches.*.parent +resources.postgres_branches.*.replace_existing +resources.postgres_branches.*.replace_existing=true +resources.postgres_branches.*.replace_existing=false +resources.postgres_branches.*.purge_on_delete +resources.postgres_branches.*.purge_on_delete=true +resources.postgres_branches.*.purge_on_delete=false +resources.postgres_endpoints +resources.postgres_endpoints.* +resources.postgres_endpoints.*.url +resources.postgres_endpoints.*.modified_status +resources.postgres_endpoints.*.lifecycle +resources.postgres_endpoints.*.lifecycle.prevent_destroy +resources.postgres_endpoints.*.lifecycle.prevent_destroy=true +resources.postgres_endpoints.*.lifecycle.prevent_destroy=false +resources.postgres_endpoints.*.lifecycle.depends_on +resources.postgres_endpoints.*.lifecycle.depends_on[*] +resources.postgres_endpoints.*.lifecycle.depends_on[*].resource +resources.postgres_endpoints.*.id +resources.postgres_endpoints.*.autoscaling_limit_max_cu +resources.postgres_endpoints.*.autoscaling_limit_min_cu +resources.postgres_endpoints.*.disabled +resources.postgres_endpoints.*.disabled=true +resources.postgres_endpoints.*.disabled=false +resources.postgres_endpoints.*.endpoint_type +resources.postgres_endpoints.*.group +resources.postgres_endpoints.*.group.enable_readable_secondaries +resources.postgres_endpoints.*.group.enable_readable_secondaries=true +resources.postgres_endpoints.*.group.enable_readable_secondaries=false +resources.postgres_endpoints.*.group.max +resources.postgres_endpoints.*.group.min +resources.postgres_endpoints.*.no_suspension +resources.postgres_endpoints.*.no_suspension=true +resources.postgres_endpoints.*.no_suspension=false +resources.postgres_endpoints.*.settings +resources.postgres_endpoints.*.settings.pg_settings +resources.postgres_endpoints.*.settings.pg_settings.* +resources.postgres_endpoints.*.suspend_timeout_duration +resources.postgres_endpoints.*.endpoint_id +resources.postgres_endpoints.*.parent +resources.postgres_endpoints.*.replace_existing +resources.postgres_endpoints.*.replace_existing=true +resources.postgres_endpoints.*.replace_existing=false +resources.postgres_catalogs +resources.postgres_catalogs.* +resources.postgres_catalogs.*.url +resources.postgres_catalogs.*.modified_status +resources.postgres_catalogs.*.lifecycle +resources.postgres_catalogs.*.lifecycle.prevent_destroy +resources.postgres_catalogs.*.lifecycle.prevent_destroy=true +resources.postgres_catalogs.*.lifecycle.prevent_destroy=false +resources.postgres_catalogs.*.lifecycle.depends_on +resources.postgres_catalogs.*.lifecycle.depends_on[*] +resources.postgres_catalogs.*.lifecycle.depends_on[*].resource +resources.postgres_catalogs.*.id +resources.postgres_catalogs.*.branch +resources.postgres_catalogs.*.create_database_if_missing +resources.postgres_catalogs.*.create_database_if_missing=true +resources.postgres_catalogs.*.create_database_if_missing=false +resources.postgres_catalogs.*.postgres_database +resources.postgres_catalogs.*.catalog_id +resources.postgres_databases +resources.postgres_databases.* +resources.postgres_databases.*.url +resources.postgres_databases.*.modified_status +resources.postgres_databases.*.lifecycle +resources.postgres_databases.*.lifecycle.prevent_destroy +resources.postgres_databases.*.lifecycle.prevent_destroy=true +resources.postgres_databases.*.lifecycle.prevent_destroy=false +resources.postgres_databases.*.lifecycle.depends_on +resources.postgres_databases.*.lifecycle.depends_on[*] +resources.postgres_databases.*.lifecycle.depends_on[*].resource +resources.postgres_databases.*.id +resources.postgres_databases.*.postgres_database +resources.postgres_databases.*.role +resources.postgres_databases.*.database_id +resources.postgres_databases.*.parent +resources.postgres_databases.*.replace_existing +resources.postgres_databases.*.replace_existing=true +resources.postgres_databases.*.replace_existing=false +resources.postgres_roles +resources.postgres_roles.* +resources.postgres_roles.*.url +resources.postgres_roles.*.modified_status +resources.postgres_roles.*.lifecycle +resources.postgres_roles.*.lifecycle.prevent_destroy +resources.postgres_roles.*.lifecycle.prevent_destroy=true +resources.postgres_roles.*.lifecycle.prevent_destroy=false +resources.postgres_roles.*.lifecycle.depends_on +resources.postgres_roles.*.lifecycle.depends_on[*] +resources.postgres_roles.*.lifecycle.depends_on[*].resource +resources.postgres_roles.*.id +resources.postgres_roles.*.attributes +resources.postgres_roles.*.attributes.bypassrls +resources.postgres_roles.*.attributes.bypassrls=true +resources.postgres_roles.*.attributes.bypassrls=false +resources.postgres_roles.*.attributes.createdb +resources.postgres_roles.*.attributes.createdb=true +resources.postgres_roles.*.attributes.createdb=false +resources.postgres_roles.*.attributes.createrole +resources.postgres_roles.*.attributes.createrole=true +resources.postgres_roles.*.attributes.createrole=false +resources.postgres_roles.*.auth_method +resources.postgres_roles.*.identity_type +resources.postgres_roles.*.membership_roles +resources.postgres_roles.*.membership_roles[*] +resources.postgres_roles.*.postgres_role +resources.postgres_roles.*.role_id +resources.postgres_roles.*.parent +resources.postgres_roles.*.replace_existing +resources.postgres_roles.*.replace_existing=true +resources.postgres_roles.*.replace_existing=false +resources.postgres_synced_tables +resources.postgres_synced_tables.* +resources.postgres_synced_tables.*.url +resources.postgres_synced_tables.*.modified_status +resources.postgres_synced_tables.*.lifecycle +resources.postgres_synced_tables.*.lifecycle.prevent_destroy +resources.postgres_synced_tables.*.lifecycle.prevent_destroy=true +resources.postgres_synced_tables.*.lifecycle.prevent_destroy=false +resources.postgres_synced_tables.*.lifecycle.depends_on +resources.postgres_synced_tables.*.lifecycle.depends_on[*] +resources.postgres_synced_tables.*.lifecycle.depends_on[*].resource +resources.postgres_synced_tables.*.id +resources.postgres_synced_tables.*.accelerated_sync +resources.postgres_synced_tables.*.accelerated_sync=true +resources.postgres_synced_tables.*.accelerated_sync=false +resources.postgres_synced_tables.*.branch +resources.postgres_synced_tables.*.create_database_objects_if_missing +resources.postgres_synced_tables.*.create_database_objects_if_missing=true +resources.postgres_synced_tables.*.create_database_objects_if_missing=false +resources.postgres_synced_tables.*.existing_pipeline_id +resources.postgres_synced_tables.*.extra_columns +resources.postgres_synced_tables.*.extra_columns[*] +resources.postgres_synced_tables.*.extra_columns[*].column_name +resources.postgres_synced_tables.*.extra_columns[*].column_type +resources.postgres_synced_tables.*.extra_columns[*].compute +resources.postgres_synced_tables.*.extra_columns[*].maintenance +resources.postgres_synced_tables.*.new_pipeline_spec +resources.postgres_synced_tables.*.new_pipeline_spec.budget_policy_id +resources.postgres_synced_tables.*.new_pipeline_spec.pipeline_channel +resources.postgres_synced_tables.*.new_pipeline_spec.storage_catalog +resources.postgres_synced_tables.*.new_pipeline_spec.storage_schema +resources.postgres_synced_tables.*.postgres_database +resources.postgres_synced_tables.*.primary_key_columns +resources.postgres_synced_tables.*.primary_key_columns[*] +resources.postgres_synced_tables.*.scheduling_policy +resources.postgres_synced_tables.*.source_table_full_name +resources.postgres_synced_tables.*.timeseries_key +resources.postgres_synced_tables.*.type_overrides +resources.postgres_synced_tables.*.type_overrides[*] +resources.postgres_synced_tables.*.type_overrides[*].column_name +resources.postgres_synced_tables.*.type_overrides[*].pg_type +resources.postgres_synced_tables.*.type_overrides[*].size +resources.postgres_synced_tables.*.synced_table_id +resources.postgres_snapshot_schedules +resources.postgres_snapshot_schedules.* +resources.postgres_snapshot_schedules.*.url +resources.postgres_snapshot_schedules.*.modified_status +resources.postgres_snapshot_schedules.*.lifecycle +resources.postgres_snapshot_schedules.*.lifecycle.prevent_destroy +resources.postgres_snapshot_schedules.*.lifecycle.prevent_destroy=true +resources.postgres_snapshot_schedules.*.lifecycle.prevent_destroy=false +resources.postgres_snapshot_schedules.*.lifecycle.depends_on +resources.postgres_snapshot_schedules.*.lifecycle.depends_on[*] +resources.postgres_snapshot_schedules.*.lifecycle.depends_on[*].resource +resources.postgres_snapshot_schedules.*.id +resources.postgres_snapshot_schedules.*.branch +resources.postgres_snapshot_schedules.*.schedule +resources.postgres_snapshot_schedules.*.schedule[*] +resources.postgres_snapshot_schedules.*.schedule[*].daily_schedule +resources.postgres_snapshot_schedules.*.schedule[*].daily_schedule.hour +resources.postgres_snapshot_schedules.*.schedule[*].monthly_schedule +resources.postgres_snapshot_schedules.*.schedule[*].monthly_schedule.day +resources.postgres_snapshot_schedules.*.schedule[*].monthly_schedule.hour +resources.postgres_snapshot_schedules.*.schedule[*].retention +resources.postgres_snapshot_schedules.*.schedule[*].weekly_schedule +resources.postgres_snapshot_schedules.*.schedule[*].weekly_schedule.day_of_week +resources.postgres_snapshot_schedules.*.schedule[*].weekly_schedule.hour +resources.postgres_data_apis +resources.postgres_data_apis.* +resources.postgres_data_apis.*.url +resources.postgres_data_apis.*.modified_status +resources.postgres_data_apis.*.lifecycle +resources.postgres_data_apis.*.lifecycle.prevent_destroy +resources.postgres_data_apis.*.lifecycle.prevent_destroy=true +resources.postgres_data_apis.*.lifecycle.prevent_destroy=false +resources.postgres_data_apis.*.lifecycle.depends_on +resources.postgres_data_apis.*.lifecycle.depends_on[*] +resources.postgres_data_apis.*.lifecycle.depends_on[*].resource +resources.postgres_data_apis.*.id +resources.postgres_data_apis.*.db_aggregates_enabled +resources.postgres_data_apis.*.db_aggregates_enabled=true +resources.postgres_data_apis.*.db_aggregates_enabled=false +resources.postgres_data_apis.*.db_extra_search_path +resources.postgres_data_apis.*.db_extra_search_path[*] +resources.postgres_data_apis.*.db_max_rows +resources.postgres_data_apis.*.db_schemas +resources.postgres_data_apis.*.db_schemas[*] +resources.postgres_data_apis.*.jwt_cache_max_lifetime +resources.postgres_data_apis.*.jwt_role_claim_key +resources.postgres_data_apis.*.openapi_mode +resources.postgres_data_apis.*.server_cors_allowed_origins +resources.postgres_data_apis.*.server_cors_allowed_origins[*] +resources.postgres_data_apis.*.server_timing_enabled +resources.postgres_data_apis.*.server_timing_enabled=true +resources.postgres_data_apis.*.server_timing_enabled=false +resources.postgres_data_apis.*.parent +resources.vector_search_endpoints +resources.vector_search_endpoints.* +resources.vector_search_endpoints.*.url +resources.vector_search_endpoints.*.modified_status +resources.vector_search_endpoints.*.lifecycle +resources.vector_search_endpoints.*.lifecycle.prevent_destroy +resources.vector_search_endpoints.*.lifecycle.prevent_destroy=true +resources.vector_search_endpoints.*.lifecycle.prevent_destroy=false +resources.vector_search_endpoints.*.lifecycle.depends_on +resources.vector_search_endpoints.*.lifecycle.depends_on[*] +resources.vector_search_endpoints.*.lifecycle.depends_on[*].resource +resources.vector_search_endpoints.*.id +resources.vector_search_endpoints.*.budget_policy_id +resources.vector_search_endpoints.*.endpoint_type +resources.vector_search_endpoints.*.name +resources.vector_search_endpoints.*.target_qps +resources.vector_search_endpoints.*.usage_policy_id +resources.vector_search_endpoints.*.permissions +resources.vector_search_endpoints.*.permissions[*] +resources.vector_search_endpoints.*.permissions[*].level +resources.vector_search_endpoints.*.permissions[*].user_name +resources.vector_search_endpoints.*.permissions[*].service_principal_name +resources.vector_search_endpoints.*.permissions[*].group_name +resources.vector_search_indexes +resources.vector_search_indexes.* +resources.vector_search_indexes.*.url +resources.vector_search_indexes.*.modified_status +resources.vector_search_indexes.*.lifecycle +resources.vector_search_indexes.*.lifecycle.prevent_destroy +resources.vector_search_indexes.*.lifecycle.prevent_destroy=true +resources.vector_search_indexes.*.lifecycle.prevent_destroy=false +resources.vector_search_indexes.*.lifecycle.depends_on +resources.vector_search_indexes.*.lifecycle.depends_on[*] +resources.vector_search_indexes.*.lifecycle.depends_on[*].resource +resources.vector_search_indexes.*.id +resources.vector_search_indexes.*.delta_sync_index_spec +resources.vector_search_indexes.*.delta_sync_index_spec.columns_to_index +resources.vector_search_indexes.*.delta_sync_index_spec.columns_to_index[*] +resources.vector_search_indexes.*.delta_sync_index_spec.columns_to_sync +resources.vector_search_indexes.*.delta_sync_index_spec.columns_to_sync[*] +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns[*] +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns[*].embedding_model_endpoint_name +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns[*].model_endpoint_name_for_query +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_source_columns[*].name +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_vector_columns +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_vector_columns[*] +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_vector_columns[*].embedding_dimension +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_vector_columns[*].name +resources.vector_search_indexes.*.delta_sync_index_spec.embedding_writeback_table +resources.vector_search_indexes.*.delta_sync_index_spec.pipeline_type +resources.vector_search_indexes.*.delta_sync_index_spec.source_table +resources.vector_search_indexes.*.direct_access_index_spec +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns[*] +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns[*].embedding_model_endpoint_name +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns[*].model_endpoint_name_for_query +resources.vector_search_indexes.*.direct_access_index_spec.embedding_source_columns[*].name +resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns +resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns[*] +resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns[*].embedding_dimension +resources.vector_search_indexes.*.direct_access_index_spec.embedding_vector_columns[*].name +resources.vector_search_indexes.*.direct_access_index_spec.schema_json +resources.vector_search_indexes.*.endpoint_name +resources.vector_search_indexes.*.index_subtype +resources.vector_search_indexes.*.index_type +resources.vector_search_indexes.*.name +resources.vector_search_indexes.*.primary_key +resources.vector_search_indexes.*.grants +resources.vector_search_indexes.*.grants[*] +resources.vector_search_indexes.*.grants[*].principal +resources.vector_search_indexes.*.grants[*].privileges +resources.vector_search_indexes.*.grants[*].privileges[*] +resources.instance_pools +resources.instance_pools.* +resources.instance_pools.*.url +resources.instance_pools.*.modified_status +resources.instance_pools.*.lifecycle +resources.instance_pools.*.lifecycle.prevent_destroy +resources.instance_pools.*.lifecycle.prevent_destroy=true +resources.instance_pools.*.lifecycle.prevent_destroy=false +resources.instance_pools.*.lifecycle.depends_on +resources.instance_pools.*.lifecycle.depends_on[*] +resources.instance_pools.*.lifecycle.depends_on[*].resource +resources.instance_pools.*.id +resources.instance_pools.*.aws_attributes +resources.instance_pools.*.aws_attributes.availability +resources.instance_pools.*.aws_attributes.instance_profile_arn +resources.instance_pools.*.aws_attributes.spot_bid_price_percent +resources.instance_pools.*.aws_attributes.zone_id +resources.instance_pools.*.azure_attributes +resources.instance_pools.*.azure_attributes.availability +resources.instance_pools.*.azure_attributes.capacity_reservation_group +resources.instance_pools.*.azure_attributes.spot_bid_max_price +resources.instance_pools.*.custom_tags +resources.instance_pools.*.custom_tags.* +resources.instance_pools.*.disk_spec +resources.instance_pools.*.disk_spec.disk_count +resources.instance_pools.*.disk_spec.disk_iops +resources.instance_pools.*.disk_spec.disk_size +resources.instance_pools.*.disk_spec.disk_throughput +resources.instance_pools.*.disk_spec.disk_type +resources.instance_pools.*.disk_spec.disk_type.azure_disk_volume_type +resources.instance_pools.*.disk_spec.disk_type.ebs_volume_type +resources.instance_pools.*.enable_elastic_disk +resources.instance_pools.*.enable_elastic_disk=true +resources.instance_pools.*.enable_elastic_disk=false +resources.instance_pools.*.gcp_attributes +resources.instance_pools.*.gcp_attributes.gcp_availability +resources.instance_pools.*.gcp_attributes.local_ssd_count +resources.instance_pools.*.gcp_attributes.zone_id +resources.instance_pools.*.idle_instance_autotermination_minutes +resources.instance_pools.*.instance_pool_name +resources.instance_pools.*.max_capacity +resources.instance_pools.*.min_idle_instances +resources.instance_pools.*.node_type_flexibility +resources.instance_pools.*.node_type_flexibility.alternate_node_type_ids +resources.instance_pools.*.node_type_flexibility.alternate_node_type_ids[*] +resources.instance_pools.*.node_type_flexibility.aws_context_id +resources.instance_pools.*.node_type_id +resources.instance_pools.*.preloaded_docker_images +resources.instance_pools.*.preloaded_docker_images[*] +resources.instance_pools.*.preloaded_docker_images[*].basic_auth +resources.instance_pools.*.preloaded_docker_images[*].basic_auth.password +resources.instance_pools.*.preloaded_docker_images[*].basic_auth.username +resources.instance_pools.*.preloaded_docker_images[*].url +resources.instance_pools.*.preloaded_spark_versions +resources.instance_pools.*.preloaded_spark_versions[*] +resources.instance_pools.*.remote_disk_throughput +resources.instance_pools.*.total_initial_remote_disk_size +resources.instance_pools.*.permissions +resources.instance_pools.*.permissions[*] +resources.instance_pools.*.permissions[*].level +resources.instance_pools.*.permissions[*].user_name +resources.instance_pools.*.permissions[*].service_principal_name +resources.instance_pools.*.permissions[*].group_name +resources.secrets +resources.secrets.* +resources.secrets.*.url +resources.secrets.*.modified_status +resources.secrets.*.lifecycle +resources.secrets.*.lifecycle.prevent_destroy +resources.secrets.*.lifecycle.prevent_destroy=true +resources.secrets.*.lifecycle.prevent_destroy=false +resources.secrets.*.lifecycle.depends_on +resources.secrets.*.lifecycle.depends_on[*] +resources.secrets.*.lifecycle.depends_on[*].resource +resources.secrets.*.id +resources.secrets.*.catalog_name +resources.secrets.*.comment +resources.secrets.*.create_time +resources.secrets.*.created_by +resources.secrets.*.effective_owner +resources.secrets.*.effective_value +resources.secrets.*.expire_time +resources.secrets.*.full_name +resources.secrets.*.metastore_id +resources.secrets.*.name +resources.secrets.*.owner +resources.secrets.*.schema_name +resources.secrets.*.update_time +resources.secrets.*.updated_by +resources.secrets.*.value +resources.secrets.*.grants +resources.secrets.*.grants[*] +resources.secrets.*.grants[*].principal +resources.secrets.*.grants[*].privileges +resources.secrets.*.grants[*].privileges[*] +resources.cluster_policies +resources.cluster_policies.* +resources.cluster_policies.*.url +resources.cluster_policies.*.modified_status +resources.cluster_policies.*.lifecycle +resources.cluster_policies.*.lifecycle.prevent_destroy +resources.cluster_policies.*.lifecycle.prevent_destroy=true +resources.cluster_policies.*.lifecycle.prevent_destroy=false +resources.cluster_policies.*.lifecycle.depends_on +resources.cluster_policies.*.lifecycle.depends_on[*] +resources.cluster_policies.*.lifecycle.depends_on[*].resource +resources.cluster_policies.*.id +resources.cluster_policies.*.definition +resources.cluster_policies.*.description +resources.cluster_policies.*.libraries +resources.cluster_policies.*.libraries[*] +resources.cluster_policies.*.libraries[*].cran +resources.cluster_policies.*.libraries[*].cran.package +resources.cluster_policies.*.libraries[*].cran.repo +resources.cluster_policies.*.libraries[*].egg +resources.cluster_policies.*.libraries[*].jar +resources.cluster_policies.*.libraries[*].maven +resources.cluster_policies.*.libraries[*].maven.coordinates +resources.cluster_policies.*.libraries[*].maven.exclusions +resources.cluster_policies.*.libraries[*].maven.exclusions[*] +resources.cluster_policies.*.libraries[*].maven.repo +resources.cluster_policies.*.libraries[*].pypi +resources.cluster_policies.*.libraries[*].pypi.package +resources.cluster_policies.*.libraries[*].pypi.repo +resources.cluster_policies.*.libraries[*].requirements +resources.cluster_policies.*.libraries[*].whl +resources.cluster_policies.*.max_clusters_per_user +resources.cluster_policies.*.name +resources.cluster_policies.*.policy_family_definition_overrides +resources.cluster_policies.*.policy_family_id +resources.cluster_policies.*.permissions +resources.cluster_policies.*.permissions[*] +resources.cluster_policies.*.permissions[*].level +resources.cluster_policies.*.permissions[*].user_name +resources.cluster_policies.*.permissions[*].service_principal_name +resources.cluster_policies.*.permissions[*].group_name +resources.internal_immutable_snapshots +resources.internal_immutable_snapshots.* +resources.internal_immutable_snapshots.*.bundle_id +resources.internal_immutable_snapshots.*.acl +resources.internal_immutable_snapshots.*.acl[*] +resources.internal_immutable_snapshots.*.acl[*].user_name +resources.internal_immutable_snapshots.*.acl[*].group_name +resources.internal_immutable_snapshots.*.acl[*].service_principal_name +resources.internal_immutable_snapshots.*.acl[*].permission_level +resources.internal_immutable_snapshots.*.can_manage +resources.internal_immutable_snapshots.*.can_manage[*] +resources.internal_immutable_snapshots.*.can_manage[*].user_name +resources.internal_immutable_snapshots.*.can_manage[*].group_name +resources.internal_immutable_snapshots.*.can_manage[*].service_principal_name +resources.internal_immutable_snapshots.*.zip_path +resources.internal_immutable_snapshots.*.remote_root +sync +sync.paths +sync.paths[*] +sync.include +sync.include[*] +sync.exclude +sync.exclude[*] +run_as +run_as.group_name +run_as.service_principal_name +run_as.user_name +presets +presets.name_prefix +presets.pipelines_development +presets.pipelines_development=true +presets.pipelines_development=false +presets.trigger_pause_status +presets.jobs_max_concurrent_runs +presets.source_linked_deployment +presets.source_linked_deployment=true +presets.source_linked_deployment=false +presets.artifacts_dynamic_version +presets.artifacts_dynamic_version=true +presets.artifacts_dynamic_version=false +presets.tags +presets.tags.* +experimental +experimental.scripts +experimental.scripts.* +experimental.immutable_folder +experimental.immutable_folder=true +experimental.immutable_folder=false +experimental.python_wheel_wrapper +experimental.python_wheel_wrapper=true +experimental.python_wheel_wrapper=false +experimental.use_legacy_run_as +experimental.use_legacy_run_as=true +experimental.use_legacy_run_as=false +experimental.pydabs +experimental.pydabs.enabled +experimental.pydabs.enabled=true +experimental.pydabs.enabled=false +experimental.python +experimental.python.resources +experimental.python.resources[*] +experimental.python.mutators +experimental.python.mutators[*] +experimental.python.venv_path +experimental.skip_artifact_cleanup +experimental.skip_artifact_cleanup=true +experimental.skip_artifact_cleanup=false +experimental.skip_name_prefix_for_schema +experimental.skip_name_prefix_for_schema=true +experimental.skip_name_prefix_for_schema=false +experimental.deployment_history +experimental.deployment_history=true +experimental.deployment_history=false +permissions +permissions[*] +permissions[*].level +permissions[*].user_name +permissions[*].service_principal_name +permissions[*].group_name +scripts +scripts.* +scripts.*.content +scripts.*.env +scripts.*.env.* +python +python.resources +python.resources[*] +python.mutators +python.mutators[*] +python.venv_path +definitions +telemetry.PythonWheelWrapperIsSet +telemetry.PythonWheelWrapperIsSet=true +telemetry.PythonWheelWrapperIsSet=false +telemetry.ArtifactDynamicVersionIsSet +telemetry.ArtifactDynamicVersionIsSet=true +telemetry.ArtifactDynamicVersionIsSet=false +telemetry.ArtifactBuildCommandIsSet +telemetry.ArtifactBuildCommandIsSet=true +telemetry.ArtifactBuildCommandIsSet=false +telemetry.ArtifactFilesIsSet +telemetry.ArtifactFilesIsSet=true +telemetry.ArtifactFilesIsSet=false +telemetry.PresetsNamePrefixIsSet +telemetry.PresetsNamePrefixIsSet=true +telemetry.PresetsNamePrefixIsSet=false +telemetry.AppLifecycleStarted +telemetry.AppLifecycleStarted=true +telemetry.AppLifecycleStarted=false +telemetry.ClusterLifecycleStarted +telemetry.ClusterLifecycleStarted=true +telemetry.ClusterLifecycleStarted=false +telemetry.DeploymentHistoryEnabled +telemetry.DeploymentHistoryEnabled=true +telemetry.DeploymentHistoryEnabled=false +telemetry.SqlWarehouseLifecycleStarted +telemetry.SqlWarehouseLifecycleStarted=true +telemetry.SqlWarehouseLifecycleStarted=false +telemetry.SelectUsed +telemetry.SelectUsed=true +telemetry.SelectUsed=false +telemetry.ImmutableSnapshotUsed +telemetry.ImmutableSnapshotUsed=true +telemetry.ImmutableSnapshotUsed=false +telemetry.DirectMigrateError +telemetry.DirectMigrateError=true +telemetry.DirectMigrateError=false +telemetry.DirectMigrateWarnings +telemetry.DirectMigrateWarnings=true +telemetry.DirectMigrateWarnings=false +telemetry.DirectMigratePlanError +telemetry.DirectMigratePlanError=true +telemetry.DirectMigratePlanError=false +telemetry.DirectMigrateRecreatePlanned +telemetry.DirectMigrateRecreatePlanned=true +telemetry.DirectMigrateRecreatePlanned=false +telemetry.DirectAutoMigrateViaConfig +telemetry.DirectAutoMigrateViaConfig=true +telemetry.DirectAutoMigrateViaConfig=false +telemetry.DirectAutoMigrateViaEnv +telemetry.DirectAutoMigrateViaEnv=true +telemetry.DirectAutoMigrateViaEnv=false +telemetry.DirectAutoMigrateViaDefault +telemetry.DirectAutoMigrateViaDefault=true +telemetry.DirectAutoMigrateViaDefault=false +telemetry.EngineTerraformConfig +telemetry.EngineTerraformConfig=true +telemetry.EngineTerraformConfig=false +telemetry.EngineTerraformEnv +telemetry.EngineTerraformEnv=true +telemetry.EngineTerraformEnv=false +telemetry.StatePathIsShared +telemetry.StatePathIsShared=true +telemetry.StatePathIsShared=false +telemetry.DMSCompatAuto +telemetry.DMSCompatAuto=true +telemetry.DMSCompatAuto=false +telemetry.DMSCompatOnlySelfUndeclared +telemetry.DMSCompatOnlySelfUndeclared=true +telemetry.DMSCompatOnlySelfUndeclared=false +telemetry.DMSCompatNot +telemetry.DMSCompatNot=true +telemetry.DMSCompatNot=false +telemetry.PermissionsSectionSet +telemetry.PermissionsSectionSet=true +telemetry.PermissionsSectionSet=false +telemetry.StatePathInDeployerHome +telemetry.StatePathInDeployerHome=true +telemetry.StatePathInDeployerHome=false +telemetry.StatePathInOtherUserHome +telemetry.StatePathInOtherUserHome=true +telemetry.StatePathInOtherUserHome=false +telemetry.StatePathOther +telemetry.StatePathOther=true +telemetry.StatePathOther=false +telemetry.DMSUndeclaredDeployingUser +telemetry.DMSUndeclaredDeployingUser=true +telemetry.DMSUndeclaredDeployingUser=false +telemetry.DMSUndeclaredOtherUser +telemetry.DMSUndeclaredOtherUser=true +telemetry.DMSUndeclaredOtherUser=false +telemetry.DMSUndeclaredServicePrincipal +telemetry.DMSUndeclaredServicePrincipal=true +telemetry.DMSUndeclaredServicePrincipal=false +telemetry.DMSUndeclaredGroup +telemetry.DMSUndeclaredGroup=true +telemetry.DMSUndeclaredGroup=false +telemetry.AiRuntimeTaskScheduled +telemetry.AiRuntimeTaskScheduled=true +telemetry.AiRuntimeTaskScheduled=false +telemetry.AiRuntimeTaskMultitask +telemetry.AiRuntimeTaskMultitask=true +telemetry.AiRuntimeTaskMultitask=false +telemetry.SkipArtifactCleanup +telemetry.SkipArtifactCleanup=true +telemetry.SkipArtifactCleanup=false +telemetry.SourceLinkedSetForNonDevelopment +telemetry.SourceLinkedSetForNonDevelopment=true +telemetry.SourceLinkedSetForNonDevelopment=false +telemetry.ConfigHasDoubleDollarBrace +telemetry.ConfigHasDoubleDollarBrace=true +telemetry.ConfigHasDoubleDollarBrace=false +telemetry.ConfigHasDoubleDollar +telemetry.ConfigHasDoubleDollar=true +telemetry.ConfigHasDoubleDollar=false +telemetry.ConfigHasBackslashDollarBrace +telemetry.ConfigHasBackslashDollarBrace=true +telemetry.ConfigHasBackslashDollarBrace=false +telemetry.ConfigHasBackslashDollar +telemetry.ConfigHasBackslashDollar=true +telemetry.ConfigHasBackslashDollar=false +telemetry.ArtifactsReferenceUsed +telemetry.ArtifactsReferenceUsed=true +telemetry.ArtifactsReferenceUsed=false +telemetry.UseLegacyRunAs +telemetry.UseLegacyRunAs=true +telemetry.UseLegacyRunAs=false +telemetry.RunAsSet +telemetry.RunAsSet=true +telemetry.RunAsSet=false +telemetry.HasTfOnlyReferences +telemetry.HasTfOnlyReferences=true +telemetry.HasTfOnlyReferences=false +telemetry.HasServerlessCompute +telemetry.HasServerlessCompute=true +telemetry.HasServerlessCompute=false +telemetry.HasClassicJobCompute +telemetry.HasClassicJobCompute=true +telemetry.HasClassicJobCompute=false +telemetry.HasClassicInteractiveCompute +telemetry.HasClassicInteractiveCompute=true +telemetry.HasClassicInteractiveCompute=false diff --git a/bundle/bundle.go b/bundle/bundle.go index 6762b38b91e..5f7f7b9c918 100644 --- a/bundle/bundle.go +++ b/bundle/bundle.go @@ -23,6 +23,7 @@ import ( "github.com/databricks/cli/bundle/statemgmt/resourcestate" "github.com/databricks/cli/libs/auth" "github.com/databricks/cli/libs/cache" + "github.com/databricks/cli/libs/dyn" "github.com/databricks/cli/libs/fileset" "github.com/databricks/cli/libs/locker" "github.com/databricks/cli/libs/log" @@ -67,9 +68,11 @@ const terraformStateFilename = "terraform.tfstate" // This struct is used as a communication channel to collect metrics // from all over the bundle codebase to finally be emitted as telemetry. type Metrics struct { - ConfigurationFileCount int64 - TargetCount int64 - DeploymentId uuid.UUID + ConfigurationFileCount int64 + TargetCount int64 + DeploymentId uuid.UUID + // BoolValues holds bool keys that are not fields of Telemetry: the dynamic + // has_ keys and the local.cache.* keys written by libs/cache. BoolValues []protos.BoolMapEntry ExecutionTimes []protos.IntMapEntry LocalCacheMeasurementsMs []protos.IntMapEntry // Local cache measurements stored as milliseconds @@ -109,10 +112,6 @@ func (m *Metrics) SetBoolValue(key string, value bool) { m.BoolValues = append(m.BoolValues, protos.BoolMapEntry{Key: key, Value: value}) } -func (m *Metrics) AddBoolValue(key string, value bool) { - m.BoolValues = append(m.BoolValues, protos.BoolMapEntry{Key: key, Value: value}) -} - // AddDurationValue sets the value of a duration metric in milliseconds. // The value is added to the list of measurements. func (m *Metrics) AddDurationValue(key string, value time.Duration) { @@ -226,6 +225,16 @@ type Bundle struct { Cache *cache.Cache Metrics Metrics + + // Telemetry holds the boolean deploy telemetry flags; they feed both the + // deploy event's bool_values and the bundle bitmap. + Telemetry Telemetry + + // UserConfig is the configuration as the user wrote it: the loaded files with + // the selected target merged in, plus resources defined in Python. It is + // captured before Initialize fills in defaults, so the bundle bitmap records + // what users configure rather than what the CLI derives. + UserConfig dyn.Value } func Load(ctx context.Context, path string) (*Bundle, error) { diff --git a/bundle/config/mutator/apply_sync_mode.go b/bundle/config/mutator/apply_sync_mode.go index f362cce2905..aa4a955e9bf 100644 --- a/bundle/config/mutator/apply_sync_mode.go +++ b/bundle/config/mutator/apply_sync_mode.go @@ -75,7 +75,7 @@ func (m *applySyncMode) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagno return diags } - b.Metrics.AddBoolValue("source_linked_set_for_non_development", b.Config.Bundle.Mode != config.Development) + b.Telemetry.SourceLinkedSetForNonDevelopment = new(b.Config.Bundle.Mode != config.Development) if b.Config.Bundle.Mode != config.Development { diags = diags.Append( diff --git a/bundle/config/mutator/collect_escape_telemetry.go b/bundle/config/mutator/collect_escape_telemetry.go index b24922bb5b3..f8d49e60329 100644 --- a/bundle/config/mutator/collect_escape_telemetry.go +++ b/bundle/config/mutator/collect_escape_telemetry.go @@ -50,16 +50,16 @@ func (*collectEscapeTelemetry) Apply(ctx context.Context, b *bundle.Bundle) diag } if hasDoubleDollarBrace { - b.Metrics.SetBoolValue("config_has_double_dollar_brace", true) + b.Telemetry.ConfigHasDoubleDollarBrace = true } if hasDoubleDollar { - b.Metrics.SetBoolValue("config_has_double_dollar", true) + b.Telemetry.ConfigHasDoubleDollar = true } if hasBackslashDollarBrace { - b.Metrics.SetBoolValue("config_has_backslash_dollar_brace", true) + b.Telemetry.ConfigHasBackslashDollarBrace = true } if hasBackslashDollar { - b.Metrics.SetBoolValue("config_has_backslash_dollar", true) + b.Telemetry.ConfigHasBackslashDollar = true } return nil diff --git a/bundle/config/mutator/collect_escape_telemetry_test.go b/bundle/config/mutator/collect_escape_telemetry_test.go index 90bc259704e..533ac39940a 100644 --- a/bundle/config/mutator/collect_escape_telemetry_test.go +++ b/bundle/config/mutator/collect_escape_telemetry_test.go @@ -93,7 +93,7 @@ func TestCollectEscapeTelemetry(t *testing.T) { diags := bundle.Apply(t.Context(), b, mutator.CollectEscapeTelemetry()) require.Empty(t, diags) - assert.Equal(t, tt.expected, b.Metrics.BoolValues) + assert.Equal(t, tt.expected, b.Telemetry.BoolValues()) }) } } diff --git a/bundle/config/mutator/mark_select_used.go b/bundle/config/mutator/mark_select_used.go index 168eb59f396..cc1cf0fe353 100644 --- a/bundle/config/mutator/mark_select_used.go +++ b/bundle/config/mutator/mark_select_used.go @@ -4,7 +4,6 @@ import ( "context" "github.com/databricks/cli/bundle" - "github.com/databricks/cli/bundle/metrics" "github.com/databricks/cli/libs/diag" ) @@ -26,7 +25,7 @@ func (m *markSelectUsed) Name() string { func (m *markSelectUsed) Apply(_ context.Context, b *bundle.Bundle) diag.Diagnostics { if len(b.Select) > 0 { - b.Metrics.SetBoolValue(metrics.SelectUsed, true) + b.Telemetry.SelectUsed = true } return nil } diff --git a/bundle/config/mutator/mark_select_used_test.go b/bundle/config/mutator/mark_select_used_test.go index b2da87c681d..361a7450a5d 100644 --- a/bundle/config/mutator/mark_select_used_test.go +++ b/bundle/config/mutator/mark_select_used_test.go @@ -7,8 +7,6 @@ import ( "github.com/databricks/cli/bundle/config" "github.com/databricks/cli/bundle/config/mutator" "github.com/databricks/cli/bundle/config/resources" - "github.com/databricks/cli/bundle/metrics" - "github.com/databricks/cli/libs/telemetry/protos" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -27,7 +25,7 @@ func TestMarkSelectUsed_Set(t *testing.T) { b.Select = []string{"my_job"} diags := bundle.Apply(t.Context(), b, mutator.MarkSelectUsed()) require.NoError(t, diags.Error()) - assert.Contains(t, b.Metrics.BoolValues, protos.BoolMapEntry{Key: metrics.SelectUsed, Value: true}) + assert.True(t, b.Telemetry.SelectUsed) } // TestMarkSelectUsed_Unset checks that the flag is left unset when --select is not @@ -36,5 +34,5 @@ func TestMarkSelectUsed_Unset(t *testing.T) { b := &bundle.Bundle{} diags := bundle.Apply(t.Context(), b, mutator.MarkSelectUsed()) require.NoError(t, diags.Error()) - assert.Empty(t, b.Metrics.BoolValues) + assert.False(t, b.Telemetry.SelectUsed) } diff --git a/bundle/config/mutator/python/python_mutator.go b/bundle/config/mutator/python/python_mutator.go index 2397defd153..29acfd21b02 100644 --- a/bundle/config/mutator/python/python_mutator.go +++ b/bundle/config/mutator/python/python_mutator.go @@ -31,6 +31,7 @@ import ( "github.com/databricks/cli/libs/diag" "github.com/databricks/cli/libs/dyn" "github.com/databricks/cli/libs/dyn/convert" + "github.com/databricks/cli/libs/dyn/merge" "github.com/databricks/cli/libs/dyn/yamlloader" "github.com/databricks/cli/libs/process" "github.com/databricks/cli/libs/telemetry/protos" @@ -351,6 +352,11 @@ func (m *pythonMutator) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagno return mutateDiags } + // Record the Python resources as written, before their defaults are filled in. + if err := addUserResources(b, result.AddedResources); err != nil { + return mutateDiags.Extend(diag.FromErr(err)) + } + resourcemutator.NormalizeAndInitializeResources(ctx, b, result.AddedResources) if logdiag.HasError(ctx) { return mutateDiags @@ -360,6 +366,26 @@ func (m *pythonMutator) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagno return mutateDiags } +// addUserResources copies resources added by Python into b.UserConfig. +func addUserResources(b *bundle.Bundle, added resourcemutator.ResourceKeySet) error { + for _, key := range added.ToArray() { + v, err := dyn.GetByPath(b.Config.Value(), dyn.NewPath(dyn.Key("resources"), dyn.Key(key.Type), dyn.Key(key.Name))) + if err != nil { + return err + } + resource := dyn.V(map[string]dyn.Value{ + "resources": dyn.V(map[string]dyn.Value{ + key.Type: dyn.V(map[string]dyn.Value{key.Name: v}), + }), + }) + b.UserConfig, err = merge.Merge(b.UserConfig, resource) + if err != nil { + return err + } + } + return nil +} + // createCacheDir returns the directory for input/output files of the Python subprocess, and a cleanup function. func createCacheDir(ctx context.Context) (string, func(), error) { // b.LocalStateDir doesn't work because target isn't yet selected diff --git a/bundle/config/mutator/python/python_mutator_test.go b/bundle/config/mutator/python/python_mutator_test.go index f3378b1bd51..dff41bdf8c3 100644 --- a/bundle/config/mutator/python/python_mutator_test.go +++ b/bundle/config/mutator/python/python_mutator_test.go @@ -121,8 +121,13 @@ workspace: { current_user: { userName: test }}`) assert.Equal(t, "pipeline_0", pipeline0.Name) } + // The added resources are recorded in UserConfig as Python wrote them. + userJob0, err := dyn.Get(b.UserConfig, "resources.jobs.job0") + require.NoError(t, err) + assert.Equal(t, map[string]any{"name": "job_0"}, userJob0.AsAny()) + // output of locations.json should be applied to underlying dyn.Value - err := b.Config.Mutate(func(v dyn.Value) (dyn.Value, error) { + err = b.Config.Mutate(func(v dyn.Value) (dyn.Value, error) { // location is databricks.yml, because output contains resource as-is jobName0, err := dyn.GetByPath(v, dyn.MustPathFromString("resources.jobs.job0.name")) require.NoError(t, err) @@ -601,8 +606,10 @@ func loadYaml(name, content string) *bundle.Bundle { panic(diag.Error()) } + // Initialize snapshots the loaded config before the Python mutator runs. return &bundle.Bundle{ - Config: *v, + Config: *v, + UserConfig: v.Value(), } } diff --git a/bundle/config/mutator/resolve_variable_references.go b/bundle/config/mutator/resolve_variable_references.go index 42c22b61533..6f4050e7094 100644 --- a/bundle/config/mutator/resolve_variable_references.go +++ b/bundle/config/mutator/resolve_variable_references.go @@ -195,7 +195,7 @@ func (m *resolveVariableReferences) Apply(ctx context.Context, b *bundle.Bundle) } if m.artifactsReferenceUsed { - b.Metrics.SetBoolValue("artifacts_reference_used", true) + b.Telemetry.ArtifactsReferenceUsed = true } return diags diff --git a/bundle/config/mutator/resourcemutator/apply_presets.go b/bundle/config/mutator/resourcemutator/apply_presets.go index 9f2faab8398..295d456f6ad 100644 --- a/bundle/config/mutator/resourcemutator/apply_presets.go +++ b/bundle/config/mutator/resourcemutator/apply_presets.go @@ -9,7 +9,6 @@ import ( "github.com/databricks/cli/bundle" "github.com/databricks/cli/bundle/config" - "github.com/databricks/cli/bundle/metrics" "github.com/databricks/cli/libs/diag" "github.com/databricks/cli/libs/textutil" "github.com/databricks/databricks-sdk-go/service/catalog" @@ -47,7 +46,7 @@ func (m *applyPresets) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnos t := b.Config.Presets prefix := t.NamePrefix - b.Metrics.AddBoolValue(metrics.PresetsNamePrefixIsSet, prefix != "") + b.Telemetry.PresetsNamePrefixIsSet = new(prefix != "") tags := toTagArray(t.Tags) diff --git a/bundle/config/mutator/resourcemutator/run_as.go b/bundle/config/mutator/resourcemutator/run_as.go index b946db77235..b3c4e8233de 100644 --- a/bundle/config/mutator/resourcemutator/run_as.go +++ b/bundle/config/mutator/resourcemutator/run_as.go @@ -226,10 +226,10 @@ func setPipelineOwnersToRunAsIdentity(b *bundle.Bundle) { func (m *setRunAs) Apply(_ context.Context, b *bundle.Bundle) diag.Diagnostics { // Track the use of the legacy run_as mode. - b.Metrics.AddBoolValue("experimental.use_legacy_run_as", b.Config.Experimental != nil && b.Config.Experimental.UseLegacyRunAs) + b.Telemetry.UseLegacyRunAs = new(b.Config.Experimental != nil && b.Config.Experimental.UseLegacyRunAs) // Track whether top level run_as is set. - b.Metrics.AddBoolValue("run_as_set", b.Config.Value().Get("run_as").Kind() != dyn.KindInvalid) + b.Telemetry.RunAsSet = new(b.Config.Value().Get("run_as").Kind() != dyn.KindInvalid) // Mutator is a no-op if run_as is not specified in the bundle if b.Config.Value().Get("run_as").Kind() == dyn.KindInvalid { diff --git a/bundle/config/validate/tf_only_references.go b/bundle/config/validate/tf_only_references.go index 3603b6f4a7f..a9e27e1d69c 100644 --- a/bundle/config/validate/tf_only_references.go +++ b/bundle/config/validate/tf_only_references.go @@ -47,7 +47,7 @@ func (m *tfOnlyReferences) Apply(_ context.Context, b *bundle.Bundle) diag.Diagn }) if len(diags) > 0 { - b.Metrics.AddBoolValue("has_tf_only_references", true) + b.Telemetry.HasTfOnlyReferences = true } return diags diff --git a/bundle/metrics/metrics.go b/bundle/metrics/metrics.go index f5fcb82fb1e..efa62ffe820 100644 --- a/bundle/metrics/metrics.go +++ b/bundle/metrics/metrics.go @@ -1,127 +1,11 @@ package metrics -const ( - ExperimentalPythonWheelWrapperIsSet = "python_wheel_wrapper_is_set" - ArtifactDynamicVersionIsSet = "artifact_dynamic_version_is_set" - ArtifactBuildCommandIsSet = "artifact_build_command_is_set" - ArtifactFilesIsSet = "artifact_files_is_set" - PresetsNamePrefixIsSet = "presets_name_prefix_is_set" - AppLifecycleStarted = "app_lifecycle_started" - ClusterLifecycleStarted = "cluster_lifecycle_started" - DeploymentHistoryEnabled = "deployment_history_enabled" - SqlWarehouseLifecycleStarted = "sql_warehouse_lifecycle_started" - SelectUsed = "select_used" - - // Whether the deploy registered an immutable snapshot. Derived from the snapshot - // resource, not from experimental.immutable_folder: the flag may change, and the - // resource is what the deploy actually uploads. - ImmutableSnapshotUsed = "immutable_snapshot_used" - - // Key under which the snapshot upload duration is reported in - // bundle_mutator_execution_time_ms, next to files.(upload) so the two can be - // compared. Covers creating the snapshot resource (the upload plus recording it in - // state), not building the zip, which is snapshot.(snapshotUpload). Absent when no - // snapshot was uploaded. It lacks the parentheses of a mutator name because it is - // not a mutator. - SnapshotUploadDuration = "snapshot.upload" - - // Outcome of an automatic migration of terraform state to the direct engine. - // - migrate_error: state conversion itself errored. - // - migrate_commit_error: the state was converted, but committing it - // (renaming files / pushing to workspace) failed. - // - migrate_warnings: the conversion emitted warnings (e.g. resources the direct engine can't represent). - DirectMigrateError = "direct_migrate_error" - DirectMigrateCommitError = "direct_migrate_commit_error" - DirectMigrateWarnings = "direct_migrate_warnings" - // True when the post-convert plan check failed; the migration was not committed. - DirectMigratePlanError = "direct_migrate_plan_error" - // True when the migrated state's first plan would recreate (destroy + create) an - // existing resource. The migration still commits; the recreate is a genuine pending - // change gated by the deploy's --auto-approve, and this only records how often it happens. - DirectMigrateRecreatePlanned = "direct_migrate_recreate_planned" - - // Recorded when an automatic post-deploy migration to the direct engine - // actually ran (state was rewritten). Exactly one of the three keys is true; - // all are absent when auto-migration did not run. If both config and env - // set direct, bundle.engine wins per ValidateEngineSetting, so via_config - // covers the "durable opt-in" population and via_env covers the - // "env-var only" population. - // - via_config: bundle.engine = "direct" was set in the bundle config. - // - via_env: only DATABRICKS_BUNDLE_ENGINE=direct was set. - // - via_default: neither was set, so the migration came from the default. - // This is the population that did not ask for anything. - DirectAutoMigrateViaConfig = "direct_migrated_via_config" - DirectAutoMigrateViaEnv = "direct_migrated_via_env" - DirectAutoMigrateViaDefault = "direct_migrated_via_default" - - // Whether the (deprecated) terraform engine was explicitly opted into, and via - // which source. Independent: both can be present when config and env both - // request terraform. Emitted only when true; absence means "not opted in via - // this source", so the population still on terraform can be sliced by source. - // - engine_terraform_config: bundle.engine = "terraform" in the bundle config. - // - engine_terraform_env: DATABRICKS_BUNDLE_ENGINE=terraform in the environment. - EngineTerraformConfig = "engine_terraform_config" - EngineTerraformEnv = "engine_terraform_env" - - // Whether workspace.state_path is under /Workspace/Shared. - StatePathIsShared = "state_path_is_shared" - - // Whether this deploy is compatible with an automatic migration of the deployment - // state to a dedicated state storage service (DMS). Deploying a bundle requires - // write access (CAN_EDIT or higher) to the state folder; after migration that is - // governed by the permissions on the deployment object instead. - // - // When the bundle has no permissions section, the migration can mirror the state - // folder's ACLs onto the deployment (CAN_EDIT -> CAN_EDIT, CAN_MANAGE -> - // CAN_MANAGE), preserving everyone's access wherever the state lives. When a - // permissions section is set, the migration applies exactly those permissions, so - // anyone with write access to the state folder who is not declared with - // CAN_MANAGE would lose the ability to deploy. - // - // Exactly one of the three keys below is recorded per deploy: - // - auto: no permissions section (folder ACLs are mirrored), or every principal - // with write access to the state folder is declared. - // - only_self_undeclared: a permissions section is set and the only principal - // with undeclared write access is the deploying user. The migration - // grants the deploying user CAN_MANAGE on the deployment object, so this - // is auto-migratable if we choose to preserve that grant on future - // deploys. Recorded separately to measure how common this case is. - // - not: a permissions section is set and the state folder has undeclared write - // access from a principal other than the deploying user. - DMSCompatAuto = "dms_compat_auto" - DMSCompatOnlySelfUndeclared = "dms_compat_only_self_undeclared" - DMSCompatNot = "dms_compat_not" - - // Breakdown dimensions recorded on every deploy alongside the verdict above, so the - // DMS auto-migration population can be sliced without inferring it from the verdict. - // Each is an independent boolean. - - // Whether a top-level permissions section is set. The no-permissions case is always - // auto-migration compatible (folder ACLs are mirrored), so this separates the two - // populations that both land on dms_compat_auto. - PermissionsSectionSet = "permissions_section_set" - - // Where the deployment state folder lives. Exactly one of StatePathIsShared, - // StatePathInDeployerHome, StatePathInOtherUserHome, and StatePathOther is true per - // deploy. StatePathOther is any other /Workspace folder (not a user home or shared). - StatePathInDeployerHome = "state_path_in_deployer_home" - StatePathInOtherUserHome = "state_path_in_other_user_home" - StatePathOther = "state_path_other" - - // Which principal types have undeclared write access to the state folder — the - // access an auto-migration governed by the permissions section would drop. These can - // co-occur; all false when the deploy is auto-migration compatible. - DMSUndeclaredDeployingUser = "dms_undeclared_deploying_user" - DMSUndeclaredOtherUser = "dms_undeclared_other_user" - DMSUndeclaredServicePrincipal = "dms_undeclared_service_principal" - DMSUndeclaredGroup = "dms_undeclared_group" - - // Task-type usage is recorded generically at deploy as one "has_" key - // per task type present in the bundle (e.g. has_notebook_task, has_ai_runtime_task); - // see collectTaskTypes in bundle/phases. The two keys below are extra - // ai_runtime_task-specific dimensions, emitted only when the bundle declares an - // ai_runtime_task, so a false value means "has an ai_runtime_task, but it is not - // scheduled / not multi-task". GPU type and count are intentionally not recorded here. - AiRuntimeTaskScheduled = "ai_runtime_task_scheduled" - AiRuntimeTaskMultitask = "ai_runtime_task_multitask" -) +// Boolean telemetry keys are declared as `metric` tags on bundle.Telemetry. + +// Key under which the snapshot upload duration is reported in +// bundle_mutator_execution_time_ms, next to files.(upload) so the two can be +// compared. Covers creating the snapshot resource (the upload plus recording it in +// state), not building the zip, which is snapshot.(snapshotUpload). Absent when no +// snapshot was uploaded. It lacks the parentheses of a mutator name because it is +// not a mutator. +const SnapshotUploadDuration = "snapshot.upload" diff --git a/bundle/metrics/track_used_compute.go b/bundle/metrics/track_used_compute.go index 1f3bf051dc0..d62aa68e3db 100644 --- a/bundle/metrics/track_used_compute.go +++ b/bundle/metrics/track_used_compute.go @@ -47,9 +47,9 @@ func (c *trackUsedCompute) Apply(ctx context.Context, b *bundle.Bundle) diag.Dia } } - b.Metrics.AddBoolValue("has_serverless_compute", hasServerlessCompute) - b.Metrics.AddBoolValue("has_classic_job_compute", hasClassicJobCompute) - b.Metrics.AddBoolValue("has_classic_interactive_compute", hasClassicInteractiveCompute) + b.Telemetry.HasServerlessCompute = new(hasServerlessCompute) + b.Telemetry.HasClassicJobCompute = new(hasClassicJobCompute) + b.Telemetry.HasClassicInteractiveCompute = new(hasClassicInteractiveCompute) return nil } diff --git a/bundle/permissions/workspace_root.go b/bundle/permissions/workspace_root.go index d4f3ee173c7..c9a6b0b4146 100644 --- a/bundle/permissions/workspace_root.go +++ b/bundle/permissions/workspace_root.go @@ -11,7 +11,6 @@ import ( "github.com/databricks/cli/bundle/config" "github.com/databricks/cli/bundle/config/resources" "github.com/databricks/cli/bundle/libraries" - "github.com/databricks/cli/bundle/metrics" "github.com/databricks/cli/bundle/paths" "github.com/databricks/cli/libs/diag" "github.com/databricks/databricks-sdk-go/service/workspace" @@ -163,16 +162,16 @@ func recordPermissionMetrics(b *bundle.Bundle, stateFolderPerms *WorkspacePathPe isShared := libraries.IsWorkspaceSharedPath(statePath) owner, underUserHome := userHomeOwner(statePath) - b.Metrics.SetBoolValue(metrics.StatePathIsShared, isShared) - b.Metrics.SetBoolValue(metrics.PermissionsSectionSet, len(b.Config.Permissions) > 0) + b.Telemetry.StatePathIsShared = new(isShared) + b.Telemetry.PermissionsSectionSet = new(len(b.Config.Permissions) > 0) // userHomeOwner yields a non-empty owner whenever underUserHome is true, so the two // home flags are exact complements: an unresolved deployer ("") never equals the // owner and falls into the other-user bucket. StatePathOther covers any /Workspace // folder that is neither shared nor a user home. - b.Metrics.SetBoolValue(metrics.StatePathInDeployerHome, underUserHome && owner == deployer) - b.Metrics.SetBoolValue(metrics.StatePathInOtherUserHome, underUserHome && owner != deployer) - b.Metrics.SetBoolValue(metrics.StatePathOther, !isShared && !underUserHome) + b.Telemetry.StatePathInDeployerHome = new(underUserHome && owner == deployer) + b.Telemetry.StatePathInOtherUserHome = new(underUserHome && owner != deployer) + b.Telemetry.StatePathOther = new(!isShared && !underUserHome) // stateFolderPerms is nil when no permissions are declared, in which case there are // no undeclared writers (the migration mirrors the folder's ACLs). @@ -181,25 +180,25 @@ func recordPermissionMetrics(b *bundle.Bundle, stateFolderPerms *WorkspacePathPe undeclared = stateFolderPerms.UndeclaredWriters(b.Config.Permissions) } self, otherUser, servicePrincipal, group := undeclaredWriterTypes(undeclared, deployer) - b.Metrics.SetBoolValue(metrics.DMSUndeclaredDeployingUser, self) - b.Metrics.SetBoolValue(metrics.DMSUndeclaredOtherUser, otherUser) - b.Metrics.SetBoolValue(metrics.DMSUndeclaredServicePrincipal, servicePrincipal) - b.Metrics.SetBoolValue(metrics.DMSUndeclaredGroup, group) + b.Telemetry.DMSUndeclaredDeployingUser = new(self) + b.Telemetry.DMSUndeclaredOtherUser = new(otherUser) + b.Telemetry.DMSUndeclaredServicePrincipal = new(servicePrincipal) + b.Telemetry.DMSUndeclaredGroup = new(group) - // Emit exactly one of the auto-migration verdict keys. - b.Metrics.SetBoolValue(autoMigrationVerdict(b, stateFolderPerms, undeclared), true) + // Set exactly one of the auto-migration verdict flags. + *autoMigrationVerdict(b, stateFolderPerms, undeclared) = true } -// autoMigrationVerdict returns the metric key describing whether this deploy is +// autoMigrationVerdict returns the telemetry flag describing whether this deploy is // compatible with an automatic migration of the deployment state to a dedicated // state storage service. undeclared is the state folder's undeclared writers (empty -// when no permissions are declared). See metrics.DMSCompatAuto. -func autoMigrationVerdict(b *bundle.Bundle, stateFolderPerms *WorkspacePathPermissions, undeclared []resources.Permission) string { +// when no permissions are declared). See bundle.Telemetry.DMSCompatAuto. +func autoMigrationVerdict(b *bundle.Bundle, stateFolderPerms *WorkspacePathPermissions, undeclared []resources.Permission) *bool { // No permissions section: the migration mirrors the state folder's ACLs onto the // deployment (CAN_EDIT -> CAN_EDIT, CAN_MANAGE -> CAN_MANAGE), preserving // everyone's access wherever the state lives. if len(b.Config.Permissions) == 0 { - return metrics.DMSCompatAuto + return &b.Telemetry.DMSCompatAuto } // A permissions section is set. The state folder is always one of the synced bundle @@ -207,7 +206,7 @@ func autoMigrationVerdict(b *bundle.Bundle, stateFolderPerms *WorkspacePathPermi // stateFolderPerms is non-nil here. Guard against nil regardless so a telemetry // computation can never panic the deploy. if stateFolderPerms == nil { - return metrics.DMSCompatNot + return &b.Telemetry.DMSCompatNot } // The migration applies exactly the declared permissions to the deployment, so @@ -215,14 +214,14 @@ func autoMigrationVerdict(b *bundle.Bundle, stateFolderPerms *WorkspacePathPermi // ability to deploy. switch { case len(undeclared) == 0: - return metrics.DMSCompatAuto + return &b.Telemetry.DMSCompatAuto case len(undeclared) == 1 && isDeployingUser(b, undeclared[0]): // The deploying user is the only undeclared writer. The migration grants the // deploying user CAN_MANAGE on the deployment object, so this deploy is // auto-migratable if we choose to preserve that grant on future deploys. - return metrics.DMSCompatOnlySelfUndeclared + return &b.Telemetry.DMSCompatOnlySelfUndeclared default: - return metrics.DMSCompatNot + return &b.Telemetry.DMSCompatNot } } diff --git a/bundle/phases/initialize.go b/bundle/phases/initialize.go index 8c5a68d3130..fffa0e423a9 100644 --- a/bundle/phases/initialize.go +++ b/bundle/phases/initialize.go @@ -25,6 +25,10 @@ import ( func Initialize(ctx context.Context, b *bundle.Bundle) { log.Info(ctx, "Phase: initialize") + // Snapshot the config before any mutator below fills in defaults. Python + // resources are added to the snapshot by the Python mutator. + b.UserConfig = b.Config.Value() + bundle.ApplySeqContext(ctx, b, // Reads (dynamic): resources.internal_immutable_snapshots (and other internal keys) // Warns and removes any internal resource fields set by the user. diff --git a/bundle/phases/telemetry.go b/bundle/phases/telemetry.go index 398a0821e08..4f6d0f76c9a 100644 --- a/bundle/phases/telemetry.go +++ b/bundle/phases/telemetry.go @@ -257,8 +257,8 @@ func fromWorkspaceFolder(ctx context.Context, b *bundle.Bundle) bool { // LogDeployTelemetry logs a telemetry event for a bundle deploy command. func LogDeployTelemetry(ctx context.Context, b *bundle.Bundle, errMsg string) { errMsg = telemetry.ScrubErrorMessage(errMsg) - b.Metrics.SetBoolValue(metrics.DeploymentHistoryEnabled, b.DeploymentBundle.StateDB.RecordsHistory()) - b.Metrics.SetBoolValue(metrics.ImmutableSnapshotUsed, len(b.Config.Resources.Snapshots) > 0) + b.Telemetry.DeploymentHistoryEnabled = new(b.DeploymentBundle.StateDB.RecordsHistory()) + b.Telemetry.ImmutableSnapshotUsed = new(len(b.Config.Resources.Snapshots) > 0) if d, ok := b.DeploymentBundle.DeployDurations.Load(resources.SnapshotKey); ok { b.Metrics.ExecutionTimes = append(b.Metrics.ExecutionTimes, protos.IntMapEntry{ Key: metrics.SnapshotUploadDuration, @@ -337,33 +337,32 @@ func LogDeployTelemetry(ctx context.Context, b *bundle.Bundle, errMsg string) { for _, app := range b.Config.Resources.Apps { if app != nil && app.Lifecycle != nil && app.Lifecycle.Started != nil { - b.Metrics.SetBoolValue(metrics.AppLifecycleStarted, *app.Lifecycle.Started) - break + b.Telemetry.AppLifecycleStarted.SetBool(*app.Lifecycle.Started) } } for _, cluster := range b.Config.Resources.Clusters { if cluster != nil && cluster.Lifecycle != nil && cluster.Lifecycle.Started != nil { - b.Metrics.SetBoolValue(metrics.ClusterLifecycleStarted, *cluster.Lifecycle.Started) - break + b.Telemetry.ClusterLifecycleStarted.SetBool(*cluster.Lifecycle.Started) } } for _, warehouse := range b.Config.Resources.SqlWarehouses { if warehouse != nil && warehouse.Lifecycle != nil && warehouse.Lifecycle.Started != nil { - b.Metrics.SetBoolValue(metrics.SqlWarehouseLifecycleStarted, *warehouse.Lifecycle.Started) - break + b.Telemetry.SqlWarehouseLifecycleStarted.SetBool(*warehouse.Lifecycle.Started) } } // Record which task types the bundle uses (has_ per type present), // plus the ai_runtime_task-specific scheduling / multi-task dimensions. + // The has_ keys are dynamic, so they bypass b.Telemetry; the bitmap + // records each task type as a config field (resources.jobs.*.tasks[*]._task). for _, key := range collectTaskTypes(b.Config.Resources.Jobs) { b.Metrics.SetBoolValue(key, true) } if airPresent, airScheduled, airMultitask := aiRuntimeTaskMetrics(b.Config.Resources.Jobs); airPresent { - b.Metrics.SetBoolValue(metrics.AiRuntimeTaskScheduled, airScheduled) - b.Metrics.SetBoolValue(metrics.AiRuntimeTaskMultitask, airMultitask) + b.Telemetry.AiRuntimeTaskScheduled = new(airScheduled) + b.Telemetry.AiRuntimeTaskMultitask = new(airMultitask) } // Record whether the removed terraform engine was still requested (the command @@ -372,10 +371,10 @@ func LogDeployTelemetry(ctx context.Context, b *bundle.Bundle, errMsg string) { // already failed the command upstream via ValidateEngineSetting, so treating the // FromEnv error as "not terraform" here cannot mask a real terraform request. if b.Config.Bundle.Engine == engine.EngineTerraform { - b.Metrics.SetBoolValue(metrics.EngineTerraformConfig, true) + b.Telemetry.EngineTerraformConfig = true } if envEngine, _ := engine.FromEnv(ctx); envEngine == engine.EngineTerraform { - b.Metrics.SetBoolValue(metrics.EngineTerraformEnv, true) + b.Telemetry.EngineTerraformEnv = true } // If the bundle UUID is not set, we use a default 0 value. @@ -467,7 +466,7 @@ func LogDeployTelemetry(ctx context.Context, b *bundle.Bundle, errMsg string) { UploadFileSizes: uploadFileSizeHistogram(uploadFileSizers), TargetCount: b.Metrics.TargetCount, WorkspaceArtifactPathType: artifactPathType, - BoolValues: b.Metrics.BoolValues, + BoolValues: append(b.Telemetry.BoolValues(), b.Metrics.BoolValues...), LocalCacheMeasurementsMs: b.Metrics.LocalCacheMeasurementsMs, VariableCount: int64(variableCount), ComplexVariableCount: complexVariableCount, diff --git a/bundle/statemgmt/direct_migration.go b/bundle/statemgmt/direct_migration.go index 4fefd8504ac..de8a4207806 100644 --- a/bundle/statemgmt/direct_migration.go +++ b/bundle/statemgmt/direct_migration.go @@ -18,7 +18,6 @@ import ( "github.com/databricks/cli/bundle/direct" "github.com/databricks/cli/bundle/direct/dresources" "github.com/databricks/cli/bundle/direct/dstate" - "github.com/databricks/cli/bundle/metrics" "github.com/databricks/cli/bundle/migrate" "github.com/databricks/cli/libs/cmdio" "github.com/databricks/cli/libs/dyn" @@ -54,7 +53,7 @@ func Migrate(ctx context.Context, b *bundle.Bundle) (bool, error) { _, localTerraformPath := b.StateFilenameTerraform(ctx) tfState, err := migrate.ParseTFStateFull(ctx, localTerraformPath) if err != nil { - b.Metrics.SetBoolValue(metrics.DirectMigrateError, true) + b.Telemetry.DirectMigrateError = true return false, fmt.Errorf("parsing terraform state: %w%s", err, migrationFailedHint) } if tfState == nil { @@ -73,10 +72,10 @@ func Migrate(ctx context.Context, b *bundle.Bundle) (bool, error) { }() } if hasWarnings { - b.Metrics.SetBoolValue(metrics.DirectMigrateWarnings, true) + b.Telemetry.DirectMigrateWarnings = true } if err != nil { - b.Metrics.SetBoolValue(metrics.DirectMigrateError, true) + b.Telemetry.DirectMigrateError = true return false, fmt.Errorf("converting terraform state to the direct engine: %w%s", err, migrationFailedHint) } @@ -84,7 +83,7 @@ func Migrate(ctx context.Context, b *bundle.Bundle) (bool, error) { // record the recreate metric. plan, err := checkPlanOnTempState(ctx, b, tempStatePath, cfg) if err != nil { - b.Metrics.SetBoolValue(metrics.DirectMigratePlanError, true) + b.Telemetry.DirectMigratePlanError = true return false, fmt.Errorf("the migrated state failed its plan check: %w%s", err, migrationFailedHint) } @@ -92,7 +91,7 @@ func Migrate(ctx context.Context, b *bundle.Bundle) (bool, error) { // such a recreate is a genuine pending config change (the same one terraform would apply), and // the command's approval flow gates it behind --auto-approve exactly like any other recreate. if recreated := recreatedResources(plan); len(recreated) > 0 { - b.Metrics.SetBoolValue(metrics.DirectMigrateRecreatePlanned, true) + b.Telemetry.DirectMigrateRecreatePlanned = true log.Infof(ctx, "migration to the direct engine will recreate %v; the command's approval gates this", recreated) } @@ -164,11 +163,11 @@ func CommitMigration(ctx context.Context, b *bundle.Bundle) { func recordAutoMigrateSource(ctx context.Context, b *bundle.Bundle) { switch { case b.Config.Bundle.Engine != engine.EngineNotSet: - b.Metrics.SetBoolValue(metrics.DirectAutoMigrateViaConfig, true) + b.Telemetry.DirectAutoMigrateViaConfig = true case env.Get(ctx, engine.EnvVar) != "": - b.Metrics.SetBoolValue(metrics.DirectAutoMigrateViaEnv, true) + b.Telemetry.DirectAutoMigrateViaEnv = true default: - b.Metrics.SetBoolValue(metrics.DirectAutoMigrateViaDefault, true) + b.Telemetry.DirectAutoMigrateViaDefault = true } } diff --git a/bundle/telemetry.go b/bundle/telemetry.go new file mode 100644 index 00000000000..fb5f30ffeed --- /dev/null +++ b/bundle/telemetry.go @@ -0,0 +1,207 @@ +package bundle + +import ( + "reflect" + + "github.com/databricks/cli/libs/telemetry/protos" +) + +// Telemetry holds the boolean flags reported with a deploy. It is the single +// source of the deploy event's bool_values (see BoolValues) and of the +// telemetry.* bits of the bundle bitmap (see bundle/bitmap). It lives on Bundle, +// not on the config, so users cannot set it. +// +// The field type says what was measured: +// - bool: a flag reported only when true; absence means "not seen". +// - *bool: a measured value; nil when the measurement did not run. +// - BoolSet: a measurement taken several times (e.g. once per artifact); +// each value it took is reported once. +// +// The `metric` tag is the key in bool_values. Fields have no json tags: the +// bitmap uses the Go field names (e.g. "telemetry.SelectUsed"). +// +// Not here: the has_ keys, which the bitmap already records as config +// fields (resources.jobs.*.tasks[*]._task), and the local.cache.* keys, +// which describe the local user cache rather than the bundle. Both are written +// to Metrics.BoolValues directly. +type Telemetry struct { + PythonWheelWrapperIsSet *bool `metric:"python_wheel_wrapper_is_set"` + ArtifactDynamicVersionIsSet BoolSet `metric:"artifact_dynamic_version_is_set"` + ArtifactBuildCommandIsSet BoolSet `metric:"artifact_build_command_is_set"` + ArtifactFilesIsSet BoolSet `metric:"artifact_files_is_set"` + PresetsNamePrefixIsSet *bool `metric:"presets_name_prefix_is_set"` + // The lifecycle.started values set across the resources of each type. + AppLifecycleStarted BoolSet `metric:"app_lifecycle_started"` + ClusterLifecycleStarted BoolSet `metric:"cluster_lifecycle_started"` + DeploymentHistoryEnabled *bool `metric:"deployment_history_enabled"` + SqlWarehouseLifecycleStarted BoolSet `metric:"sql_warehouse_lifecycle_started"` + SelectUsed bool `metric:"select_used"` + + // Whether the deploy registered an immutable snapshot. Derived from the snapshot + // resource, not from experimental.immutable_folder: the flag may change, and the + // resource is what the deploy actually uploads. + ImmutableSnapshotUsed *bool `metric:"immutable_snapshot_used"` + + // Outcome of an automatic migration of terraform state to the direct engine. + // - migrate_error: state conversion itself errored. + // - migrate_warnings: the conversion emitted warnings (e.g. resources the direct engine can't represent). + DirectMigrateError bool `metric:"direct_migrate_error"` + DirectMigrateWarnings bool `metric:"direct_migrate_warnings"` + // True when the post-convert plan check failed; the migration was not committed. + DirectMigratePlanError bool `metric:"direct_migrate_plan_error"` + // True when the migrated state's first plan would recreate (destroy + create) an + // existing resource. The migration still commits; the recreate is a genuine pending + // change gated by the deploy's --auto-approve, and this only records how often it happens. + DirectMigrateRecreatePlanned bool `metric:"direct_migrate_recreate_planned"` + + // Recorded when an automatic post-deploy migration to the direct engine + // actually ran (state was rewritten). Exactly one of the three keys is true; + // all are absent when auto-migration did not run. If both config and env + // set direct, bundle.engine wins per ValidateEngineSetting, so via_config + // covers the "durable opt-in" population and via_env covers the + // "env-var only" population. + // - via_config: bundle.engine = "direct" was set in the bundle config. + // - via_env: only DATABRICKS_BUNDLE_ENGINE=direct was set. + // - via_default: neither was set, so the migration came from the default. + // This is the population that did not ask for anything. + DirectAutoMigrateViaConfig bool `metric:"direct_migrated_via_config"` + DirectAutoMigrateViaEnv bool `metric:"direct_migrated_via_env"` + DirectAutoMigrateViaDefault bool `metric:"direct_migrated_via_default"` + + // Whether the (deprecated) terraform engine was explicitly opted into, and via + // which source. Independent: both can be present when config and env both + // request terraform. Emitted only when true; absence means "not opted in via + // this source", so the population still on terraform can be sliced by source. + // - engine_terraform_config: bundle.engine = "terraform" in the bundle config. + // - engine_terraform_env: DATABRICKS_BUNDLE_ENGINE=terraform in the environment. + EngineTerraformConfig bool `metric:"engine_terraform_config"` + EngineTerraformEnv bool `metric:"engine_terraform_env"` + + // Whether workspace.state_path is under /Workspace/Shared. + StatePathIsShared *bool `metric:"state_path_is_shared"` + + // Whether this deploy is compatible with an automatic migration of the deployment + // state to a dedicated state storage service (DMS). Deploying a bundle requires + // write access (CAN_EDIT or higher) to the state folder; after migration that is + // governed by the permissions on the deployment object instead. + // + // When the bundle has no permissions section, the migration can mirror the state + // folder's ACLs onto the deployment (CAN_EDIT -> CAN_EDIT, CAN_MANAGE -> + // CAN_MANAGE), preserving everyone's access wherever the state lives. When a + // permissions section is set, the migration applies exactly those permissions, so + // anyone with write access to the state folder who is not declared with + // CAN_MANAGE would lose the ability to deploy. + // + // Exactly one of the three keys below is recorded per deploy: + // - auto: no permissions section (folder ACLs are mirrored), or every principal + // with write access to the state folder is declared. + // - only_self_undeclared: a permissions section is set and the only principal + // with undeclared write access is the deploying user. The migration + // grants the deploying user CAN_MANAGE on the deployment object, so this + // is auto-migratable if we choose to preserve that grant on future + // deploys. Recorded separately to measure how common this case is. + // - not: a permissions section is set and the state folder has undeclared write + // access from a principal other than the deploying user. + DMSCompatAuto bool `metric:"dms_compat_auto"` + DMSCompatOnlySelfUndeclared bool `metric:"dms_compat_only_self_undeclared"` + DMSCompatNot bool `metric:"dms_compat_not"` + + // Breakdown dimensions recorded on every deploy alongside the verdict above, so the + // DMS auto-migration population can be sliced without inferring it from the verdict. + // Each is an independent boolean. + + // Whether a top-level permissions section is set. The no-permissions case is always + // auto-migration compatible (folder ACLs are mirrored), so this separates the two + // populations that both land on dms_compat_auto. + PermissionsSectionSet *bool `metric:"permissions_section_set"` + + // Where the deployment state folder lives. Exactly one of StatePathIsShared, + // StatePathInDeployerHome, StatePathInOtherUserHome, and StatePathOther is true per + // deploy. StatePathOther is any other /Workspace folder (not a user home or shared). + StatePathInDeployerHome *bool `metric:"state_path_in_deployer_home"` + StatePathInOtherUserHome *bool `metric:"state_path_in_other_user_home"` + StatePathOther *bool `metric:"state_path_other"` + + // Which principal types have undeclared write access to the state folder — the + // access an auto-migration governed by the permissions section would drop. These can + // co-occur; all false when the deploy is auto-migration compatible. + DMSUndeclaredDeployingUser *bool `metric:"dms_undeclared_deploying_user"` + DMSUndeclaredOtherUser *bool `metric:"dms_undeclared_other_user"` + DMSUndeclaredServicePrincipal *bool `metric:"dms_undeclared_service_principal"` + DMSUndeclaredGroup *bool `metric:"dms_undeclared_group"` + + // Task-type usage is recorded generically at deploy as one "has_" key + // per task type present in the bundle (e.g. has_notebook_task, has_ai_runtime_task); + // see collectTaskTypes in bundle/phases. The two keys below are extra + // ai_runtime_task-specific dimensions, emitted only when the bundle declares an + // ai_runtime_task, so a false value means "has an ai_runtime_task, but it is not + // scheduled / not multi-task". GPU type and count are intentionally not recorded here. + AiRuntimeTaskScheduled *bool `metric:"ai_runtime_task_scheduled"` + AiRuntimeTaskMultitask *bool `metric:"ai_runtime_task_multitask"` + + SkipArtifactCleanup *bool `metric:"skip_artifact_cleanup"` + SourceLinkedSetForNonDevelopment *bool `metric:"source_linked_set_for_non_development"` + ConfigHasDoubleDollarBrace bool `metric:"config_has_double_dollar_brace"` + ConfigHasDoubleDollar bool `metric:"config_has_double_dollar"` + ConfigHasBackslashDollarBrace bool `metric:"config_has_backslash_dollar_brace"` + ConfigHasBackslashDollar bool `metric:"config_has_backslash_dollar"` + ArtifactsReferenceUsed bool `metric:"artifacts_reference_used"` + UseLegacyRunAs *bool `metric:"experimental.use_legacy_run_as"` + RunAsSet *bool `metric:"run_as_set"` + HasTfOnlyReferences bool `metric:"has_tf_only_references"` + HasServerlessCompute *bool `metric:"has_serverless_compute"` + HasClassicJobCompute *bool `metric:"has_classic_job_compute"` + HasClassicInteractiveCompute *bool `metric:"has_classic_interactive_compute"` +} + +// BoolValues returns the flags as deploy-event entries, in field order: a true +// bool, the value of a non-nil *bool, and each value a BoolSet took. +func (t *Telemetry) BoolValues() []protos.BoolMapEntry { + var out []protos.BoolMapEntry + v := reflect.ValueOf(t).Elem() + for i := range v.NumField() { + key := v.Type().Field(i).Tag.Get("metric") + switch f := v.Field(i).Interface().(type) { + case bool: + if f { + out = append(out, protos.BoolMapEntry{Key: key, Value: true}) + } + case *bool: + if f != nil { + out = append(out, protos.BoolMapEntry{Key: key, Value: *f}) + } + case BoolSet: + for _, value := range f.Values() { + out = append(out, protos.BoolMapEntry{Key: key, Value: value}) + } + } + } + return out +} + +// BoolSet is a measurement that can be taken several times, e.g. once per +// artifact. It records which values it took: true, false, or both. +type BoolSet struct { //nolint:recvcheck // pointer receiver for SetBool, value for Values: reflection reads Telemetry by value + seenTrue, seenFalse bool +} + +// SetBool records that the measurement took value v. +func (s *BoolSet) SetBool(v bool) { + if v { + s.seenTrue = true + } else { + s.seenFalse = true + } +} + +// Values returns the values the measurement took, true before false. +func (s BoolSet) Values() []bool { + var values []bool + if s.seenTrue { + values = append(values, true) + } + if s.seenFalse { + values = append(values, false) + } + return values +} diff --git a/bundle/telemetry_test.go b/bundle/telemetry_test.go new file mode 100644 index 00000000000..a0b2105e904 --- /dev/null +++ b/bundle/telemetry_test.go @@ -0,0 +1,84 @@ +package bundle + +import ( + "reflect" + "testing" + + "github.com/databricks/cli/libs/telemetry/protos" + "github.com/stretchr/testify/assert" +) + +func TestTelemetryBoolValues(t *testing.T) { + for _, tc := range []struct { + name string + tm Telemetry + want []protos.BoolMapEntry + }{ + {"zero value reports nothing", Telemetry{}, nil}, + {"bool false is not reported", Telemetry{SelectUsed: false}, nil}, + {"bool true", Telemetry{SelectUsed: true}, []protos.BoolMapEntry{ + {Key: "select_used", Value: true}, + }}, + {"*bool nil is not reported", Telemetry{RunAsSet: nil}, nil}, + {"*bool false", Telemetry{RunAsSet: new(false)}, []protos.BoolMapEntry{ + {Key: "run_as_set", Value: false}, + }}, + {"*bool true", Telemetry{RunAsSet: new(true)}, []protos.BoolMapEntry{ + {Key: "run_as_set", Value: true}, + }}, + {"BoolSet unset is not reported", Telemetry{ArtifactFilesIsSet: boolSet()}, nil}, + {"BoolSet reports each value once, true first", Telemetry{ArtifactFilesIsSet: boolSet(false, true, false)}, []protos.BoolMapEntry{ + {Key: "artifact_files_is_set", Value: true}, + {Key: "artifact_files_is_set", Value: false}, + }}, + {"fields are reported in declaration order", Telemetry{RunAsSet: new(true), SelectUsed: true}, []protos.BoolMapEntry{ + {Key: "select_used", Value: true}, + {Key: "run_as_set", Value: true}, + }}, + } { + t.Run(tc.name, func(t *testing.T) { + assert.Equal(t, tc.want, tc.tm.BoolValues()) + }) + } +} + +// BoolValues and the bitmap skip fields of any other type, and an empty or +// duplicate key would be indistinguishable on the wire. +func TestTelemetryFields(t *testing.T) { + supported := []reflect.Type{reflect.TypeFor[bool](), reflect.TypeFor[*bool](), reflect.TypeFor[BoolSet]()} + keys := map[string]string{} + for _, f := range reflect.VisibleFields(reflect.TypeFor[Telemetry]()) { + assert.Contains(t, supported, f.Type, "field %s", f.Name) + key := f.Tag.Get("metric") + assert.NotEmpty(t, key, "field %s has no metric tag", f.Name) + if other, ok := keys[key]; ok { + assert.Fail(t, "duplicate metric key", "%q is used by %s and %s", key, other, f.Name) + } + keys[key] = f.Name + } +} + +func TestBoolSet(t *testing.T) { + for _, tc := range []struct { + name string + set []bool + want []bool + }{ + {"never set", nil, nil}, + {"true", []bool{true, true}, []bool{true}}, + {"false", []bool{false}, []bool{false}}, + {"both, true first", []bool{false, true}, []bool{true, false}}, + } { + t.Run(tc.name, func(t *testing.T) { + assert.Equal(t, tc.want, boolSet(tc.set...).Values()) + }) + } +} + +func boolSet(values ...bool) BoolSet { + var s BoolSet + for _, v := range values { + s.SetBool(v) + } + return s +} diff --git a/bundle/trampoline/python_wheel.go b/bundle/trampoline/python_wheel.go index 722a0b35e6c..37423ced927 100644 --- a/bundle/trampoline/python_wheel.go +++ b/bundle/trampoline/python_wheel.go @@ -9,7 +9,6 @@ import ( "github.com/databricks/cli/bundle" "github.com/databricks/cli/bundle/libraries" - "github.com/databricks/cli/bundle/metrics" "github.com/databricks/cli/libs/diag" "github.com/databricks/databricks-sdk-go/service/compute" "github.com/databricks/databricks-sdk-go/service/jobs" @@ -77,7 +76,7 @@ func TransformWheelTask() bundle.Mutator { func (transformWheelTask) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnostics { isEnabled := b.Config.Experimental != nil && b.Config.Experimental.PythonWheelWrapper - b.Metrics.AddBoolValue(metrics.ExperimentalPythonWheelWrapperIsSet, isEnabled) + b.Telemetry.PythonWheelWrapperIsSet = new(isEnabled) if !isEnabled { return nil } diff --git a/cmd/bundle/bitmap/bitmap.go b/cmd/bundle/bitmap/bitmap.go new file mode 100644 index 00000000000..8672c5a9875 --- /dev/null +++ b/cmd/bundle/bitmap/bitmap.go @@ -0,0 +1,208 @@ +package bitmap + +import ( + "encoding/json" + "fmt" + "io" + "reflect" + "strings" + + "github.com/databricks/cli/bundle" + bundlebitmap "github.com/databricks/cli/bundle/bitmap" + "github.com/databricks/cli/cmd/bundle/utils" + "github.com/databricks/cli/cmd/root" + "github.com/spf13/cobra" +) + +// NewBitmapCommand returns the hidden "bitmap" command group. It exposes the +// bundle bitmap: a per-field presence map used for telemetry. See +// bundle/bitmap for the format and schema. +func NewBitmapCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "bitmap", + Short: "Inspect the bundle field bitmap used for telemetry", + Long: `The bundle bitmap encodes the presence of every bundle configuration field +as a single bit. Its schema is an ordered list of field paths derived from the +bundle configuration type and embedded into the CLI binary.`, + Hidden: true, + } + cmd.AddCommand(newSchemaCommand()) + cmd.AddCommand(newUpdateSchemaCommand()) + cmd.AddCommand(newBitmapCommand()) + cmd.AddCommand(newDecodeCommand()) + return cmd +} + +func newSchemaCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "schema", + Short: "Print the embedded bitmap schema, one field path per line", + Args: root.NoArgs, + } + cmd.RunE = func(cmd *cobra.Command, args []string) error { + return printLines(cmd.OutOrStdout(), bundlebitmap.EmbeddedSchema()) + } + return cmd +} + +func newUpdateSchemaCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "update-schema", + Short: "Append newly added fields to the embedded schema", + Long: `Walks the bundle configuration type and appends any fields not already in the +embedded schema, printing the merged schema. The schema is append-only: removed +fields are kept so that bit positions stay stable.`, + Args: root.NoArgs, + } + var validate bool + cmd.Flags().BoolVar(&validate, "validate", false, "Fail if the embedded schema is missing fields instead of printing the merged schema") + cmd.RunE = func(cmd *cobra.Command, args []string) error { + fresh, err := bundlebitmap.WalkSchema(reflect.TypeFor[bundle.Telemetry]()) + if err != nil { + return err + } + merged, added := bundlebitmap.Merge(bundlebitmap.EmbeddedSchema(), fresh) + if validate { + if len(added) > 0 { + return fmt.Errorf("embedded schema is out of date, %d field(s) missing:\n%s\nrun 'task generate-bitmap-schema' to update", len(added), strings.Join(added, "\n")) + } + return nil + } + return printLines(cmd.OutOrStdout(), merged) + } + return cmd +} + +// Values of the -o flag. +const ( + outputCompressed = "compressed" + outputText = "text" + outputJSON = "json" +) + +// outputFormat is the -o flag of the bitmap and decode commands. It shadows the +// global --output flag, which only accepts text and json. +type outputFormat string + +func (f *outputFormat) String() string { + return string(*f) +} + +func (f *outputFormat) Set(s string) error { + switch s { + case outputCompressed, outputText, outputJSON: + *f = outputFormat(s) + return nil + } + return fmt.Errorf("accepted values are %s, %s and %s", outputCompressed, outputText, outputJSON) +} + +func (f *outputFormat) Type() string { + return "format" +} + +const outputHelp = `output format: + compressed: base64 of the DEFLATE-compressed wire format + text: a "size=N context=C" header, then one " " line per + set field: "T" or "F" for a boolean field holding that value, "1" + for any other field; unset fields are omitted + json: size, context, and trees of the fields present ("presence") and of + the boolean fields seen holding "true" and "false"` + +func addOutputFlag(cmd *cobra.Command, output *outputFormat, def string) { + *output = outputFormat(def) + cmd.Flags().VarP(output, "output", "o", outputHelp) +} + +func newBitmapCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "bitmap", + Short: "Print the bitmap of the current bundle", + Args: root.NoArgs, + } + var output outputFormat + addOutputFlag(cmd, &output, outputCompressed) + cmd.RunE = func(cmd *cobra.Command, args []string) error { + bits, schema, err := loadBits(cmd) + if err != nil { + return err + } + return render(cmd.OutOrStdout(), output, schema, bits, bundlebitmap.ContextFullBundle) + } + return cmd +} + +func newDecodeCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "decode", + Short: "Decode a compressed bitmap read from stdin", + Long: "The input is the output of 'bundle bitmap bitmap'.", + Args: root.NoArgs, + } + var output outputFormat + addOutputFlag(cmd, &output, outputText) + cmd.RunE = func(cmd *cobra.Command, args []string) error { + encoded, err := io.ReadAll(cmd.InOrStdin()) + if err != nil { + return err + } + bits, context, err := bundlebitmap.Decode(strings.TrimSpace(string(encoded))) + if err != nil { + return err + } + if context != bundlebitmap.ContextFullBundle { + return fmt.Errorf("unsupported bitmap context %d", context) + } + // The schema is append-only, so an older bitmap decodes against a prefix of + // it; a newer one has bits this binary cannot name. + schema := bundlebitmap.EmbeddedSchema() + if len(bits) > len(schema) { + return fmt.Errorf("bitmap has %d bits but the schema has %d fields; decode it with a newer CLI", len(bits), len(schema)) + } + return render(cmd.OutOrStdout(), output, schema, bits, context) + } + return cmd +} + +func render(out io.Writer, output outputFormat, schema []string, bits []bool, context uint16) error { + switch output { + case outputCompressed: + encoded, err := bundlebitmap.Encode(bits, context) + if err != nil { + return err + } + return printLines(out, []string{encoded}) + case outputText: + return printLines(out, bundlebitmap.Text(schema, bits, context)) + case outputJSON: + data, err := json.MarshalIndent(bundlebitmap.ToJSON(schema, bits, context), "", " ") + if err != nil { + return err + } + return printLines(out, []string{string(data)}) + } + return fmt.Errorf("unknown output format %q", output) +} + +// loadBits loads the bundle and computes its bitmap against the embedded schema. +func loadBits(cmd *cobra.Command) ([]bool, []string, error) { + b, err := utils.ProcessBundle(cmd, utils.ProcessOptions{Validate: true}) + if err != nil { + return nil, nil, err + } + schema := bundlebitmap.EmbeddedSchema() + bits, err := bundlebitmap.Bits(b.UserConfig, b.Telemetry, schema) + if err != nil { + return nil, nil, err + } + return bits, schema, nil +} + +func printLines(out io.Writer, lines []string) error { + for _, l := range lines { + if _, err := fmt.Fprintln(out, l); err != nil { + return err + } + } + return nil +} diff --git a/cmd/bundle/bundle.go b/cmd/bundle/bundle.go index d8334d38289..12702b10e22 100644 --- a/cmd/bundle/bundle.go +++ b/cmd/bundle/bundle.go @@ -1,6 +1,7 @@ package bundle import ( + "github.com/databricks/cli/cmd/bundle/bitmap" "github.com/databricks/cli/cmd/bundle/deployment" "github.com/spf13/cobra" ) @@ -40,6 +41,7 @@ Online documentation: https://docs.databricks.com/en/dev-tools/bundles/index.htm cmd.AddCommand(newOpenCommand()) cmd.AddCommand(newPlanCommand()) cmd.AddCommand(newConfigRemoteSyncCommand()) + cmd.AddCommand(bitmap.NewBitmapCommand()) return cmd } diff --git a/python/Taskfile.yml b/python/Taskfile.yml index 28595ae9cf5..45bf6027224 100644 --- a/python/Taskfile.yml +++ b/python/Taskfile.yml @@ -82,7 +82,10 @@ tasks: - | find databricks/bundles -type d -mindepth 1 -maxdepth 1 \ ! -path databricks/bundles/core \ + ! -path databricks/bundles/_bitmap \ -exec rm -rf {} \; + # _bitmap/ is the bundle bitmap decoder; its _schema.py comes from + # generate-bitmap-schema in the root Taskfile, not from this codegen. # core/ is hand-written except for the generated wiring under _generated/. - rm -rf databricks/bundles/core/_generated # test_resources.py is hand-written except for the generated TestCase data. diff --git a/python/codegen/codegen/generated_docs.py b/python/codegen/codegen/generated_docs.py index 3ae866a09d3..9c54a800759 100644 --- a/python/codegen/codegen/generated_docs.py +++ b/python/codegen/codegen/generated_docs.py @@ -35,11 +35,14 @@ def write_docs(output: str): docs = Path(output) / "docs" bundles = Path(output) / "databricks" / "bundles" - # core is hand-written; every other package dir gets a generated page. + # core is hand-written; every other public package dir gets a generated page. + # Private packages (e.g. _bitmap) are not part of the documented API. namespaces = sorted( p.name for p in bundles.iterdir() - if p.name != "core" and (p / "__init__.py").exists() + if p.name != "core" + and not p.name.startswith("_") + and (p / "__init__.py").exists() ) # Drop stale pages so a removed resource loses its page; keep core.rst. diff --git a/python/databricks/bundles/_bitmap/__init__.py b/python/databricks/bundles/_bitmap/__init__.py new file mode 100644 index 00000000000..77682daa109 --- /dev/null +++ b/python/databricks/bundles/_bitmap/__init__.py @@ -0,0 +1,93 @@ +"""Decoder for the bundle bitmap that ``databricks bundle bitmap bitmap`` prints. + +Self-contained: the schema is embedded (see ``_schema``), so decoding does not +need the CLI. :func:`decode` returns the same lines as +``databricks bundle bitmap decode``. + +Wire format (``bundle/bitmap/bitmap.go`` in the CLI): base64 of raw DEFLATE of +magic ``DBTB`` (4 bytes) | size (uint32, big-endian) | context (uint16, +big-endian) | ceil(size / 8) bitmap bytes, with bit ``i`` (MSB first within each +byte) standing for schema line ``i``. +""" + +import base64 +import struct +import zlib + +from databricks.bundles._bitmap._schema import SCHEMA + +__all__ = ["CONTEXT_FULL_BUNDLE", "SCHEMA", "decode", "decode_bits", "text"] + +CONTEXT_FULL_BUNDLE = 0 + +_MAGIC = b"DBTB" +_HEADER_SIZE = 10 +_TRUE_SUFFIX = "=true" +_FALSE_SUFFIX = "=false" + + +def decode(encoded: str) -> list[str]: + """Decode an encoded bitmap against the embedded schema into :func:`text` lines.""" + bits, context = decode_bits(encoded) + if context != CONTEXT_FULL_BUNDLE: + raise ValueError(f"unsupported bitmap context {context}") + # The schema is append-only, so an older bitmap decodes against a prefix of + # it; a newer one has bits this package cannot name. + if len(bits) > len(SCHEMA): + raise ValueError( + f"bitmap has {len(bits)} bits but the schema has {len(SCHEMA)} fields; " + "decode it with a newer databricks-bundles" + ) + return text(SCHEMA, bits, context) + + +def decode_bits(encoded: str) -> tuple[list[bool], int]: + """Decode an encoded bitmap into its bits and context. + + Raises ``ValueError`` (including ``binascii.Error``) or ``zlib.error`` on input + that is not an encoded bitmap. + """ + raw = zlib.decompress(base64.b64decode(encoded.strip(), validate=True), -15) + if len(raw) < _HEADER_SIZE: + raise ValueError(f"payload too short: {len(raw)} bytes") + if raw[:4] != _MAGIC: + raise ValueError(f"bad magic {raw[:4]!r}") + size, context = struct.unpack(">IH", raw[4:_HEADER_SIZE]) + if len(raw) - _HEADER_SIZE != (size + 7) // 8: + raise ValueError(f"payload size mismatch: {size} bits, {len(raw)} bytes") + bitmap = raw[_HEADER_SIZE:] + bits = [(bitmap[i // 8] >> (7 - i % 8)) & 1 == 1 for i in range(size)] + return bits, context + + +def text(schema: list[str], bits: list[bool], context: int) -> list[str]: + """Render a ``"size=N context=C"`` header and then the set bits as + ``" "`` lines in schema order. + + ``T`` or ``F`` is a bool field holding that value and ``1`` any other present + field. A bool shown as ``1`` holds an unresolved variable reference; one shown + as both ``T`` and ``F`` has both values under a wildcard. Unset fields are + omitted. ``bits`` may be shorter than ``schema`` but not longer. + """ + schema = schema[: len(bits)] + index = {path: i for i, path in enumerate(schema)} + lines = [f"size={len(bits)} context={context}"] + for i, path in enumerate(schema): + if not bits[i]: + continue + if path.endswith(_TRUE_SUFFIX): + lines.append("T " + path[: -len(_TRUE_SUFFIX)]) + elif path.endswith(_FALSE_SUFFIX): + lines.append("F " + path[: -len(_FALSE_SUFFIX)]) + elif not ( + _is_set(index, bits, path + _TRUE_SUFFIX) + or _is_set(index, bits, path + _FALSE_SUFFIX) + ): + # A bool with a value bit is shown by its value line instead. + lines.append("1 " + path) + return lines + + +def _is_set(index: dict[str, int], bits: list[bool], path: str) -> bool: + i = index.get(path) + return i is not None and bits[i] diff --git a/python/databricks/bundles/_bitmap/__main__.py b/python/databricks/bundles/_bitmap/__main__.py new file mode 100644 index 00000000000..89302cb02ff --- /dev/null +++ b/python/databricks/bundles/_bitmap/__main__.py @@ -0,0 +1,25 @@ +"""Decode a bundle bitmap read from stdin, like ``databricks bundle bitmap decode``. + +Usage: ``python -m databricks.bundles._bitmap < bitmap.b64`` +""" + +import sys +import zlib + +from databricks.bundles._bitmap import decode + + +def main() -> int: + try: + lines = decode(sys.stdin.read()) + except (ValueError, zlib.error) as e: + print(f"Error: {e}", file=sys.stderr) + return 1 + # Write bytes so Windows does not translate "\n" to "\r\n": the output must + # match the CLI's byte for byte. + sys.stdout.buffer.write("".join(line + "\n" for line in lines).encode()) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/python/databricks/bundles/_bitmap/_schema.py b/python/databricks/bundles/_bitmap/_schema.py new file mode 100644 index 00000000000..ab2be04cb78 --- /dev/null +++ b/python/databricks/bundles/_bitmap/_schema.py @@ -0,0 +1,386 @@ +# Code generated by bundle/bitmap/genpython from bundle/bitmap/schema.txt. DO NOT EDIT. +# Regenerate with './task generate-bitmap-schema'. + +import base64 +import zlib + +# Raw DEFLATE of the schema, one field path per line. +_COMPRESSED = ( + "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" +) + +SCHEMA: list[str] = zlib.decompress(base64.b64decode(_COMPRESSED), -15).decode().split() diff --git a/python/databricks_tests/bundles/test_bitmap.py b/python/databricks_tests/bundles/test_bitmap.py new file mode 100644 index 00000000000..fda22e843f0 --- /dev/null +++ b/python/databricks_tests/bundles/test_bitmap.py @@ -0,0 +1,124 @@ +import base64 +import struct +import zlib + +import pytest + +from databricks.bundles._bitmap import ( + CONTEXT_FULL_BUNDLE, + SCHEMA, + decode, + decode_bits, + text, +) + + +def _encode(raw: bytes) -> str: + compressor = zlib.compressobj(wbits=-15) + return base64.b64encode(compressor.compress(raw) + compressor.flush()).decode() + + +def _payload(bits: list[bool], context: int = 0) -> bytes: + bitmap = bytearray((len(bits) + 7) // 8) + for i, bit in enumerate(bits): + if bit: + bitmap[i // 8] |= 1 << (7 - i % 8) + return b"DBTB" + struct.pack(">IH", len(bits), context) + bytes(bitmap) + + +def test_embedded_schema(): + assert "bundle.name" in SCHEMA + assert "telemetry.SelectUsed=true" in SCHEMA + assert len(SCHEMA) == len(set(SCHEMA)) + + +@pytest.mark.parametrize("n", [0, 1, 7, 8, 9, 16, 17]) +def test_decode_bits_round_trip(n: int): + bits = [i % 3 == 0 for i in range(n)] + assert decode_bits(_encode(_payload(bits, context=0xBEEF))) == (bits, 0xBEEF) + + +def test_decode_bits_reads_cli_payload(): + # The raw payload that TestEncodeBitOrder pins for the CLI's Encode of bits + # 1,0,0,0,0,0,0,1,1, so both implementations read the same bit order. + encoded = _encode( + bytes([0x44, 0x42, 0x54, 0x42, 0, 0, 0, 9, 0, 0, 0b1000_0001, 0b1000_0000]) + ) + assert decode_bits(encoded) == ( + [True, False, False, False, False, False, False, True, True], + 0, + ) + + +@pytest.mark.parametrize( + ("encoded", "error"), + [ + ("not-valid-base64!!!", "base64"), + (base64.b64encode(b"\xff\xff").decode(), "decompressing"), + (_encode(b"DBTB"), "payload too short"), + (_encode(b"XXXX" + struct.pack(">IH", 1, 0) + b"\x80"), "bad magic"), + (_encode(b"DBTB" + struct.pack(">IH", 9, 0)), "payload size mismatch"), + (_encode(b"DBTB" + struct.pack(">IH", 0xFFFFFFFF, 0)), "payload size mismatch"), + ], +) +def test_decode_bits_errors(encoded: str, error: str): + with pytest.raises((ValueError, zlib.error), match=error): + decode_bits(encoded) + + +SCHEMA_FOR_TEXT = [ + "bundle", + "bundle.name", + "flag", + "flag=true", + "flag=false", + "jobs.*.enabled", + "jobs.*.enabled=true", + "jobs.*.enabled=false", + "ref", + "ref=true", + "ref=false", +] + + +@pytest.mark.parametrize( + ("set_paths", "lines"), + [ + ([], []), + (["bundle", "bundle.name"], ["1 bundle", "1 bundle.name"]), + (["flag", "flag=true"], ["T flag"]), + (["flag", "flag=false"], ["F flag"]), + ( + ["jobs.*.enabled", "jobs.*.enabled=true", "jobs.*.enabled=false"], + ["T jobs.*.enabled", "F jobs.*.enabled"], + ), + (["ref"], ["1 ref"]), + ], +) +def test_text(set_paths: list[str], lines: list[str]): + bits = [path in set_paths for path in SCHEMA_FOR_TEXT] + header = f"size={len(SCHEMA_FOR_TEXT)} context=0" + assert text(SCHEMA_FOR_TEXT, bits, CONTEXT_FULL_BUNDLE) == [header, *lines] + + +def test_text_older_bitmap(): + assert text(SCHEMA_FOR_TEXT, [True], 7) == ["size=1 context=7", "1 bundle"] + + +def test_decode(): + bits = [path in ("bundle", "bundle.name") for path in SCHEMA] + assert decode(_encode(_payload(bits))) == [ + f"size={len(SCHEMA)} context=0", + "1 bundle", + "1 bundle.name", + ] + + +def test_decode_rejects_unknown_context(): + with pytest.raises(ValueError, match="unsupported bitmap context 1"): + decode(_encode(_payload([], context=1))) + + +def test_decode_rejects_newer_bitmap(): + with pytest.raises(ValueError, match="decode it with a newer databricks-bundles"): + decode(_encode(_payload([False] * (len(SCHEMA) + 1))))