{"name":"dbtcloud","displayName":"dbt Cloud","version":"1.6.1","description":"A Pulumi package for creating and managing dbt Cloud resources.","keywords":["pulumi","dbtcloud","dbt","cloud","category/cloud"],"homepage":"https://pulumi.com","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`dbtcloud` Terraform Provider](https://github.com/dbt-labs/terraform-provider-dbtcloud).","repository":"https://github.com/pulumi/pulumi-dbtcloud","logoUrl":"https://raw.githubusercontent.com/pulumi/pulumi-dbtcloud/main/res/dbt-bit_tm.png","pluginDownloadURL":"github://api.github.com/pulumi/pulumi-dbtcloud","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"namespaces":{"dbtcloud":"DbtCloud"},"compatibility":"tfbridge20","rootNamespace":"Pulumi","respectSchemaVersion":true},"go":{"importBasePath":"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"nodejs":{"packageName":"@pulumi/dbtcloud","packageDescription":"A Pulumi package for creating and managing dbt Cloud resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/dbt-labs/terraform-provider-dbtcloud)\n\u003e distributed under [MIT](https://mit-license.org/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-dbtcloud` repo](https://github.com/pulumi/pulumi-dbtcloud/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-dbtcloud` repo](https://github.com/dbt-labs/terraform-provider-dbtcloud/issues).","devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"packageName":"pulumi_dbtcloud","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/dbt-labs/terraform-provider-dbtcloud)\n\u003e distributed under [MIT](https://mit-license.org/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-dbtcloud` repo](https://github.com/pulumi/pulumi-dbtcloud/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-dbtcloud` repo](https://github.com/dbt-labs/terraform-provider-dbtcloud/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true}}},"config":{"variables":{"accountId":{"type":"integer","description":"Account identifier for your dbt Cloud implementation. Instead of setting the parameter, you can set the environment variable `DBT_CLOUD_ACCOUNT_ID`","defaultInfo":{"environment":["DBT_CLOUD_ACCOUNT_ID"]}},"disableRetry":{"type":"boolean","description":"If set to true, the provider will not retry requests that fail due to rate limiting. Defaults to false."},"hostUrl":{"type":"string","description":"URL for your dbt Cloud deployment. Instead of setting the parameter, you can set the environment variable `DBT_CLOUD_HOST_URL` - Defaults to https://cloud.getdbt.com/api","default":"https://cloud.getdbt.com/api","defaultInfo":{"environment":["DBT_CLOUD_HOST_URL"]}},"maxRetries":{"type":"integer","description":"The maximum number of retries to attempt for requests that fail due to rate limiting. Defaults to 3 retries."},"retriableStatusCodes":{"type":"array","items":{"type":"string"},"description":"List of HTTP status codes that should be retried when encountered. Defaults to [429, 500, 502, 503, 504]."},"retryIntervalSeconds":{"type":"integer","description":"The number of seconds to wait before retrying a request that failed due to rate limiting. Defaults to 10 seconds."},"skipCredentialsValidation":{"type":"boolean","description":"If set to true, the provider will not validate credentials during initialization. This can be useful for testing and for dbt Cloud API implementations that do not have standard authentication available. Defaults to false."},"timeoutSeconds":{"type":"integer","description":"The timeout duration in seconds for HTTP requests to the dbt Cloud API. Defaults to 30 seconds."},"token":{"type":"string","description":"API token for your dbt Cloud. Instead of setting the parameter, you can set the environment variable `DBT_CLOUD_TOKEN`","defaultInfo":{"environment":["DBT_CLOUD_TOKEN"]},"secret":true}}},"types":{"dbtcloud:index/BigquerySemanticLayerCredentialConfiguration:BigquerySemanticLayerCredentialConfiguration":{"properties":{"adapterVersion":{"type":"string","description":"The adapter version\n"},"name":{"type":"string","description":"The name of the configuration\n"},"projectId":{"type":"integer","description":"The ID of the project\n"}},"type":"object","required":["adapterVersion","name","projectId"]},"dbtcloud:index/BigquerySemanticLayerCredentialCredential:BigquerySemanticLayerCredentialCredential":{"properties":{"connectionId":{"type":"integer","description":"The ID of the global connection to use for this credential. When provided, the credential will automatically use the correct adapter version based on the connection's configuration (e.g., bigquery*v1 for connections with use*latest_adapter=true).\n"},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"dataset":{"type":"string","description":"Default dataset name\n"},"id":{"type":"string","description":"The ID of this resource. Contains the project ID and the credential ID.\n"},"isActive":{"type":"boolean","description":"Whether the BigQuery credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"projectId":{"type":"integer","description":"Project ID to create the BigQuery credential in\n"}},"type":"object","required":["dataset","numThreads","projectId"],"language":{"nodejs":{"requiredOutputs":["credentialId","dataset","id","isActive","numThreads","projectId"]}}},"dbtcloud:index/DatabricksSemanticLayerCredentialConfiguration:DatabricksSemanticLayerCredentialConfiguration":{"properties":{"adapterVersion":{"type":"string","description":"The adapter version\n"},"name":{"type":"string","description":"The name of the configuration\n"},"projectId":{"type":"integer","description":"The ID of the project\n"}},"type":"object","required":["adapterVersion","name","projectId"]},"dbtcloud:index/DatabricksSemanticLayerCredentialCredential:DatabricksSemanticLayerCredentialCredential":{"properties":{"adapterType":{"type":"string","description":"The type of the adapter. 'spark' is deprecated, but still supported for backwards compatibility. For Spark, please use the spark*credential resource. Optional only when semantic*layer_credential is set to true; otherwise, this field is required.\n","deprecationMessage":"This field is deprecated and will be removed in a future release. Semantic Layer spark credentials are not supported yet, only databricks is supported."},"catalog":{"type":"string","description":"The catalog where to create models (only for the databricks adapter)\n"},"credentialId":{"type":"integer","description":"The system Databricks credential ID\n"},"id":{"type":"string","description":"The ID of this resource. Contains the project ID and the credential ID.\n"},"projectId":{"type":"integer","description":"Project ID to create the Databricks credential in\n"},"schema":{"type":"string","description":"The schema where to create models. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Databricks credential for the Semantic Layer.\n"},"targetName":{"type":"string","description":"Target name\n","deprecationMessage":"This field is deprecated at the environment level (it was never possible to set it in the UI) and will be removed in a future release. Please remove it and set the target name at the job level or leverage environment variables."},"token":{"type":"string","description":"Token for Databricks user\n","secret":true}},"type":"object","required":["projectId","token"],"language":{"nodejs":{"requiredOutputs":["adapterType","catalog","credentialId","id","projectId","schema","semanticLayerCredential","targetName","token"]}}},"dbtcloud:index/GlobalConnectionApacheSpark:GlobalConnectionApacheSpark":{"properties":{"auth":{"type":"string","description":"Auth\n"},"cluster":{"type":"string","description":"Spark cluster for the connection\n"},"connectRetries":{"type":"integer","description":"Connection retries. Default=0\n"},"connectTimeout":{"type":"integer","description":"Connection time out in seconds. Default=10\n"},"host":{"type":"string","description":"Hostname of the connection\n"},"method":{"type":"string","description":"Authentication method for the connection (http or thrift).\n"},"organization":{"type":"string","description":"Organization ID\n"},"port":{"type":"integer","description":"Port for the connection. Default=443\n"},"user":{"type":"string","description":"User\n"}},"type":"object","required":["cluster","host","method"],"language":{"nodejs":{"requiredOutputs":["cluster","connectRetries","connectTimeout","host","method","port"]}}},"dbtcloud:index/GlobalConnectionAthena:GlobalConnectionAthena":{"properties":{"database":{"type":"string","description":"Specify the database (data catalog) to build models into (lowercase only).\n"},"numBoto3Retries":{"type":"integer","description":"Number of times to retry boto3 requests (e.g. deleting S3 files for materialized tables).\n"},"numIcebergRetries":{"type":"integer","description":"Number of times to retry iceberg commit queries to fix ICEBERG*COMMIT*ERROR.\n"},"numRetries":{"type":"integer","description":"Number of times to retry a failing query.\n"},"pollInterval":{"type":"integer","description":"Interval in seconds to use for polling the status of query results in Athena.\n"},"regionName":{"type":"string","description":"AWS region of your Athena instance.\n"},"s3DataDir":{"type":"string","description":"Prefix for storing tables, if different from the connection's S3 staging directory. Must be in the format 's3://bucket-name/path/'.\n"},"s3DataNaming":{"type":"string","description":"How to generate table paths in the S3 data directory.\n"},"s3StagingDir":{"type":"string","description":"S3 location to store Athena query results and metadata. Must be in the format 's3://bucket-name/path/'.\n"},"s3TmpTableDir":{"type":"string","description":"Prefix for storing temporary tables, if different from the connection's S3 data directory. Must be in the format 's3://bucket-name/path/'.\n"},"sparkWorkGroup":{"type":"string","description":"Identifier of Athena Spark workgroup for running Python models.\n"},"workGroup":{"type":"string","description":"Identifier of Athena workgroup.\n"}},"type":"object","required":["database","regionName","s3StagingDir"]},"dbtcloud:index/GlobalConnectionBigquery:GlobalConnectionBigquery":{"properties":{"applicationId":{"type":"string","description":"OAuth Client ID. Required when using 'external-oauth-wif' authentication.\n","secret":true},"applicationSecret":{"type":"string","description":"OAuth Client Secret. Required when using 'external-oauth-wif' authentication.\n","secret":true},"authProviderX509CertUrl":{"type":"string","description":"Auth Provider X509 Cert URL for the Service Account. Required when using 'service-account-json' authentication.\n"},"authUri":{"type":"string","description":"Auth URI for the Service Account. Required when using 'service-account-json' authentication.\n"},"clientEmail":{"type":"string","description":"Service Account email. Required when using 'service-account-json' authentication.\n"},"clientId":{"type":"string","description":"Client ID of the Service Account. Required when using 'service-account-json' authentication.\n"},"clientX509CertUrl":{"type":"string","description":"Client X509 Cert URL for the Service Account. Required when using 'service-account-json' authentication.\n"},"dataprocClusterName":{"type":"string","description":"Dataproc cluster name for PySpark workloads\n"},"dataprocRegion":{"type":"string","description":"Google Cloud region for PySpark workloads on Dataproc\n"},"deploymentEnvAuthType":{"type":"string","description":"Authentication type for deployment environments. Can be 'service-account-json' or 'external-oauth-wif'. Defaults to 'service-account-json'.\n"},"executionProject":{"type":"string","description":"Project to bill for query execution\n"},"gcpProjectId":{"type":"string","description":"The GCP project ID to use for the connection\n"},"gcsBucket":{"type":"string","description":"URI for a Google Cloud Storage bucket to host Python code executed via Datapro\n"},"impersonateServiceAccount":{"type":"string","description":"Service Account to impersonate when running queries\n"},"jobCreationTimeoutSeconds":{"type":"integer","description":"Maximum timeout for the job creation step\n"},"jobExecutionTimeoutSeconds":{"type":"integer","description":"Timeout in seconds for job execution, to be used for the\u003cspan pulumi-lang-nodejs=\" bigqueryV1 \" pulumi-lang-dotnet=\" BigqueryV1 \" pulumi-lang-go=\" bigqueryV1 \" pulumi-lang-python=\" bigquery_v1 \" pulumi-lang-yaml=\" bigqueryV1 \" pulumi-lang-java=\" bigqueryV1 \"\u003e bigquery_v1 \u003c/span\u003eadapter\n"},"jobRetryDeadlineSeconds":{"type":"integer","description":"Total number of seconds to wait while retrying the same query\n"},"location":{"type":"string","description":"Location to create new Datasets in\n"},"maximumBytesBilled":{"type":"integer","description":"Max number of bytes that can be billed for a given BigQuery query\n"},"priority":{"type":"string","description":"The priority with which to execute BigQuery queries (batch or interactive)\n"},"privateKey":{"type":"string","description":"Private Key for the Service Account. Required when using 'service-account-json' authentication.\n","secret":true},"privateKeyId":{"type":"string","description":"Private Key ID for the Service Account. Required when using 'service-account-json' authentication.\n"},"retries":{"type":"integer","description":"Number of retries for queries\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"OAuth scopes for the BigQuery connection\n"},"timeoutSeconds":{"type":"integer","description":"Timeout in seconds for queries, to be used ONLY for the\u003cspan pulumi-lang-nodejs=\" bigqueryV0 \" pulumi-lang-dotnet=\" BigqueryV0 \" pulumi-lang-go=\" bigqueryV0 \" pulumi-lang-python=\" bigquery_v0 \" pulumi-lang-yaml=\" bigqueryV0 \" pulumi-lang-java=\" bigqueryV0 \"\u003e bigquery_v0 \u003c/span\u003eadapter\n"},"tokenUri":{"type":"string","description":"Token URI for the Service Account. Required when using 'service-account-json' authentication.\n"},"useLatestAdapter":{"type":"boolean","description":"Whether to use the latest\u003cspan pulumi-lang-nodejs=\" bigqueryV1 \" pulumi-lang-dotnet=\" BigqueryV1 \" pulumi-lang-go=\" bigqueryV1 \" pulumi-lang-python=\" bigquery_v1 \" pulumi-lang-yaml=\" bigqueryV1 \" pulumi-lang-java=\" bigqueryV1 \"\u003e bigquery_v1 \u003c/span\u003eadapter (use this for BQ WIF). If true, the \u003cspan pulumi-lang-nodejs=\"`jobExecutionTimeoutSeconds`\" pulumi-lang-dotnet=\"`JobExecutionTimeoutSeconds`\" pulumi-lang-go=\"`jobExecutionTimeoutSeconds`\" pulumi-lang-python=\"`job_execution_timeout_seconds`\" pulumi-lang-yaml=\"`jobExecutionTimeoutSeconds`\" pulumi-lang-java=\"`jobExecutionTimeoutSeconds`\"\u003e`job_execution_timeout_seconds`\u003c/span\u003e field will be used. Warning! changing the adapter version (from legacy to latest or vice versa) is not supported.\n"}},"type":"object","required":["gcpProjectId"],"language":{"nodejs":{"requiredOutputs":["deploymentEnvAuthType","gcpProjectId","retries","scopes","timeoutSeconds"]}}},"dbtcloud:index/GlobalConnectionDatabricks:GlobalConnectionDatabricks":{"properties":{"catalog":{"type":"string","description":"Catalog name if Unity Catalog is enabled in your Databricks workspace.\n"},"clientId":{"type":"string","description":"Required to enable Databricks OAuth authentication for IDE developers.\n"},"clientSecret":{"type":"string","description":"Required to enable Databricks OAuth authentication for IDE developers.\n"},"host":{"type":"string","description":"The hostname of the Databricks cluster or SQL warehouse.\n"},"httpPath":{"type":"string","description":"The HTTP path of the Databricks cluster or SQL warehouse.\n"}},"type":"object","required":["host","httpPath"]},"dbtcloud:index/GlobalConnectionFabric:GlobalConnectionFabric":{"properties":{"database":{"type":"string","description":"The database to connect to for this connection.\n"},"loginTimeout":{"type":"integer","description":"The number of seconds used to establish a connection before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=1433\n"},"queryTimeout":{"type":"integer","description":"The number of seconds used to wait for a query before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"retries":{"type":"integer","description":"The number of automatic times to retry a query before failing. Defaults to 1. Queries with syntax errors will not be retried. This setting can be used to overcome intermittent network issues.\n"},"server":{"type":"string","description":"The server hostname.\n"}},"type":"object","required":["database","server"],"language":{"nodejs":{"requiredOutputs":["database","loginTimeout","port","queryTimeout","retries","server"]}}},"dbtcloud:index/GlobalConnectionPostgres:GlobalConnectionPostgres":{"properties":{"dbname":{"type":"string","description":"The database name for this connection.\n"},"hostname":{"type":"string","description":"The hostname of the database.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=5432\n"},"sshTunnel":{"$ref":"#/types/dbtcloud:index/GlobalConnectionPostgresSshTunnel:GlobalConnectionPostgresSshTunnel","description":"PostgreSQL SSH Tunnel configuration\n"}},"type":"object","required":["dbname","hostname"],"language":{"nodejs":{"requiredOutputs":["dbname","hostname","port"]}}},"dbtcloud:index/GlobalConnectionPostgresSshTunnel:GlobalConnectionPostgresSshTunnel":{"properties":{"hostname":{"type":"string","description":"The hostname for the SSH tunnel.\n"},"id":{"type":"integer","description":"The ID of the SSH tunnel connection.\n"},"port":{"type":"integer","description":"The HTTP port for the SSH tunnel.\n"},"publicKey":{"type":"string","description":"The SSH public key generated to allow connecting via SSH tunnel.\n"},"username":{"type":"string","description":"The username to use for the SSH tunnel.\n"}},"type":"object","required":["hostname","port","username"],"language":{"nodejs":{"requiredOutputs":["hostname","id","port","publicKey","username"]}}},"dbtcloud:index/GlobalConnectionRedshift:GlobalConnectionRedshift":{"properties":{"dbname":{"type":"string","description":"The database name for this connection.\n"},"hostname":{"type":"string","description":"The hostname of the data warehouse.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=5432\n"},"sshTunnel":{"$ref":"#/types/dbtcloud:index/GlobalConnectionRedshiftSshTunnel:GlobalConnectionRedshiftSshTunnel","description":"Redshift SSH Tunnel configuration\n"}},"type":"object","required":["dbname","hostname"],"language":{"nodejs":{"requiredOutputs":["dbname","hostname","port"]}}},"dbtcloud:index/GlobalConnectionRedshiftSshTunnel:GlobalConnectionRedshiftSshTunnel":{"properties":{"hostname":{"type":"string","description":"The hostname for the SSH tunnel.\n"},"id":{"type":"integer","description":"The ID of the SSH tunnel connection.\n"},"port":{"type":"integer","description":"The HTTP port for the SSH tunnel.\n"},"publicKey":{"type":"string","description":"The SSH public key generated to allow connecting via SSH tunnel.\n"},"username":{"type":"string","description":"The username to use for the SSH tunnel.\n"}},"type":"object","required":["hostname","port","username"],"language":{"nodejs":{"requiredOutputs":["hostname","id","port","publicKey","username"]}}},"dbtcloud:index/GlobalConnectionSalesforce:GlobalConnectionSalesforce":{"properties":{"dataTransformRunTimeout":{"type":"integer","description":"Timeout in seconds for data transformation runs. Default=300\n"},"database":{"type":"string","description":"The target database name. Default=default\n"},"loginUrl":{"type":"string","description":"The Salesforce instance URL (e.g., https://login.salesforce.com)\n"}},"type":"object","required":["loginUrl"],"language":{"nodejs":{"requiredOutputs":["dataTransformRunTimeout","database","loginUrl"]}}},"dbtcloud:index/GlobalConnectionSnowflake:GlobalConnectionSnowflake":{"properties":{"account":{"type":"string","description":"The Snowflake account name\n"},"allowSso":{"type":"boolean","description":"Whether to allow Snowflake OAuth for the connection. If true, the \u003cspan pulumi-lang-nodejs=\"`oauthClientId`\" pulumi-lang-dotnet=\"`OauthClientId`\" pulumi-lang-go=\"`oauthClientId`\" pulumi-lang-python=\"`oauth_client_id`\" pulumi-lang-yaml=\"`oauthClientId`\" pulumi-lang-java=\"`oauthClientId`\"\u003e`oauth_client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`oauthClientSecret`\" pulumi-lang-dotnet=\"`OauthClientSecret`\" pulumi-lang-go=\"`oauthClientSecret`\" pulumi-lang-python=\"`oauth_client_secret`\" pulumi-lang-yaml=\"`oauthClientSecret`\" pulumi-lang-java=\"`oauthClientSecret`\"\u003e`oauth_client_secret`\u003c/span\u003e fields must be set\n"},"clientSessionKeepAlive":{"type":"boolean","description":"If true, the snowflake client will keep connections for longer than the default 4 hours. This is helpful when particularly long-running queries are executing (\u003e 4 hours)\n"},"database":{"type":"string","description":"The default database for the connection\n"},"oauthClientId":{"type":"string","description":"OAuth Client ID. Required to allow OAuth between dbt Cloud and Snowflake\n","secret":true},"oauthClientSecret":{"type":"string","description":"OAuth Client Secret. Required to allow OAuth between dbt Cloud and Snowflake\n","secret":true},"role":{"type":"string","description":"The Snowflake role to use when running queries on the connection\n"},"warehouse":{"type":"string","description":"The default Snowflake Warehouse to use for the connection\n"}},"type":"object","required":["account","database","warehouse"],"language":{"nodejs":{"requiredOutputs":["account","allowSso","clientSessionKeepAlive","database","warehouse"]}}},"dbtcloud:index/GlobalConnectionStarburst:GlobalConnectionStarburst":{"properties":{"host":{"type":"string","description":"The hostname of the account to connect to.\n"},"method":{"type":"string","description":"The authentication method. Only LDAP for now.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=443\n"}},"type":"object","required":["host"],"language":{"nodejs":{"requiredOutputs":["host","method","port"]}}},"dbtcloud:index/GlobalConnectionSynapse:GlobalConnectionSynapse":{"properties":{"database":{"type":"string","description":"The database to connect to for this connection.\n"},"host":{"type":"string","description":"The server hostname.\n"},"loginTimeout":{"type":"integer","description":"The number of seconds used to establish a connection before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=1433\n"},"queryTimeout":{"type":"integer","description":"The number of seconds used to wait for a query before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"retries":{"type":"integer","description":"The number of automatic times to retry a query before failing. Defaults to 1. Queries with syntax errors will not be retried. This setting can be used to overcome intermittent network issues.\n"}},"type":"object","required":["database","host"],"language":{"nodejs":{"requiredOutputs":["database","host","loginTimeout","port","queryTimeout","retries"]}}},"dbtcloud:index/GlobalConnectionTeradata:GlobalConnectionTeradata":{"properties":{"host":{"type":"string","description":"The hostname of the database.\n"},"port":{"type":"string","description":"The port to connect to for this connection. Default=1025\n"},"requestTimeout":{"type":"integer","description":"The number of seconds used to establish a connection before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"retries":{"type":"integer","description":"The number of automatic times to retry a query before failing. Defaults to 1. Queries with syntax errors will not be retried. This setting can be used to overcome intermittent network issues.\n"},"tmode":{"type":"string","description":"The transaction mode to use for the connection.\n"}},"type":"object","required":["host","tmode"],"language":{"nodejs":{"requiredOutputs":["host","port","requestTimeout","retries","tmode"]}}},"dbtcloud:index/GroupGroupPermission:GroupGroupPermission":{"properties":{"allProjects":{"type":"boolean","description":"Whether access should be provided for all projects or not.\n"},"permissionSet":{"type":"string","description":"Set of permissions to apply. The permissions allowed are the same as the ones for the \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Group`\" pulumi-lang-dotnet=\"`dbtcloud.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`dbtcloud.Group`\" pulumi-lang-java=\"`dbtcloud.Group`\"\u003e`dbtcloud.Group`\u003c/span\u003e resource.\n"},"projectId":{"type":"integer","description":"Project ID to apply this permission to for this group.\n"},"writableEnvironmentCategories":{"type":"array","items":{"type":"string"},"description":"What types of environments to apply Write permissions to.\nEven if Write access is restricted to some environment types, the permission set will have Read access to all environments.\nThe values allowed are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`development`\" pulumi-lang-dotnet=\"`Development`\" pulumi-lang-go=\"`development`\" pulumi-lang-python=\"`development`\" pulumi-lang-yaml=\"`development`\" pulumi-lang-java=\"`development`\"\u003e`development`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`production`\" pulumi-lang-dotnet=\"`Production`\" pulumi-lang-go=\"`production`\" pulumi-lang-python=\"`production`\" pulumi-lang-yaml=\"`production`\" pulumi-lang-java=\"`production`\"\u003e`production`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`other`\" pulumi-lang-dotnet=\"`Other`\" pulumi-lang-go=\"`other`\" pulumi-lang-python=\"`other`\" pulumi-lang-yaml=\"`other`\" pulumi-lang-java=\"`other`\"\u003e`other`\u003c/span\u003e.\nNot setting a value is the same as selecting \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\nNot all permission sets support environment level write settings, only \u003cspan pulumi-lang-nodejs=\"`analyst`\" pulumi-lang-dotnet=\"`Analyst`\" pulumi-lang-go=\"`analyst`\" pulumi-lang-python=\"`analyst`\" pulumi-lang-yaml=\"`analyst`\" pulumi-lang-java=\"`analyst`\"\u003e`analyst`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`databaseAdmin`\" pulumi-lang-dotnet=\"`DatabaseAdmin`\" pulumi-lang-go=\"`databaseAdmin`\" pulumi-lang-python=\"`database_admin`\" pulumi-lang-yaml=\"`databaseAdmin`\" pulumi-lang-java=\"`databaseAdmin`\"\u003e`database_admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`developer`\" pulumi-lang-dotnet=\"`Developer`\" pulumi-lang-go=\"`developer`\" pulumi-lang-python=\"`developer`\" pulumi-lang-yaml=\"`developer`\" pulumi-lang-java=\"`developer`\"\u003e`developer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gitAdmin`\" pulumi-lang-dotnet=\"`GitAdmin`\" pulumi-lang-go=\"`gitAdmin`\" pulumi-lang-python=\"`git_admin`\" pulumi-lang-yaml=\"`gitAdmin`\" pulumi-lang-java=\"`gitAdmin`\"\u003e`git_admin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`teamAdmin`\" pulumi-lang-dotnet=\"`TeamAdmin`\" pulumi-lang-go=\"`teamAdmin`\" pulumi-lang-python=\"`team_admin`\" pulumi-lang-yaml=\"`teamAdmin`\" pulumi-lang-java=\"`teamAdmin`\"\u003e`team_admin`\u003c/span\u003e.\n"}},"type":"object","required":["allProjects","permissionSet"],"language":{"nodejs":{"requiredOutputs":["allProjects","permissionSet","writableEnvironmentCategories"]}}},"dbtcloud:index/GroupPartialPermissionsGroupPermission:GroupPartialPermissionsGroupPermission":{"properties":{"allProjects":{"type":"boolean","description":"Whether access should be provided for all projects or not.\n"},"permissionSet":{"type":"string","description":"Set of permissions to apply. The permissions allowed are the same as the ones for the \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Group`\" pulumi-lang-dotnet=\"`dbtcloud.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`dbtcloud.Group`\" pulumi-lang-java=\"`dbtcloud.Group`\"\u003e`dbtcloud.Group`\u003c/span\u003e resource.\n"},"projectId":{"type":"integer","description":"Project ID to apply this permission to for this group.\n"},"writableEnvironmentCategories":{"type":"array","items":{"type":"string"},"description":"What types of environments to apply Write permissions to.\nEven if Write access is restricted to some environment types, the permission set will have Read access to all environments.\nThe values allowed are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`development`\" pulumi-lang-dotnet=\"`Development`\" pulumi-lang-go=\"`development`\" pulumi-lang-python=\"`development`\" pulumi-lang-yaml=\"`development`\" pulumi-lang-java=\"`development`\"\u003e`development`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`production`\" pulumi-lang-dotnet=\"`Production`\" pulumi-lang-go=\"`production`\" pulumi-lang-python=\"`production`\" pulumi-lang-yaml=\"`production`\" pulumi-lang-java=\"`production`\"\u003e`production`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`other`\" pulumi-lang-dotnet=\"`Other`\" pulumi-lang-go=\"`other`\" pulumi-lang-python=\"`other`\" pulumi-lang-yaml=\"`other`\" pulumi-lang-java=\"`other`\"\u003e`other`\u003c/span\u003e.\nNot setting a value is the same as selecting \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\nNot all permission sets support environment level write settings, only \u003cspan pulumi-lang-nodejs=\"`analyst`\" pulumi-lang-dotnet=\"`Analyst`\" pulumi-lang-go=\"`analyst`\" pulumi-lang-python=\"`analyst`\" pulumi-lang-yaml=\"`analyst`\" pulumi-lang-java=\"`analyst`\"\u003e`analyst`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`databaseAdmin`\" pulumi-lang-dotnet=\"`DatabaseAdmin`\" pulumi-lang-go=\"`databaseAdmin`\" pulumi-lang-python=\"`database_admin`\" pulumi-lang-yaml=\"`databaseAdmin`\" pulumi-lang-java=\"`databaseAdmin`\"\u003e`database_admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`developer`\" pulumi-lang-dotnet=\"`Developer`\" pulumi-lang-go=\"`developer`\" pulumi-lang-python=\"`developer`\" pulumi-lang-yaml=\"`developer`\" pulumi-lang-java=\"`developer`\"\u003e`developer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gitAdmin`\" pulumi-lang-dotnet=\"`GitAdmin`\" pulumi-lang-go=\"`gitAdmin`\" pulumi-lang-python=\"`git_admin`\" pulumi-lang-yaml=\"`gitAdmin`\" pulumi-lang-java=\"`gitAdmin`\"\u003e`git_admin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`teamAdmin`\" pulumi-lang-dotnet=\"`TeamAdmin`\" pulumi-lang-go=\"`teamAdmin`\" pulumi-lang-python=\"`team_admin`\" pulumi-lang-yaml=\"`teamAdmin`\" pulumi-lang-java=\"`teamAdmin`\"\u003e`team_admin`\u003c/span\u003e.\n"}},"type":"object","required":["allProjects","permissionSet"]},"dbtcloud:index/IpRestrictionsRuleCidr:IpRestrictionsRuleCidr":{"properties":{"cidr":{"type":"string","description":"IP CIDR range (can be IPv4 or IPv6)\n"},"cidrIpv6":{"type":"string","description":"IPv6 CIDR range (read-only)\n"},"id":{"type":"integer","description":"ID of the CIDR range\n"},"ipRestrictionRuleId":{"type":"integer","description":"ID of the IP restriction rule\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cidr","cidrIpv6","id","ipRestrictionRuleId"]}}},"dbtcloud:index/JobExecution:JobExecution":{"properties":{"timeoutSeconds":{"type":"integer","description":"The number of seconds before the job times out\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["timeoutSeconds"]}}},"dbtcloud:index/JobJobCompletionTriggerCondition:JobJobCompletionTriggerCondition":{"properties":{"jobId":{"type":"integer","description":"The ID of the job that would trigger this job after completion.\n"},"projectId":{"type":"integer","description":"The ID of the project where the trigger job is running in.\n"},"statuses":{"type":"array","items":{"type":"string"},"description":"List of statuses to trigger the job on. Possible values are \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`canceled`\" pulumi-lang-dotnet=\"`Canceled`\" pulumi-lang-go=\"`canceled`\" pulumi-lang-python=\"`canceled`\" pulumi-lang-yaml=\"`canceled`\" pulumi-lang-java=\"`canceled`\"\u003e`canceled`\u003c/span\u003e.\n"}},"type":"object","required":["jobId","projectId","statuses"]},"dbtcloud:index/JobTriggers:JobTriggers":{"properties":{"gitProviderWebhook":{"type":"boolean","description":"Whether the job runs automatically on PR creation\n"},"githubWebhook":{"type":"boolean","description":"Whether the job runs automatically on PR creation\n"},"onMerge":{"type":"boolean","description":"Whether the job runs automatically once a PR is merged\n"},"schedule":{"type":"boolean","description":"Whether the job runs on a schedule\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["gitProviderWebhook","githubWebhook","onMerge","schedule"]}}},"dbtcloud:index/PostgresSemanticLayerCredentialConfiguration:PostgresSemanticLayerCredentialConfiguration":{"properties":{"adapterVersion":{"type":"string","description":"The adapter version\n"},"name":{"type":"string","description":"The name of the configuration\n"},"projectId":{"type":"integer","description":"The ID of the project\n"}},"type":"object","required":["adapterVersion","name","projectId"]},"dbtcloud:index/PostgresSemanticLayerCredentialCredential:PostgresSemanticLayerCredentialCredential":{"properties":{"credentialId":{"type":"integer","description":"The system Postgres/Redshift/AlloyDB credential ID.\n"},"defaultSchema":{"type":"string","description":"Default schema name. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"id":{"type":"string","description":"The ID of this resource. Contains the project ID and the credential ID.\n"},"isActive":{"type":"boolean","description":"Whether the Postgres/Redshift/AlloyDB credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use (required for Redshift)\n"},"password":{"type":"string","description":"Password for Postgres/Redshift/AlloyDB\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Postgres/Redshift/AlloyDB credential in.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Postgres credential for the Semantic Layer.\n"},"targetName":{"type":"string","description":"Default schema name\n"},"type":{"type":"string","description":"Type of connection. One of (postgres/redshift). Use postgres for alloydb connections. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"username":{"type":"string","description":"Username for Postgres/Redshift/AlloyDB\n"}},"type":"object","required":["projectId","username"],"language":{"nodejs":{"requiredOutputs":["credentialId","defaultSchema","id","isActive","numThreads","projectId","semanticLayerCredential","targetName","type","username"]}}},"dbtcloud:index/RedshiftSemanticLayerCredentialConfiguration:RedshiftSemanticLayerCredentialConfiguration":{"properties":{"adapterVersion":{"type":"string","description":"The adapter version\n"},"name":{"type":"string","description":"The name of the configuration\n"},"projectId":{"type":"integer","description":"The ID of the project\n"}},"type":"object","required":["adapterVersion","name","projectId"]},"dbtcloud:index/RedshiftSemanticLayerCredentialCredential:RedshiftSemanticLayerCredentialCredential":{"properties":{"credentialId":{"type":"integer","description":"The internal credential ID\n"},"defaultSchema":{"type":"string","description":"Default schema name\n"},"id":{"type":"string","description":"The ID of this resource. Contains the project ID and the credential ID.\n"},"isActive":{"type":"boolean","description":"Whether the Redshift credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"password":{"type":"string","description":"The password for the Redshift account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Redshift credential in\n"},"username":{"type":"string","description":"The username for the Redshift account.\n"}},"type":"object","required":["defaultSchema","numThreads","projectId"],"language":{"nodejs":{"requiredOutputs":["credentialId","defaultSchema","id","isActive","numThreads","password","projectId","username"]}}},"dbtcloud:index/ScimGroupPartialPermissionsPermission:ScimGroupPartialPermissionsPermission":{"properties":{"allProjects":{"type":"boolean","description":"Whether access should be provided for all projects or not.\n"},"permissionSet":{"type":"string","description":"Set of permissions to apply. The permissions allowed are the same as the ones for the \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Group`\" pulumi-lang-dotnet=\"`dbtcloud.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`dbtcloud.Group`\" pulumi-lang-java=\"`dbtcloud.Group`\"\u003e`dbtcloud.Group`\u003c/span\u003e resource.\n"},"projectId":{"type":"integer","description":"Project ID to apply this permission to for this group.\n"},"writableEnvironmentCategories":{"type":"array","items":{"type":"string"},"description":"What types of environments to apply Write permissions to.\nEven if Write access is restricted to some environment types, the permission set will have Read access to all environments.\nThe values allowed are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`development`\" pulumi-lang-dotnet=\"`Development`\" pulumi-lang-go=\"`development`\" pulumi-lang-python=\"`development`\" pulumi-lang-yaml=\"`development`\" pulumi-lang-java=\"`development`\"\u003e`development`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`production`\" pulumi-lang-dotnet=\"`Production`\" pulumi-lang-go=\"`production`\" pulumi-lang-python=\"`production`\" pulumi-lang-yaml=\"`production`\" pulumi-lang-java=\"`production`\"\u003e`production`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`other`\" pulumi-lang-dotnet=\"`Other`\" pulumi-lang-go=\"`other`\" pulumi-lang-python=\"`other`\" pulumi-lang-yaml=\"`other`\" pulumi-lang-java=\"`other`\"\u003e`other`\u003c/span\u003e.\nNot setting a value is the same as selecting \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\nNot all permission sets support environment level write settings, only \u003cspan pulumi-lang-nodejs=\"`analyst`\" pulumi-lang-dotnet=\"`Analyst`\" pulumi-lang-go=\"`analyst`\" pulumi-lang-python=\"`analyst`\" pulumi-lang-yaml=\"`analyst`\" pulumi-lang-java=\"`analyst`\"\u003e`analyst`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`databaseAdmin`\" pulumi-lang-dotnet=\"`DatabaseAdmin`\" pulumi-lang-go=\"`databaseAdmin`\" pulumi-lang-python=\"`database_admin`\" pulumi-lang-yaml=\"`databaseAdmin`\" pulumi-lang-java=\"`databaseAdmin`\"\u003e`database_admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`developer`\" pulumi-lang-dotnet=\"`Developer`\" pulumi-lang-go=\"`developer`\" pulumi-lang-python=\"`developer`\" pulumi-lang-yaml=\"`developer`\" pulumi-lang-java=\"`developer`\"\u003e`developer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gitAdmin`\" pulumi-lang-dotnet=\"`GitAdmin`\" pulumi-lang-go=\"`gitAdmin`\" pulumi-lang-python=\"`git_admin`\" pulumi-lang-yaml=\"`gitAdmin`\" pulumi-lang-java=\"`gitAdmin`\"\u003e`git_admin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`teamAdmin`\" pulumi-lang-dotnet=\"`TeamAdmin`\" pulumi-lang-go=\"`teamAdmin`\" pulumi-lang-python=\"`team_admin`\" pulumi-lang-yaml=\"`teamAdmin`\" pulumi-lang-java=\"`teamAdmin`\"\u003e`team_admin`\u003c/span\u003e.\n"}},"type":"object","required":["allProjects","permissionSet"]},"dbtcloud:index/ScimGroupPermissionsPermission:ScimGroupPermissionsPermission":{"properties":{"allProjects":{"type":"boolean","description":"Whether access should be provided for all projects or not.\n"},"permissionSet":{"type":"string","description":"Set of permissions to apply. The permissions allowed are the same as the ones for the \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Group`\" pulumi-lang-dotnet=\"`dbtcloud.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`dbtcloud.Group`\" pulumi-lang-java=\"`dbtcloud.Group`\"\u003e`dbtcloud.Group`\u003c/span\u003e resource.\n"},"projectId":{"type":"integer","description":"Project ID to apply this permission to for this group.\n"},"writableEnvironmentCategories":{"type":"array","items":{"type":"string"},"description":"What types of environments to apply Write permissions to.\nEven if Write access is restricted to some environment types, the permission set will have Read access to all environments.\nThe values allowed are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`development`\" pulumi-lang-dotnet=\"`Development`\" pulumi-lang-go=\"`development`\" pulumi-lang-python=\"`development`\" pulumi-lang-yaml=\"`development`\" pulumi-lang-java=\"`development`\"\u003e`development`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`production`\" pulumi-lang-dotnet=\"`Production`\" pulumi-lang-go=\"`production`\" pulumi-lang-python=\"`production`\" pulumi-lang-yaml=\"`production`\" pulumi-lang-java=\"`production`\"\u003e`production`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`other`\" pulumi-lang-dotnet=\"`Other`\" pulumi-lang-go=\"`other`\" pulumi-lang-python=\"`other`\" pulumi-lang-yaml=\"`other`\" pulumi-lang-java=\"`other`\"\u003e`other`\u003c/span\u003e.\nNot setting a value is the same as selecting \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\nNot all permission sets support environment level write settings, only \u003cspan pulumi-lang-nodejs=\"`analyst`\" pulumi-lang-dotnet=\"`Analyst`\" pulumi-lang-go=\"`analyst`\" pulumi-lang-python=\"`analyst`\" pulumi-lang-yaml=\"`analyst`\" pulumi-lang-java=\"`analyst`\"\u003e`analyst`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`databaseAdmin`\" pulumi-lang-dotnet=\"`DatabaseAdmin`\" pulumi-lang-go=\"`databaseAdmin`\" pulumi-lang-python=\"`database_admin`\" pulumi-lang-yaml=\"`databaseAdmin`\" pulumi-lang-java=\"`databaseAdmin`\"\u003e`database_admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`developer`\" pulumi-lang-dotnet=\"`Developer`\" pulumi-lang-go=\"`developer`\" pulumi-lang-python=\"`developer`\" pulumi-lang-yaml=\"`developer`\" pulumi-lang-java=\"`developer`\"\u003e`developer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gitAdmin`\" pulumi-lang-dotnet=\"`GitAdmin`\" pulumi-lang-go=\"`gitAdmin`\" pulumi-lang-python=\"`git_admin`\" pulumi-lang-yaml=\"`gitAdmin`\" pulumi-lang-java=\"`gitAdmin`\"\u003e`git_admin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`teamAdmin`\" pulumi-lang-dotnet=\"`TeamAdmin`\" pulumi-lang-go=\"`teamAdmin`\" pulumi-lang-python=\"`team_admin`\" pulumi-lang-yaml=\"`teamAdmin`\" pulumi-lang-java=\"`teamAdmin`\"\u003e`team_admin`\u003c/span\u003e.\n"}},"type":"object","required":["allProjects","permissionSet"]},"dbtcloud:index/ServiceTokenServiceTokenPermission:ServiceTokenServiceTokenPermission":{"properties":{"allProjects":{"type":"boolean","description":"Whether or not to apply this permission to all projects for this service token\n"},"permissionSet":{"type":"string","description":"Set of permissions to apply\n"},"projectId":{"type":"integer","description":"Project ID to apply this permission to for this service token\n"},"writableEnvironmentCategories":{"type":"array","items":{"type":"string"},"description":"What types of environments to apply Write permissions to.\nEven if Write access is restricted to some environment types, the permission set will have Read access to all environments.\nThe values allowed are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`development`\" pulumi-lang-dotnet=\"`Development`\" pulumi-lang-go=\"`development`\" pulumi-lang-python=\"`development`\" pulumi-lang-yaml=\"`development`\" pulumi-lang-java=\"`development`\"\u003e`development`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`production`\" pulumi-lang-dotnet=\"`Production`\" pulumi-lang-go=\"`production`\" pulumi-lang-python=\"`production`\" pulumi-lang-yaml=\"`production`\" pulumi-lang-java=\"`production`\"\u003e`production`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`other`\" pulumi-lang-dotnet=\"`Other`\" pulumi-lang-go=\"`other`\" pulumi-lang-python=\"`other`\" pulumi-lang-yaml=\"`other`\" pulumi-lang-java=\"`other`\"\u003e`other`\u003c/span\u003e.\nNot setting a value is the same as selecting \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\nNot all permission sets support environment level write settings, only \u003cspan pulumi-lang-nodejs=\"`analyst`\" pulumi-lang-dotnet=\"`Analyst`\" pulumi-lang-go=\"`analyst`\" pulumi-lang-python=\"`analyst`\" pulumi-lang-yaml=\"`analyst`\" pulumi-lang-java=\"`analyst`\"\u003e`analyst`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`databaseAdmin`\" pulumi-lang-dotnet=\"`DatabaseAdmin`\" pulumi-lang-go=\"`databaseAdmin`\" pulumi-lang-python=\"`database_admin`\" pulumi-lang-yaml=\"`databaseAdmin`\" pulumi-lang-java=\"`databaseAdmin`\"\u003e`database_admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`developer`\" pulumi-lang-dotnet=\"`Developer`\" pulumi-lang-go=\"`developer`\" pulumi-lang-python=\"`developer`\" pulumi-lang-yaml=\"`developer`\" pulumi-lang-java=\"`developer`\"\u003e`developer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gitAdmin`\" pulumi-lang-dotnet=\"`GitAdmin`\" pulumi-lang-go=\"`gitAdmin`\" pulumi-lang-python=\"`git_admin`\" pulumi-lang-yaml=\"`gitAdmin`\" pulumi-lang-java=\"`gitAdmin`\"\u003e`git_admin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`teamAdmin`\" pulumi-lang-dotnet=\"`TeamAdmin`\" pulumi-lang-go=\"`teamAdmin`\" pulumi-lang-python=\"`team_admin`\" pulumi-lang-yaml=\"`teamAdmin`\" pulumi-lang-java=\"`teamAdmin`\"\u003e`team_admin`\u003c/span\u003e.\n"}},"type":"object","required":["allProjects","permissionSet"],"language":{"nodejs":{"requiredOutputs":["allProjects","permissionSet","writableEnvironmentCategories"]}}},"dbtcloud:index/SnowflakeSemanticLayerCredentialConfiguration:SnowflakeSemanticLayerCredentialConfiguration":{"properties":{"adapterVersion":{"type":"string","description":"The adapter version\n"},"name":{"type":"string","description":"The name of the configuration\n"},"projectId":{"type":"integer","description":"The ID of the project\n"}},"type":"object","required":["adapterVersion","name","projectId"]},"dbtcloud:index/SnowflakeSemanticLayerCredentialCredential:SnowflakeSemanticLayerCredentialCredential":{"properties":{"authType":{"type":"string","description":"The type of Snowflake credential ('password' or 'keypair')\n"},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"database":{"type":"string","description":"The catalog to connect use\n"},"id":{"type":"string","description":"The ID of this resource. Contains the project ID and the credential ID.\n"},"isActive":{"type":"boolean","description":"Whether the Snowflake credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"password":{"type":"string","description":"The password for the Snowflake account\n","secret":true},"privateKey":{"type":"string","description":"The private key for the Snowflake account\n","secret":true},"privateKeyPassphrase":{"type":"string","description":"The passphrase for the private key\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Snowflake credential in\n"},"role":{"type":"string","description":"The role to assume\n"},"schema":{"type":"string","description":"The schema where to create models. This is an optional field ONLY if the credential is used for Semantic Layer configuration, otherwise it is required.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Snowflake credential for the Semantic Layer.\n"},"user":{"type":"string","description":"The username for the Snowflake account. This is an optional field ONLY if the credential is used for Semantic Layer configuration, otherwise it is required.\n"},"warehouse":{"type":"string","description":"The warehouse to use\n"}},"type":"object","required":["authType","numThreads","projectId"],"language":{"nodejs":{"requiredOutputs":["authType","credentialId","id","isActive","numThreads","password","privateKey","privateKeyPassphrase","projectId","schema","semanticLayerCredential","user"]}}},"dbtcloud:index/getEnvironmentsEnvironment:getEnvironmentsEnvironment":{"properties":{"connectionId":{"type":"integer","description":"A connection ID (used with Global Connections)\n"},"credentialsId":{"type":"integer","description":"Credential ID for this environment. A credential is not required for development environments, as dbt Cloud defaults to the user's credentials, but deployment environments will have this.\n"},"customBranch":{"type":"string","description":"The custom branch name to use\n"},"dbtVersion":{"type":"string","description":"Version number of dbt to use in this environment.\n"},"deploymentType":{"type":"string","description":"The type of deployment environment (currently 'production', 'staging' or empty)\n"},"enableModelQueryHistory":{"type":"boolean","description":"Whether model query history is on\n"},"environmentId":{"type":"integer","description":"The ID of the environment\n"},"extendedAttributesId":{"type":"integer","description":"The ID of the extended attributes applied\n"},"name":{"type":"string","description":"The name of the environment\n"},"primaryProfileId":{"type":"integer","description":"The ID of the primary profile for this environment\n"},"projectId":{"type":"integer","description":"The project ID to which the environment belong\n"},"type":{"type":"string","description":"The type of environment (must be either development or deployment)\n"},"useCustomBranch":{"type":"boolean","description":"Whether to use a custom git branch in this environment\n"}},"type":"object","required":["connectionId","credentialsId","customBranch","dbtVersion","deploymentType","enableModelQueryHistory","environmentId","extendedAttributesId","name","primaryProfileId","projectId","type","useCustomBranch"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionApacheSpark:getGlobalConnectionApacheSpark":{"properties":{"auth":{"type":"string","description":"Auth\n"},"cluster":{"type":"string","description":"Spark cluster for the connection\n"},"connectRetries":{"type":"integer","description":"Connection retries. Default=0\n"},"connectTimeout":{"type":"integer","description":"Connection time out in seconds. Default=10\n"},"host":{"type":"string","description":"Hostname of the connection\n"},"method":{"type":"string","description":"Authentication method for the connection (http or thrift).\n"},"organization":{"type":"string","description":"Organization ID\n"},"port":{"type":"integer","description":"Port for the connection. Default=443\n"},"user":{"type":"string","description":"User\n"}},"type":"object","required":["auth","cluster","connectRetries","connectTimeout","host","method","organization","port","user"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionAthena:getGlobalConnectionAthena":{"properties":{"database":{"type":"string","description":"Specify the database (data catalog) to build models into (lowercase only).\n"},"numBoto3Retries":{"type":"integer","description":"Number of times to retry boto3 requests (e.g. deleting S3 files for materialized tables).\n"},"numIcebergRetries":{"type":"integer","description":"Number of times to retry iceberg commit queries to fix ICEBERG*COMMIT*ERROR.\n"},"numRetries":{"type":"integer","description":"Number of times to retry a failing query.\n"},"pollInterval":{"type":"integer","description":"Interval in seconds to use for polling the status of query results in Athena.\n"},"regionName":{"type":"string","description":"AWS region of your Athena instance.\n"},"s3DataDir":{"type":"string","description":"Prefix for storing tables, if different from the connection's S3 staging directory. Must be in the format 's3://bucket-name/path/'.\n"},"s3DataNaming":{"type":"string","description":"How to generate table paths in the S3 data directory.\n"},"s3StagingDir":{"type":"string","description":"S3 location to store Athena query results and metadata. Must be in the format 's3://bucket-name/path/'.\n"},"s3TmpTableDir":{"type":"string","description":"Prefix for storing temporary tables, if different from the connection's S3 data directory. Must be in the format 's3://bucket-name/path/'.\n"},"sparkWorkGroup":{"type":"string","description":"Identifier of Athena Spark workgroup for running Python models.\n"},"workGroup":{"type":"string","description":"Identifier of Athena workgroup.\n"}},"type":"object","required":["database","numBoto3Retries","numIcebergRetries","numRetries","pollInterval","regionName","s3DataDir","s3DataNaming","s3StagingDir","s3TmpTableDir","sparkWorkGroup","workGroup"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionBigquery:getGlobalConnectionBigquery":{"properties":{"applicationId":{"type":"string","description":"OAuth Client ID\n","secret":true},"applicationSecret":{"type":"string","description":"OAuth Client Secret\n","secret":true},"authProviderX509CertUrl":{"type":"string","description":"Auth Provider X509 Cert URL for the Service Account\n"},"authUri":{"type":"string","description":"Auth URI for the Service Account\n"},"clientEmail":{"type":"string","description":"Service Account email\n"},"clientId":{"type":"string","description":"Client ID of the Service Account\n"},"clientX509CertUrl":{"type":"string","description":"Client X509 Cert URL for the Service Account\n"},"dataprocClusterName":{"type":"string","description":"Dataproc cluster name for PySpark workloads\n"},"dataprocRegion":{"type":"string","description":"Google Cloud region for PySpark workloads on Dataproc\n"},"deploymentEnvAuthType":{"type":"string","description":"Authentication type for deployment environments. Can be 'service-account-json' or 'external-oauth-wif'.\n"},"executionProject":{"type":"string","description":"Project to bill for query execution\n"},"gcpProjectId":{"type":"string","description":"The GCP project ID to use for the connection\n"},"gcsBucket":{"type":"string","description":"URI for a Google Cloud Storage bucket to host Python code executed via Datapro\n"},"impersonateServiceAccount":{"type":"string","description":"Service Account to impersonate when running queries\n"},"jobCreationTimeoutSeconds":{"type":"integer","description":"Maximum timeout for the job creation step\n"},"jobRetryDeadlineSeconds":{"type":"integer","description":"Total number of seconds to wait while retrying the same query\n"},"location":{"type":"string","description":"Location to create new Datasets in\n"},"maximumBytesBilled":{"type":"integer","description":"Max number of bytes that can be billed for a given BigQuery query\n"},"priority":{"type":"string","description":"The priority with which to execute BigQuery queries (batch or interactive)\n"},"privateKey":{"type":"string","description":"Private Key for the Service Account\n","secret":true},"privateKeyId":{"type":"string","description":"Private Key ID for the Service Account\n"},"retries":{"type":"integer","description":"Number of retries for queries\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"OAuth scopes for the BigQuery connection\n"},"timeoutSeconds":{"type":"integer","description":"Timeout in seconds for queries\n"},"tokenUri":{"type":"string","description":"Token URI for the Service Account\n"}},"type":"object","required":["applicationId","applicationSecret","authProviderX509CertUrl","authUri","clientEmail","clientId","clientX509CertUrl","dataprocClusterName","dataprocRegion","deploymentEnvAuthType","executionProject","gcpProjectId","gcsBucket","impersonateServiceAccount","jobCreationTimeoutSeconds","jobRetryDeadlineSeconds","location","maximumBytesBilled","priority","privateKey","privateKeyId","retries","scopes","timeoutSeconds","tokenUri"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionDatabricks:getGlobalConnectionDatabricks":{"properties":{"catalog":{"type":"string","description":"Catalog name if Unity Catalog is enabled in your Databricks workspace.\n"},"clientId":{"type":"string","description":"Required to enable Databricks OAuth authentication for IDE developers.\n"},"clientSecret":{"type":"string","description":"Required to enable Databricks OAuth authentication for IDE developers.\n"},"host":{"type":"string","description":"The hostname of the Databricks cluster or SQL warehouse.\n"},"httpPath":{"type":"string","description":"The HTTP path of the Databricks cluster or SQL warehouse.\n"}},"type":"object","required":["catalog","clientId","clientSecret","host","httpPath"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionFabric:getGlobalConnectionFabric":{"properties":{"database":{"type":"string","description":"The database to connect to for this connection.\n"},"loginTimeout":{"type":"integer","description":"The number of seconds used to establish a connection before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=1433\n"},"queryTimeout":{"type":"integer","description":"The number of seconds used to wait for a query before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"retries":{"type":"integer","description":"The number of automatic times to retry a query before failing. Defaults to 1. Queries with syntax errors will not be retried. This setting can be used to overcome intermittent network issues.\n"},"server":{"type":"string","description":"The server hostname.\n"}},"type":"object","required":["database","loginTimeout","port","queryTimeout","retries","server"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionPostgres:getGlobalConnectionPostgres":{"properties":{"dbname":{"type":"string","description":"The database name for this connection.\n"},"hostname":{"type":"string","description":"The hostname of the database.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=5432\n"},"sshTunnel":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionPostgresSshTunnel:getGlobalConnectionPostgresSshTunnel","description":"PostgreSQL SSH Tunnel configuration\n"}},"type":"object","required":["dbname","hostname","port","sshTunnel"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionPostgresSshTunnel:getGlobalConnectionPostgresSshTunnel":{"properties":{"hostname":{"type":"string","description":"The hostname for the SSH tunnel.\n"},"id":{"type":"integer","description":"The ID of the SSH tunnel connection.\n"},"port":{"type":"integer","description":"The HTTP port for the SSH tunnel.\n"},"publicKey":{"type":"string","description":"The SSH public key generated to allow connecting via SSH tunnel.\n"},"username":{"type":"string","description":"The username to use for the SSH tunnel.\n"}},"type":"object","required":["hostname","id","port","publicKey","username"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionRedshift:getGlobalConnectionRedshift":{"properties":{"dbname":{"type":"string","description":"The database name for this connection.\n"},"hostname":{"type":"string","description":"The hostname of the data warehouse.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=5432\n"},"sshTunnel":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionRedshiftSshTunnel:getGlobalConnectionRedshiftSshTunnel","description":"Redshift SSH Tunnel configuration\n"}},"type":"object","required":["dbname","hostname","port","sshTunnel"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionRedshiftSshTunnel:getGlobalConnectionRedshiftSshTunnel":{"properties":{"hostname":{"type":"string","description":"The hostname for the SSH tunnel.\n"},"id":{"type":"integer","description":"The ID of the SSH tunnel connection.\n"},"port":{"type":"integer","description":"The HTTP port for the SSH tunnel.\n"},"publicKey":{"type":"string","description":"The SSH public key generated to allow connecting via SSH tunnel.\n"},"username":{"type":"string","description":"The username to use for the SSH tunnel.\n"}},"type":"object","required":["hostname","id","port","publicKey","username"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionSalesforce:getGlobalConnectionSalesforce":{"properties":{"dataTransformRunTimeout":{"type":"integer","description":"Timeout in seconds for data transformation runs.\n"},"database":{"type":"string","description":"The target database name.\n"},"loginUrl":{"type":"string","description":"The Salesforce instance URL (e.g., https://login.salesforce.com)\n"}},"type":"object","required":["dataTransformRunTimeout","database","loginUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionSnowflake:getGlobalConnectionSnowflake":{"properties":{"account":{"type":"string","description":"The Snowflake account name\n"},"allowSso":{"type":"boolean","description":"Whether to allow Snowflake OAuth for the connection. If true, the \u003cspan pulumi-lang-nodejs=\"`oauthClientId`\" pulumi-lang-dotnet=\"`OauthClientId`\" pulumi-lang-go=\"`oauthClientId`\" pulumi-lang-python=\"`oauth_client_id`\" pulumi-lang-yaml=\"`oauthClientId`\" pulumi-lang-java=\"`oauthClientId`\"\u003e`oauth_client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`oauthClientSecret`\" pulumi-lang-dotnet=\"`OauthClientSecret`\" pulumi-lang-go=\"`oauthClientSecret`\" pulumi-lang-python=\"`oauth_client_secret`\" pulumi-lang-yaml=\"`oauthClientSecret`\" pulumi-lang-java=\"`oauthClientSecret`\"\u003e`oauth_client_secret`\u003c/span\u003e fields must be set\n"},"clientSessionKeepAlive":{"type":"boolean","description":"If true, the snowflake client will keep connections for longer than the default 4 hours. This is helpful when particularly long-running queries are executing (\u003e 4 hours)\n"},"database":{"type":"string","description":"The default database for the connection\n"},"oauthClientId":{"type":"string","description":"OAuth Client ID. Required to allow OAuth between dbt Cloud and Snowflake\n","secret":true},"oauthClientSecret":{"type":"string","description":"OAuth Client Secret. Required to allow OAuth between dbt Cloud and Snowflake\n","secret":true},"role":{"type":"string","description":"The Snowflake role to use when running queries on the connection\n"},"warehouse":{"type":"string","description":"The default Snowflake Warehouse to use for the connection\n"}},"type":"object","required":["account","allowSso","clientSessionKeepAlive","database","oauthClientId","oauthClientSecret","role","warehouse"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionStarburst:getGlobalConnectionStarburst":{"properties":{"host":{"type":"string","description":"The hostname of the account to connect to.\n"},"method":{"type":"string","description":"The authentication method. Only LDAP for now.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=443\n"}},"type":"object","required":["host","method","port"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionSynapse:getGlobalConnectionSynapse":{"properties":{"database":{"type":"string","description":"The database to connect to for this connection.\n"},"host":{"type":"string","description":"The server hostname.\n"},"loginTimeout":{"type":"integer","description":"The number of seconds used to establish a connection before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"port":{"type":"integer","description":"The port to connect to for this connection. Default=1433\n"},"queryTimeout":{"type":"integer","description":"The number of seconds used to wait for a query before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"retries":{"type":"integer","description":"The number of automatic times to retry a query before failing. Defaults to 1. Queries with syntax errors will not be retried. This setting can be used to overcome intermittent network issues.\n"}},"type":"object","required":["database","host","loginTimeout","port","queryTimeout","retries"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionTeradata:getGlobalConnectionTeradata":{"properties":{"host":{"type":"string","description":"The hostname of the database.\n"},"port":{"type":"string","description":"The port to connect to for this connection. Default=1025\n"},"requestTimeout":{"type":"integer","description":"The number of seconds used to establish a connection before failing. Defaults to 0, which means that the timeout is disabled or uses the default system settings.\n"},"retries":{"type":"integer","description":"The number of automatic times to retry a query before failing. Defaults to 1. Queries with syntax errors will not be retried. This setting can be used to overcome intermittent network issues.\n"},"tmode":{"type":"string","description":"The transaction mode to use for the connection.\n"}},"type":"object","required":["host","port","requestTimeout","retries","tmode"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGlobalConnectionsConnection:getGlobalConnectionsConnection":{"properties":{"adapterVersion":{"type":"string","description":"Type of adapter used for the connection\n"},"createdAt":{"type":"string","description":"When the connection was created\n"},"environmentCount":{"type":"integer","description":"Number of environments using this connection\n"},"id":{"type":"integer","description":"Connection Identifier\n"},"isSshTunnelEnabled":{"type":"boolean"},"name":{"type":"string","description":"Connection name\n"},"oauthConfigurationId":{"type":"integer"},"privateLinkEndpointId":{"type":"string","description":"Private Link Endpoint ID.\n"},"updatedAt":{"type":"string","description":"When the connection was updated\n"}},"type":"object","required":["adapterVersion","createdAt","environmentCount","id","isSshTunnelEnabled","name","oauthConfigurationId","privateLinkEndpointId","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGroupGroupPermission:getGroupGroupPermission":{"properties":{"allProjects":{"type":"boolean","description":"Whether access should be provided for all projects or not.\n"},"permissionSet":{"type":"string","description":"Set of permissions to apply. The permissions allowed are the same as the ones for the \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Group`\" pulumi-lang-dotnet=\"`dbtcloud.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`dbtcloud.Group`\" pulumi-lang-java=\"`dbtcloud.Group`\"\u003e`dbtcloud.Group`\u003c/span\u003e resource.\n"},"projectId":{"type":"integer","description":"Project ID to apply this permission to for this group.\n"},"writableEnvironmentCategories":{"type":"array","items":{"type":"string"},"description":"What types of environments to apply Write permissions to.\n"}},"type":"object","required":["allProjects","permissionSet","projectId","writableEnvironmentCategories"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGroupUsersUser:getGroupUsersUser":{"properties":{"email":{"type":"string","description":"Email of the user\n"},"id":{"type":"integer","description":"ID of the user\n"}},"type":"object","required":["email","id"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getGroupsGroup:getGroupsGroup":{"properties":{"assignByDefault":{"type":"boolean","description":"Whether the group will be assigned by default to users\n"},"id":{"type":"integer","description":"The ID of the group\n"},"name":{"type":"string","description":"Group name\n"},"scimManaged":{"type":"boolean","description":"Whether the group is managed by SCIM\n"},"ssoMappingGroups":{"type":"array","items":{"type":"string"},"description":"SSO mapping group names for this group\n"},"state":{"type":"integer","description":"The state of the group (1=active, 2=deleted)\n"}},"type":"object","required":["assignByDefault","id","name","scimManaged","ssoMappingGroups","state"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobEnvironment:getJobEnvironment":{"properties":{"deploymentType":{"type":"string","description":"Type of deployment environment: staging, production\n"},"id":{"type":"integer","description":"ID of the environment\n"},"name":{"type":"string","description":"Name of the environment\n"},"projectId":{"type":"integer"},"type":{"type":"string","description":"Environment type: development or deployment\n"}},"type":"object","required":["deploymentType","id","name","projectId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobExecution:getJobExecution":{"properties":{"timeoutSeconds":{"type":"integer","description":"The number of seconds before the job times out\n"}},"type":"object","required":["timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobJobCompletionTriggerCondition:getJobJobCompletionTriggerCondition":{"properties":{"jobId":{"type":"integer","description":"The ID of the job that would trigger this job after completion.\n"},"projectId":{"type":"integer","description":"The ID of the project where the trigger job is running in.\n"},"statuses":{"type":"array","items":{"type":"string"},"description":"List of statuses to trigger the job on.\n"}},"type":"object","required":["jobId","projectId","statuses"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobSchedule:getJobSchedule":{"properties":{"cron":{"type":"string","description":"The cron schedule for the job. Only used if triggers.schedule is true\n"}},"type":"object","required":["cron"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobSettings:getJobSettings":{"properties":{"targetName":{"type":"string","description":"Value for `target.name` in the Jinja context\n"},"threads":{"type":"integer","description":"Number of threads to run dbt with\n"}},"type":"object","required":["targetName","threads"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobTriggers:getJobTriggers":{"properties":{"gitProviderWebhook":{"type":"boolean","description":"Whether the job runs automatically on PR creation\n"},"githubWebhook":{"type":"boolean","description":"Whether the job runs automatically on PR creation\n"},"onMerge":{"type":"boolean","description":"Whether the job runs automatically once a PR is merged\n"},"schedule":{"type":"boolean","description":"Whether the job runs on a schedule\n"}},"type":"object","required":["gitProviderWebhook","githubWebhook","onMerge","schedule"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobsJob:getJobsJob":{"properties":{"dbtVersion":{"type":"string","description":"The version of dbt used for the job. If not set, the environment version will be used.\n"},"deferringEnvironmentId":{"type":"integer","description":"The ID of the environment this job defers to\n"},"deferringJobDefinitionId":{"type":"integer","description":"[Deprectated - Deferral is now set at the environment level] The ID of the job definition this job defers to\n","deprecationMessage":"Deferral is now set at the environment level"},"description":{"type":"string","description":"The description of the job\n"},"environment":{"$ref":"#/types/dbtcloud:index/getJobsJobEnvironment:getJobsJobEnvironment","description":"Details of the environment the job is running in\n"},"environmentId":{"type":"integer","description":"The ID of environment\n"},"executeSteps":{"type":"array","items":{"type":"string"},"description":"The list of steps to run in the job\n"},"execution":{"$ref":"#/types/dbtcloud:index/getJobsJobExecution:getJobsJobExecution"},"forceNodeSelection":{"type":"boolean","description":"Whether force node selection (SAO) is enabled for this job\n"},"generateDocs":{"type":"boolean","description":"Whether the job generate docs\n"},"id":{"type":"integer","description":"The ID of the job\n"},"jobCompletionTriggerCondition":{"$ref":"#/types/dbtcloud:index/getJobsJobJobCompletionTriggerCondition:getJobsJobJobCompletionTriggerCondition","description":"Whether the job is triggered by the completion of another job\n"},"jobId":{"type":"integer","description":"The ID of the job\n"},"jobType":{"type":"string","description":"The type of job (e.g. CI, scheduled)\n"},"name":{"type":"string","description":"The name of the job\n"},"projectId":{"type":"integer","description":"The ID of the project\n"},"runCompareChanges":{"type":"boolean","description":"Whether the job should compare data changes introduced by the code change in the PR\n"},"runGenerateSources":{"type":"boolean","description":"Whether the job test source freshness\n"},"schedule":{"$ref":"#/types/dbtcloud:index/getJobsJobSchedule:getJobsJobSchedule"},"settings":{"$ref":"#/types/dbtcloud:index/getJobsJobSettings:getJobsJobSettings"},"timeoutSeconds":{"type":"integer","description":"[Deprectated - Moved to execution.timeout_seconds] Number of seconds before the job times out\n","deprecationMessage":"Moved to execution.timeout_seconds"},"triggers":{"$ref":"#/types/dbtcloud:index/getJobsJobTriggers:getJobsJobTriggers"},"triggersOnDraftPr":{"type":"boolean","description":"Whether the CI job should be automatically triggered on draft PRs\n"}},"type":"object","required":["dbtVersion","deferringEnvironmentId","deferringJobDefinitionId","description","environment","environmentId","executeSteps","execution","forceNodeSelection","generateDocs","id","jobCompletionTriggerCondition","jobId","jobType","name","projectId","runCompareChanges","runGenerateSources","schedule","settings","timeoutSeconds","triggers","triggersOnDraftPr"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobsJobEnvironment:getJobsJobEnvironment":{"properties":{"deploymentType":{"type":"string","description":"Type of deployment environment: staging, production\n"},"id":{"type":"integer","description":"ID of the environment\n"},"name":{"type":"string","description":"Name of the environment\n"},"projectId":{"type":"integer"},"type":{"type":"string","description":"Environment type: development or deployment\n"}},"type":"object","required":["deploymentType","id","name","projectId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobsJobExecution:getJobsJobExecution":{"properties":{"timeoutSeconds":{"type":"integer","description":"The number of seconds before the job times out\n"}},"type":"object","required":["timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobsJobJobCompletionTriggerCondition:getJobsJobJobCompletionTriggerCondition":{"properties":{"condition":{"$ref":"#/types/dbtcloud:index/getJobsJobJobCompletionTriggerConditionCondition:getJobsJobJobCompletionTriggerConditionCondition"}},"type":"object","required":["condition"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobsJobJobCompletionTriggerConditionCondition:getJobsJobJobCompletionTriggerConditionCondition":{"properties":{"jobId":{"type":"integer"},"projectId":{"type":"integer"},"statuses":{"type":"array","items":{"type":"string"}}},"type":"object","required":["jobId","projectId","statuses"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobsJobSchedule:getJobsJobSchedule":{"properties":{"cron":{"type":"string","description":"The cron schedule for the job. Only used if triggers.schedule is true\n"}},"type":"object","required":["cron"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobsJobSettings:getJobsJobSettings":{"properties":{"targetName":{"type":"string","description":"Value for `target.name` in the Jinja context\n"},"threads":{"type":"integer","description":"Number of threads to run dbt with\n"}},"type":"object","required":["targetName","threads"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getJobsJobTriggers:getJobsJobTriggers":{"properties":{"gitProviderWebhook":{"type":"boolean","description":"Whether the job runs automatically on PR creation\n"},"githubWebhook":{"type":"boolean","description":"Whether the job runs automatically on PR creation\n"},"onMerge":{"type":"boolean","description":"Whether the job runs automatically once a PR is merged\n"},"schedule":{"type":"boolean","description":"Whether the job runs on a schedule\n"}},"type":"object","required":["gitProviderWebhook","githubWebhook","onMerge","schedule"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getPrivatelinkEndpointsEndpoint:getPrivatelinkEndpointsEndpoint":{"properties":{"cidrRange":{"type":"string","description":"CIDR range of the PrivateLink Endpoint\n"},"id":{"type":"string","description":"The internal ID of the PrivateLink Endpoint\n"},"name":{"type":"string","description":"Given descriptive name for the PrivateLink Endpoint\n"},"privateLinkEndpointUrl":{"type":"string","description":"URL of the PrivateLink Endpoint\n"},"type":{"type":"string","description":"Type of the PrivateLink Endpoint\n"}},"type":"object","required":["cidrRange","id","name","privateLinkEndpointUrl","type"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getProfilesProfile:getProfilesProfile":{"properties":{"connectionId":{"type":"integer","description":"The ID of the connection used by this profile\n"},"credentialsId":{"type":"integer","description":"The ID of the credentials used by this profile\n"},"extendedAttributesId":{"type":"integer","description":"The ID of the extended attributes for this profile\n"},"id":{"type":"string","description":"The ID of this resource. Contains the project ID and the profile ID.\n"},"key":{"type":"string","description":"Unique identifier for the profile\n"},"profileId":{"type":"integer","description":"The ID of the profile\n"},"projectId":{"type":"integer","description":"The project ID to which the profile belongs\n"}},"type":"object","required":["connectionId","credentialsId","extendedAttributesId","id","key","profileId","projectId"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getProjectProjectConnection:getProjectProjectConnection":{"properties":{"adapterVersion":{"type":"string","description":"Version of the adapter for the connection. Will tell what connection type it is\n"},"id":{"type":"integer","description":"Connection ID\n"},"name":{"type":"string","description":"Connection name\n"}},"type":"object","required":["adapterVersion","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getProjectRepository:getProjectRepository":{"properties":{"id":{"type":"integer","description":"Repository ID\n"},"pullRequestUrlTemplate":{"type":"string","description":"URL template for PRs\n"},"remoteUrl":{"type":"string","description":"URL of the git repo remote\n"}},"type":"object","required":["id","pullRequestUrlTemplate","remoteUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getProjectsProject:getProjectsProject":{"properties":{"createdAt":{"type":"string","description":"When the project was created\n"},"dbtProjectSubdirectory":{"type":"string","description":"Subdirectory for the dbt project inside the git repo\n"},"description":{"type":"string","description":"Project description\n"},"id":{"type":"integer","description":"Project ID\n"},"name":{"type":"string","description":"Project name\n"},"projectConnection":{"$ref":"#/types/dbtcloud:index/getProjectsProjectProjectConnection:getProjectsProjectProjectConnection","description":"Details for the connection linked to the project\n"},"repository":{"$ref":"#/types/dbtcloud:index/getProjectsProjectRepository:getProjectsProjectRepository","description":"Details for the repository linked to the project\n"},"semanticLayerConfigId":{"type":"integer","description":"Semantic layer config ID\n"},"type":{"type":"integer","description":"The type of dbt project (default or hybrid)\n"},"updatedAt":{"type":"string","description":"When the project was last updated\n"}},"type":"object","required":["createdAt","dbtProjectSubdirectory","description","id","name","projectConnection","repository","semanticLayerConfigId","type","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getProjectsProjectProjectConnection:getProjectsProjectProjectConnection":{"properties":{"adapterVersion":{"type":"string","description":"Version of the adapter for the connection. Will tell what connection type it is\n"},"id":{"type":"integer","description":"Connection ID\n"},"name":{"type":"string","description":"Connection name\n"}},"type":"object","required":["adapterVersion","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getProjectsProjectRepository:getProjectsProjectRepository":{"properties":{"id":{"type":"integer","description":"Repository ID\n"},"pullRequestUrlTemplate":{"type":"string","description":"URL template for PRs\n"},"remoteUrl":{"type":"string","description":"URL of the git repo remote\n"}},"type":"object","required":["id","pullRequestUrlTemplate","remoteUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getRunsFilter:getRunsFilter":{"properties":{"environmentId":{"type":"integer","description":"The ID of the environment\n"},"jobDefinitionId":{"type":"integer","description":"The ID of the job definition\n"},"limit":{"type":"integer","description":"The limit of the runs\n"},"projectId":{"type":"integer","description":"The ID of the project\n"},"pullRequestId":{"type":"integer","description":"The ID of the pull request\n"},"status":{"type":"integer","description":"The status of the run\n"},"statusIn":{"type":"string","description":"The status of the run\n"},"triggerId":{"type":"integer","description":"The ID of the trigger\n"}},"type":"object"},"dbtcloud:index/getRunsRun:getRunsRun":{"properties":{"accountId":{"type":"integer","description":"The ID of the account\n"},"cause":{"type":"string","description":"The cause of the run\n"},"gitBranch":{"type":"string","description":"The branch of the commit\n"},"gitSha":{"type":"string","description":"The SHA of the commit\n"},"githubPullRequestId":{"type":"string","description":"The ID of the pull request\n"},"id":{"type":"integer","description":"The ID of the run\n"},"jobId":{"type":"integer","description":"The ID of the job\n"},"schemaOverride":{"type":"string","description":"The schema override\n"}},"type":"object","required":["accountId","cause","gitBranch","gitSha","githubPullRequestId","id","jobId","schemaOverride"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getServiceTokenServiceTokenPermission:getServiceTokenServiceTokenPermission":{"properties":{"allProjects":{"type":"boolean","description":"Whether or not to apply this permission to all projects for this service token\n"},"permissionSet":{"type":"string","description":"Set of permissions to apply\n"},"projectId":{"type":"integer","description":"Project ID to apply this permission to for this service token\n"},"writableEnvironmentCategories":{"type":"array","items":{"type":"string"},"description":"What types of environments to apply Write permissions to.\nEven if Write access is restricted to some environment types, the permission set will have Read access to all environments.\nThe values allowed are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`development`\" pulumi-lang-dotnet=\"`Development`\" pulumi-lang-go=\"`development`\" pulumi-lang-python=\"`development`\" pulumi-lang-yaml=\"`development`\" pulumi-lang-java=\"`development`\"\u003e`development`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`production`\" pulumi-lang-dotnet=\"`Production`\" pulumi-lang-go=\"`production`\" pulumi-lang-python=\"`production`\" pulumi-lang-yaml=\"`production`\" pulumi-lang-java=\"`production`\"\u003e`production`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`other`\" pulumi-lang-dotnet=\"`Other`\" pulumi-lang-go=\"`other`\" pulumi-lang-python=\"`other`\" pulumi-lang-yaml=\"`other`\" pulumi-lang-java=\"`other`\"\u003e`other`\u003c/span\u003e.\nNot setting a value is the same as selecting \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\nNot all permission sets support environment level write settings, only \u003cspan pulumi-lang-nodejs=\"`analyst`\" pulumi-lang-dotnet=\"`Analyst`\" pulumi-lang-go=\"`analyst`\" pulumi-lang-python=\"`analyst`\" pulumi-lang-yaml=\"`analyst`\" pulumi-lang-java=\"`analyst`\"\u003e`analyst`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`databaseAdmin`\" pulumi-lang-dotnet=\"`DatabaseAdmin`\" pulumi-lang-go=\"`databaseAdmin`\" pulumi-lang-python=\"`database_admin`\" pulumi-lang-yaml=\"`databaseAdmin`\" pulumi-lang-java=\"`databaseAdmin`\"\u003e`database_admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`developer`\" pulumi-lang-dotnet=\"`Developer`\" pulumi-lang-go=\"`developer`\" pulumi-lang-python=\"`developer`\" pulumi-lang-yaml=\"`developer`\" pulumi-lang-java=\"`developer`\"\u003e`developer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gitAdmin`\" pulumi-lang-dotnet=\"`GitAdmin`\" pulumi-lang-go=\"`gitAdmin`\" pulumi-lang-python=\"`git_admin`\" pulumi-lang-yaml=\"`gitAdmin`\" pulumi-lang-java=\"`gitAdmin`\"\u003e`git_admin`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`teamAdmin`\" pulumi-lang-dotnet=\"`TeamAdmin`\" pulumi-lang-go=\"`teamAdmin`\" pulumi-lang-python=\"`team_admin`\" pulumi-lang-yaml=\"`teamAdmin`\" pulumi-lang-java=\"`teamAdmin`\"\u003e`team_admin`\u003c/span\u003e.\n"}},"type":"object","required":["allProjects","permissionSet","projectId","writableEnvironmentCategories"],"language":{"nodejs":{"requiredInputs":[]}}},"dbtcloud:index/getUsersUser:getUsersUser":{"properties":{"email":{"type":"string","description":"Email for the user\n"},"id":{"type":"integer","description":"ID of the user\n"}},"type":"object","required":["email","id"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the dbtcloud package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"accountId":{"type":"integer","description":"Account identifier for your dbt Cloud implementation. Instead of setting the parameter, you can set the environment variable `DBT_CLOUD_ACCOUNT_ID`"},"disableRetry":{"type":"boolean","description":"If set to true, the provider will not retry requests that fail due to rate limiting. Defaults to false."},"hostUrl":{"type":"string","description":"URL for your dbt Cloud deployment. Instead of setting the parameter, you can set the environment variable `DBT_CLOUD_HOST_URL` - Defaults to https://cloud.getdbt.com/api"},"maxRetries":{"type":"integer","description":"The maximum number of retries to attempt for requests that fail due to rate limiting. Defaults to 3 retries."},"retriableStatusCodes":{"type":"array","items":{"type":"string"},"description":"List of HTTP status codes that should be retried when encountered. Defaults to [429, 500, 502, 503, 504]."},"retryIntervalSeconds":{"type":"integer","description":"The number of seconds to wait before retrying a request that failed due to rate limiting. Defaults to 10 seconds."},"skipCredentialsValidation":{"type":"boolean","description":"If set to true, the provider will not validate credentials during initialization. This can be useful for testing and for dbt Cloud API implementations that do not have standard authentication available. Defaults to false."},"timeoutSeconds":{"type":"integer","description":"The timeout duration in seconds for HTTP requests to the dbt Cloud API. Defaults to 30 seconds."},"token":{"type":"string","description":"API token for your dbt Cloud. Instead of setting the parameter, you can set the environment variable `DBT_CLOUD_TOKEN`","secret":true}},"inputProperties":{"accountId":{"type":"integer","description":"Account identifier for your dbt Cloud implementation. Instead of setting the parameter, you can set the environment variable `DBT_CLOUD_ACCOUNT_ID`","defaultInfo":{"environment":["DBT_CLOUD_ACCOUNT_ID"]}},"disableRetry":{"type":"boolean","description":"If set to true, the provider will not retry requests that fail due to rate limiting. Defaults to false."},"hostUrl":{"type":"string","description":"URL for your dbt Cloud deployment. Instead of setting the parameter, you can set the environment variable `DBT_CLOUD_HOST_URL` - Defaults to https://cloud.getdbt.com/api","default":"https://cloud.getdbt.com/api","defaultInfo":{"environment":["DBT_CLOUD_HOST_URL"]}},"maxRetries":{"type":"integer","description":"The maximum number of retries to attempt for requests that fail due to rate limiting. Defaults to 3 retries."},"retriableStatusCodes":{"type":"array","items":{"type":"string"},"description":"List of HTTP status codes that should be retried when encountered. Defaults to [429, 500, 502, 503, 504]."},"retryIntervalSeconds":{"type":"integer","description":"The number of seconds to wait before retrying a request that failed due to rate limiting. Defaults to 10 seconds."},"skipCredentialsValidation":{"type":"boolean","description":"If set to true, the provider will not validate credentials during initialization. This can be useful for testing and for dbt Cloud API implementations that do not have standard authentication available. Defaults to false."},"timeoutSeconds":{"type":"integer","description":"The timeout duration in seconds for HTTP requests to the dbt Cloud API. Defaults to 30 seconds."},"token":{"type":"string","description":"API token for your dbt Cloud. Instead of setting the parameter, you can set the environment variable `DBT_CLOUD_TOKEN`","defaultInfo":{"environment":["DBT_CLOUD_TOKEN"]},"secret":true}},"methods":{"terraformConfig":"pulumi:providers:dbtcloud/terraformConfig"}},"resources":{"dbtcloud:index/accountFeatures:AccountFeatures":{"description":"Manages dbt Cloud global features at the account level, like Advanced CI. The same feature should not be configured in different resources to avoid conflicts.\n\nWhen destroying the resource or removing the value for an attribute, the features status will not be changed. Deactivating features will require applying them wih the value set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Manage account-level feature flags in dbt Cloud\nconst myFeatures = new dbtcloud.AccountFeatures(\"my_features\", {\n    advancedCi: true,\n    partialParsing: true,\n    repoCaching: true,\n    aiFeatures: true,\n    catalogIngestion: true,\n    explorerAccountUi: true,\n    fusionMigrationPermissions: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Manage account-level feature flags in dbt Cloud\nmy_features = dbtcloud.AccountFeatures(\"my_features\",\n    advanced_ci=True,\n    partial_parsing=True,\n    repo_caching=True,\n    ai_features=True,\n    catalog_ingestion=True,\n    explorer_account_ui=True,\n    fusion_migration_permissions=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Manage account-level feature flags in dbt Cloud\n    var myFeatures = new DbtCloud.AccountFeatures(\"my_features\", new()\n    {\n        AdvancedCi = true,\n        PartialParsing = true,\n        RepoCaching = true,\n        AiFeatures = true,\n        CatalogIngestion = true,\n        ExplorerAccountUi = true,\n        FusionMigrationPermissions = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Manage account-level feature flags in dbt Cloud\n\t\t_, err := dbtcloud.NewAccountFeatures(ctx, \"my_features\", \u0026dbtcloud.AccountFeaturesArgs{\n\t\t\tAdvancedCi:                 pulumi.Bool(true),\n\t\t\tPartialParsing:             pulumi.Bool(true),\n\t\t\tRepoCaching:                pulumi.Bool(true),\n\t\t\tAiFeatures:                 pulumi.Bool(true),\n\t\t\tCatalogIngestion:           pulumi.Bool(true),\n\t\t\tExplorerAccountUi:          pulumi.Bool(true),\n\t\t\tFusionMigrationPermissions: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.AccountFeatures;\nimport com.pulumi.dbtcloud.AccountFeaturesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Manage account-level feature flags in dbt Cloud\n        var myFeatures = new AccountFeatures(\"myFeatures\", AccountFeaturesArgs.builder()\n            .advancedCi(true)\n            .partialParsing(true)\n            .repoCaching(true)\n            .aiFeatures(true)\n            .catalogIngestion(true)\n            .explorerAccountUi(true)\n            .fusionMigrationPermissions(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Manage account-level feature flags in dbt Cloud\n  myFeatures:\n    type: dbtcloud:AccountFeatures\n    name: my_features\n    properties:\n      advancedCi: true\n      partialParsing: true\n      repoCaching: true # AI features\n      aiFeatures: true # Catalog/Explorer features\n      catalogIngestion: true\n      explorerAccountUi: true # Migration features\n      fusionMigrationPermissions: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"advancedCi":{"type":"boolean","description":"Whether advanced CI is enabled.\n"},"aiFeatures":{"type":"boolean","description":"Whether AI features are enabled.\n"},"catalogIngestion":{"type":"boolean","description":"Whether catalog ingestion (external metadata ingestion into Catalog/Explorer Enterprise) is enabled.\n"},"explorerAccountUi":{"type":"boolean","description":"Whether the new Catalog navigation UI is enabled (default true for new accounts).\n"},"fusionMigrationPermissions":{"type":"boolean","description":"Whether permissions for accounts migrating to Fusion are enabled.\n"},"partialParsing":{"type":"boolean","description":"Whether partial parsing is enabled.\n"},"repoCaching":{"type":"boolean","description":"Whether repository caching is enabled.\n"}},"required":["advancedCi","aiFeatures","catalogIngestion","explorerAccountUi","fusionMigrationPermissions","partialParsing","repoCaching"],"inputProperties":{"advancedCi":{"type":"boolean","description":"Whether advanced CI is enabled.\n"},"aiFeatures":{"type":"boolean","description":"Whether AI features are enabled.\n"},"catalogIngestion":{"type":"boolean","description":"Whether catalog ingestion (external metadata ingestion into Catalog/Explorer Enterprise) is enabled.\n"},"explorerAccountUi":{"type":"boolean","description":"Whether the new Catalog navigation UI is enabled (default true for new accounts).\n"},"fusionMigrationPermissions":{"type":"boolean","description":"Whether permissions for accounts migrating to Fusion are enabled.\n"},"partialParsing":{"type":"boolean","description":"Whether partial parsing is enabled.\n"},"repoCaching":{"type":"boolean","description":"Whether repository caching is enabled.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering AccountFeatures resources.\n","properties":{"advancedCi":{"type":"boolean","description":"Whether advanced CI is enabled.\n"},"aiFeatures":{"type":"boolean","description":"Whether AI features are enabled.\n"},"catalogIngestion":{"type":"boolean","description":"Whether catalog ingestion (external metadata ingestion into Catalog/Explorer Enterprise) is enabled.\n"},"explorerAccountUi":{"type":"boolean","description":"Whether the new Catalog navigation UI is enabled (default true for new accounts).\n"},"fusionMigrationPermissions":{"type":"boolean","description":"Whether permissions for accounts migrating to Fusion are enabled.\n"},"partialParsing":{"type":"boolean","description":"Whether partial parsing is enabled.\n"},"repoCaching":{"type":"boolean","description":"Whether repository caching is enabled.\n"}},"type":"object"}},"dbtcloud:index/athenaCredential:AthenaCredential":{"description":"Athena credential resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst example = new dbtcloud.AthenaCredential(\"example\", {\n    projectId: exampleDbtcloudProject.id,\n    awsAccessKeyId: \"your-access-key-id\",\n    awsSecretAccessKey: \"your-secret-access-key\",\n    schema: \"your_schema\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nexample = dbtcloud.AthenaCredential(\"example\",\n    project_id=example_dbtcloud_project[\"id\"],\n    aws_access_key_id=\"your-access-key-id\",\n    aws_secret_access_key=\"your-secret-access-key\",\n    schema=\"your_schema\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new DbtCloud.AthenaCredential(\"example\", new()\n    {\n        ProjectId = exampleDbtcloudProject.Id,\n        AwsAccessKeyId = \"your-access-key-id\",\n        AwsSecretAccessKey = \"your-secret-access-key\",\n        Schema = \"your_schema\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewAthenaCredential(ctx, \"example\", \u0026dbtcloud.AthenaCredentialArgs{\n\t\t\tProjectId:          pulumi.Any(exampleDbtcloudProject.Id),\n\t\t\tAwsAccessKeyId:     pulumi.String(\"your-access-key-id\"),\n\t\t\tAwsSecretAccessKey: pulumi.String(\"your-secret-access-key\"),\n\t\t\tSchema:             pulumi.String(\"your_schema\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.AthenaCredential;\nimport com.pulumi.dbtcloud.AthenaCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new AthenaCredential(\"example\", AthenaCredentialArgs.builder()\n            .projectId(exampleDbtcloudProject.id())\n            .awsAccessKeyId(\"your-access-key-id\")\n            .awsSecretAccessKey(\"your-secret-access-key\")\n            .schema(\"your_schema\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: dbtcloud:AthenaCredential\n    properties:\n      projectId: ${exampleDbtcloudProject.id}\n      awsAccessKeyId: your-access-key-id\n      awsSecretAccessKey: your-secret-access-key\n      schema: your_schema\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_athena_credential.my_athena_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_athena_credential.my_athena_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/athenaCredential:AthenaCredential my_athena_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/athenaCredential:AthenaCredential my_athena_credential 12345:6789\n```\n\n","properties":{"awsAccessKeyId":{"type":"string","description":"AWS access key ID for Athena user\n","secret":true},"awsSecretAccessKey":{"type":"string","description":"AWS secret access key for Athena user\n","secret":true},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"projectId":{"type":"integer","description":"Project ID to create the Athena credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"}},"required":["awsAccessKeyId","awsSecretAccessKey","credentialId","projectId","schema"],"inputProperties":{"awsAccessKeyId":{"type":"string","description":"AWS access key ID for Athena user\n","secret":true},"awsSecretAccessKey":{"type":"string","description":"AWS secret access key for Athena user\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Athena credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"}},"requiredInputs":["awsAccessKeyId","awsSecretAccessKey","projectId","schema"],"stateInputs":{"description":"Input properties used for looking up and filtering AthenaCredential resources.\n","properties":{"awsAccessKeyId":{"type":"string","description":"AWS access key ID for Athena user\n","secret":true},"awsSecretAccessKey":{"type":"string","description":"AWS secret access key for Athena user\n","secret":true},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"projectId":{"type":"integer","description":"Project ID to create the Athena credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"}},"type":"object"}},"dbtcloud:index/bigQueryCredential:BigQueryCredential":{"description":"Bigquery credential resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myCredential = new dbtcloud.BigQueryCredential(\"my_credential\", {\n    projectId: dbtProject.id,\n    dataset: \"my_bq_dataset\",\n    numThreads: 16,\n});\n// When using a global connection with use_latest_adapter = true,\n// provide the connection_id to automatically use the correct adapter version\nconst myCredentialV1 = new dbtcloud.BigQueryCredential(\"my_credential_v1\", {\n    projectId: dbtProject.id,\n    dataset: \"my_bq_dataset\",\n    numThreads: 16,\n    connectionId: myConnection.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_credential = dbtcloud.BigQueryCredential(\"my_credential\",\n    project_id=dbt_project[\"id\"],\n    dataset=\"my_bq_dataset\",\n    num_threads=16)\n# When using a global connection with use_latest_adapter = true,\n# provide the connection_id to automatically use the correct adapter version\nmy_credential_v1 = dbtcloud.BigQueryCredential(\"my_credential_v1\",\n    project_id=dbt_project[\"id\"],\n    dataset=\"my_bq_dataset\",\n    num_threads=16,\n    connection_id=my_connection[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCredential = new DbtCloud.BigQueryCredential(\"my_credential\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Dataset = \"my_bq_dataset\",\n        NumThreads = 16,\n    });\n\n    // When using a global connection with use_latest_adapter = true,\n    // provide the connection_id to automatically use the correct adapter version\n    var myCredentialV1 = new DbtCloud.BigQueryCredential(\"my_credential_v1\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Dataset = \"my_bq_dataset\",\n        NumThreads = 16,\n        ConnectionId = myConnection.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewBigQueryCredential(ctx, \"my_credential\", \u0026dbtcloud.BigQueryCredentialArgs{\n\t\t\tProjectId:  pulumi.Any(dbtProject.Id),\n\t\t\tDataset:    pulumi.String(\"my_bq_dataset\"),\n\t\t\tNumThreads: pulumi.Int(16),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// When using a global connection with use_latest_adapter = true,\n\t\t// provide the connection_id to automatically use the correct adapter version\n\t\t_, err = dbtcloud.NewBigQueryCredential(ctx, \"my_credential_v1\", \u0026dbtcloud.BigQueryCredentialArgs{\n\t\t\tProjectId:    pulumi.Any(dbtProject.Id),\n\t\t\tDataset:      pulumi.String(\"my_bq_dataset\"),\n\t\t\tNumThreads:   pulumi.Int(16),\n\t\t\tConnectionId: pulumi.Any(myConnection.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.BigQueryCredential;\nimport com.pulumi.dbtcloud.BigQueryCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCredential = new BigQueryCredential(\"myCredential\", BigQueryCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .dataset(\"my_bq_dataset\")\n            .numThreads(16)\n            .build());\n\n        // When using a global connection with use_latest_adapter = true,\n        // provide the connection_id to automatically use the correct adapter version\n        var myCredentialV1 = new BigQueryCredential(\"myCredentialV1\", BigQueryCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .dataset(\"my_bq_dataset\")\n            .numThreads(16)\n            .connectionId(myConnection.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCredential:\n    type: dbtcloud:BigQueryCredential\n    name: my_credential\n    properties:\n      projectId: ${dbtProject.id}\n      dataset: my_bq_dataset\n      numThreads: 16\n  # When using a global connection with use_latest_adapter = true,\n  # provide the connection_id to automatically use the correct adapter version\n  myCredentialV1:\n    type: dbtcloud:BigQueryCredential\n    name: my_credential_v1\n    properties:\n      projectId: ${dbtProject.id}\n      dataset: my_bq_dataset\n      numThreads: 16\n      connectionId: ${myConnection.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_bigquery_credential.my_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_bigquery_credential.my_credential\nid = \"12345:5678\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/bigQueryCredential:BigQueryCredential my_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/bigQueryCredential:BigQueryCredential my_credential 12345:5678\n```\n\n","properties":{"connectionId":{"type":"integer","description":"The ID of the global connection to use for this credential. When provided, the credential will automatically use the correct adapter version based on the connection's configuration (e.g., bigquery*v1 for connections with use*latest_adapter=true).\n"},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"dataset":{"type":"string","description":"Default dataset name\n"},"isActive":{"type":"boolean","description":"Whether the BigQuery credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"projectId":{"type":"integer","description":"Project ID to create the BigQuery credential in\n"}},"required":["credentialId","dataset","isActive","numThreads","projectId"],"inputProperties":{"connectionId":{"type":"integer","description":"The ID of the global connection to use for this credential. When provided, the credential will automatically use the correct adapter version based on the connection's configuration (e.g., bigquery*v1 for connections with use*latest_adapter=true).\n"},"dataset":{"type":"string","description":"Default dataset name\n"},"isActive":{"type":"boolean","description":"Whether the BigQuery credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"projectId":{"type":"integer","description":"Project ID to create the BigQuery credential in\n"}},"requiredInputs":["dataset","numThreads","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering BigQueryCredential resources.\n","properties":{"connectionId":{"type":"integer","description":"The ID of the global connection to use for this credential. When provided, the credential will automatically use the correct adapter version based on the connection's configuration (e.g., bigquery*v1 for connections with use*latest_adapter=true).\n"},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"dataset":{"type":"string","description":"Default dataset name\n"},"isActive":{"type":"boolean","description":"Whether the BigQuery credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"projectId":{"type":"integer","description":"Project ID to create the BigQuery credential in\n"}},"type":"object"}},"dbtcloud:index/bigquerySemanticLayerCredential:BigquerySemanticLayerCredential":{"description":"BigQuery credential resource. This resource is composed of a BigQuery credential and a Semantic Layer configuration. It is used to create a BigQuery credential for the Semantic Layer.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst example = new dbtcloud.BigquerySemanticLayerCredential(\"example\", {\n    configuration: {\n        projectId: projectId,\n        name: \"BigQuery SL Credential\",\n        adapterVersion: \"bigquery_v0\",\n    },\n    credential: {\n        projectId: projectId,\n        isActive: true,\n        numThreads: numThreads,\n        dataset: dataset,\n    },\n    privateKeyId: privateKeyId,\n    privateKey: privateKey,\n    clientEmail: clientEmail,\n    clientId: clientId,\n    authUri: authUri,\n    tokenUri: tokenUri,\n    authProviderX509CertUrl: authProviderX509CertUrl,\n    clientX509CertUrl: clientX509CertUrl,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nexample = dbtcloud.BigquerySemanticLayerCredential(\"example\",\n    configuration={\n        \"project_id\": project_id,\n        \"name\": \"BigQuery SL Credential\",\n        \"adapter_version\": \"bigquery_v0\",\n    },\n    credential={\n        \"project_id\": project_id,\n        \"is_active\": True,\n        \"num_threads\": num_threads,\n        \"dataset\": dataset,\n    },\n    private_key_id=private_key_id,\n    private_key=private_key,\n    client_email=client_email,\n    client_id=client_id,\n    auth_uri=auth_uri,\n    token_uri=token_uri,\n    auth_provider_x509_cert_url=auth_provider_x509_cert_url,\n    client_x509_cert_url=client_x509_cert_url)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new DbtCloud.BigquerySemanticLayerCredential(\"example\", new()\n    {\n        Configuration = new DbtCloud.Inputs.BigquerySemanticLayerCredentialConfigurationArgs\n        {\n            ProjectId = projectId,\n            Name = \"BigQuery SL Credential\",\n            AdapterVersion = \"bigquery_v0\",\n        },\n        Credential = new DbtCloud.Inputs.BigquerySemanticLayerCredentialCredentialArgs\n        {\n            ProjectId = projectId,\n            IsActive = true,\n            NumThreads = numThreads,\n            Dataset = dataset,\n        },\n        PrivateKeyId = privateKeyId,\n        PrivateKey = privateKey,\n        ClientEmail = clientEmail,\n        ClientId = clientId,\n        AuthUri = authUri,\n        TokenUri = tokenUri,\n        AuthProviderX509CertUrl = authProviderX509CertUrl,\n        ClientX509CertUrl = clientX509CertUrl,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewBigquerySemanticLayerCredential(ctx, \"example\", \u0026dbtcloud.BigquerySemanticLayerCredentialArgs{\n\t\t\tConfiguration: \u0026dbtcloud.BigquerySemanticLayerCredentialConfigurationArgs{\n\t\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\t\tName:           pulumi.String(\"BigQuery SL Credential\"),\n\t\t\t\tAdapterVersion: pulumi.String(\"bigquery_v0\"),\n\t\t\t},\n\t\t\tCredential: \u0026dbtcloud.BigquerySemanticLayerCredentialCredentialArgs{\n\t\t\t\tProjectId:  pulumi.Any(projectId),\n\t\t\t\tIsActive:   pulumi.Bool(true),\n\t\t\t\tNumThreads: pulumi.Any(numThreads),\n\t\t\t\tDataset:    pulumi.Any(dataset),\n\t\t\t},\n\t\t\tPrivateKeyId:            pulumi.Any(privateKeyId),\n\t\t\tPrivateKey:              pulumi.Any(privateKey),\n\t\t\tClientEmail:             pulumi.Any(clientEmail),\n\t\t\tClientId:                pulumi.Any(clientId),\n\t\t\tAuthUri:                 pulumi.Any(authUri),\n\t\t\tTokenUri:                pulumi.Any(tokenUri),\n\t\t\tAuthProviderX509CertUrl: pulumi.Any(authProviderX509CertUrl),\n\t\t\tClientX509CertUrl:       pulumi.Any(clientX509CertUrl),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.BigquerySemanticLayerCredential;\nimport com.pulumi.dbtcloud.BigquerySemanticLayerCredentialArgs;\nimport com.pulumi.dbtcloud.inputs.BigquerySemanticLayerCredentialConfigurationArgs;\nimport com.pulumi.dbtcloud.inputs.BigquerySemanticLayerCredentialCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new BigquerySemanticLayerCredential(\"example\", BigquerySemanticLayerCredentialArgs.builder()\n            .configuration(BigquerySemanticLayerCredentialConfigurationArgs.builder()\n                .projectId(projectId)\n                .name(\"BigQuery SL Credential\")\n                .adapterVersion(\"bigquery_v0\")\n                .build())\n            .credential(BigquerySemanticLayerCredentialCredentialArgs.builder()\n                .projectId(projectId)\n                .isActive(true)\n                .numThreads(numThreads)\n                .dataset(dataset)\n                .build())\n            .privateKeyId(privateKeyId)\n            .privateKey(privateKey)\n            .clientEmail(clientEmail)\n            .clientId(clientId)\n            .authUri(authUri)\n            .tokenUri(tokenUri)\n            .authProviderX509CertUrl(authProviderX509CertUrl)\n            .clientX509CertUrl(clientX509CertUrl)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: dbtcloud:BigquerySemanticLayerCredential\n    properties:\n      configuration:\n        projectId: ${projectId}\n        name: BigQuery SL Credential\n        adapterVersion: bigquery_v0\n      credential:\n        projectId: ${projectId}\n        isActive: true\n        numThreads: ${numThreads}\n        dataset: ${dataset}\n      privateKeyId: ${privateKeyId}\n      privateKey: ${privateKey}\n      clientEmail: ${clientEmail}\n      clientId: ${clientId}\n      authUri: ${authUri}\n      tokenUri: ${tokenUri}\n      authProviderX509CertUrl: ${authProviderX509CertUrl}\n      clientX509CertUrl: ${clientX509CertUrl}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"authProviderX509CertUrl":{"type":"string","description":"Auth Provider X509 Cert URL for the Service Account\n"},"authUri":{"type":"string","description":"Auth URI for the Service Account\n"},"clientEmail":{"type":"string","description":"Service Account email\n"},"clientId":{"type":"string","description":"Client ID of the Service Account\n"},"clientX509CertUrl":{"type":"string","description":"Client X509 Cert URL for the Service Account\n"},"configuration":{"$ref":"#/types/dbtcloud:index/BigquerySemanticLayerCredentialConfiguration:BigquerySemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/BigquerySemanticLayerCredentialCredential:BigquerySemanticLayerCredentialCredential","description":"BigQuery credential details, but used in the context of the Semantic Layer.\n"},"privateKey":{"type":"string","description":"Private Key for the Service Account\n","secret":true},"privateKeyId":{"type":"string","description":"Private Key ID for the Service Account\n"},"tokenUri":{"type":"string","description":"Token URI for the Service Account\n"}},"required":["authProviderX509CertUrl","authUri","clientEmail","clientId","clientX509CertUrl","configuration","credential","privateKey","privateKeyId","tokenUri"],"inputProperties":{"authProviderX509CertUrl":{"type":"string","description":"Auth Provider X509 Cert URL for the Service Account\n"},"authUri":{"type":"string","description":"Auth URI for the Service Account\n"},"clientEmail":{"type":"string","description":"Service Account email\n"},"clientId":{"type":"string","description":"Client ID of the Service Account\n"},"clientX509CertUrl":{"type":"string","description":"Client X509 Cert URL for the Service Account\n"},"configuration":{"$ref":"#/types/dbtcloud:index/BigquerySemanticLayerCredentialConfiguration:BigquerySemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/BigquerySemanticLayerCredentialCredential:BigquerySemanticLayerCredentialCredential","description":"BigQuery credential details, but used in the context of the Semantic Layer.\n"},"privateKey":{"type":"string","description":"Private Key for the Service Account\n","secret":true},"privateKeyId":{"type":"string","description":"Private Key ID for the Service Account\n"},"tokenUri":{"type":"string","description":"Token URI for the Service Account\n"}},"requiredInputs":["authProviderX509CertUrl","authUri","clientEmail","clientId","clientX509CertUrl","configuration","credential","privateKey","privateKeyId","tokenUri"],"stateInputs":{"description":"Input properties used for looking up and filtering BigquerySemanticLayerCredential resources.\n","properties":{"authProviderX509CertUrl":{"type":"string","description":"Auth Provider X509 Cert URL for the Service Account\n"},"authUri":{"type":"string","description":"Auth URI for the Service Account\n"},"clientEmail":{"type":"string","description":"Service Account email\n"},"clientId":{"type":"string","description":"Client ID of the Service Account\n"},"clientX509CertUrl":{"type":"string","description":"Client X509 Cert URL for the Service Account\n"},"configuration":{"$ref":"#/types/dbtcloud:index/BigquerySemanticLayerCredentialConfiguration:BigquerySemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/BigquerySemanticLayerCredentialCredential:BigquerySemanticLayerCredentialCredential","description":"BigQuery credential details, but used in the context of the Semantic Layer.\n"},"privateKey":{"type":"string","description":"Private Key for the Service Account\n","secret":true},"privateKeyId":{"type":"string","description":"Private Key ID for the Service Account\n"},"tokenUri":{"type":"string","description":"Token URI for the Service Account\n"}},"type":"object"}},"dbtcloud:index/connectionCatalogConfig:ConnectionCatalogConfig":{"description":"Manages catalog configuration filters for a dbt Cloud connection.\n\nThis resource configures what database objects (databases, schemas, tables, views) are included \nor excluded when ingesting metadata from your data warehouse. It works in conjunction with \nplatform metadata credentials to control what gets synchronized into dbt Cloud's catalog.\n\nEach filter type has an \"allow\" list (whitelist) and a \"deny\" list (blacklist):\n- If an allow list is set, only matching objects are included\n- If a deny list is set, matching objects are excluded\n- Deny takes precedence over allow\n- Patterns support wildcards (e.g., \"temp_*\")\n\n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e cannot be changed after creation. To use a different connection, \nyou must destroy and recreate the resource.\n\n\u003e **Note:** This resource requires a platform metadata credential to be configured for the connection.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Example: Configure catalog filters for a Snowflake connection\nconst snowflakeFilters = new dbtcloud.ConnectionCatalogConfig(\"snowflake_filters\", {\n    connectionId: snowflake.id,\n    databaseAllows: [\n        \"analytics\",\n        \"reporting\",\n    ],\n    schemaDenies: [\n        \"staging\",\n        \"temp\",\n        \"scratch\",\n    ],\n    tableDenies: [\n        \"tmp_*\",\n        \"temp_*\",\n    ],\n    viewDenies: [\n        \"secret_*\",\n        \"internal_*\",\n    ],\n});\n// Example: Minimal configuration - just filter databases\nconst minimal = new dbtcloud.ConnectionCatalogConfig(\"minimal\", {\n    connectionId: snowflake.id,\n    databaseAllows: [\"production\"],\n});\n// Example: Full configuration with platform metadata credential\nconst creds = new dbtcloud.SnowflakePlatformMetadataCredential(\"creds\", {\n    connectionId: snowflake.id,\n    catalogIngestionEnabled: true,\n    authType: \"password\",\n    user: snowflakeUser,\n    password: snowflakePassword,\n    role: snowflakeRole,\n    warehouse: snowflakeWarehouse,\n});\nconst withCreds = new dbtcloud.ConnectionCatalogConfig(\"with_creds\", {\n    connectionId: snowflake.id,\n    databaseAllows: [\n        \"analytics\",\n        \"reporting\",\n    ],\n    databaseDenies: [\"sandbox\"],\n    schemaAllows: [\n        \"public\",\n        \"dbt_*\",\n    ],\n    schemaDenies: [\n        \"information_schema\",\n        \"pg_*\",\n    ],\n    tableDenies: [\n        \"_tmp_*\",\n        \"_staging_*\",\n    ],\n    viewDenies: [\"_internal_*\"],\n}, {\n    dependsOn: [creds],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Example: Configure catalog filters for a Snowflake connection\nsnowflake_filters = dbtcloud.ConnectionCatalogConfig(\"snowflake_filters\",\n    connection_id=snowflake[\"id\"],\n    database_allows=[\n        \"analytics\",\n        \"reporting\",\n    ],\n    schema_denies=[\n        \"staging\",\n        \"temp\",\n        \"scratch\",\n    ],\n    table_denies=[\n        \"tmp_*\",\n        \"temp_*\",\n    ],\n    view_denies=[\n        \"secret_*\",\n        \"internal_*\",\n    ])\n# Example: Minimal configuration - just filter databases\nminimal = dbtcloud.ConnectionCatalogConfig(\"minimal\",\n    connection_id=snowflake[\"id\"],\n    database_allows=[\"production\"])\n# Example: Full configuration with platform metadata credential\ncreds = dbtcloud.SnowflakePlatformMetadataCredential(\"creds\",\n    connection_id=snowflake[\"id\"],\n    catalog_ingestion_enabled=True,\n    auth_type=\"password\",\n    user=snowflake_user,\n    password=snowflake_password,\n    role=snowflake_role,\n    warehouse=snowflake_warehouse)\nwith_creds = dbtcloud.ConnectionCatalogConfig(\"with_creds\",\n    connection_id=snowflake[\"id\"],\n    database_allows=[\n        \"analytics\",\n        \"reporting\",\n    ],\n    database_denies=[\"sandbox\"],\n    schema_allows=[\n        \"public\",\n        \"dbt_*\",\n    ],\n    schema_denies=[\n        \"information_schema\",\n        \"pg_*\",\n    ],\n    table_denies=[\n        \"_tmp_*\",\n        \"_staging_*\",\n    ],\n    view_denies=[\"_internal_*\"],\n    opts = pulumi.ResourceOptions(depends_on=[creds]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example: Configure catalog filters for a Snowflake connection\n    var snowflakeFilters = new DbtCloud.ConnectionCatalogConfig(\"snowflake_filters\", new()\n    {\n        ConnectionId = snowflake.Id,\n        DatabaseAllows = new[]\n        {\n            \"analytics\",\n            \"reporting\",\n        },\n        SchemaDenies = new[]\n        {\n            \"staging\",\n            \"temp\",\n            \"scratch\",\n        },\n        TableDenies = new[]\n        {\n            \"tmp_*\",\n            \"temp_*\",\n        },\n        ViewDenies = new[]\n        {\n            \"secret_*\",\n            \"internal_*\",\n        },\n    });\n\n    // Example: Minimal configuration - just filter databases\n    var minimal = new DbtCloud.ConnectionCatalogConfig(\"minimal\", new()\n    {\n        ConnectionId = snowflake.Id,\n        DatabaseAllows = new[]\n        {\n            \"production\",\n        },\n    });\n\n    // Example: Full configuration with platform metadata credential\n    var creds = new DbtCloud.SnowflakePlatformMetadataCredential(\"creds\", new()\n    {\n        ConnectionId = snowflake.Id,\n        CatalogIngestionEnabled = true,\n        AuthType = \"password\",\n        User = snowflakeUser,\n        Password = snowflakePassword,\n        Role = snowflakeRole,\n        Warehouse = snowflakeWarehouse,\n    });\n\n    var withCreds = new DbtCloud.ConnectionCatalogConfig(\"with_creds\", new()\n    {\n        ConnectionId = snowflake.Id,\n        DatabaseAllows = new[]\n        {\n            \"analytics\",\n            \"reporting\",\n        },\n        DatabaseDenies = new[]\n        {\n            \"sandbox\",\n        },\n        SchemaAllows = new[]\n        {\n            \"public\",\n            \"dbt_*\",\n        },\n        SchemaDenies = new[]\n        {\n            \"information_schema\",\n            \"pg_*\",\n        },\n        TableDenies = new[]\n        {\n            \"_tmp_*\",\n            \"_staging_*\",\n        },\n        ViewDenies = new[]\n        {\n            \"_internal_*\",\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            creds,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example: Configure catalog filters for a Snowflake connection\n\t\t_, err := dbtcloud.NewConnectionCatalogConfig(ctx, \"snowflake_filters\", \u0026dbtcloud.ConnectionCatalogConfigArgs{\n\t\t\tConnectionId: pulumi.Any(snowflake.Id),\n\t\t\tDatabaseAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"analytics\"),\n\t\t\t\tpulumi.String(\"reporting\"),\n\t\t\t},\n\t\t\tSchemaDenies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"staging\"),\n\t\t\t\tpulumi.String(\"temp\"),\n\t\t\t\tpulumi.String(\"scratch\"),\n\t\t\t},\n\t\t\tTableDenies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tmp_*\"),\n\t\t\t\tpulumi.String(\"temp_*\"),\n\t\t\t},\n\t\t\tViewDenies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"secret_*\"),\n\t\t\t\tpulumi.String(\"internal_*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example: Minimal configuration - just filter databases\n\t\t_, err = dbtcloud.NewConnectionCatalogConfig(ctx, \"minimal\", \u0026dbtcloud.ConnectionCatalogConfigArgs{\n\t\t\tConnectionId: pulumi.Any(snowflake.Id),\n\t\t\tDatabaseAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example: Full configuration with platform metadata credential\n\t\tcreds, err := dbtcloud.NewSnowflakePlatformMetadataCredential(ctx, \"creds\", \u0026dbtcloud.SnowflakePlatformMetadataCredentialArgs{\n\t\t\tConnectionId:            pulumi.Any(snowflake.Id),\n\t\t\tCatalogIngestionEnabled: pulumi.Bool(true),\n\t\t\tAuthType:                pulumi.String(\"password\"),\n\t\t\tUser:                    pulumi.Any(snowflakeUser),\n\t\t\tPassword:                pulumi.Any(snowflakePassword),\n\t\t\tRole:                    pulumi.Any(snowflakeRole),\n\t\t\tWarehouse:               pulumi.Any(snowflakeWarehouse),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewConnectionCatalogConfig(ctx, \"with_creds\", \u0026dbtcloud.ConnectionCatalogConfigArgs{\n\t\t\tConnectionId: pulumi.Any(snowflake.Id),\n\t\t\tDatabaseAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"analytics\"),\n\t\t\t\tpulumi.String(\"reporting\"),\n\t\t\t},\n\t\t\tDatabaseDenies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sandbox\"),\n\t\t\t},\n\t\t\tSchemaAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"public\"),\n\t\t\t\tpulumi.String(\"dbt_*\"),\n\t\t\t},\n\t\t\tSchemaDenies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"information_schema\"),\n\t\t\t\tpulumi.String(\"pg_*\"),\n\t\t\t},\n\t\t\tTableDenies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"_tmp_*\"),\n\t\t\t\tpulumi.String(\"_staging_*\"),\n\t\t\t},\n\t\t\tViewDenies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"_internal_*\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcreds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.ConnectionCatalogConfig;\nimport com.pulumi.dbtcloud.ConnectionCatalogConfigArgs;\nimport com.pulumi.dbtcloud.SnowflakePlatformMetadataCredential;\nimport com.pulumi.dbtcloud.SnowflakePlatformMetadataCredentialArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Example: Configure catalog filters for a Snowflake connection\n        var snowflakeFilters = new ConnectionCatalogConfig(\"snowflakeFilters\", ConnectionCatalogConfigArgs.builder()\n            .connectionId(snowflake.id())\n            .databaseAllows(            \n                \"analytics\",\n                \"reporting\")\n            .schemaDenies(            \n                \"staging\",\n                \"temp\",\n                \"scratch\")\n            .tableDenies(            \n                \"tmp_*\",\n                \"temp_*\")\n            .viewDenies(            \n                \"secret_*\",\n                \"internal_*\")\n            .build());\n\n        // Example: Minimal configuration - just filter databases\n        var minimal = new ConnectionCatalogConfig(\"minimal\", ConnectionCatalogConfigArgs.builder()\n            .connectionId(snowflake.id())\n            .databaseAllows(\"production\")\n            .build());\n\n        // Example: Full configuration with platform metadata credential\n        var creds = new SnowflakePlatformMetadataCredential(\"creds\", SnowflakePlatformMetadataCredentialArgs.builder()\n            .connectionId(snowflake.id())\n            .catalogIngestionEnabled(true)\n            .authType(\"password\")\n            .user(snowflakeUser)\n            .password(snowflakePassword)\n            .role(snowflakeRole)\n            .warehouse(snowflakeWarehouse)\n            .build());\n\n        var withCreds = new ConnectionCatalogConfig(\"withCreds\", ConnectionCatalogConfigArgs.builder()\n            .connectionId(snowflake.id())\n            .databaseAllows(            \n                \"analytics\",\n                \"reporting\")\n            .databaseDenies(\"sandbox\")\n            .schemaAllows(            \n                \"public\",\n                \"dbt_*\")\n            .schemaDenies(            \n                \"information_schema\",\n                \"pg_*\")\n            .tableDenies(            \n                \"_tmp_*\",\n                \"_staging_*\")\n            .viewDenies(\"_internal_*\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(creds)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Example: Configure catalog filters for a Snowflake connection\n  snowflakeFilters:\n    type: dbtcloud:ConnectionCatalogConfig\n    name: snowflake_filters\n    properties:\n      connectionId: ${snowflake.id}\n      databaseAllows:\n        - analytics\n        - reporting\n      schemaDenies:\n        - staging\n        - temp\n        - scratch\n      tableDenies:\n        - tmp_*\n        - temp_*\n      viewDenies:\n        - secret_*\n        - internal_*\n  # Example: Minimal configuration - just filter databases\n  minimal:\n    type: dbtcloud:ConnectionCatalogConfig\n    properties:\n      connectionId: ${snowflake.id}\n      databaseAllows:\n        - production\n  # Example: Full configuration with platform metadata credential\n  creds:\n    type: dbtcloud:SnowflakePlatformMetadataCredential\n    properties:\n      connectionId: ${snowflake.id}\n      catalogIngestionEnabled: true\n      authType: password\n      user: ${snowflakeUser}\n      password: ${snowflakePassword}\n      role: ${snowflakeRole}\n      warehouse: ${snowflakeWarehouse}\n  withCreds:\n    type: dbtcloud:ConnectionCatalogConfig\n    name: with_creds\n    properties:\n      connectionId: ${snowflake.id}\n      databaseAllows:\n        - analytics\n        - reporting\n      databaseDenies:\n        - sandbox\n      schemaAllows:\n        - public\n        - dbt_*\n      schemaDenies:\n        - information_schema\n        - pg_*\n      tableDenies:\n        - _tmp_*\n        - _staging_*\n      viewDenies:\n        - _internal_*\n    options:\n      dependsOn:\n        - ${creds}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"connectionId":{"type":"integer","description":"The ID of the global connection this catalog config is associated with. Cannot be changed after creation.\n"},"databaseAllows":{"type":"array","items":{"type":"string"},"description":"List of database names to include. Supports wildcards (e.g., 'analytics_*'). If set, only these databases are ingested.\n"},"databaseDenies":{"type":"array","items":{"type":"string"},"description":"List of database names to exclude. Supports wildcards (e.g., 'staging_*'). Matching databases are not ingested.\n"},"schemaAllows":{"type":"array","items":{"type":"string"},"description":"List of schema names to include. Supports wildcards (e.g., 'public_*'). If set, only these schemas are ingested.\n"},"schemaDenies":{"type":"array","items":{"type":"string"},"description":"List of schema names to exclude. Supports wildcards (e.g., 'temp_*'). Matching schemas are not ingested.\n"},"tableAllows":{"type":"array","items":{"type":"string"},"description":"List of table names to include. Supports wildcards (e.g., 'fact_*'). If set, only these tables are ingested.\n"},"tableDenies":{"type":"array","items":{"type":"string"},"description":"List of table names to exclude. Supports wildcards (e.g., 'tmp_*'). Matching tables are not ingested.\n"},"viewAllows":{"type":"array","items":{"type":"string"},"description":"List of view names to include. Supports wildcards (e.g., 'v_*'). If set, only these views are ingested.\n"},"viewDenies":{"type":"array","items":{"type":"string"},"description":"List of view names to exclude. Supports wildcards (e.g., 'secret_*'). Matching views are not ingested.\n"}},"required":["connectionId"],"inputProperties":{"connectionId":{"type":"integer","description":"The ID of the global connection this catalog config is associated with. Cannot be changed after creation.\n"},"databaseAllows":{"type":"array","items":{"type":"string"},"description":"List of database names to include. Supports wildcards (e.g., 'analytics_*'). If set, only these databases are ingested.\n"},"databaseDenies":{"type":"array","items":{"type":"string"},"description":"List of database names to exclude. Supports wildcards (e.g., 'staging_*'). Matching databases are not ingested.\n"},"schemaAllows":{"type":"array","items":{"type":"string"},"description":"List of schema names to include. Supports wildcards (e.g., 'public_*'). If set, only these schemas are ingested.\n"},"schemaDenies":{"type":"array","items":{"type":"string"},"description":"List of schema names to exclude. Supports wildcards (e.g., 'temp_*'). Matching schemas are not ingested.\n"},"tableAllows":{"type":"array","items":{"type":"string"},"description":"List of table names to include. Supports wildcards (e.g., 'fact_*'). If set, only these tables are ingested.\n"},"tableDenies":{"type":"array","items":{"type":"string"},"description":"List of table names to exclude. Supports wildcards (e.g., 'tmp_*'). Matching tables are not ingested.\n"},"viewAllows":{"type":"array","items":{"type":"string"},"description":"List of view names to include. Supports wildcards (e.g., 'v_*'). If set, only these views are ingested.\n"},"viewDenies":{"type":"array","items":{"type":"string"},"description":"List of view names to exclude. Supports wildcards (e.g., 'secret_*'). Matching views are not ingested.\n"}},"requiredInputs":["connectionId"],"stateInputs":{"description":"Input properties used for looking up and filtering ConnectionCatalogConfig resources.\n","properties":{"connectionId":{"type":"integer","description":"The ID of the global connection this catalog config is associated with. Cannot be changed after creation.\n"},"databaseAllows":{"type":"array","items":{"type":"string"},"description":"List of database names to include. Supports wildcards (e.g., 'analytics_*'). If set, only these databases are ingested.\n"},"databaseDenies":{"type":"array","items":{"type":"string"},"description":"List of database names to exclude. Supports wildcards (e.g., 'staging_*'). Matching databases are not ingested.\n"},"schemaAllows":{"type":"array","items":{"type":"string"},"description":"List of schema names to include. Supports wildcards (e.g., 'public_*'). If set, only these schemas are ingested.\n"},"schemaDenies":{"type":"array","items":{"type":"string"},"description":"List of schema names to exclude. Supports wildcards (e.g., 'temp_*'). Matching schemas are not ingested.\n"},"tableAllows":{"type":"array","items":{"type":"string"},"description":"List of table names to include. Supports wildcards (e.g., 'fact_*'). If set, only these tables are ingested.\n"},"tableDenies":{"type":"array","items":{"type":"string"},"description":"List of table names to exclude. Supports wildcards (e.g., 'tmp_*'). Matching tables are not ingested.\n"},"viewAllows":{"type":"array","items":{"type":"string"},"description":"List of view names to include. Supports wildcards (e.g., 'v_*'). If set, only these views are ingested.\n"},"viewDenies":{"type":"array","items":{"type":"string"},"description":"List of view names to exclude. Supports wildcards (e.g., 'secret_*'). Matching views are not ingested.\n"}},"type":"object"}},"dbtcloud:index/databricksCredential:DatabricksCredential":{"description":"Databricks credential resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myDatabricksCred = new dbtcloud.DatabricksCredential(\"my_databricks_cred\", {\n    projectId: dbtProject.id,\n    token: \"abcdefgh\",\n    schema: \"my_schema\",\n    adapterType: \"databricks\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_databricks_cred = dbtcloud.DatabricksCredential(\"my_databricks_cred\",\n    project_id=dbt_project[\"id\"],\n    token=\"abcdefgh\",\n    schema=\"my_schema\",\n    adapter_type=\"databricks\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myDatabricksCred = new DbtCloud.DatabricksCredential(\"my_databricks_cred\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Token = \"abcdefgh\",\n        Schema = \"my_schema\",\n        AdapterType = \"databricks\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewDatabricksCredential(ctx, \"my_databricks_cred\", \u0026dbtcloud.DatabricksCredentialArgs{\n\t\t\tProjectId:   pulumi.Any(dbtProject.Id),\n\t\t\tToken:       pulumi.String(\"abcdefgh\"),\n\t\t\tSchema:      pulumi.String(\"my_schema\"),\n\t\t\tAdapterType: pulumi.String(\"databricks\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DatabricksCredential;\nimport com.pulumi.dbtcloud.DatabricksCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myDatabricksCred = new DatabricksCredential(\"myDatabricksCred\", DatabricksCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .token(\"abcdefgh\")\n            .schema(\"my_schema\")\n            .adapterType(\"databricks\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myDatabricksCred:\n    type: dbtcloud:DatabricksCredential\n    name: my_databricks_cred\n    properties:\n      projectId: ${dbtProject.id}\n      token: abcdefgh\n      schema: my_schema\n      adapterType: databricks\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_databricks_credential.my_databricks_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_databricks_credential.my_databricks_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/databricksCredential:DatabricksCredential my_databricks_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/databricksCredential:DatabricksCredential my_databricks_credential 12345:6789\n```\n\n","properties":{"adapterType":{"type":"string","description":"The type of the adapter. 'spark' is deprecated, but still supported for backwards compatibility. For Spark, please use the spark*credential resource. Optional only when semantic*layer_credential is set to true; otherwise, this field is required.\n","deprecationMessage":"This field is deprecated and will be removed in a future release. Semantic Layer spark credentials are not supported yet, only databricks is supported."},"catalog":{"type":"string","description":"The catalog where to create models (only for the databricks adapter)\n"},"credentialId":{"type":"integer","description":"The system Databricks credential ID\n"},"projectId":{"type":"integer","description":"Project ID to create the Databricks credential in\n"},"schema":{"type":"string","description":"The schema where to create models. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Databricks credential for the Semantic Layer.\n"},"targetName":{"type":"string","description":"Target name\n","deprecationMessage":"This field is deprecated at the environment level (it was never possible to set it in the UI) and will be removed in a future release. Please remove it and set the target name at the job level or leverage environment variables."},"token":{"type":"string","description":"Token for Databricks user\n","secret":true}},"required":["adapterType","catalog","credentialId","projectId","schema","semanticLayerCredential","targetName","token"],"inputProperties":{"adapterType":{"type":"string","description":"The type of the adapter. 'spark' is deprecated, but still supported for backwards compatibility. For Spark, please use the spark*credential resource. Optional only when semantic*layer_credential is set to true; otherwise, this field is required.\n","deprecationMessage":"This field is deprecated and will be removed in a future release. Semantic Layer spark credentials are not supported yet, only databricks is supported."},"catalog":{"type":"string","description":"The catalog where to create models (only for the databricks adapter)\n"},"projectId":{"type":"integer","description":"Project ID to create the Databricks credential in\n"},"schema":{"type":"string","description":"The schema where to create models. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Databricks credential for the Semantic Layer.\n"},"targetName":{"type":"string","description":"Target name\n","deprecationMessage":"This field is deprecated at the environment level (it was never possible to set it in the UI) and will be removed in a future release. Please remove it and set the target name at the job level or leverage environment variables."},"token":{"type":"string","description":"Token for Databricks user\n","secret":true}},"requiredInputs":["projectId","token"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabricksCredential resources.\n","properties":{"adapterType":{"type":"string","description":"The type of the adapter. 'spark' is deprecated, but still supported for backwards compatibility. For Spark, please use the spark*credential resource. Optional only when semantic*layer_credential is set to true; otherwise, this field is required.\n","deprecationMessage":"This field is deprecated and will be removed in a future release. Semantic Layer spark credentials are not supported yet, only databricks is supported."},"catalog":{"type":"string","description":"The catalog where to create models (only for the databricks adapter)\n"},"credentialId":{"type":"integer","description":"The system Databricks credential ID\n"},"projectId":{"type":"integer","description":"Project ID to create the Databricks credential in\n"},"schema":{"type":"string","description":"The schema where to create models. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Databricks credential for the Semantic Layer.\n"},"targetName":{"type":"string","description":"Target name\n","deprecationMessage":"This field is deprecated at the environment level (it was never possible to set it in the UI) and will be removed in a future release. Please remove it and set the target name at the job level or leverage environment variables."},"token":{"type":"string","description":"Token for Databricks user\n","secret":true}},"type":"object"}},"dbtcloud:index/databricksPlatformMetadataCredential:DatabricksPlatformMetadataCredential":{"description":"Manages Databricks platform metadata credentials for external metadata ingestion in dbt Cloud.\n\nThis resource configures credentials that allow dbt Cloud to connect directly to your Databricks workspace \nto ingest metadata outside of normal dbt project runs. This enables features like:\n\n- **Catalog Ingestion**: Ingest metadata about tables/views not defined in dbt\n- **Cost Optimization**: Query warehouse cost and performance data\n- **Cost Insights**: Enhanced cost visibility and analysis\n\n\u003e **Note:** At least one of \u003cspan pulumi-lang-nodejs=\"`catalogIngestionEnabled`\" pulumi-lang-dotnet=\"`CatalogIngestionEnabled`\" pulumi-lang-go=\"`catalogIngestionEnabled`\" pulumi-lang-python=\"`catalog_ingestion_enabled`\" pulumi-lang-yaml=\"`catalogIngestionEnabled`\" pulumi-lang-java=\"`catalogIngestionEnabled`\"\u003e`catalog_ingestion_enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`costOptimizationEnabled`\" pulumi-lang-dotnet=\"`CostOptimizationEnabled`\" pulumi-lang-go=\"`costOptimizationEnabled`\" pulumi-lang-python=\"`cost_optimization_enabled`\" pulumi-lang-yaml=\"`costOptimizationEnabled`\" pulumi-lang-java=\"`costOptimizationEnabled`\"\u003e`cost_optimization_enabled`\u003c/span\u003e, or \n\u003cspan pulumi-lang-nodejs=\"`costInsightsEnabled`\" pulumi-lang-dotnet=\"`CostInsightsEnabled`\" pulumi-lang-go=\"`costInsightsEnabled`\" pulumi-lang-python=\"`cost_insights_enabled`\" pulumi-lang-yaml=\"`costInsightsEnabled`\" pulumi-lang-java=\"`costInsightsEnabled`\"\u003e`cost_insights_enabled`\u003c/span\u003e must be enabled for the credential to be usable.\n\n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e cannot be changed after creation. To use a different connection, \nyou must destroy and recreate the resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Example: Databricks Platform Metadata Credential\nconst example = new dbtcloud.DatabricksPlatformMetadataCredential(\"example\", {\n    connectionId: databricks.id,\n    catalogIngestionEnabled: true,\n    costOptimizationEnabled: false,\n    costInsightsEnabled: false,\n    token: databricksToken,\n    catalog: \"main\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Example: Databricks Platform Metadata Credential\nexample = dbtcloud.DatabricksPlatformMetadataCredential(\"example\",\n    connection_id=databricks[\"id\"],\n    catalog_ingestion_enabled=True,\n    cost_optimization_enabled=False,\n    cost_insights_enabled=False,\n    token=databricks_token,\n    catalog=\"main\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example: Databricks Platform Metadata Credential\n    var example = new DbtCloud.DatabricksPlatformMetadataCredential(\"example\", new()\n    {\n        ConnectionId = databricks.Id,\n        CatalogIngestionEnabled = true,\n        CostOptimizationEnabled = false,\n        CostInsightsEnabled = false,\n        Token = databricksToken,\n        Catalog = \"main\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example: Databricks Platform Metadata Credential\n\t\t_, err := dbtcloud.NewDatabricksPlatformMetadataCredential(ctx, \"example\", \u0026dbtcloud.DatabricksPlatformMetadataCredentialArgs{\n\t\t\tConnectionId:            pulumi.Any(databricks.Id),\n\t\t\tCatalogIngestionEnabled: pulumi.Bool(true),\n\t\t\tCostOptimizationEnabled: pulumi.Bool(false),\n\t\t\tCostInsightsEnabled:     pulumi.Bool(false),\n\t\t\tToken:                   pulumi.Any(databricksToken),\n\t\t\tCatalog:                 pulumi.String(\"main\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DatabricksPlatformMetadataCredential;\nimport com.pulumi.dbtcloud.DatabricksPlatformMetadataCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Example: Databricks Platform Metadata Credential\n        var example = new DatabricksPlatformMetadataCredential(\"example\", DatabricksPlatformMetadataCredentialArgs.builder()\n            .connectionId(databricks.id())\n            .catalogIngestionEnabled(true)\n            .costOptimizationEnabled(false)\n            .costInsightsEnabled(false)\n            .token(databricksToken)\n            .catalog(\"main\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Example: Databricks Platform Metadata Credential\n  example:\n    type: dbtcloud:DatabricksPlatformMetadataCredential\n    properties:\n      connectionId: ${databricks.id}\n      catalogIngestionEnabled: true\n      costOptimizationEnabled: false\n      costInsightsEnabled: false\n      token: ${databricksToken}\n      catalog: main\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"adapterVersion":{"type":"string","description":"The adapter version derived from the connection (e.g., 'snowflake*v0', 'databricks*v0'). This is read-only and determined by the connection.\n"},"catalog":{"type":"string","description":"The Unity Catalog name to use.\n"},"catalogIngestionEnabled":{"type":"boolean","description":"Whether catalog ingestion is enabled for this credential. When enabled, dbt Cloud will ingest metadata about tables, views, and other objects from your data warehouse.\n"},"connectionId":{"type":"integer","description":"The ID of the global connection this credential is associated with. Cannot be changed after creation.\n"},"costInsightsEnabled":{"type":"boolean","description":"Whether cost insights is enabled for this credential.\n"},"costOptimizationEnabled":{"type":"boolean","description":"Whether cost optimization data collection is enabled for this credential.\n"},"credentialId":{"type":"integer","description":"The ID of the platform metadata credential.\n"},"token":{"type":"string","description":"The Databricks personal access token.\n","secret":true}},"required":["adapterVersion","catalog","catalogIngestionEnabled","connectionId","costInsightsEnabled","costOptimizationEnabled","credentialId","token"],"inputProperties":{"catalog":{"type":"string","description":"The Unity Catalog name to use.\n"},"catalogIngestionEnabled":{"type":"boolean","description":"Whether catalog ingestion is enabled for this credential. When enabled, dbt Cloud will ingest metadata about tables, views, and other objects from your data warehouse.\n"},"connectionId":{"type":"integer","description":"The ID of the global connection this credential is associated with. Cannot be changed after creation.\n"},"costInsightsEnabled":{"type":"boolean","description":"Whether cost insights is enabled for this credential.\n"},"costOptimizationEnabled":{"type":"boolean","description":"Whether cost optimization data collection is enabled for this credential.\n"},"token":{"type":"string","description":"The Databricks personal access token.\n","secret":true}},"requiredInputs":["catalog","connectionId","token"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabricksPlatformMetadataCredential resources.\n","properties":{"adapterVersion":{"type":"string","description":"The adapter version derived from the connection (e.g., 'snowflake*v0', 'databricks*v0'). This is read-only and determined by the connection.\n"},"catalog":{"type":"string","description":"The Unity Catalog name to use.\n"},"catalogIngestionEnabled":{"type":"boolean","description":"Whether catalog ingestion is enabled for this credential. When enabled, dbt Cloud will ingest metadata about tables, views, and other objects from your data warehouse.\n"},"connectionId":{"type":"integer","description":"The ID of the global connection this credential is associated with. Cannot be changed after creation.\n"},"costInsightsEnabled":{"type":"boolean","description":"Whether cost insights is enabled for this credential.\n"},"costOptimizationEnabled":{"type":"boolean","description":"Whether cost optimization data collection is enabled for this credential.\n"},"credentialId":{"type":"integer","description":"The ID of the platform metadata credential.\n"},"token":{"type":"string","description":"The Databricks personal access token.\n","secret":true}},"type":"object"}},"dbtcloud:index/databricksSemanticLayerCredential:DatabricksSemanticLayerCredential":{"description":"Databricks credential resource. This resource is composed of a Databricks credential and a Semantic Layer configuration. It is used to create a Databricks credential for the Semantic Layer.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst slCredDatabricksExample = new dbtcloud.DatabricksSemanticLayerCredential(\"sl_cred_databricks_example\", {\n    configuration: {\n        projectId: projectId,\n        name: \"Databricks SL Credential\",\n        adapterVersion: \"databricks_v0\",\n    },\n    credential: {\n        projectId: projectId,\n        catalog: catalog,\n        token: token,\n        semanticLayerCredential: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nsl_cred_databricks_example = dbtcloud.DatabricksSemanticLayerCredential(\"sl_cred_databricks_example\",\n    configuration={\n        \"project_id\": project_id,\n        \"name\": \"Databricks SL Credential\",\n        \"adapter_version\": \"databricks_v0\",\n    },\n    credential={\n        \"project_id\": project_id,\n        \"catalog\": catalog,\n        \"token\": token,\n        \"semantic_layer_credential\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var slCredDatabricksExample = new DbtCloud.DatabricksSemanticLayerCredential(\"sl_cred_databricks_example\", new()\n    {\n        Configuration = new DbtCloud.Inputs.DatabricksSemanticLayerCredentialConfigurationArgs\n        {\n            ProjectId = projectId,\n            Name = \"Databricks SL Credential\",\n            AdapterVersion = \"databricks_v0\",\n        },\n        Credential = new DbtCloud.Inputs.DatabricksSemanticLayerCredentialCredentialArgs\n        {\n            ProjectId = projectId,\n            Catalog = catalog,\n            Token = token,\n            SemanticLayerCredential = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewDatabricksSemanticLayerCredential(ctx, \"sl_cred_databricks_example\", \u0026dbtcloud.DatabricksSemanticLayerCredentialArgs{\n\t\t\tConfiguration: \u0026dbtcloud.DatabricksSemanticLayerCredentialConfigurationArgs{\n\t\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\t\tName:           pulumi.String(\"Databricks SL Credential\"),\n\t\t\t\tAdapterVersion: pulumi.String(\"databricks_v0\"),\n\t\t\t},\n\t\t\tCredential: \u0026dbtcloud.DatabricksSemanticLayerCredentialCredentialArgs{\n\t\t\t\tProjectId:               pulumi.Any(projectId),\n\t\t\t\tCatalog:                 pulumi.Any(catalog),\n\t\t\t\tToken:                   pulumi.Any(token),\n\t\t\t\tSemanticLayerCredential: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DatabricksSemanticLayerCredential;\nimport com.pulumi.dbtcloud.DatabricksSemanticLayerCredentialArgs;\nimport com.pulumi.dbtcloud.inputs.DatabricksSemanticLayerCredentialConfigurationArgs;\nimport com.pulumi.dbtcloud.inputs.DatabricksSemanticLayerCredentialCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var slCredDatabricksExample = new DatabricksSemanticLayerCredential(\"slCredDatabricksExample\", DatabricksSemanticLayerCredentialArgs.builder()\n            .configuration(DatabricksSemanticLayerCredentialConfigurationArgs.builder()\n                .projectId(projectId)\n                .name(\"Databricks SL Credential\")\n                .adapterVersion(\"databricks_v0\")\n                .build())\n            .credential(DatabricksSemanticLayerCredentialCredentialArgs.builder()\n                .projectId(projectId)\n                .catalog(catalog)\n                .token(token)\n                .semanticLayerCredential(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  slCredDatabricksExample:\n    type: dbtcloud:DatabricksSemanticLayerCredential\n    name: sl_cred_databricks_example\n    properties:\n      configuration:\n        projectId: ${projectId}\n        name: Databricks SL Credential\n        adapterVersion: databricks_v0\n      credential:\n        projectId: ${projectId}\n        catalog: ${catalog}\n        token: ${token}\n        semanticLayerCredential: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_databricks_semantic_layer_credential.example\nid = \u003cspan pulumi-lang-nodejs=\"\"credentialId\"\" pulumi-lang-dotnet=\"\"CredentialId\"\" pulumi-lang-go=\"\"credentialId\"\" pulumi-lang-python=\"\"credential_id\"\" pulumi-lang-yaml=\"\"credentialId\"\" pulumi-lang-java=\"\"credentialId\"\"\u003e\"credential_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_databricks_semantic_layer_credential.example\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/databricksSemanticLayerCredential:DatabricksSemanticLayerCredential example \"credential_id\"\n$ pulumi import dbtcloud:index/databricksSemanticLayerCredential:DatabricksSemanticLayerCredential example 12345\n```\n\n","properties":{"configuration":{"$ref":"#/types/dbtcloud:index/DatabricksSemanticLayerCredentialConfiguration:DatabricksSemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/DatabricksSemanticLayerCredentialCredential:DatabricksSemanticLayerCredentialCredential","description":"Databricks credential details, but used in the context of the Semantic Layer.\n"}},"required":["configuration","credential"],"inputProperties":{"configuration":{"$ref":"#/types/dbtcloud:index/DatabricksSemanticLayerCredentialConfiguration:DatabricksSemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/DatabricksSemanticLayerCredentialCredential:DatabricksSemanticLayerCredentialCredential","description":"Databricks credential details, but used in the context of the Semantic Layer.\n"}},"requiredInputs":["configuration","credential"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabricksSemanticLayerCredential resources.\n","properties":{"configuration":{"$ref":"#/types/dbtcloud:index/DatabricksSemanticLayerCredentialConfiguration:DatabricksSemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/DatabricksSemanticLayerCredentialCredential:DatabricksSemanticLayerCredentialCredential","description":"Databricks credential details, but used in the context of the Semantic Layer.\n"}},"type":"object"}},"dbtcloud:index/environment:Environment":{"description":"Resource to manage dbt Cloud environments for the different dbt Cloud projects. In a given dbt Cloud project, one development environment can be defined and as many deployment environments as needed can be created. \u003e In August 2024, dbt Cloud released the \"global connection\" feature, allowing connections to be defined at the account level and reused across environments and projects. This version of the provider has the\u003cspan pulumi-lang-nodejs=\" connectionId \" pulumi-lang-dotnet=\" ConnectionId \" pulumi-lang-go=\" connectionId \" pulumi-lang-python=\" connection_id \" pulumi-lang-yaml=\" connectionId \" pulumi-lang-java=\" connectionId \"\u003e connection_id \u003c/span\u003eas an optional field but it is recommended to start setting it up in your projects. In future versions, this field will become mandatory.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst ciEnvironment = new dbtcloud.Environment(\"ci_environment\", {\n    dbtVersion: \"latest\",\n    name: \"CI\",\n    projectId: dbtProject.id,\n    type: \"deployment\",\n    credentialId: ciCredential.credentialId,\n    connectionId: myGlobalConnection.id,\n});\n// we can also set a deployment environment as being the production one\nconst prodEnvironment = new dbtcloud.Environment(\"prod_environment\", {\n    dbtVersion: \"1.7.0-latest\",\n    name: \"Prod\",\n    projectId: dbtProject.id,\n    type: \"deployment\",\n    credentialId: prodCredential.credentialId,\n    deploymentType: \"production\",\n    connectionId: myLegacyConnection.connectionId,\n});\n// Creating a development environment\nconst devEnvironment = new dbtcloud.Environment(\"dev_environment\", {\n    dbtVersion: \"latest\",\n    name: \"Dev\",\n    projectId: dbtProject.id,\n    type: \"development\",\n    connectionId: myOtherGlobalConnection.id,\n});\n// Deployment environment with a primary profile (binds connection + credentials via profile)\n// NOTE: avoid setting connection_id, credential_id, or extended_attributes_id alongside\n// primary_profile_id — dbt Cloud may propagate the environment's values onto the profile,\n// overwriting the profile's own settings and affecting other environments sharing that profile.\nconst profiledEnvironment = new dbtcloud.Environment(\"profiled_environment\", {\n    dbtVersion: \"latest\",\n    name: \"Staging\",\n    projectId: dbtProject.id,\n    type: \"deployment\",\n    deploymentType: \"staging\",\n    primaryProfileId: myProfile.profileId,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nci_environment = dbtcloud.Environment(\"ci_environment\",\n    dbt_version=\"latest\",\n    name=\"CI\",\n    project_id=dbt_project[\"id\"],\n    type=\"deployment\",\n    credential_id=ci_credential[\"credentialId\"],\n    connection_id=my_global_connection[\"id\"])\n# we can also set a deployment environment as being the production one\nprod_environment = dbtcloud.Environment(\"prod_environment\",\n    dbt_version=\"1.7.0-latest\",\n    name=\"Prod\",\n    project_id=dbt_project[\"id\"],\n    type=\"deployment\",\n    credential_id=prod_credential[\"credentialId\"],\n    deployment_type=\"production\",\n    connection_id=my_legacy_connection[\"connectionId\"])\n# Creating a development environment\ndev_environment = dbtcloud.Environment(\"dev_environment\",\n    dbt_version=\"latest\",\n    name=\"Dev\",\n    project_id=dbt_project[\"id\"],\n    type=\"development\",\n    connection_id=my_other_global_connection[\"id\"])\n# Deployment environment with a primary profile (binds connection + credentials via profile)\n# NOTE: avoid setting connection_id, credential_id, or extended_attributes_id alongside\n# primary_profile_id — dbt Cloud may propagate the environment's values onto the profile,\n# overwriting the profile's own settings and affecting other environments sharing that profile.\nprofiled_environment = dbtcloud.Environment(\"profiled_environment\",\n    dbt_version=\"latest\",\n    name=\"Staging\",\n    project_id=dbt_project[\"id\"],\n    type=\"deployment\",\n    deployment_type=\"staging\",\n    primary_profile_id=my_profile[\"profileId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ciEnvironment = new DbtCloud.Environment(\"ci_environment\", new()\n    {\n        DbtVersion = \"latest\",\n        Name = \"CI\",\n        ProjectId = dbtProject.Id,\n        Type = \"deployment\",\n        CredentialId = ciCredential.CredentialId,\n        ConnectionId = myGlobalConnection.Id,\n    });\n\n    // we can also set a deployment environment as being the production one\n    var prodEnvironment = new DbtCloud.Environment(\"prod_environment\", new()\n    {\n        DbtVersion = \"1.7.0-latest\",\n        Name = \"Prod\",\n        ProjectId = dbtProject.Id,\n        Type = \"deployment\",\n        CredentialId = prodCredential.CredentialId,\n        DeploymentType = \"production\",\n        ConnectionId = myLegacyConnection.ConnectionId,\n    });\n\n    // Creating a development environment\n    var devEnvironment = new DbtCloud.Environment(\"dev_environment\", new()\n    {\n        DbtVersion = \"latest\",\n        Name = \"Dev\",\n        ProjectId = dbtProject.Id,\n        Type = \"development\",\n        ConnectionId = myOtherGlobalConnection.Id,\n    });\n\n    // Deployment environment with a primary profile (binds connection + credentials via profile)\n    // NOTE: avoid setting connection_id, credential_id, or extended_attributes_id alongside\n    // primary_profile_id — dbt Cloud may propagate the environment's values onto the profile,\n    // overwriting the profile's own settings and affecting other environments sharing that profile.\n    var profiledEnvironment = new DbtCloud.Environment(\"profiled_environment\", new()\n    {\n        DbtVersion = \"latest\",\n        Name = \"Staging\",\n        ProjectId = dbtProject.Id,\n        Type = \"deployment\",\n        DeploymentType = \"staging\",\n        PrimaryProfileId = myProfile.ProfileId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewEnvironment(ctx, \"ci_environment\", \u0026dbtcloud.EnvironmentArgs{\n\t\t\tDbtVersion:   pulumi.String(\"latest\"),\n\t\t\tName:         pulumi.String(\"CI\"),\n\t\t\tProjectId:    pulumi.Any(dbtProject.Id),\n\t\t\tType:         pulumi.String(\"deployment\"),\n\t\t\tCredentialId: pulumi.Any(ciCredential.CredentialId),\n\t\t\tConnectionId: pulumi.Any(myGlobalConnection.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// we can also set a deployment environment as being the production one\n\t\t_, err = dbtcloud.NewEnvironment(ctx, \"prod_environment\", \u0026dbtcloud.EnvironmentArgs{\n\t\t\tDbtVersion:     pulumi.String(\"1.7.0-latest\"),\n\t\t\tName:           pulumi.String(\"Prod\"),\n\t\t\tProjectId:      pulumi.Any(dbtProject.Id),\n\t\t\tType:           pulumi.String(\"deployment\"),\n\t\t\tCredentialId:   pulumi.Any(prodCredential.CredentialId),\n\t\t\tDeploymentType: pulumi.String(\"production\"),\n\t\t\tConnectionId:   pulumi.Any(myLegacyConnection.ConnectionId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Creating a development environment\n\t\t_, err = dbtcloud.NewEnvironment(ctx, \"dev_environment\", \u0026dbtcloud.EnvironmentArgs{\n\t\t\tDbtVersion:   pulumi.String(\"latest\"),\n\t\t\tName:         pulumi.String(\"Dev\"),\n\t\t\tProjectId:    pulumi.Any(dbtProject.Id),\n\t\t\tType:         pulumi.String(\"development\"),\n\t\t\tConnectionId: pulumi.Any(myOtherGlobalConnection.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Deployment environment with a primary profile (binds connection + credentials via profile)\n\t\t// NOTE: avoid setting connection_id, credential_id, or extended_attributes_id alongside\n\t\t// primary_profile_id — dbt Cloud may propagate the environment's values onto the profile,\n\t\t// overwriting the profile's own settings and affecting other environments sharing that profile.\n\t\t_, err = dbtcloud.NewEnvironment(ctx, \"profiled_environment\", \u0026dbtcloud.EnvironmentArgs{\n\t\t\tDbtVersion:       pulumi.String(\"latest\"),\n\t\t\tName:             pulumi.String(\"Staging\"),\n\t\t\tProjectId:        pulumi.Any(dbtProject.Id),\n\t\t\tType:             pulumi.String(\"deployment\"),\n\t\t\tDeploymentType:   pulumi.String(\"staging\"),\n\t\t\tPrimaryProfileId: pulumi.Any(myProfile.ProfileId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.Environment;\nimport com.pulumi.dbtcloud.EnvironmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ciEnvironment = new Environment(\"ciEnvironment\", EnvironmentArgs.builder()\n            .dbtVersion(\"latest\")\n            .name(\"CI\")\n            .projectId(dbtProject.id())\n            .type(\"deployment\")\n            .credentialId(ciCredential.credentialId())\n            .connectionId(myGlobalConnection.id())\n            .build());\n\n        // we can also set a deployment environment as being the production one\n        var prodEnvironment = new Environment(\"prodEnvironment\", EnvironmentArgs.builder()\n            .dbtVersion(\"1.7.0-latest\")\n            .name(\"Prod\")\n            .projectId(dbtProject.id())\n            .type(\"deployment\")\n            .credentialId(prodCredential.credentialId())\n            .deploymentType(\"production\")\n            .connectionId(myLegacyConnection.connectionId())\n            .build());\n\n        // Creating a development environment\n        var devEnvironment = new Environment(\"devEnvironment\", EnvironmentArgs.builder()\n            .dbtVersion(\"latest\")\n            .name(\"Dev\")\n            .projectId(dbtProject.id())\n            .type(\"development\")\n            .connectionId(myOtherGlobalConnection.id())\n            .build());\n\n        // Deployment environment with a primary profile (binds connection + credentials via profile)\n        // NOTE: avoid setting connection_id, credential_id, or extended_attributes_id alongside\n        // primary_profile_id — dbt Cloud may propagate the environment's values onto the profile,\n        // overwriting the profile's own settings and affecting other environments sharing that profile.\n        var profiledEnvironment = new Environment(\"profiledEnvironment\", EnvironmentArgs.builder()\n            .dbtVersion(\"latest\")\n            .name(\"Staging\")\n            .projectId(dbtProject.id())\n            .type(\"deployment\")\n            .deploymentType(\"staging\")\n            .primaryProfileId(myProfile.profileId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ciEnvironment:\n    type: dbtcloud:Environment\n    name: ci_environment\n    properties:\n      dbtVersion: latest\n      name: CI\n      projectId: ${dbtProject.id}\n      type: deployment\n      credentialId: ${ciCredential.credentialId}\n      connectionId: ${myGlobalConnection.id}\n  # we can also set a deployment environment as being the production one\n  prodEnvironment:\n    type: dbtcloud:Environment\n    name: prod_environment\n    properties:\n      dbtVersion: 1.7.0-latest\n      name: Prod\n      projectId: ${dbtProject.id}\n      type: deployment\n      credentialId: ${prodCredential.credentialId}\n      deploymentType: production\n      connectionId: ${myLegacyConnection.connectionId}\n  # Creating a development environment\n  devEnvironment:\n    type: dbtcloud:Environment\n    name: dev_environment\n    properties:\n      dbtVersion: latest\n      name: Dev\n      projectId: ${dbtProject.id}\n      type: development\n      connectionId: ${myOtherGlobalConnection.id}\n  # Deployment environment with a primary profile (binds connection + credentials via profile)\n  # // NOTE: avoid setting connection_id, credential_id, or extended_attributes_id alongside\n  # // primary_profile_id — dbt Cloud may propagate the environment's values onto the profile,\n  # // overwriting the profile's own settings and affecting other environments sharing that profile.\n  profiledEnvironment:\n    type: dbtcloud:Environment\n    name: profiled_environment\n    properties:\n      dbtVersion: latest\n      name: Staging\n      projectId: ${dbtProject.id}\n      type: deployment\n      deploymentType: staging\n      primaryProfileId: ${myProfile.profileId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_environment.prod_environment\nid = \"project_id:environment_id\"\n}\n\nimport {\nto = dbtcloud_environment.prod_environment\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/environment:Environment prod_environment \"project_id:environment_id\"\n$ pulumi import dbtcloud:index/environment:Environment prod_environment 12345:6789\n```\n\n","properties":{"connectionId":{"type":"integer","description":"A connection ID (used with Global Connections)\n"},"credentialId":{"type":"integer","description":"The Credential ID for this environment. A credential is not actionable for development environments, as users have to set their own development credentials in dbt Cloud.\n"},"customBranch":{"type":"string","description":"The custom branch name to use\n"},"dbtVersion":{"type":"string","description":"Version number of dbt to use in this environment. It needs to be in the format `major.minor.0-latest` (e.g. `1.5.0-latest`), `major.minor.0-pre`, \u003cspan pulumi-lang-nodejs=\"`compatible`\" pulumi-lang-dotnet=\"`Compatible`\" pulumi-lang-go=\"`compatible`\" pulumi-lang-python=\"`compatible`\" pulumi-lang-yaml=\"`compatible`\" pulumi-lang-java=\"`compatible`\"\u003e`compatible`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`extended`\" pulumi-lang-dotnet=\"`Extended`\" pulumi-lang-go=\"`extended`\" pulumi-lang-python=\"`extended`\" pulumi-lang-yaml=\"`extended`\" pulumi-lang-java=\"`extended`\"\u003e`extended`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionless`\" pulumi-lang-dotnet=\"`Versionless`\" pulumi-lang-go=\"`versionless`\" pulumi-lang-python=\"`versionless`\" pulumi-lang-yaml=\"`versionless`\" pulumi-lang-java=\"`versionless`\"\u003e`versionless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e or `latest-fusion`. While \u003cspan pulumi-lang-nodejs=\"`versionless`\" pulumi-lang-dotnet=\"`Versionless`\" pulumi-lang-go=\"`versionless`\" pulumi-lang-python=\"`versionless`\" pulumi-lang-yaml=\"`versionless`\" pulumi-lang-java=\"`versionless`\"\u003e`versionless`\u003c/span\u003e is still supported, using \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e is recommended. Defaults to \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e if no version is provided\n"},"deploymentType":{"type":"string","description":"The type of environment. Only valid for environments of type 'deployment' and for now can only be 'production', 'staging' or left empty for generic environments\n"},"enableModelQueryHistory":{"type":"boolean","description":"Whether to enable model query history in this environment. As of Oct 2024, works only for Snowflake and BigQuery.\n"},"environmentId":{"type":"integer","description":"The ID of the environment. Duplicated. Here for backward compatibility.\n"},"extendedAttributesId":{"type":"integer","description":"The ID of the extended attributes applied\n"},"isActive":{"type":"boolean","description":"Whether the environment is active\n"},"name":{"type":"string","description":"The name of the environment\n"},"primaryProfileId":{"type":"integer","description":"The ID of the primary profile for this environment. A profile ties together a connection and credentials. Only applicable to deployment environments. \u003e Setting \u003cspan pulumi-lang-nodejs=\"`primaryProfileId`\" pulumi-lang-dotnet=\"`PrimaryProfileId`\" pulumi-lang-go=\"`primaryProfileId`\" pulumi-lang-python=\"`primary_profile_id`\" pulumi-lang-yaml=\"`primaryProfileId`\" pulumi-lang-java=\"`primaryProfileId`\"\u003e`primary_profile_id`\u003c/span\u003e alongside \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`credentialId`\" pulumi-lang-dotnet=\"`CredentialId`\" pulumi-lang-go=\"`credentialId`\" pulumi-lang-python=\"`credential_id`\" pulumi-lang-yaml=\"`credentialId`\" pulumi-lang-java=\"`credentialId`\"\u003e`credential_id`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`extendedAttributesId`\" pulumi-lang-dotnet=\"`ExtendedAttributesId`\" pulumi-lang-go=\"`extendedAttributesId`\" pulumi-lang-python=\"`extended_attributes_id`\" pulumi-lang-yaml=\"`extendedAttributesId`\" pulumi-lang-java=\"`extendedAttributesId`\"\u003e`extended_attributes_id`\u003c/span\u003e will produce an error. When a profile is assigned, the API determines those values from the profile. Manage connection, credentials, and extended attributes through the \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Profile`\" pulumi-lang-dotnet=\"`dbtcloud.Profile`\" pulumi-lang-go=\"`Profile`\" pulumi-lang-python=\"`Profile`\" pulumi-lang-yaml=\"`dbtcloud.Profile`\" pulumi-lang-java=\"`dbtcloud.Profile`\"\u003e`dbtcloud.Profile`\u003c/span\u003e resource instead.\n"},"projectId":{"type":"integer","description":"Project ID to create the environment in\n"},"type":{"type":"string","description":"The type of environment (must be either development or deployment)\n"},"useCustomBranch":{"type":"boolean","description":"Whether to use a custom git branch in this environment\n"}},"required":["connectionId","credentialId","dbtVersion","enableModelQueryHistory","environmentId","extendedAttributesId","isActive","name","primaryProfileId","projectId","type","useCustomBranch"],"inputProperties":{"connectionId":{"type":"integer","description":"A connection ID (used with Global Connections)\n"},"credentialId":{"type":"integer","description":"The Credential ID for this environment. A credential is not actionable for development environments, as users have to set their own development credentials in dbt Cloud.\n"},"customBranch":{"type":"string","description":"The custom branch name to use\n"},"dbtVersion":{"type":"string","description":"Version number of dbt to use in this environment. It needs to be in the format `major.minor.0-latest` (e.g. `1.5.0-latest`), `major.minor.0-pre`, \u003cspan pulumi-lang-nodejs=\"`compatible`\" pulumi-lang-dotnet=\"`Compatible`\" pulumi-lang-go=\"`compatible`\" pulumi-lang-python=\"`compatible`\" pulumi-lang-yaml=\"`compatible`\" pulumi-lang-java=\"`compatible`\"\u003e`compatible`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`extended`\" pulumi-lang-dotnet=\"`Extended`\" pulumi-lang-go=\"`extended`\" pulumi-lang-python=\"`extended`\" pulumi-lang-yaml=\"`extended`\" pulumi-lang-java=\"`extended`\"\u003e`extended`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionless`\" pulumi-lang-dotnet=\"`Versionless`\" pulumi-lang-go=\"`versionless`\" pulumi-lang-python=\"`versionless`\" pulumi-lang-yaml=\"`versionless`\" pulumi-lang-java=\"`versionless`\"\u003e`versionless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e or `latest-fusion`. While \u003cspan pulumi-lang-nodejs=\"`versionless`\" pulumi-lang-dotnet=\"`Versionless`\" pulumi-lang-go=\"`versionless`\" pulumi-lang-python=\"`versionless`\" pulumi-lang-yaml=\"`versionless`\" pulumi-lang-java=\"`versionless`\"\u003e`versionless`\u003c/span\u003e is still supported, using \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e is recommended. Defaults to \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e if no version is provided\n"},"deploymentType":{"type":"string","description":"The type of environment. Only valid for environments of type 'deployment' and for now can only be 'production', 'staging' or left empty for generic environments\n"},"enableModelQueryHistory":{"type":"boolean","description":"Whether to enable model query history in this environment. As of Oct 2024, works only for Snowflake and BigQuery.\n"},"extendedAttributesId":{"type":"integer","description":"The ID of the extended attributes applied\n"},"isActive":{"type":"boolean","description":"Whether the environment is active\n"},"name":{"type":"string","description":"The name of the environment\n"},"primaryProfileId":{"type":"integer","description":"The ID of the primary profile for this environment. A profile ties together a connection and credentials. Only applicable to deployment environments. \u003e Setting \u003cspan pulumi-lang-nodejs=\"`primaryProfileId`\" pulumi-lang-dotnet=\"`PrimaryProfileId`\" pulumi-lang-go=\"`primaryProfileId`\" pulumi-lang-python=\"`primary_profile_id`\" pulumi-lang-yaml=\"`primaryProfileId`\" pulumi-lang-java=\"`primaryProfileId`\"\u003e`primary_profile_id`\u003c/span\u003e alongside \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`credentialId`\" pulumi-lang-dotnet=\"`CredentialId`\" pulumi-lang-go=\"`credentialId`\" pulumi-lang-python=\"`credential_id`\" pulumi-lang-yaml=\"`credentialId`\" pulumi-lang-java=\"`credentialId`\"\u003e`credential_id`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`extendedAttributesId`\" pulumi-lang-dotnet=\"`ExtendedAttributesId`\" pulumi-lang-go=\"`extendedAttributesId`\" pulumi-lang-python=\"`extended_attributes_id`\" pulumi-lang-yaml=\"`extendedAttributesId`\" pulumi-lang-java=\"`extendedAttributesId`\"\u003e`extended_attributes_id`\u003c/span\u003e will produce an error. When a profile is assigned, the API determines those values from the profile. Manage connection, credentials, and extended attributes through the \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Profile`\" pulumi-lang-dotnet=\"`dbtcloud.Profile`\" pulumi-lang-go=\"`Profile`\" pulumi-lang-python=\"`Profile`\" pulumi-lang-yaml=\"`dbtcloud.Profile`\" pulumi-lang-java=\"`dbtcloud.Profile`\"\u003e`dbtcloud.Profile`\u003c/span\u003e resource instead.\n"},"projectId":{"type":"integer","description":"Project ID to create the environment in\n"},"type":{"type":"string","description":"The type of environment (must be either development or deployment)\n"},"useCustomBranch":{"type":"boolean","description":"Whether to use a custom git branch in this environment\n"}},"requiredInputs":["projectId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Environment resources.\n","properties":{"connectionId":{"type":"integer","description":"A connection ID (used with Global Connections)\n"},"credentialId":{"type":"integer","description":"The Credential ID for this environment. A credential is not actionable for development environments, as users have to set their own development credentials in dbt Cloud.\n"},"customBranch":{"type":"string","description":"The custom branch name to use\n"},"dbtVersion":{"type":"string","description":"Version number of dbt to use in this environment. It needs to be in the format `major.minor.0-latest` (e.g. `1.5.0-latest`), `major.minor.0-pre`, \u003cspan pulumi-lang-nodejs=\"`compatible`\" pulumi-lang-dotnet=\"`Compatible`\" pulumi-lang-go=\"`compatible`\" pulumi-lang-python=\"`compatible`\" pulumi-lang-yaml=\"`compatible`\" pulumi-lang-java=\"`compatible`\"\u003e`compatible`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`extended`\" pulumi-lang-dotnet=\"`Extended`\" pulumi-lang-go=\"`extended`\" pulumi-lang-python=\"`extended`\" pulumi-lang-yaml=\"`extended`\" pulumi-lang-java=\"`extended`\"\u003e`extended`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionless`\" pulumi-lang-dotnet=\"`Versionless`\" pulumi-lang-go=\"`versionless`\" pulumi-lang-python=\"`versionless`\" pulumi-lang-yaml=\"`versionless`\" pulumi-lang-java=\"`versionless`\"\u003e`versionless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e or `latest-fusion`. While \u003cspan pulumi-lang-nodejs=\"`versionless`\" pulumi-lang-dotnet=\"`Versionless`\" pulumi-lang-go=\"`versionless`\" pulumi-lang-python=\"`versionless`\" pulumi-lang-yaml=\"`versionless`\" pulumi-lang-java=\"`versionless`\"\u003e`versionless`\u003c/span\u003e is still supported, using \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e is recommended. Defaults to \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e if no version is provided\n"},"deploymentType":{"type":"string","description":"The type of environment. Only valid for environments of type 'deployment' and for now can only be 'production', 'staging' or left empty for generic environments\n"},"enableModelQueryHistory":{"type":"boolean","description":"Whether to enable model query history in this environment. As of Oct 2024, works only for Snowflake and BigQuery.\n"},"environmentId":{"type":"integer","description":"The ID of the environment. Duplicated. Here for backward compatibility.\n"},"extendedAttributesId":{"type":"integer","description":"The ID of the extended attributes applied\n"},"isActive":{"type":"boolean","description":"Whether the environment is active\n"},"name":{"type":"string","description":"The name of the environment\n"},"primaryProfileId":{"type":"integer","description":"The ID of the primary profile for this environment. A profile ties together a connection and credentials. Only applicable to deployment environments. \u003e Setting \u003cspan pulumi-lang-nodejs=\"`primaryProfileId`\" pulumi-lang-dotnet=\"`PrimaryProfileId`\" pulumi-lang-go=\"`primaryProfileId`\" pulumi-lang-python=\"`primary_profile_id`\" pulumi-lang-yaml=\"`primaryProfileId`\" pulumi-lang-java=\"`primaryProfileId`\"\u003e`primary_profile_id`\u003c/span\u003e alongside \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`credentialId`\" pulumi-lang-dotnet=\"`CredentialId`\" pulumi-lang-go=\"`credentialId`\" pulumi-lang-python=\"`credential_id`\" pulumi-lang-yaml=\"`credentialId`\" pulumi-lang-java=\"`credentialId`\"\u003e`credential_id`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`extendedAttributesId`\" pulumi-lang-dotnet=\"`ExtendedAttributesId`\" pulumi-lang-go=\"`extendedAttributesId`\" pulumi-lang-python=\"`extended_attributes_id`\" pulumi-lang-yaml=\"`extendedAttributesId`\" pulumi-lang-java=\"`extendedAttributesId`\"\u003e`extended_attributes_id`\u003c/span\u003e will produce an error. When a profile is assigned, the API determines those values from the profile. Manage connection, credentials, and extended attributes through the \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Profile`\" pulumi-lang-dotnet=\"`dbtcloud.Profile`\" pulumi-lang-go=\"`Profile`\" pulumi-lang-python=\"`Profile`\" pulumi-lang-yaml=\"`dbtcloud.Profile`\" pulumi-lang-java=\"`dbtcloud.Profile`\"\u003e`dbtcloud.Profile`\u003c/span\u003e resource instead.\n"},"projectId":{"type":"integer","description":"Project ID to create the environment in\n"},"type":{"type":"string","description":"The type of environment (must be either development or deployment)\n"},"useCustomBranch":{"type":"boolean","description":"Whether to use a custom git branch in this environment\n"}},"type":"object"}},"dbtcloud:index/environmentVariable:EnvironmentVariable":{"description":"*Note*: Some upstream resources can be slow to create, so if creating a project or environment at\nthe same time as the environment variables, it's recommended to use the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e meta argument.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst dbtMyEnvVar = new dbtcloud.EnvironmentVariable(\"dbt_my_env_var\", {\n    name: \"DBT_MY_ENV_VAR\",\n    projectId: dbtProject.id,\n    environmentValues: {\n        project: \"my_project_level_value\",\n        Dev: \"my_env_level_value\",\n        CI: \"my_ci_override_value\",\n        Prod: \"my_prod_override_value\",\n    },\n}, {\n    dependsOn: [\n        dbtProject,\n        devEnv,\n        ciEnv,\n        prodEnv,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ndbt_my_env_var = dbtcloud.EnvironmentVariable(\"dbt_my_env_var\",\n    name=\"DBT_MY_ENV_VAR\",\n    project_id=dbt_project[\"id\"],\n    environment_values={\n        \"project\": \"my_project_level_value\",\n        \"Dev\": \"my_env_level_value\",\n        \"CI\": \"my_ci_override_value\",\n        \"Prod\": \"my_prod_override_value\",\n    },\n    opts = pulumi.ResourceOptions(depends_on=[\n            dbt_project,\n            dev_env,\n            ci_env,\n            prod_env,\n        ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dbtMyEnvVar = new DbtCloud.EnvironmentVariable(\"dbt_my_env_var\", new()\n    {\n        Name = \"DBT_MY_ENV_VAR\",\n        ProjectId = dbtProject.Id,\n        EnvironmentValues = \n        {\n            { \"project\", \"my_project_level_value\" },\n            { \"Dev\", \"my_env_level_value\" },\n            { \"CI\", \"my_ci_override_value\" },\n            { \"Prod\", \"my_prod_override_value\" },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            dbtProject,\n            devEnv,\n            ciEnv,\n            prodEnv,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewEnvironmentVariable(ctx, \"dbt_my_env_var\", \u0026dbtcloud.EnvironmentVariableArgs{\n\t\t\tName:      pulumi.String(\"DBT_MY_ENV_VAR\"),\n\t\t\tProjectId: pulumi.Any(dbtProject.Id),\n\t\t\tEnvironmentValues: pulumi.StringMap{\n\t\t\t\t\"project\": pulumi.String(\"my_project_level_value\"),\n\t\t\t\t\"Dev\":     pulumi.String(\"my_env_level_value\"),\n\t\t\t\t\"CI\":      pulumi.String(\"my_ci_override_value\"),\n\t\t\t\t\"Prod\":    pulumi.String(\"my_prod_override_value\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdbtProject,\n\t\t\tdevEnv,\n\t\t\tciEnv,\n\t\t\tprodEnv,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.EnvironmentVariable;\nimport com.pulumi.dbtcloud.EnvironmentVariableArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dbtMyEnvVar = new EnvironmentVariable(\"dbtMyEnvVar\", EnvironmentVariableArgs.builder()\n            .name(\"DBT_MY_ENV_VAR\")\n            .projectId(dbtProject.id())\n            .environmentValues(Map.ofEntries(\n                Map.entry(\"project\", \"my_project_level_value\"),\n                Map.entry(\"Dev\", \"my_env_level_value\"),\n                Map.entry(\"CI\", \"my_ci_override_value\"),\n                Map.entry(\"Prod\", \"my_prod_override_value\")\n            ))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    dbtProject,\n                    devEnv,\n                    ciEnv,\n                    prodEnv)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dbtMyEnvVar:\n    type: dbtcloud:EnvironmentVariable\n    name: dbt_my_env_var\n    properties:\n      name: DBT_MY_ENV_VAR\n      projectId: ${dbtProject.id}\n      environmentValues:\n        project: my_project_level_value\n        Dev: my_env_level_value\n        CI: my_ci_override_value\n        Prod: my_prod_override_value\n    options:\n      dependsOn:\n        - ${dbtProject}\n        - ${devEnv}\n        - ${ciEnv}\n        - ${prodEnv}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_environment_variable.test_environment_variable\nid = \"project_id:environment_variable_name\"\n}\n\nimport {\nto = dbtcloud_environment_variable.test_environment_variable\nid = \"12345:DBT_ENV_VAR\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/environmentVariable:EnvironmentVariable test_environment_variable \"project_id:environment_variable_name\"\n$ pulumi import dbtcloud:index/environmentVariable:EnvironmentVariable test_environment_variable 12345:DBT_ENV_VAR\n```\n\n","properties":{"environmentValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Map from environment names to respective variable value, a special key \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e should be set for the project default variable value. This field is not set as sensitive so take precautions when using secret environment variables.\n"},"name":{"type":"string","description":"Name for the variable, must be unique within a project, must be prefixed with 'DBT_'\n"},"projectId":{"type":"integer","description":"Project ID to create the environment variable in\n"}},"required":["environmentValues","name","projectId"],"inputProperties":{"environmentValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Map from environment names to respective variable value, a special key \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e should be set for the project default variable value. This field is not set as sensitive so take precautions when using secret environment variables.\n"},"name":{"type":"string","description":"Name for the variable, must be unique within a project, must be prefixed with 'DBT_'\n"},"projectId":{"type":"integer","description":"Project ID to create the environment variable in\n"}},"requiredInputs":["environmentValues","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering EnvironmentVariable resources.\n","properties":{"environmentValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Map from environment names to respective variable value, a special key \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e should be set for the project default variable value. This field is not set as sensitive so take precautions when using secret environment variables.\n"},"name":{"type":"string","description":"Name for the variable, must be unique within a project, must be prefixed with 'DBT_'\n"},"projectId":{"type":"integer","description":"Project ID to create the environment variable in\n"}},"type":"object"}},"dbtcloud:index/environmentVariableJobOverride:EnvironmentVariableJobOverride":{"description":"Environment variable job override resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myEnvVarJobOverride = new dbtcloud.EnvironmentVariableJobOverride(\"my_env_var_job_override\", {\n    name: dbtMyEnvVar.name,\n    projectId: dbtProject.id,\n    jobDefinitionId: dailyJob.id,\n    rawValue: \"my_override_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_env_var_job_override = dbtcloud.EnvironmentVariableJobOverride(\"my_env_var_job_override\",\n    name=dbt_my_env_var[\"name\"],\n    project_id=dbt_project[\"id\"],\n    job_definition_id=daily_job[\"id\"],\n    raw_value=\"my_override_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myEnvVarJobOverride = new DbtCloud.EnvironmentVariableJobOverride(\"my_env_var_job_override\", new()\n    {\n        Name = dbtMyEnvVar.Name,\n        ProjectId = dbtProject.Id,\n        JobDefinitionId = dailyJob.Id,\n        RawValue = \"my_override_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewEnvironmentVariableJobOverride(ctx, \"my_env_var_job_override\", \u0026dbtcloud.EnvironmentVariableJobOverrideArgs{\n\t\t\tName:            pulumi.Any(dbtMyEnvVar.Name),\n\t\t\tProjectId:       pulumi.Any(dbtProject.Id),\n\t\t\tJobDefinitionId: pulumi.Any(dailyJob.Id),\n\t\t\tRawValue:        pulumi.String(\"my_override_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.EnvironmentVariableJobOverride;\nimport com.pulumi.dbtcloud.EnvironmentVariableJobOverrideArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myEnvVarJobOverride = new EnvironmentVariableJobOverride(\"myEnvVarJobOverride\", EnvironmentVariableJobOverrideArgs.builder()\n            .name(dbtMyEnvVar.name())\n            .projectId(dbtProject.id())\n            .jobDefinitionId(dailyJob.id())\n            .rawValue(\"my_override_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myEnvVarJobOverride:\n    type: dbtcloud:EnvironmentVariableJobOverride\n    name: my_env_var_job_override\n    properties:\n      name: ${dbtMyEnvVar.name}\n      projectId: ${dbtProject.id}\n      jobDefinitionId: ${dailyJob.id}\n      rawValue: my_override_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_environment_variable_job_override.test_environment_variable_job_override\nid = \"project_id:job_id:environment_variable_override_id\"\n}\n\nimport {\nto = dbtcloud_environment_variable_job_override.test_environment_variable_job_override\nid = \"12345:678:123456\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/environmentVariableJobOverride:EnvironmentVariableJobOverride test_environment_variable_job_override \"project_id:job_id:environment_variable_override_id\"\n$ pulumi import dbtcloud:index/environmentVariableJobOverride:EnvironmentVariableJobOverride test_environment_variable_job_override 12345:678:123456\n```\n\n","properties":{"accountId":{"type":"integer","description":"The account id\n"},"environmentVariableJobOverrideId":{"type":"integer","description":"The internal ID of this resource. Contains the project ID and the environment variable job override ID.\n"},"jobDefinitionId":{"type":"integer","description":"The job ID for which the environment variable is being overridden\n"},"name":{"type":"string","description":"The environment variable name to override\n"},"projectId":{"type":"integer","description":"Project ID to create the environment variable job override in\n"},"rawValue":{"type":"string","description":"The value for the override of the environment variable\n"}},"required":["accountId","environmentVariableJobOverrideId","jobDefinitionId","name","projectId","rawValue"],"inputProperties":{"jobDefinitionId":{"type":"integer","description":"The job ID for which the environment variable is being overridden\n"},"name":{"type":"string","description":"The environment variable name to override\n"},"projectId":{"type":"integer","description":"Project ID to create the environment variable job override in\n"},"rawValue":{"type":"string","description":"The value for the override of the environment variable\n"}},"requiredInputs":["jobDefinitionId","projectId","rawValue"],"stateInputs":{"description":"Input properties used for looking up and filtering EnvironmentVariableJobOverride resources.\n","properties":{"accountId":{"type":"integer","description":"The account id\n"},"environmentVariableJobOverrideId":{"type":"integer","description":"The internal ID of this resource. Contains the project ID and the environment variable job override ID.\n"},"jobDefinitionId":{"type":"integer","description":"The job ID for which the environment variable is being overridden\n"},"name":{"type":"string","description":"The environment variable name to override\n"},"projectId":{"type":"integer","description":"Project ID to create the environment variable job override in\n"},"rawValue":{"type":"string","description":"The value for the override of the environment variable\n"}},"type":"object"}},"dbtcloud:index/extendedAttributes:ExtendedAttributes":{"description":"Extended attributes resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// extended_attributes can be set as a raw JSON string or encoded with Terraform's `jsonencode()` function\n// we recommend using `jsonencode()` to avoid Terraform reporting changes due to whitespaces or keys ordering\nconst myAttributes = new dbtcloud.ExtendedAttributes(\"my_attributes\", {\n    extendedAttributes: JSON.stringify({\n        type: \"databricks\",\n        catalog: \"dbt_catalog\",\n        http_path: \"/sql/your/http/path\",\n        my_nested_field: {\n            subfield: \"my_value\",\n        },\n    }),\n    projectId: dbtProject.id,\n});\nconst issueDepl = new dbtcloud.Environment(\"issue_depl\", {\n    dbtVersion: \"latest\",\n    name: \"My environment\",\n    projectId: dbtProject.id,\n    type: \"deployment\",\n    useCustomBranch: false,\n    credentialId: dbtCredentialId,\n    deploymentType: \"production\",\n    extendedAttributesId: myAttributes.extendedAttributesId,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_dbtcloud as dbtcloud\n\n# extended_attributes can be set as a raw JSON string or encoded with Terraform's `jsonencode()` function\n# we recommend using `jsonencode()` to avoid Terraform reporting changes due to whitespaces or keys ordering\nmy_attributes = dbtcloud.ExtendedAttributes(\"my_attributes\",\n    extended_attributes=json.dumps({\n        \"type\": \"databricks\",\n        \"catalog\": \"dbt_catalog\",\n        \"http_path\": \"/sql/your/http/path\",\n        \"my_nested_field\": {\n            \"subfield\": \"my_value\",\n        },\n    }),\n    project_id=dbt_project[\"id\"])\nissue_depl = dbtcloud.Environment(\"issue_depl\",\n    dbt_version=\"latest\",\n    name=\"My environment\",\n    project_id=dbt_project[\"id\"],\n    type=\"deployment\",\n    use_custom_branch=False,\n    credential_id=dbt_credential_id,\n    deployment_type=\"production\",\n    extended_attributes_id=my_attributes.extended_attributes_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // extended_attributes can be set as a raw JSON string or encoded with Terraform's `jsonencode()` function\n    // we recommend using `jsonencode()` to avoid Terraform reporting changes due to whitespaces or keys ordering\n    var myAttributes = new DbtCloud.ExtendedAttributesDetails(\"my_attributes\", new()\n    {\n        ExtendedAttributes = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"type\"] = \"databricks\",\n            [\"catalog\"] = \"dbt_catalog\",\n            [\"http_path\"] = \"/sql/your/http/path\",\n            [\"my_nested_field\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"subfield\"] = \"my_value\",\n            },\n        }),\n        ProjectId = dbtProject.Id,\n    });\n\n    var issueDepl = new DbtCloud.Environment(\"issue_depl\", new()\n    {\n        DbtVersion = \"latest\",\n        Name = \"My environment\",\n        ProjectId = dbtProject.Id,\n        Type = \"deployment\",\n        UseCustomBranch = false,\n        CredentialId = dbtCredentialId,\n        DeploymentType = \"production\",\n        ExtendedAttributesId = myAttributes.ExtendedAttributesId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"type\":      \"databricks\",\n\t\t\t\"catalog\":   \"dbt_catalog\",\n\t\t\t\"http_path\": \"/sql/your/http/path\",\n\t\t\t\"my_nested_field\": map[string]interface{}{\n\t\t\t\t\"subfield\": \"my_value\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t// extended_attributes can be set as a raw JSON string or encoded with Terraform's `jsonencode()` function\n\t\t// we recommend using `jsonencode()` to avoid Terraform reporting changes due to whitespaces or keys ordering\n\t\tmyAttributes, err := dbtcloud.NewExtendedAttributes(ctx, \"my_attributes\", \u0026dbtcloud.ExtendedAttributesArgs{\n\t\t\tExtendedAttributes: pulumi.String(json0),\n\t\t\tProjectId:          pulumi.Any(dbtProject.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewEnvironment(ctx, \"issue_depl\", \u0026dbtcloud.EnvironmentArgs{\n\t\t\tDbtVersion:           pulumi.String(\"latest\"),\n\t\t\tName:                 pulumi.String(\"My environment\"),\n\t\t\tProjectId:            pulumi.Any(dbtProject.Id),\n\t\t\tType:                 pulumi.String(\"deployment\"),\n\t\t\tUseCustomBranch:      pulumi.Bool(false),\n\t\t\tCredentialId:         pulumi.Any(dbtCredentialId),\n\t\t\tDeploymentType:       pulumi.String(\"production\"),\n\t\t\tExtendedAttributesId: myAttributes.ExtendedAttributesId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.ExtendedAttributes;\nimport com.pulumi.dbtcloud.ExtendedAttributesArgs;\nimport com.pulumi.dbtcloud.Environment;\nimport com.pulumi.dbtcloud.EnvironmentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // extended_attributes can be set as a raw JSON string or encoded with Terraform's `jsonencode()` function\n        // we recommend using `jsonencode()` to avoid Terraform reporting changes due to whitespaces or keys ordering\n        var myAttributes = new ExtendedAttributes(\"myAttributes\", ExtendedAttributesArgs.builder()\n            .extendedAttributes(serializeJson(\n                jsonObject(\n                    jsonProperty(\"type\", \"databricks\"),\n                    jsonProperty(\"catalog\", \"dbt_catalog\"),\n                    jsonProperty(\"http_path\", \"/sql/your/http/path\"),\n                    jsonProperty(\"my_nested_field\", jsonObject(\n                        jsonProperty(\"subfield\", \"my_value\")\n                    ))\n                )))\n            .projectId(dbtProject.id())\n            .build());\n\n        var issueDepl = new Environment(\"issueDepl\", EnvironmentArgs.builder()\n            .dbtVersion(\"latest\")\n            .name(\"My environment\")\n            .projectId(dbtProject.id())\n            .type(\"deployment\")\n            .useCustomBranch(false)\n            .credentialId(dbtCredentialId)\n            .deploymentType(\"production\")\n            .extendedAttributesId(myAttributes.extendedAttributesId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # extended_attributes can be set as a raw JSON string or encoded with Terraform's `jsonencode()` function\n  # we recommend using `jsonencode()` to avoid Terraform reporting changes due to whitespaces or keys ordering\n  myAttributes:\n    type: dbtcloud:ExtendedAttributes\n    name: my_attributes\n    properties:\n      extendedAttributes:\n        fn::toJSON:\n          type: databricks\n          catalog: dbt_catalog\n          http_path: /sql/your/http/path\n          my_nested_field:\n            subfield: my_value\n      projectId: ${dbtProject.id}\n  issueDepl:\n    type: dbtcloud:Environment\n    name: issue_depl\n    properties:\n      dbtVersion: latest\n      name: My environment\n      projectId: ${dbtProject.id}\n      type: deployment\n      useCustomBranch: false\n      credentialId: ${dbtCredentialId}\n      deploymentType: production\n      extendedAttributesId: ${myAttributes.extendedAttributesId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_extended_attributes.test_extended_attributes\nid = \"project_id_id:extended_attributes_id\"\n}\n\nimport {\nto = dbtcloud_extended_attributes.test_extended_attributes\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/extendedAttributes:ExtendedAttributes test_extended_attributes \"project_id_id:extended_attributes_id\"\n$ pulumi import dbtcloud:index/extendedAttributes:ExtendedAttributes test_extended_attributes 12345:6789\n```\n\n","properties":{"extendedAttributes":{"type":"string","description":"A JSON string listing the extended attributes mapping. The keys are the connections attributes available in the `profiles.yml` for a given adapter. Any fields entered will override connection details or credentials set on the environment or project. To avoid incorrect Terraform diffs, it is recommended to create this string using \u003cspan pulumi-lang-nodejs=\"`jsonencode`\" pulumi-lang-dotnet=\"`Jsonencode`\" pulumi-lang-go=\"`jsonencode`\" pulumi-lang-python=\"`jsonencode`\" pulumi-lang-yaml=\"`jsonencode`\" pulumi-lang-java=\"`jsonencode`\"\u003e`jsonencode`\u003c/span\u003e in your Terraform code. (see example)\n"},"extendedAttributesId":{"type":"integer","description":"Extended attributes ID\n"},"projectId":{"type":"integer","description":"Project ID to create the extended attributes in\n"},"state":{"type":"integer","description":"The state of the extended attributes (1 = active, 2 = inactive)\n"}},"required":["extendedAttributes","extendedAttributesId","projectId","state"],"language":{"csharp":{"name":"ExtendedAttributesDetails"}},"inputProperties":{"extendedAttributes":{"type":"string","description":"A JSON string listing the extended attributes mapping. The keys are the connections attributes available in the `profiles.yml` for a given adapter. Any fields entered will override connection details or credentials set on the environment or project. To avoid incorrect Terraform diffs, it is recommended to create this string using \u003cspan pulumi-lang-nodejs=\"`jsonencode`\" pulumi-lang-dotnet=\"`Jsonencode`\" pulumi-lang-go=\"`jsonencode`\" pulumi-lang-python=\"`jsonencode`\" pulumi-lang-yaml=\"`jsonencode`\" pulumi-lang-java=\"`jsonencode`\"\u003e`jsonencode`\u003c/span\u003e in your Terraform code. (see example)\n"},"projectId":{"type":"integer","description":"Project ID to create the extended attributes in\n"},"state":{"type":"integer","description":"The state of the extended attributes (1 = active, 2 = inactive)\n"}},"requiredInputs":["extendedAttributes","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ExtendedAttributes resources.\n","properties":{"extendedAttributes":{"type":"string","description":"A JSON string listing the extended attributes mapping. The keys are the connections attributes available in the `profiles.yml` for a given adapter. Any fields entered will override connection details or credentials set on the environment or project. To avoid incorrect Terraform diffs, it is recommended to create this string using \u003cspan pulumi-lang-nodejs=\"`jsonencode`\" pulumi-lang-dotnet=\"`Jsonencode`\" pulumi-lang-go=\"`jsonencode`\" pulumi-lang-python=\"`jsonencode`\" pulumi-lang-yaml=\"`jsonencode`\" pulumi-lang-java=\"`jsonencode`\"\u003e`jsonencode`\u003c/span\u003e in your Terraform code. (see example)\n"},"extendedAttributesId":{"type":"integer","description":"Extended attributes ID\n"},"projectId":{"type":"integer","description":"Project ID to create the extended attributes in\n"},"state":{"type":"integer","description":"The state of the extended attributes (1 = active, 2 = inactive)\n"}},"type":"object"}},"dbtcloud:index/fabricCredential:FabricCredential":{"description":"Fabric credential resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// when using AD authentication\nconst myFabricCredAd = new dbtcloud.FabricCredential(\"my_fabric_cred_ad\", {\n    projectId: dbtProject.id,\n    schema: \"my_schema\",\n    user: \"my_user\",\n    password: \"my_password\",\n    schemaAuthorization: \"abcd\",\n});\n// when using service principal authentication\nconst myFabricCredServPrinc = new dbtcloud.FabricCredential(\"my_fabric_cred_serv_princ\", {\n    projectId: dbtProject.id,\n    schema: \"my_schema\",\n    clientId: \"my_client_id\",\n    tenantId: \"my_tenant_id\",\n    clientSecret: \"my_secret\",\n    schemaAuthorization: \"abcd\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# when using AD authentication\nmy_fabric_cred_ad = dbtcloud.FabricCredential(\"my_fabric_cred_ad\",\n    project_id=dbt_project[\"id\"],\n    schema=\"my_schema\",\n    user=\"my_user\",\n    password=\"my_password\",\n    schema_authorization=\"abcd\")\n# when using service principal authentication\nmy_fabric_cred_serv_princ = dbtcloud.FabricCredential(\"my_fabric_cred_serv_princ\",\n    project_id=dbt_project[\"id\"],\n    schema=\"my_schema\",\n    client_id=\"my_client_id\",\n    tenant_id=\"my_tenant_id\",\n    client_secret=\"my_secret\",\n    schema_authorization=\"abcd\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // when using AD authentication\n    var myFabricCredAd = new DbtCloud.FabricCredential(\"my_fabric_cred_ad\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Schema = \"my_schema\",\n        User = \"my_user\",\n        Password = \"my_password\",\n        SchemaAuthorization = \"abcd\",\n    });\n\n    // when using service principal authentication\n    var myFabricCredServPrinc = new DbtCloud.FabricCredential(\"my_fabric_cred_serv_princ\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Schema = \"my_schema\",\n        ClientId = \"my_client_id\",\n        TenantId = \"my_tenant_id\",\n        ClientSecret = \"my_secret\",\n        SchemaAuthorization = \"abcd\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// when using AD authentication\n\t\t_, err := dbtcloud.NewFabricCredential(ctx, \"my_fabric_cred_ad\", \u0026dbtcloud.FabricCredentialArgs{\n\t\t\tProjectId:           pulumi.Any(dbtProject.Id),\n\t\t\tSchema:              pulumi.String(\"my_schema\"),\n\t\t\tUser:                pulumi.String(\"my_user\"),\n\t\t\tPassword:            pulumi.String(\"my_password\"),\n\t\t\tSchemaAuthorization: pulumi.String(\"abcd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// when using service principal authentication\n\t\t_, err = dbtcloud.NewFabricCredential(ctx, \"my_fabric_cred_serv_princ\", \u0026dbtcloud.FabricCredentialArgs{\n\t\t\tProjectId:           pulumi.Any(dbtProject.Id),\n\t\t\tSchema:              pulumi.String(\"my_schema\"),\n\t\t\tClientId:            pulumi.String(\"my_client_id\"),\n\t\t\tTenantId:            pulumi.String(\"my_tenant_id\"),\n\t\t\tClientSecret:        pulumi.String(\"my_secret\"),\n\t\t\tSchemaAuthorization: pulumi.String(\"abcd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.FabricCredential;\nimport com.pulumi.dbtcloud.FabricCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // when using AD authentication\n        var myFabricCredAd = new FabricCredential(\"myFabricCredAd\", FabricCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .schema(\"my_schema\")\n            .user(\"my_user\")\n            .password(\"my_password\")\n            .schemaAuthorization(\"abcd\")\n            .build());\n\n        // when using service principal authentication\n        var myFabricCredServPrinc = new FabricCredential(\"myFabricCredServPrinc\", FabricCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .schema(\"my_schema\")\n            .clientId(\"my_client_id\")\n            .tenantId(\"my_tenant_id\")\n            .clientSecret(\"my_secret\")\n            .schemaAuthorization(\"abcd\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # when using AD authentication\n  myFabricCredAd:\n    type: dbtcloud:FabricCredential\n    name: my_fabric_cred_ad\n    properties:\n      projectId: ${dbtProject.id}\n      schema: my_schema\n      user: my_user\n      password: my_password\n      schemaAuthorization: abcd\n  # when using service principal authentication\n  myFabricCredServPrinc:\n    type: dbtcloud:FabricCredential\n    name: my_fabric_cred_serv_princ\n    properties:\n      projectId: ${dbtProject.id}\n      schema: my_schema\n      clientId: my_client_id\n      tenantId: my_tenant_id\n      clientSecret: my_secret\n      schemaAuthorization: abcd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_fabric_credential.my_fabric_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_fabric_credential.my_fabric_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/fabricCredential:FabricCredential my_fabric_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/fabricCredential:FabricCredential my_fabric_credential 12345:6789\n```\n\n","properties":{"adapterType":{"type":"string","description":"The type of the adapter (fabric)\n"},"clientId":{"type":"string","description":"The client ID of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n"},"clientSecret":{"type":"string","description":"The client secret of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n","secret":true},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"password":{"type":"string","description":"The password for the account to connect to. Only used when connection with AD user/pass\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Fabric credential in\n"},"schema":{"type":"string","description":"The schema where to create the dbt models\n"},"schemaAuthorization":{"type":"string","description":"Optionally set this to the principal who should own the schemas created by dbt\n"},"tenantId":{"type":"string","description":"The tenant ID of the Azure Active Directory instance. This is only used when connecting to Azure SQL with a service principal.\n"},"user":{"type":"string","description":"The username of the Fabric account to connect to. Only used when connection with AD user/pass\n"}},"required":["adapterType","clientId","clientSecret","credentialId","password","projectId","schema","schemaAuthorization","tenantId","user"],"inputProperties":{"adapterType":{"type":"string","description":"The type of the adapter (fabric)\n"},"clientId":{"type":"string","description":"The client ID of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n"},"clientSecret":{"type":"string","description":"The client secret of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n","secret":true},"password":{"type":"string","description":"The password for the account to connect to. Only used when connection with AD user/pass\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Fabric credential in\n"},"schema":{"type":"string","description":"The schema where to create the dbt models\n"},"schemaAuthorization":{"type":"string","description":"Optionally set this to the principal who should own the schemas created by dbt\n"},"tenantId":{"type":"string","description":"The tenant ID of the Azure Active Directory instance. This is only used when connecting to Azure SQL with a service principal.\n"},"user":{"type":"string","description":"The username of the Fabric account to connect to. Only used when connection with AD user/pass\n"}},"requiredInputs":["adapterType","projectId","schema"],"stateInputs":{"description":"Input properties used for looking up and filtering FabricCredential resources.\n","properties":{"adapterType":{"type":"string","description":"The type of the adapter (fabric)\n"},"clientId":{"type":"string","description":"The client ID of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n"},"clientSecret":{"type":"string","description":"The client secret of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n","secret":true},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"password":{"type":"string","description":"The password for the account to connect to. Only used when connection with AD user/pass\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Fabric credential in\n"},"schema":{"type":"string","description":"The schema where to create the dbt models\n"},"schemaAuthorization":{"type":"string","description":"Optionally set this to the principal who should own the schemas created by dbt\n"},"tenantId":{"type":"string","description":"The tenant ID of the Azure Active Directory instance. This is only used when connecting to Azure SQL with a service principal.\n"},"user":{"type":"string","description":"The username of the Fabric account to connect to. Only used when connection with AD user/pass\n"}},"type":"object"}},"dbtcloud:index/globalConnection:GlobalConnection":{"description":"This resource can be used to create global connections as introduced in dbt Cloud in August 2024.\n\nThose connections are not linked to a specific project and can be linked to environments from different projects by using the \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e field in the \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Environment`\" pulumi-lang-dotnet=\"`dbtcloud.Environment`\" pulumi-lang-go=\"`Environment`\" pulumi-lang-python=\"`Environment`\" pulumi-lang-yaml=\"`dbtcloud.Environment`\" pulumi-lang-java=\"`dbtcloud.Environment`\"\u003e`dbtcloud.Environment`\u003c/span\u003e resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst apacheSpark = new dbtcloud.GlobalConnection(\"apache_spark\", {\n    name: \"My Apache Spark connection\",\n    apacheSpark: {\n        method: \"http\",\n        host: \"my-spark-host.com\",\n        cluster: \"my-cluster\",\n        connectTimeout: 100,\n    },\n});\nconst athena = new dbtcloud.GlobalConnection(\"athena\", {\n    name: \"My Athena connection\",\n    athena: {\n        regionName: \"us-east-1\",\n        database: \"mydatabase\",\n        s3StagingDir: \"s3://my-bucket/my-staging-dir/\",\n        workGroup: \"my_work_group\",\n        s3DataDir: \"s3://my-bucket/my-data-dir/\",\n    },\n});\n// BigQuery connection with Service Account JSON authentication\nconst bigquery = new dbtcloud.GlobalConnection(\"bigquery\", {\n    name: \"My BigQuery connection\",\n    bigquery: {\n        gcpProjectId: \"my-gcp-project-id\",\n        timeoutSeconds: 1000,\n        privateKeyId: \"my-private-key-id\",\n        privateKey: \"ABCDEFGHIJKL\",\n        clientEmail: \"my_client_email\",\n        clientId: \"my_client_id\",\n        authUri: \"my_auth_uri\",\n        tokenUri: \"my_token_uri\",\n        authProviderX509CertUrl: \"my_auth_provider_x509_cert_url\",\n        clientX509CertUrl: \"my_client_x509_cert_url\",\n        deploymentEnvAuthType: \"service-account-json\",\n    },\n});\n// BigQuery connection with External OAuth (Workload Identity Federation)\n// TODO: Currently the API still requires service account fields even with external-oauth-wif\nconst bigqueryWif = new dbtcloud.GlobalConnection(\"bigquery_wif\", {\n    name: \"My BigQuery WIF connection\",\n    bigquery: {\n        gcpProjectId: \"my-gcp-project-id\",\n        applicationId: \"oauth_application_id\",\n        applicationSecret: \"oauth_secret_id\",\n        deploymentEnvAuthType: \"external-oauth-wif\",\n        privateKeyId: \"my-private-key-id\",\n        privateKey: \"ABCDEFGHIJKL\",\n        clientEmail: \"my_client_email\",\n        clientId: \"my_client_id\",\n        authUri: \"my_auth_uri\",\n        tokenUri: \"my_token_uri\",\n        authProviderX509CertUrl: \"my_auth_provider_x509_cert_url\",\n        clientX509CertUrl: \"my_client_x509_cert_url\",\n    },\n});\nconst databricks = new dbtcloud.GlobalConnection(\"databricks\", {\n    name: \"My Databricks connection\",\n    databricks: {\n        host: \"my-databricks-host.cloud.databricks.com\",\n        httpPath: \"/sql/my/http/path\",\n        catalog: \"dbt_catalog\",\n        clientId: \"yourclientid\",\n        clientSecret: \"yourclientsecret\",\n    },\n});\nconst fabric = new dbtcloud.GlobalConnection(\"fabric\", {\n    name: \"My Fabric connection\",\n    fabric: {\n        server: \"my-fabric-server.com\",\n        database: \"mydb\",\n        port: 1234,\n        retries: 3,\n        loginTimeout: 60,\n        queryTimeout: 3600,\n    },\n});\nconst postgres = new dbtcloud.GlobalConnection(\"postgres\", {\n    name: \"My PostgreSQL connection\",\n    postgres: {\n        hostname: \"my-postgresql-server.com\",\n        port: 5432,\n        dbname: \"my_database\",\n    },\n});\nconst redshift = new dbtcloud.GlobalConnection(\"redshift\", {\n    name: \"My Redshift connection\",\n    redshift: {\n        hostname: \"my-redshift-connection.com\",\n        port: 5432,\n        dbname: \"my_database\",\n    },\n});\nconst snowflake = new dbtcloud.GlobalConnection(\"snowflake\", {\n    name: \"My Snowflake connection\",\n    privateLinkEndpointId: myPrivateLink.id,\n    snowflake: {\n        account: \"my-snowflake-account\",\n        database: \"MY_DATABASE\",\n        warehouse: \"MY_WAREHOUSE\",\n        clientSessionKeepAlive: false,\n        allowSso: true,\n        oauthClientId: \"yourclientid\",\n        oauthClientSecret: \"yourclientsecret\",\n    },\n});\nconst starburst = new dbtcloud.GlobalConnection(\"starburst\", {\n    name: \"My Starburst connection\",\n    starburst: {\n        host: \"my-starburst-host.com\",\n        database: \"mydb\",\n    },\n});\nconst synapse = new dbtcloud.GlobalConnection(\"synapse\", {\n    name: \"My Synapse connection\",\n    synapse: {\n        host: \"my-synapse-server.com\",\n        database: \"mydb\",\n        port: 1234,\n        retries: 3,\n        loginTimeout: 60,\n        queryTimeout: 3600,\n    },\n});\nconst teradata = new dbtcloud.GlobalConnection(\"teradata\", {\n    name: \"My Teradata connection\",\n    teradata: {\n        host: \"my-teradata-server.com\",\n        tmode: \"ANSI\",\n        port: \"1234\",\n        requestTimeout: 600,\n        retries: 3,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\napache_spark = dbtcloud.GlobalConnection(\"apache_spark\",\n    name=\"My Apache Spark connection\",\n    apache_spark={\n        \"method\": \"http\",\n        \"host\": \"my-spark-host.com\",\n        \"cluster\": \"my-cluster\",\n        \"connect_timeout\": 100,\n    })\nathena = dbtcloud.GlobalConnection(\"athena\",\n    name=\"My Athena connection\",\n    athena={\n        \"region_name\": \"us-east-1\",\n        \"database\": \"mydatabase\",\n        \"s3_staging_dir\": \"s3://my-bucket/my-staging-dir/\",\n        \"work_group\": \"my_work_group\",\n        \"s3_data_dir\": \"s3://my-bucket/my-data-dir/\",\n    })\n# BigQuery connection with Service Account JSON authentication\nbigquery = dbtcloud.GlobalConnection(\"bigquery\",\n    name=\"My BigQuery connection\",\n    bigquery={\n        \"gcp_project_id\": \"my-gcp-project-id\",\n        \"timeout_seconds\": 1000,\n        \"private_key_id\": \"my-private-key-id\",\n        \"private_key\": \"ABCDEFGHIJKL\",\n        \"client_email\": \"my_client_email\",\n        \"client_id\": \"my_client_id\",\n        \"auth_uri\": \"my_auth_uri\",\n        \"token_uri\": \"my_token_uri\",\n        \"auth_provider_x509_cert_url\": \"my_auth_provider_x509_cert_url\",\n        \"client_x509_cert_url\": \"my_client_x509_cert_url\",\n        \"deployment_env_auth_type\": \"service-account-json\",\n    })\n# BigQuery connection with External OAuth (Workload Identity Federation)\n# TODO: Currently the API still requires service account fields even with external-oauth-wif\nbigquery_wif = dbtcloud.GlobalConnection(\"bigquery_wif\",\n    name=\"My BigQuery WIF connection\",\n    bigquery={\n        \"gcp_project_id\": \"my-gcp-project-id\",\n        \"application_id\": \"oauth_application_id\",\n        \"application_secret\": \"oauth_secret_id\",\n        \"deployment_env_auth_type\": \"external-oauth-wif\",\n        \"private_key_id\": \"my-private-key-id\",\n        \"private_key\": \"ABCDEFGHIJKL\",\n        \"client_email\": \"my_client_email\",\n        \"client_id\": \"my_client_id\",\n        \"auth_uri\": \"my_auth_uri\",\n        \"token_uri\": \"my_token_uri\",\n        \"auth_provider_x509_cert_url\": \"my_auth_provider_x509_cert_url\",\n        \"client_x509_cert_url\": \"my_client_x509_cert_url\",\n    })\ndatabricks = dbtcloud.GlobalConnection(\"databricks\",\n    name=\"My Databricks connection\",\n    databricks={\n        \"host\": \"my-databricks-host.cloud.databricks.com\",\n        \"http_path\": \"/sql/my/http/path\",\n        \"catalog\": \"dbt_catalog\",\n        \"client_id\": \"yourclientid\",\n        \"client_secret\": \"yourclientsecret\",\n    })\nfabric = dbtcloud.GlobalConnection(\"fabric\",\n    name=\"My Fabric connection\",\n    fabric={\n        \"server\": \"my-fabric-server.com\",\n        \"database\": \"mydb\",\n        \"port\": 1234,\n        \"retries\": 3,\n        \"login_timeout\": 60,\n        \"query_timeout\": 3600,\n    })\npostgres = dbtcloud.GlobalConnection(\"postgres\",\n    name=\"My PostgreSQL connection\",\n    postgres={\n        \"hostname\": \"my-postgresql-server.com\",\n        \"port\": 5432,\n        \"dbname\": \"my_database\",\n    })\nredshift = dbtcloud.GlobalConnection(\"redshift\",\n    name=\"My Redshift connection\",\n    redshift={\n        \"hostname\": \"my-redshift-connection.com\",\n        \"port\": 5432,\n        \"dbname\": \"my_database\",\n    })\nsnowflake = dbtcloud.GlobalConnection(\"snowflake\",\n    name=\"My Snowflake connection\",\n    private_link_endpoint_id=my_private_link[\"id\"],\n    snowflake={\n        \"account\": \"my-snowflake-account\",\n        \"database\": \"MY_DATABASE\",\n        \"warehouse\": \"MY_WAREHOUSE\",\n        \"client_session_keep_alive\": False,\n        \"allow_sso\": True,\n        \"oauth_client_id\": \"yourclientid\",\n        \"oauth_client_secret\": \"yourclientsecret\",\n    })\nstarburst = dbtcloud.GlobalConnection(\"starburst\",\n    name=\"My Starburst connection\",\n    starburst={\n        \"host\": \"my-starburst-host.com\",\n        \"database\": \"mydb\",\n    })\nsynapse = dbtcloud.GlobalConnection(\"synapse\",\n    name=\"My Synapse connection\",\n    synapse={\n        \"host\": \"my-synapse-server.com\",\n        \"database\": \"mydb\",\n        \"port\": 1234,\n        \"retries\": 3,\n        \"login_timeout\": 60,\n        \"query_timeout\": 3600,\n    })\nteradata = dbtcloud.GlobalConnection(\"teradata\",\n    name=\"My Teradata connection\",\n    teradata={\n        \"host\": \"my-teradata-server.com\",\n        \"tmode\": \"ANSI\",\n        \"port\": \"1234\",\n        \"request_timeout\": 600,\n        \"retries\": 3,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var apacheSpark = new DbtCloud.GlobalConnection(\"apache_spark\", new()\n    {\n        Name = \"My Apache Spark connection\",\n        ApacheSpark = new DbtCloud.Inputs.GlobalConnectionApacheSparkArgs\n        {\n            Method = \"http\",\n            Host = \"my-spark-host.com\",\n            Cluster = \"my-cluster\",\n            ConnectTimeout = 100,\n        },\n    });\n\n    var athena = new DbtCloud.GlobalConnection(\"athena\", new()\n    {\n        Name = \"My Athena connection\",\n        Athena = new DbtCloud.Inputs.GlobalConnectionAthenaArgs\n        {\n            RegionName = \"us-east-1\",\n            Database = \"mydatabase\",\n            S3StagingDir = \"s3://my-bucket/my-staging-dir/\",\n            WorkGroup = \"my_work_group\",\n            S3DataDir = \"s3://my-bucket/my-data-dir/\",\n        },\n    });\n\n    // BigQuery connection with Service Account JSON authentication\n    var bigquery = new DbtCloud.GlobalConnection(\"bigquery\", new()\n    {\n        Name = \"My BigQuery connection\",\n        Bigquery = new DbtCloud.Inputs.GlobalConnectionBigqueryArgs\n        {\n            GcpProjectId = \"my-gcp-project-id\",\n            TimeoutSeconds = 1000,\n            PrivateKeyId = \"my-private-key-id\",\n            PrivateKey = \"ABCDEFGHIJKL\",\n            ClientEmail = \"my_client_email\",\n            ClientId = \"my_client_id\",\n            AuthUri = \"my_auth_uri\",\n            TokenUri = \"my_token_uri\",\n            AuthProviderX509CertUrl = \"my_auth_provider_x509_cert_url\",\n            ClientX509CertUrl = \"my_client_x509_cert_url\",\n            DeploymentEnvAuthType = \"service-account-json\",\n        },\n    });\n\n    // BigQuery connection with External OAuth (Workload Identity Federation)\n    // TODO: Currently the API still requires service account fields even with external-oauth-wif\n    var bigqueryWif = new DbtCloud.GlobalConnection(\"bigquery_wif\", new()\n    {\n        Name = \"My BigQuery WIF connection\",\n        Bigquery = new DbtCloud.Inputs.GlobalConnectionBigqueryArgs\n        {\n            GcpProjectId = \"my-gcp-project-id\",\n            ApplicationId = \"oauth_application_id\",\n            ApplicationSecret = \"oauth_secret_id\",\n            DeploymentEnvAuthType = \"external-oauth-wif\",\n            PrivateKeyId = \"my-private-key-id\",\n            PrivateKey = \"ABCDEFGHIJKL\",\n            ClientEmail = \"my_client_email\",\n            ClientId = \"my_client_id\",\n            AuthUri = \"my_auth_uri\",\n            TokenUri = \"my_token_uri\",\n            AuthProviderX509CertUrl = \"my_auth_provider_x509_cert_url\",\n            ClientX509CertUrl = \"my_client_x509_cert_url\",\n        },\n    });\n\n    var databricks = new DbtCloud.GlobalConnection(\"databricks\", new()\n    {\n        Name = \"My Databricks connection\",\n        Databricks = new DbtCloud.Inputs.GlobalConnectionDatabricksArgs\n        {\n            Host = \"my-databricks-host.cloud.databricks.com\",\n            HttpPath = \"/sql/my/http/path\",\n            Catalog = \"dbt_catalog\",\n            ClientId = \"yourclientid\",\n            ClientSecret = \"yourclientsecret\",\n        },\n    });\n\n    var fabric = new DbtCloud.GlobalConnection(\"fabric\", new()\n    {\n        Name = \"My Fabric connection\",\n        Fabric = new DbtCloud.Inputs.GlobalConnectionFabricArgs\n        {\n            Server = \"my-fabric-server.com\",\n            Database = \"mydb\",\n            Port = 1234,\n            Retries = 3,\n            LoginTimeout = 60,\n            QueryTimeout = 3600,\n        },\n    });\n\n    var postgres = new DbtCloud.GlobalConnection(\"postgres\", new()\n    {\n        Name = \"My PostgreSQL connection\",\n        Postgres = new DbtCloud.Inputs.GlobalConnectionPostgresArgs\n        {\n            Hostname = \"my-postgresql-server.com\",\n            Port = 5432,\n            Dbname = \"my_database\",\n        },\n    });\n\n    var redshift = new DbtCloud.GlobalConnection(\"redshift\", new()\n    {\n        Name = \"My Redshift connection\",\n        Redshift = new DbtCloud.Inputs.GlobalConnectionRedshiftArgs\n        {\n            Hostname = \"my-redshift-connection.com\",\n            Port = 5432,\n            Dbname = \"my_database\",\n        },\n    });\n\n    var snowflake = new DbtCloud.GlobalConnection(\"snowflake\", new()\n    {\n        Name = \"My Snowflake connection\",\n        PrivateLinkEndpointId = myPrivateLink.Id,\n        Snowflake = new DbtCloud.Inputs.GlobalConnectionSnowflakeArgs\n        {\n            Account = \"my-snowflake-account\",\n            Database = \"MY_DATABASE\",\n            Warehouse = \"MY_WAREHOUSE\",\n            ClientSessionKeepAlive = false,\n            AllowSso = true,\n            OauthClientId = \"yourclientid\",\n            OauthClientSecret = \"yourclientsecret\",\n        },\n    });\n\n    var starburst = new DbtCloud.GlobalConnection(\"starburst\", new()\n    {\n        Name = \"My Starburst connection\",\n        Starburst = new DbtCloud.Inputs.GlobalConnectionStarburstArgs\n        {\n            Host = \"my-starburst-host.com\",\n            Database = \"mydb\",\n        },\n    });\n\n    var synapse = new DbtCloud.GlobalConnection(\"synapse\", new()\n    {\n        Name = \"My Synapse connection\",\n        Synapse = new DbtCloud.Inputs.GlobalConnectionSynapseArgs\n        {\n            Host = \"my-synapse-server.com\",\n            Database = \"mydb\",\n            Port = 1234,\n            Retries = 3,\n            LoginTimeout = 60,\n            QueryTimeout = 3600,\n        },\n    });\n\n    var teradata = new DbtCloud.GlobalConnection(\"teradata\", new()\n    {\n        Name = \"My Teradata connection\",\n        Teradata = new DbtCloud.Inputs.GlobalConnectionTeradataArgs\n        {\n            Host = \"my-teradata-server.com\",\n            Tmode = \"ANSI\",\n            Port = \"1234\",\n            RequestTimeout = 600,\n            Retries = 3,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewGlobalConnection(ctx, \"apache_spark\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My Apache Spark connection\"),\n\t\t\tApacheSpark: \u0026dbtcloud.GlobalConnectionApacheSparkArgs{\n\t\t\t\tMethod:         pulumi.String(\"http\"),\n\t\t\t\tHost:           pulumi.String(\"my-spark-host.com\"),\n\t\t\t\tCluster:        pulumi.String(\"my-cluster\"),\n\t\t\t\tConnectTimeout: pulumi.Int(100),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"athena\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My Athena connection\"),\n\t\t\tAthena: \u0026dbtcloud.GlobalConnectionAthenaArgs{\n\t\t\t\tRegionName:   pulumi.String(\"us-east-1\"),\n\t\t\t\tDatabase:     pulumi.String(\"mydatabase\"),\n\t\t\t\tS3StagingDir: pulumi.String(\"s3://my-bucket/my-staging-dir/\"),\n\t\t\t\tWorkGroup:    pulumi.String(\"my_work_group\"),\n\t\t\t\tS3DataDir:    pulumi.String(\"s3://my-bucket/my-data-dir/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// BigQuery connection with Service Account JSON authentication\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"bigquery\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My BigQuery connection\"),\n\t\t\tBigquery: \u0026dbtcloud.GlobalConnectionBigqueryArgs{\n\t\t\t\tGcpProjectId:            pulumi.String(\"my-gcp-project-id\"),\n\t\t\t\tTimeoutSeconds:          pulumi.Int(1000),\n\t\t\t\tPrivateKeyId:            pulumi.String(\"my-private-key-id\"),\n\t\t\t\tPrivateKey:              pulumi.String(\"ABCDEFGHIJKL\"),\n\t\t\t\tClientEmail:             pulumi.String(\"my_client_email\"),\n\t\t\t\tClientId:                pulumi.String(\"my_client_id\"),\n\t\t\t\tAuthUri:                 pulumi.String(\"my_auth_uri\"),\n\t\t\t\tTokenUri:                pulumi.String(\"my_token_uri\"),\n\t\t\t\tAuthProviderX509CertUrl: pulumi.String(\"my_auth_provider_x509_cert_url\"),\n\t\t\t\tClientX509CertUrl:       pulumi.String(\"my_client_x509_cert_url\"),\n\t\t\t\tDeploymentEnvAuthType:   pulumi.String(\"service-account-json\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// BigQuery connection with External OAuth (Workload Identity Federation)\n\t\t// TODO: Currently the API still requires service account fields even with external-oauth-wif\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"bigquery_wif\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My BigQuery WIF connection\"),\n\t\t\tBigquery: \u0026dbtcloud.GlobalConnectionBigqueryArgs{\n\t\t\t\tGcpProjectId:            pulumi.String(\"my-gcp-project-id\"),\n\t\t\t\tApplicationId:           pulumi.String(\"oauth_application_id\"),\n\t\t\t\tApplicationSecret:       pulumi.String(\"oauth_secret_id\"),\n\t\t\t\tDeploymentEnvAuthType:   pulumi.String(\"external-oauth-wif\"),\n\t\t\t\tPrivateKeyId:            pulumi.String(\"my-private-key-id\"),\n\t\t\t\tPrivateKey:              pulumi.String(\"ABCDEFGHIJKL\"),\n\t\t\t\tClientEmail:             pulumi.String(\"my_client_email\"),\n\t\t\t\tClientId:                pulumi.String(\"my_client_id\"),\n\t\t\t\tAuthUri:                 pulumi.String(\"my_auth_uri\"),\n\t\t\t\tTokenUri:                pulumi.String(\"my_token_uri\"),\n\t\t\t\tAuthProviderX509CertUrl: pulumi.String(\"my_auth_provider_x509_cert_url\"),\n\t\t\t\tClientX509CertUrl:       pulumi.String(\"my_client_x509_cert_url\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"databricks\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My Databricks connection\"),\n\t\t\tDatabricks: \u0026dbtcloud.GlobalConnectionDatabricksArgs{\n\t\t\t\tHost:         pulumi.String(\"my-databricks-host.cloud.databricks.com\"),\n\t\t\t\tHttpPath:     pulumi.String(\"/sql/my/http/path\"),\n\t\t\t\tCatalog:      pulumi.String(\"dbt_catalog\"),\n\t\t\t\tClientId:     pulumi.String(\"yourclientid\"),\n\t\t\t\tClientSecret: pulumi.String(\"yourclientsecret\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"fabric\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My Fabric connection\"),\n\t\t\tFabric: \u0026dbtcloud.GlobalConnectionFabricArgs{\n\t\t\t\tServer:       pulumi.String(\"my-fabric-server.com\"),\n\t\t\t\tDatabase:     pulumi.String(\"mydb\"),\n\t\t\t\tPort:         pulumi.Int(1234),\n\t\t\t\tRetries:      pulumi.Int(3),\n\t\t\t\tLoginTimeout: pulumi.Int(60),\n\t\t\t\tQueryTimeout: pulumi.Int(3600),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"postgres\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My PostgreSQL connection\"),\n\t\t\tPostgres: \u0026dbtcloud.GlobalConnectionPostgresArgs{\n\t\t\t\tHostname: pulumi.String(\"my-postgresql-server.com\"),\n\t\t\t\tPort:     pulumi.Int(5432),\n\t\t\t\tDbname:   pulumi.String(\"my_database\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"redshift\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My Redshift connection\"),\n\t\t\tRedshift: \u0026dbtcloud.GlobalConnectionRedshiftArgs{\n\t\t\t\tHostname: pulumi.String(\"my-redshift-connection.com\"),\n\t\t\t\tPort:     pulumi.Int(5432),\n\t\t\t\tDbname:   pulumi.String(\"my_database\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"snowflake\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName:                  pulumi.String(\"My Snowflake connection\"),\n\t\t\tPrivateLinkEndpointId: pulumi.Any(myPrivateLink.Id),\n\t\t\tSnowflake: \u0026dbtcloud.GlobalConnectionSnowflakeArgs{\n\t\t\t\tAccount:                pulumi.String(\"my-snowflake-account\"),\n\t\t\t\tDatabase:               pulumi.String(\"MY_DATABASE\"),\n\t\t\t\tWarehouse:              pulumi.String(\"MY_WAREHOUSE\"),\n\t\t\t\tClientSessionKeepAlive: pulumi.Bool(false),\n\t\t\t\tAllowSso:               pulumi.Bool(true),\n\t\t\t\tOauthClientId:          pulumi.String(\"yourclientid\"),\n\t\t\t\tOauthClientSecret:      pulumi.String(\"yourclientsecret\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"starburst\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My Starburst connection\"),\n\t\t\tStarburst: \u0026dbtcloud.GlobalConnectionStarburstArgs{\n\t\t\t\tHost:     pulumi.String(\"my-starburst-host.com\"),\n\t\t\t\tDatabase: \"mydb\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"synapse\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My Synapse connection\"),\n\t\t\tSynapse: \u0026dbtcloud.GlobalConnectionSynapseArgs{\n\t\t\t\tHost:         pulumi.String(\"my-synapse-server.com\"),\n\t\t\t\tDatabase:     pulumi.String(\"mydb\"),\n\t\t\t\tPort:         pulumi.Int(1234),\n\t\t\t\tRetries:      pulumi.Int(3),\n\t\t\t\tLoginTimeout: pulumi.Int(60),\n\t\t\t\tQueryTimeout: pulumi.Int(3600),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewGlobalConnection(ctx, \"teradata\", \u0026dbtcloud.GlobalConnectionArgs{\n\t\t\tName: pulumi.String(\"My Teradata connection\"),\n\t\t\tTeradata: \u0026dbtcloud.GlobalConnectionTeradataArgs{\n\t\t\t\tHost:           pulumi.String(\"my-teradata-server.com\"),\n\t\t\t\tTmode:          pulumi.String(\"ANSI\"),\n\t\t\t\tPort:           pulumi.String(\"1234\"),\n\t\t\t\tRequestTimeout: pulumi.Int(600),\n\t\t\t\tRetries:        pulumi.Int(3),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.GlobalConnection;\nimport com.pulumi.dbtcloud.GlobalConnectionArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionApacheSparkArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionAthenaArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionBigqueryArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionDatabricksArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionFabricArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionPostgresArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionRedshiftArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionSnowflakeArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionStarburstArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionSynapseArgs;\nimport com.pulumi.dbtcloud.inputs.GlobalConnectionTeradataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var apacheSpark = new GlobalConnection(\"apacheSpark\", GlobalConnectionArgs.builder()\n            .name(\"My Apache Spark connection\")\n            .apacheSpark(GlobalConnectionApacheSparkArgs.builder()\n                .method(\"http\")\n                .host(\"my-spark-host.com\")\n                .cluster(\"my-cluster\")\n                .connectTimeout(100)\n                .build())\n            .build());\n\n        var athena = new GlobalConnection(\"athena\", GlobalConnectionArgs.builder()\n            .name(\"My Athena connection\")\n            .athena(GlobalConnectionAthenaArgs.builder()\n                .regionName(\"us-east-1\")\n                .database(\"mydatabase\")\n                .s3StagingDir(\"s3://my-bucket/my-staging-dir/\")\n                .workGroup(\"my_work_group\")\n                .s3DataDir(\"s3://my-bucket/my-data-dir/\")\n                .build())\n            .build());\n\n        // BigQuery connection with Service Account JSON authentication\n        var bigquery = new GlobalConnection(\"bigquery\", GlobalConnectionArgs.builder()\n            .name(\"My BigQuery connection\")\n            .bigquery(GlobalConnectionBigqueryArgs.builder()\n                .gcpProjectId(\"my-gcp-project-id\")\n                .timeoutSeconds(1000)\n                .privateKeyId(\"my-private-key-id\")\n                .privateKey(\"ABCDEFGHIJKL\")\n                .clientEmail(\"my_client_email\")\n                .clientId(\"my_client_id\")\n                .authUri(\"my_auth_uri\")\n                .tokenUri(\"my_token_uri\")\n                .authProviderX509CertUrl(\"my_auth_provider_x509_cert_url\")\n                .clientX509CertUrl(\"my_client_x509_cert_url\")\n                .deploymentEnvAuthType(\"service-account-json\")\n                .build())\n            .build());\n\n        // BigQuery connection with External OAuth (Workload Identity Federation)\n        // TODO: Currently the API still requires service account fields even with external-oauth-wif\n        var bigqueryWif = new GlobalConnection(\"bigqueryWif\", GlobalConnectionArgs.builder()\n            .name(\"My BigQuery WIF connection\")\n            .bigquery(GlobalConnectionBigqueryArgs.builder()\n                .gcpProjectId(\"my-gcp-project-id\")\n                .applicationId(\"oauth_application_id\")\n                .applicationSecret(\"oauth_secret_id\")\n                .deploymentEnvAuthType(\"external-oauth-wif\")\n                .privateKeyId(\"my-private-key-id\")\n                .privateKey(\"ABCDEFGHIJKL\")\n                .clientEmail(\"my_client_email\")\n                .clientId(\"my_client_id\")\n                .authUri(\"my_auth_uri\")\n                .tokenUri(\"my_token_uri\")\n                .authProviderX509CertUrl(\"my_auth_provider_x509_cert_url\")\n                .clientX509CertUrl(\"my_client_x509_cert_url\")\n                .build())\n            .build());\n\n        var databricks = new GlobalConnection(\"databricks\", GlobalConnectionArgs.builder()\n            .name(\"My Databricks connection\")\n            .databricks(GlobalConnectionDatabricksArgs.builder()\n                .host(\"my-databricks-host.cloud.databricks.com\")\n                .httpPath(\"/sql/my/http/path\")\n                .catalog(\"dbt_catalog\")\n                .clientId(\"yourclientid\")\n                .clientSecret(\"yourclientsecret\")\n                .build())\n            .build());\n\n        var fabric = new GlobalConnection(\"fabric\", GlobalConnectionArgs.builder()\n            .name(\"My Fabric connection\")\n            .fabric(GlobalConnectionFabricArgs.builder()\n                .server(\"my-fabric-server.com\")\n                .database(\"mydb\")\n                .port(1234)\n                .retries(3)\n                .loginTimeout(60)\n                .queryTimeout(3600)\n                .build())\n            .build());\n\n        var postgres = new GlobalConnection(\"postgres\", GlobalConnectionArgs.builder()\n            .name(\"My PostgreSQL connection\")\n            .postgres(GlobalConnectionPostgresArgs.builder()\n                .hostname(\"my-postgresql-server.com\")\n                .port(5432)\n                .dbname(\"my_database\")\n                .build())\n            .build());\n\n        var redshift = new GlobalConnection(\"redshift\", GlobalConnectionArgs.builder()\n            .name(\"My Redshift connection\")\n            .redshift(GlobalConnectionRedshiftArgs.builder()\n                .hostname(\"my-redshift-connection.com\")\n                .port(5432)\n                .dbname(\"my_database\")\n                .build())\n            .build());\n\n        var snowflake = new GlobalConnection(\"snowflake\", GlobalConnectionArgs.builder()\n            .name(\"My Snowflake connection\")\n            .privateLinkEndpointId(myPrivateLink.id())\n            .snowflake(GlobalConnectionSnowflakeArgs.builder()\n                .account(\"my-snowflake-account\")\n                .database(\"MY_DATABASE\")\n                .warehouse(\"MY_WAREHOUSE\")\n                .clientSessionKeepAlive(false)\n                .allowSso(true)\n                .oauthClientId(\"yourclientid\")\n                .oauthClientSecret(\"yourclientsecret\")\n                .build())\n            .build());\n\n        var starburst = new GlobalConnection(\"starburst\", GlobalConnectionArgs.builder()\n            .name(\"My Starburst connection\")\n            .starburst(GlobalConnectionStarburstArgs.builder()\n                .host(\"my-starburst-host.com\")\n                .database(\"mydb\")\n                .build())\n            .build());\n\n        var synapse = new GlobalConnection(\"synapse\", GlobalConnectionArgs.builder()\n            .name(\"My Synapse connection\")\n            .synapse(GlobalConnectionSynapseArgs.builder()\n                .host(\"my-synapse-server.com\")\n                .database(\"mydb\")\n                .port(1234)\n                .retries(3)\n                .loginTimeout(60)\n                .queryTimeout(3600)\n                .build())\n            .build());\n\n        var teradata = new GlobalConnection(\"teradata\", GlobalConnectionArgs.builder()\n            .name(\"My Teradata connection\")\n            .teradata(GlobalConnectionTeradataArgs.builder()\n                .host(\"my-teradata-server.com\")\n                .tmode(\"ANSI\")\n                .port(\"1234\")\n                .requestTimeout(600)\n                .retries(3)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  apacheSpark:\n    type: dbtcloud:GlobalConnection\n    name: apache_spark\n    properties:\n      name: My Apache Spark connection\n      apacheSpark:\n        method: http\n        host: my-spark-host.com\n        cluster: my-cluster\n        connectTimeout: 100\n  athena:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My Athena connection\n      athena:\n        regionName: us-east-1\n        database: mydatabase\n        s3StagingDir: s3://my-bucket/my-staging-dir/\n        workGroup: my_work_group\n        s3DataDir: s3://my-bucket/my-data-dir/\n  # BigQuery connection with Service Account JSON authentication\n  bigquery:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My BigQuery connection\n      bigquery:\n        gcpProjectId: my-gcp-project-id\n        timeoutSeconds: 1000\n        privateKeyId: my-private-key-id\n        privateKey: ABCDEFGHIJKL\n        clientEmail: my_client_email\n        clientId: my_client_id\n        authUri: my_auth_uri\n        tokenUri: my_token_uri\n        authProviderX509CertUrl: my_auth_provider_x509_cert_url\n        clientX509CertUrl: my_client_x509_cert_url\n        deploymentEnvAuthType: service-account-json\n  # BigQuery connection with External OAuth (Workload Identity Federation)\n  # // TODO: Currently the API still requires service account fields even with external-oauth-wif\n  bigqueryWif:\n    type: dbtcloud:GlobalConnection\n    name: bigquery_wif\n    properties:\n      name: My BigQuery WIF connection\n      bigquery:\n        gcpProjectId: my-gcp-project-id\n        applicationId: oauth_application_id\n        applicationSecret: oauth_secret_id\n        deploymentEnvAuthType: external-oauth-wif\n        privateKeyId: my-private-key-id\n        privateKey: ABCDEFGHIJKL\n        clientEmail: my_client_email\n        clientId: my_client_id\n        authUri: my_auth_uri\n        tokenUri: my_token_uri\n        authProviderX509CertUrl: my_auth_provider_x509_cert_url\n        clientX509CertUrl: my_client_x509_cert_url\n  databricks:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My Databricks connection\n      databricks:\n        host: my-databricks-host.cloud.databricks.com\n        httpPath: /sql/my/http/path\n        catalog: dbt_catalog\n        clientId: yourclientid\n        clientSecret: yourclientsecret\n  fabric:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My Fabric connection\n      fabric:\n        server: my-fabric-server.com\n        database: mydb\n        port: 1234\n        retries: 3\n        loginTimeout: 60\n        queryTimeout: 3600\n  postgres:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My PostgreSQL connection\n      postgres:\n        hostname: my-postgresql-server.com\n        port: 5432\n        dbname: my_database\n  redshift:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My Redshift connection\n      redshift:\n        hostname: my-redshift-connection.com\n        port: 5432\n        dbname: my_database\n  snowflake:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My Snowflake connection\n      privateLinkEndpointId: ${myPrivateLink.id}\n      snowflake:\n        account: my-snowflake-account\n        database: MY_DATABASE\n        warehouse: MY_WAREHOUSE\n        clientSessionKeepAlive: false\n        allowSso: true\n        oauthClientId: yourclientid\n        oauthClientSecret: yourclientsecret\n  starburst:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My Starburst connection\n      starburst:\n        host: my-starburst-host.com\n        database: mydb\n  synapse:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My Synapse connection\n      synapse:\n        host: my-synapse-server.com\n        database: mydb\n        port: 1234\n        retries: 3\n        loginTimeout: 60\n        queryTimeout: 3600\n  teradata:\n    type: dbtcloud:GlobalConnection\n    properties:\n      name: My Teradata connection\n      teradata:\n        host: my-teradata-server.com\n        tmode: ANSI\n        port: '1234'\n        requestTimeout: 600\n        retries: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA project-scoped connection can be imported as a global connection by specifying the connection ID\nMigrating from project-scoped connections to global connections could be done by:\n1. Adding the config for the global connection and importing it (see below)\n2. Removing the project-scoped connection from the config AND from the state\n- CAREFUL: If the connection is removed from the config but not the state, it will be destroyed on the next apply\n\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_global_connection.my_connection\nid = \u003cspan pulumi-lang-nodejs=\"\"connectionId\"\" pulumi-lang-dotnet=\"\"ConnectionId\"\" pulumi-lang-go=\"\"connectionId\"\" pulumi-lang-python=\"\"connection_id\"\" pulumi-lang-yaml=\"\"connectionId\"\" pulumi-lang-java=\"\"connectionId\"\"\u003e\"connection_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_global_connection.my_connection\nid = \"1234\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/globalConnection:GlobalConnection my_connection \"connection_id\"\n$ pulumi import dbtcloud:index/globalConnection:GlobalConnection my_connection 1234\n```\n\n","properties":{"adapterVersion":{"type":"string","description":"Version of the adapter\n"},"apacheSpark":{"$ref":"#/types/dbtcloud:index/GlobalConnectionApacheSpark:GlobalConnectionApacheSpark","description":"Apache Spark connection configuration.\n"},"athena":{"$ref":"#/types/dbtcloud:index/GlobalConnectionAthena:GlobalConnectionAthena","description":"Athena connection configuration.\n"},"bigquery":{"$ref":"#/types/dbtcloud:index/GlobalConnectionBigquery:GlobalConnectionBigquery"},"databricks":{"$ref":"#/types/dbtcloud:index/GlobalConnectionDatabricks:GlobalConnectionDatabricks","description":"Databricks connection configuration\n"},"fabric":{"$ref":"#/types/dbtcloud:index/GlobalConnectionFabric:GlobalConnectionFabric","description":"Microsoft Fabric connection configuration.\n"},"isSshTunnelEnabled":{"type":"boolean","description":"Whether the connection can use an SSH tunnel\n"},"name":{"type":"string","description":"Connection name\n"},"oauthConfigurationId":{"type":"integer","description":"External OAuth configuration ID (only Snowflake for now)\n"},"postgres":{"$ref":"#/types/dbtcloud:index/GlobalConnectionPostgres:GlobalConnectionPostgres","description":"PostgreSQL connection configuration.\n"},"privateLinkEndpointId":{"type":"string","description":"Private Link Endpoint ID. This ID can be found using the \u003cspan pulumi-lang-nodejs=\"`privatelinkEndpoint`\" pulumi-lang-dotnet=\"`PrivatelinkEndpoint`\" pulumi-lang-go=\"`privatelinkEndpoint`\" pulumi-lang-python=\"`privatelink_endpoint`\" pulumi-lang-yaml=\"`privatelinkEndpoint`\" pulumi-lang-java=\"`privatelinkEndpoint`\"\u003e`privatelink_endpoint`\u003c/span\u003e data source\n"},"redshift":{"$ref":"#/types/dbtcloud:index/GlobalConnectionRedshift:GlobalConnectionRedshift","description":"Redshift connection configuration\n"},"salesforce":{"$ref":"#/types/dbtcloud:index/GlobalConnectionSalesforce:GlobalConnectionSalesforce","description":"Salesforce connection configuration.\n"},"snowflake":{"$ref":"#/types/dbtcloud:index/GlobalConnectionSnowflake:GlobalConnectionSnowflake","description":"Snowflake connection configuration\n"},"starburst":{"$ref":"#/types/dbtcloud:index/GlobalConnectionStarburst:GlobalConnectionStarburst","description":"Starburst/Trino connection configuration.\n"},"synapse":{"$ref":"#/types/dbtcloud:index/GlobalConnectionSynapse:GlobalConnectionSynapse","description":"Azure Synapse Analytics connection configuration.\n"},"teradata":{"$ref":"#/types/dbtcloud:index/GlobalConnectionTeradata:GlobalConnectionTeradata","description":"Teradata connection configuration.\n"}},"required":["adapterVersion","isSshTunnelEnabled","name"],"inputProperties":{"apacheSpark":{"$ref":"#/types/dbtcloud:index/GlobalConnectionApacheSpark:GlobalConnectionApacheSpark","description":"Apache Spark connection configuration.\n"},"athena":{"$ref":"#/types/dbtcloud:index/GlobalConnectionAthena:GlobalConnectionAthena","description":"Athena connection configuration.\n"},"bigquery":{"$ref":"#/types/dbtcloud:index/GlobalConnectionBigquery:GlobalConnectionBigquery"},"databricks":{"$ref":"#/types/dbtcloud:index/GlobalConnectionDatabricks:GlobalConnectionDatabricks","description":"Databricks connection configuration\n"},"fabric":{"$ref":"#/types/dbtcloud:index/GlobalConnectionFabric:GlobalConnectionFabric","description":"Microsoft Fabric connection configuration.\n"},"name":{"type":"string","description":"Connection name\n"},"oauthConfigurationId":{"type":"integer","description":"External OAuth configuration ID (only Snowflake for now)\n"},"postgres":{"$ref":"#/types/dbtcloud:index/GlobalConnectionPostgres:GlobalConnectionPostgres","description":"PostgreSQL connection configuration.\n"},"privateLinkEndpointId":{"type":"string","description":"Private Link Endpoint ID. This ID can be found using the \u003cspan pulumi-lang-nodejs=\"`privatelinkEndpoint`\" pulumi-lang-dotnet=\"`PrivatelinkEndpoint`\" pulumi-lang-go=\"`privatelinkEndpoint`\" pulumi-lang-python=\"`privatelink_endpoint`\" pulumi-lang-yaml=\"`privatelinkEndpoint`\" pulumi-lang-java=\"`privatelinkEndpoint`\"\u003e`privatelink_endpoint`\u003c/span\u003e data source\n"},"redshift":{"$ref":"#/types/dbtcloud:index/GlobalConnectionRedshift:GlobalConnectionRedshift","description":"Redshift connection configuration\n"},"salesforce":{"$ref":"#/types/dbtcloud:index/GlobalConnectionSalesforce:GlobalConnectionSalesforce","description":"Salesforce connection configuration.\n"},"snowflake":{"$ref":"#/types/dbtcloud:index/GlobalConnectionSnowflake:GlobalConnectionSnowflake","description":"Snowflake connection configuration\n"},"starburst":{"$ref":"#/types/dbtcloud:index/GlobalConnectionStarburst:GlobalConnectionStarburst","description":"Starburst/Trino connection configuration.\n"},"synapse":{"$ref":"#/types/dbtcloud:index/GlobalConnectionSynapse:GlobalConnectionSynapse","description":"Azure Synapse Analytics connection configuration.\n"},"teradata":{"$ref":"#/types/dbtcloud:index/GlobalConnectionTeradata:GlobalConnectionTeradata","description":"Teradata connection configuration.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering GlobalConnection resources.\n","properties":{"adapterVersion":{"type":"string","description":"Version of the adapter\n"},"apacheSpark":{"$ref":"#/types/dbtcloud:index/GlobalConnectionApacheSpark:GlobalConnectionApacheSpark","description":"Apache Spark connection configuration.\n"},"athena":{"$ref":"#/types/dbtcloud:index/GlobalConnectionAthena:GlobalConnectionAthena","description":"Athena connection configuration.\n"},"bigquery":{"$ref":"#/types/dbtcloud:index/GlobalConnectionBigquery:GlobalConnectionBigquery"},"databricks":{"$ref":"#/types/dbtcloud:index/GlobalConnectionDatabricks:GlobalConnectionDatabricks","description":"Databricks connection configuration\n"},"fabric":{"$ref":"#/types/dbtcloud:index/GlobalConnectionFabric:GlobalConnectionFabric","description":"Microsoft Fabric connection configuration.\n"},"isSshTunnelEnabled":{"type":"boolean","description":"Whether the connection can use an SSH tunnel\n"},"name":{"type":"string","description":"Connection name\n"},"oauthConfigurationId":{"type":"integer","description":"External OAuth configuration ID (only Snowflake for now)\n"},"postgres":{"$ref":"#/types/dbtcloud:index/GlobalConnectionPostgres:GlobalConnectionPostgres","description":"PostgreSQL connection configuration.\n"},"privateLinkEndpointId":{"type":"string","description":"Private Link Endpoint ID. This ID can be found using the \u003cspan pulumi-lang-nodejs=\"`privatelinkEndpoint`\" pulumi-lang-dotnet=\"`PrivatelinkEndpoint`\" pulumi-lang-go=\"`privatelinkEndpoint`\" pulumi-lang-python=\"`privatelink_endpoint`\" pulumi-lang-yaml=\"`privatelinkEndpoint`\" pulumi-lang-java=\"`privatelinkEndpoint`\"\u003e`privatelink_endpoint`\u003c/span\u003e data source\n"},"redshift":{"$ref":"#/types/dbtcloud:index/GlobalConnectionRedshift:GlobalConnectionRedshift","description":"Redshift connection configuration\n"},"salesforce":{"$ref":"#/types/dbtcloud:index/GlobalConnectionSalesforce:GlobalConnectionSalesforce","description":"Salesforce connection configuration.\n"},"snowflake":{"$ref":"#/types/dbtcloud:index/GlobalConnectionSnowflake:GlobalConnectionSnowflake","description":"Snowflake connection configuration\n"},"starburst":{"$ref":"#/types/dbtcloud:index/GlobalConnectionStarburst:GlobalConnectionStarburst","description":"Starburst/Trino connection configuration.\n"},"synapse":{"$ref":"#/types/dbtcloud:index/GlobalConnectionSynapse:GlobalConnectionSynapse","description":"Azure Synapse Analytics connection configuration.\n"},"teradata":{"$ref":"#/types/dbtcloud:index/GlobalConnectionTeradata:GlobalConnectionTeradata","description":"Teradata connection configuration.\n"}},"type":"object"}},"dbtcloud:index/group:Group":{"description":"The mapping of permission names [from the docs](https://docs.getdbt.com/docs/cloud/manage-access/enterprise-permissions) to the permissions to set in Terraform is the following:\n\n|Permission name......... | Permission code|\n|-- | --|\n|Account Admin | account_admin|\n|Account Viewer | account_viewer|\n|Admin | admin|\n|Analyst | analyst|\n|Billing Admin | billing_admin|\n|Cost Management viewer | cost_management_viewer|\n|Cost Management admin | cost_management_admin|\n|Database Admin | database_admin|\n|Developer | developer|\n|Fusion Admin | fusion_admin|\n|Git Admin | git_admin|\n|Job Admin | job_admin|\n|Job Runner | job_runner|\n|Job Viewer | job_viewer|\n|Manage marketplace apps | manage_marketplace_apps|\n|Member | member|\n|Metadata Only | metadata_only|\n|Owner | owner|\n|Project Creator | project_creator|\n|Read-Only | readonly|\n|Security Admin | security_admin|\n|Semantic Layer Only | semantic_layer_only|\n|Stakeholder | stakeholder|\n|Team Admin | team_admin|\n|Webhooks Only | webhooks_only|\n\n\nProvide a complete set of permissions for a group. This is different from \u003cspan pulumi-lang-nodejs=\"`dbtCloudPartialGroupPermissions`\" pulumi-lang-dotnet=\"`DbtCloudPartialGroupPermissions`\" pulumi-lang-go=\"`dbtCloudPartialGroupPermissions`\" pulumi-lang-python=\"`dbt_cloud_partial_group_permissions`\" pulumi-lang-yaml=\"`dbtCloudPartialGroupPermissions`\" pulumi-lang-java=\"`dbtCloudPartialGroupPermissions`\"\u003e`dbt_cloud_partial_group_permissions`\u003c/span\u003e.\n\nWith this resource type only one resource can be used to manage the permissions for a given group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst tfGroup1 = new dbtcloud.Group(\"tf_group_1\", {\n    name: \"TF Group 1\",\n    groupPermissions: [\n        {\n            permissionSet: \"member\",\n            allProjects: true,\n        },\n        {\n            permissionSet: \"developer\",\n            allProjects: false,\n            projectId: dbtProject.id,\n            writableEnvironmentCategories: [\n                \"development\",\n                \"staging\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ntf_group1 = dbtcloud.Group(\"tf_group_1\",\n    name=\"TF Group 1\",\n    group_permissions=[\n        {\n            \"permission_set\": \"member\",\n            \"all_projects\": True,\n        },\n        {\n            \"permission_set\": \"developer\",\n            \"all_projects\": False,\n            \"project_id\": dbt_project[\"id\"],\n            \"writable_environment_categories\": [\n                \"development\",\n                \"staging\",\n            ],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var tfGroup1 = new DbtCloud.Group(\"tf_group_1\", new()\n    {\n        Name = \"TF Group 1\",\n        GroupPermissions = new[]\n        {\n            new DbtCloud.Inputs.GroupGroupPermissionArgs\n            {\n                PermissionSet = \"member\",\n                AllProjects = true,\n            },\n            new DbtCloud.Inputs.GroupGroupPermissionArgs\n            {\n                PermissionSet = \"developer\",\n                AllProjects = false,\n                ProjectId = dbtProject.Id,\n                WritableEnvironmentCategories = new[]\n                {\n                    \"development\",\n                    \"staging\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewGroup(ctx, \"tf_group_1\", \u0026dbtcloud.GroupArgs{\n\t\t\tName: pulumi.String(\"TF Group 1\"),\n\t\t\tGroupPermissions: dbtcloud.GroupGroupPermissionArray{\n\t\t\t\t\u0026dbtcloud.GroupGroupPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"member\"),\n\t\t\t\t\tAllProjects:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026dbtcloud.GroupGroupPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"developer\"),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t\tProjectId:     pulumi.Any(dbtProject.Id),\n\t\t\t\t\tWritableEnvironmentCategories: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"development\"),\n\t\t\t\t\t\tpulumi.String(\"staging\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.Group;\nimport com.pulumi.dbtcloud.GroupArgs;\nimport com.pulumi.dbtcloud.inputs.GroupGroupPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var tfGroup1 = new Group(\"tfGroup1\", GroupArgs.builder()\n            .name(\"TF Group 1\")\n            .groupPermissions(            \n                GroupGroupPermissionArgs.builder()\n                    .permissionSet(\"member\")\n                    .allProjects(true)\n                    .build(),\n                GroupGroupPermissionArgs.builder()\n                    .permissionSet(\"developer\")\n                    .allProjects(false)\n                    .projectId(dbtProject.id())\n                    .writableEnvironmentCategories(                    \n                        \"development\",\n                        \"staging\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  tfGroup1:\n    type: dbtcloud:Group\n    name: tf_group_1\n    properties:\n      name: TF Group 1\n      groupPermissions:\n        - permissionSet: member\n          allProjects: true\n        - permissionSet: developer\n          allProjects: false\n          projectId: ${dbtProject.id}\n          writableEnvironmentCategories:\n            - development\n            - staging\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_group.my_group\nid = \u003cspan pulumi-lang-nodejs=\"\"groupId\"\" pulumi-lang-dotnet=\"\"GroupId\"\" pulumi-lang-go=\"\"groupId\"\" pulumi-lang-python=\"\"group_id\"\" pulumi-lang-yaml=\"\"groupId\"\" pulumi-lang-java=\"\"groupId\"\"\u003e\"group_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_group.my_group\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/group:Group my_group \"group_id\"\n$ pulumi import dbtcloud:index/group:Group my_group 12345\n```\n\n","properties":{"assignByDefault":{"type":"boolean","description":"Whether the group will be assigned by default to users. The value needs to be the same for all partial permissions for the same group.\n"},"groupPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/GroupGroupPermission:GroupGroupPermission"},"description":"Partial permissions for the group. Those permissions will be added/removed when config is added/removed.\n"},"name":{"type":"string","description":"The name of the group. This is used to identify an existing group\n"},"ssoMappingGroups":{"type":"array","items":{"type":"string"},"description":"Mapping groups from the IdP. At the moment the complete list needs to be provided in each partial permission for the same group.\n"}},"required":["assignByDefault","name","ssoMappingGroups"],"inputProperties":{"assignByDefault":{"type":"boolean","description":"Whether the group will be assigned by default to users. The value needs to be the same for all partial permissions for the same group.\n"},"groupPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/GroupGroupPermission:GroupGroupPermission"},"description":"Partial permissions for the group. Those permissions will be added/removed when config is added/removed.\n"},"name":{"type":"string","description":"The name of the group. This is used to identify an existing group\n"},"ssoMappingGroups":{"type":"array","items":{"type":"string"},"description":"Mapping groups from the IdP. At the moment the complete list needs to be provided in each partial permission for the same group.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"assignByDefault":{"type":"boolean","description":"Whether the group will be assigned by default to users. The value needs to be the same for all partial permissions for the same group.\n"},"groupPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/GroupGroupPermission:GroupGroupPermission"},"description":"Partial permissions for the group. Those permissions will be added/removed when config is added/removed.\n"},"name":{"type":"string","description":"The name of the group. This is used to identify an existing group\n"},"ssoMappingGroups":{"type":"array","items":{"type":"string"},"description":"Mapping groups from the IdP. At the moment the complete list needs to be provided in each partial permission for the same group.\n"}},"type":"object"}},"dbtcloud:index/groupPartialPermissions:GroupPartialPermissions":{"description":"Provide a partial set of permissions for a group. This is different from \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroup`\" pulumi-lang-dotnet=\"`DbtCloudGroup`\" pulumi-lang-go=\"`dbtCloudGroup`\" pulumi-lang-python=\"`dbt_cloud_group`\" pulumi-lang-yaml=\"`dbtCloudGroup`\" pulumi-lang-java=\"`dbtCloudGroup`\"\u003e`dbt_cloud_group`\u003c/span\u003e as it allows to have multiple resources updating the same dbt Cloud group and is useful for companies managing a single dbt Cloud Account configuration from different Terraform projects/workspaces.\n\nIf a company uses only one Terraform project/workspace to manage all their dbt Cloud Account config, it is recommended to use \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroup`\" pulumi-lang-dotnet=\"`DbtCloudGroup`\" pulumi-lang-go=\"`dbtCloudGroup`\" pulumi-lang-python=\"`dbt_cloud_group`\" pulumi-lang-yaml=\"`dbtCloudGroup`\" pulumi-lang-java=\"`dbtCloudGroup`\"\u003e`dbt_cloud_group`\u003c/span\u003e instead of \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudGroupPartialPermissions`\"\u003e`dbt_cloud_group_partial_permissions`\u003c/span\u003e.\n\n\u003e This is currently an experimental resource and any feedback is welcome in the GitHub repository.\n\nThe resource currently requires a Service Token with Account Admin access.\n\nThe current behavior of the resource is the following:\n\n- when using \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudGroupPartialPermissions`\"\u003e`dbt_cloud_group_partial_permissions`\u003c/span\u003e, don't use \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroup`\" pulumi-lang-dotnet=\"`DbtCloudGroup`\" pulumi-lang-go=\"`dbtCloudGroup`\" pulumi-lang-python=\"`dbt_cloud_group`\" pulumi-lang-yaml=\"`dbtCloudGroup`\" pulumi-lang-java=\"`dbtCloudGroup`\"\u003e`dbt_cloud_group`\u003c/span\u003e for the same group in any other project/workspace. Otherwise, the behavior is undefined and partial permissions might be removed.\n- when defining a new \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudGroupPartialPermissions`\"\u003e`dbt_cloud_group_partial_permissions`\u003c/span\u003e\n  - if the group doesn't exist with the given \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, it will be created\n  - if a group exists with the given \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, permissions will be added in the dbt Cloud group if they are not present yet\n- in a given Terraform project/workspace, avoid having different \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudGroupPartialPermissions`\"\u003e`dbt_cloud_group_partial_permissions`\u003c/span\u003e for the same group name to prevent sync issues. Add all the permissions in the same resource. \n- all resources for the same group name need to have the same values for \u003cspan pulumi-lang-nodejs=\"`assignByDefault`\" pulumi-lang-dotnet=\"`AssignByDefault`\" pulumi-lang-go=\"`assignByDefault`\" pulumi-lang-python=\"`assign_by_default`\" pulumi-lang-yaml=\"`assignByDefault`\" pulumi-lang-java=\"`assignByDefault`\"\u003e`assign_by_default`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ssoMappingGroups`\" pulumi-lang-dotnet=\"`SsoMappingGroups`\" pulumi-lang-go=\"`ssoMappingGroups`\" pulumi-lang-python=\"`sso_mapping_groups`\" pulumi-lang-yaml=\"`ssoMappingGroups`\" pulumi-lang-java=\"`ssoMappingGroups`\"\u003e`sso_mapping_groups`\u003c/span\u003e. Those fields are not considered \"partial\". (Please raise feedback in GitHub if you think that \u003cspan pulumi-lang-nodejs=\"`ssoMappingGroups`\" pulumi-lang-dotnet=\"`SsoMappingGroups`\" pulumi-lang-go=\"`ssoMappingGroups`\" pulumi-lang-python=\"`sso_mapping_groups`\" pulumi-lang-yaml=\"`ssoMappingGroups`\" pulumi-lang-java=\"`ssoMappingGroups`\"\u003e`sso_mapping_groups`\u003c/span\u003e should be \"partial\" as well)\n- when a resource is updated, the dbt Cloud group will be updated accordingly, removing and adding permissions\n- when the resource is deleted/destroyed, if the resulting permission sets is empty, the group will be deleted ; otherwise, the group will be updated, removing the permissions from the deleted resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// we add some permissions to the group \"TF Group 1\" (existing or not) to  a new project \nconst tfGroup1 = new dbtcloud.GroupPartialPermissions(\"tf_group_1\", {\n    name: \"TF Group 1\",\n    groupPermissions: [\n        {\n            permissionSet: \"developer\",\n            projectId: dbtProject.id,\n            allProjects: false,\n            writableEnvironmentCategories: [\n                \"development\",\n                \"staging\",\n            ],\n        },\n        {\n            permissionSet: \"git_admin\",\n            projectId: dbtProject.id,\n            allProjects: false,\n        },\n    ],\n});\n// we add Admin permissions to the group \"TF Group 2\" (existing or not) to  a new project \n// it is possible to add more permissions to the same group name in other Terraform projects/workspaces, using another `dbtcloud_group_partial_permissions` resource\nconst tfGroup2 = new dbtcloud.GroupPartialPermissions(\"tf_group_2\", {\n    name: \"TF Group 2\",\n    ssoMappingGroups: [\"group2\"],\n    groupPermissions: [{\n        permissionSet: \"admin\",\n        projectId: dbtProject.id,\n        allProjects: false,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# we add some permissions to the group \"TF Group 1\" (existing or not) to  a new project \ntf_group1 = dbtcloud.GroupPartialPermissions(\"tf_group_1\",\n    name=\"TF Group 1\",\n    group_permissions=[\n        {\n            \"permission_set\": \"developer\",\n            \"project_id\": dbt_project[\"id\"],\n            \"all_projects\": False,\n            \"writable_environment_categories\": [\n                \"development\",\n                \"staging\",\n            ],\n        },\n        {\n            \"permission_set\": \"git_admin\",\n            \"project_id\": dbt_project[\"id\"],\n            \"all_projects\": False,\n        },\n    ])\n# we add Admin permissions to the group \"TF Group 2\" (existing or not) to  a new project \n# it is possible to add more permissions to the same group name in other Terraform projects/workspaces, using another `dbtcloud_group_partial_permissions` resource\ntf_group2 = dbtcloud.GroupPartialPermissions(\"tf_group_2\",\n    name=\"TF Group 2\",\n    sso_mapping_groups=[\"group2\"],\n    group_permissions=[{\n        \"permission_set\": \"admin\",\n        \"project_id\": dbt_project[\"id\"],\n        \"all_projects\": False,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // we add some permissions to the group \"TF Group 1\" (existing or not) to  a new project \n    var tfGroup1 = new DbtCloud.GroupPartialPermissions(\"tf_group_1\", new()\n    {\n        Name = \"TF Group 1\",\n        GroupPermissions = new[]\n        {\n            new DbtCloud.Inputs.GroupPartialPermissionsGroupPermissionArgs\n            {\n                PermissionSet = \"developer\",\n                ProjectId = dbtProject.Id,\n                AllProjects = false,\n                WritableEnvironmentCategories = new[]\n                {\n                    \"development\",\n                    \"staging\",\n                },\n            },\n            new DbtCloud.Inputs.GroupPartialPermissionsGroupPermissionArgs\n            {\n                PermissionSet = \"git_admin\",\n                ProjectId = dbtProject.Id,\n                AllProjects = false,\n            },\n        },\n    });\n\n    // we add Admin permissions to the group \"TF Group 2\" (existing or not) to  a new project \n    // it is possible to add more permissions to the same group name in other Terraform projects/workspaces, using another `dbtcloud_group_partial_permissions` resource\n    var tfGroup2 = new DbtCloud.GroupPartialPermissions(\"tf_group_2\", new()\n    {\n        Name = \"TF Group 2\",\n        SsoMappingGroups = new[]\n        {\n            \"group2\",\n        },\n        GroupPermissions = new[]\n        {\n            new DbtCloud.Inputs.GroupPartialPermissionsGroupPermissionArgs\n            {\n                PermissionSet = \"admin\",\n                ProjectId = dbtProject.Id,\n                AllProjects = false,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// we add some permissions to the group \"TF Group 1\" (existing or not) to  a new project\n\t\t_, err := dbtcloud.NewGroupPartialPermissions(ctx, \"tf_group_1\", \u0026dbtcloud.GroupPartialPermissionsArgs{\n\t\t\tName: pulumi.String(\"TF Group 1\"),\n\t\t\tGroupPermissions: dbtcloud.GroupPartialPermissionsGroupPermissionArray{\n\t\t\t\t\u0026dbtcloud.GroupPartialPermissionsGroupPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"developer\"),\n\t\t\t\t\tProjectId:     pulumi.Any(dbtProject.Id),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t\tWritableEnvironmentCategories: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"development\"),\n\t\t\t\t\t\tpulumi.String(\"staging\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dbtcloud.GroupPartialPermissionsGroupPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"git_admin\"),\n\t\t\t\t\tProjectId:     pulumi.Any(dbtProject.Id),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// we add Admin permissions to the group \"TF Group 2\" (existing or not) to  a new project\n\t\t// it is possible to add more permissions to the same group name in other Terraform projects/workspaces, using another `dbtcloud_group_partial_permissions` resource\n\t\t_, err = dbtcloud.NewGroupPartialPermissions(ctx, \"tf_group_2\", \u0026dbtcloud.GroupPartialPermissionsArgs{\n\t\t\tName: pulumi.String(\"TF Group 2\"),\n\t\t\tSsoMappingGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"group2\"),\n\t\t\t},\n\t\t\tGroupPermissions: dbtcloud.GroupPartialPermissionsGroupPermissionArray{\n\t\t\t\t\u0026dbtcloud.GroupPartialPermissionsGroupPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"admin\"),\n\t\t\t\t\tProjectId:     pulumi.Any(dbtProject.Id),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.GroupPartialPermissions;\nimport com.pulumi.dbtcloud.GroupPartialPermissionsArgs;\nimport com.pulumi.dbtcloud.inputs.GroupPartialPermissionsGroupPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // we add some permissions to the group \"TF Group 1\" (existing or not) to  a new project \n        var tfGroup1 = new GroupPartialPermissions(\"tfGroup1\", GroupPartialPermissionsArgs.builder()\n            .name(\"TF Group 1\")\n            .groupPermissions(            \n                GroupPartialPermissionsGroupPermissionArgs.builder()\n                    .permissionSet(\"developer\")\n                    .projectId(dbtProject.id())\n                    .allProjects(false)\n                    .writableEnvironmentCategories(                    \n                        \"development\",\n                        \"staging\")\n                    .build(),\n                GroupPartialPermissionsGroupPermissionArgs.builder()\n                    .permissionSet(\"git_admin\")\n                    .projectId(dbtProject.id())\n                    .allProjects(false)\n                    .build())\n            .build());\n\n        // we add Admin permissions to the group \"TF Group 2\" (existing or not) to  a new project \n        // it is possible to add more permissions to the same group name in other Terraform projects/workspaces, using another `dbtcloud_group_partial_permissions` resource\n        var tfGroup2 = new GroupPartialPermissions(\"tfGroup2\", GroupPartialPermissionsArgs.builder()\n            .name(\"TF Group 2\")\n            .ssoMappingGroups(\"group2\")\n            .groupPermissions(GroupPartialPermissionsGroupPermissionArgs.builder()\n                .permissionSet(\"admin\")\n                .projectId(dbtProject.id())\n                .allProjects(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # we add some permissions to the group \"TF Group 1\" (existing or not) to  a new project\n  tfGroup1:\n    type: dbtcloud:GroupPartialPermissions\n    name: tf_group_1\n    properties:\n      name: TF Group 1\n      groupPermissions:\n        - permissionSet: developer\n          projectId: ${dbtProject.id}\n          allProjects: false\n          writableEnvironmentCategories:\n            - development\n            - staging\n        - permissionSet: git_admin\n          projectId: ${dbtProject.id}\n          allProjects: false\n  # we add Admin permissions to the group \"TF Group 2\" (existing or not) to  a new project \n  # // it is possible to add more permissions to the same group name in other Terraform projects/workspaces, using another `dbtcloud_group_partial_permissions` resource\n  tfGroup2:\n    type: dbtcloud:GroupPartialPermissions\n    name: tf_group_2\n    properties:\n      name: TF Group 2\n      ssoMappingGroups:\n        - group2\n      groupPermissions:\n        - permissionSet: admin\n          projectId: ${dbtProject.id}\n          allProjects: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"assignByDefault":{"type":"boolean","description":"Whether the group will be assigned by default to users. The value needs to be the same for all partial permissions for the same group.\n"},"groupPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/GroupPartialPermissionsGroupPermission:GroupPartialPermissionsGroupPermission"},"description":"Partial permissions for the group. Those permissions will be added/removed when config is added/removed.\n"},"name":{"type":"string","description":"The name of the group. This is used to identify an existing group\n"},"ssoMappingGroups":{"type":"array","items":{"type":"string"},"description":"Mapping groups from the IdP. At the moment the complete list needs to be provided in each partial permission for the same group.\n"}},"required":["assignByDefault","name","ssoMappingGroups"],"inputProperties":{"assignByDefault":{"type":"boolean","description":"Whether the group will be assigned by default to users. The value needs to be the same for all partial permissions for the same group.\n"},"groupPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/GroupPartialPermissionsGroupPermission:GroupPartialPermissionsGroupPermission"},"description":"Partial permissions for the group. Those permissions will be added/removed when config is added/removed.\n"},"name":{"type":"string","description":"The name of the group. This is used to identify an existing group\n"},"ssoMappingGroups":{"type":"array","items":{"type":"string"},"description":"Mapping groups from the IdP. At the moment the complete list needs to be provided in each partial permission for the same group.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering GroupPartialPermissions resources.\n","properties":{"assignByDefault":{"type":"boolean","description":"Whether the group will be assigned by default to users. The value needs to be the same for all partial permissions for the same group.\n"},"groupPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/GroupPartialPermissionsGroupPermission:GroupPartialPermissionsGroupPermission"},"description":"Partial permissions for the group. Those permissions will be added/removed when config is added/removed.\n"},"name":{"type":"string","description":"The name of the group. This is used to identify an existing group\n"},"ssoMappingGroups":{"type":"array","items":{"type":"string"},"description":"Mapping groups from the IdP. At the moment the complete list needs to be provided in each partial permission for the same group.\n"}},"type":"object"}},"dbtcloud:index/ipRestrictionsRule:IpRestrictionsRule":{"description":"Manages IP restriction rules in dbt Cloud. IP restriction rules allow you to control access to your dbt Cloud instance based on IP address ranges.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst test = new dbtcloud.IpRestrictionsRule(\"test\", {\n    name: \"My restriction rule\",\n    description: \"Important description\",\n    cidrs: [\n        {\n            cidr: \"::ffff:106:708\",\n        },\n        {\n            cidr: \"1.6.7.10/24\",\n        },\n    ],\n    type: \"deny\",\n    ruleSetEnabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ntest = dbtcloud.IpRestrictionsRule(\"test\",\n    name=\"My restriction rule\",\n    description=\"Important description\",\n    cidrs=[\n        {\n            \"cidr\": \"::ffff:106:708\",\n        },\n        {\n            \"cidr\": \"1.6.7.10/24\",\n        },\n    ],\n    type=\"deny\",\n    rule_set_enabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new DbtCloud.IpRestrictionsRule(\"test\", new()\n    {\n        Name = \"My restriction rule\",\n        Description = \"Important description\",\n        Cidrs = new[]\n        {\n            new DbtCloud.Inputs.IpRestrictionsRuleCidrArgs\n            {\n                Cidr = \"::ffff:106:708\",\n            },\n            new DbtCloud.Inputs.IpRestrictionsRuleCidrArgs\n            {\n                Cidr = \"1.6.7.10/24\",\n            },\n        },\n        Type = \"deny\",\n        RuleSetEnabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewIpRestrictionsRule(ctx, \"test\", \u0026dbtcloud.IpRestrictionsRuleArgs{\n\t\t\tName:        pulumi.String(\"My restriction rule\"),\n\t\t\tDescription: pulumi.String(\"Important description\"),\n\t\t\tCidrs: dbtcloud.IpRestrictionsRuleCidrArray{\n\t\t\t\t\u0026dbtcloud.IpRestrictionsRuleCidrArgs{\n\t\t\t\t\tCidr: pulumi.String(\"::ffff:106:708\"),\n\t\t\t\t},\n\t\t\t\t\u0026dbtcloud.IpRestrictionsRuleCidrArgs{\n\t\t\t\t\tCidr: pulumi.String(\"1.6.7.10/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tType:           pulumi.String(\"deny\"),\n\t\t\tRuleSetEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.IpRestrictionsRule;\nimport com.pulumi.dbtcloud.IpRestrictionsRuleArgs;\nimport com.pulumi.dbtcloud.inputs.IpRestrictionsRuleCidrArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpRestrictionsRule(\"test\", IpRestrictionsRuleArgs.builder()\n            .name(\"My restriction rule\")\n            .description(\"Important description\")\n            .cidrs(            \n                IpRestrictionsRuleCidrArgs.builder()\n                    .cidr(\"::ffff:106:708\")\n                    .build(),\n                IpRestrictionsRuleCidrArgs.builder()\n                    .cidr(\"1.6.7.10/24\")\n                    .build())\n            .type(\"deny\")\n            .ruleSetEnabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: dbtcloud:IpRestrictionsRule\n    properties:\n      name: My restriction rule\n      description: Important description\n      cidrs:\n        - cidr: ::ffff:106:708\n        - cidr: 1.6.7.10/24\n      type: deny\n      ruleSetEnabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_ip_restrictions_rule.my_rule\nid = \u003cspan pulumi-lang-nodejs=\"\"ipRestrictionRuleId\"\" pulumi-lang-dotnet=\"\"IpRestrictionRuleId\"\" pulumi-lang-go=\"\"ipRestrictionRuleId\"\" pulumi-lang-python=\"\"ip_restriction_rule_id\"\" pulumi-lang-yaml=\"\"ipRestrictionRuleId\"\" pulumi-lang-java=\"\"ipRestrictionRuleId\"\"\u003e\"ip_restriction_rule_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_ip_restrictions_rule.my_rule\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/ipRestrictionsRule:IpRestrictionsRule my_rule \"ip_restriction_rule_id\"\n$ pulumi import dbtcloud:index/ipRestrictionsRule:IpRestrictionsRule my_rule 12345\n```\n\n","properties":{"cidrs":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/IpRestrictionsRuleCidr:IpRestrictionsRuleCidr"},"description":"Set of CIDR ranges for this rule\n"},"description":{"type":"string","description":"A description of the IP restriction rule\n"},"name":{"type":"string","description":"The name of the IP restriction rule\n"},"ruleSetEnabled":{"type":"boolean","description":"Whether the IP restriction rule set is enabled or not. Important!: This value needs to be the same for all rules if multiple rules are defined. All rules must be active or inactive at the same time.\n"},"type":{"type":"string","description":"The type of the IP restriction rule (allow or deny)\n"}},"required":["cidrs","name","ruleSetEnabled","type"],"inputProperties":{"cidrs":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/IpRestrictionsRuleCidr:IpRestrictionsRuleCidr"},"description":"Set of CIDR ranges for this rule\n"},"description":{"type":"string","description":"A description of the IP restriction rule\n"},"name":{"type":"string","description":"The name of the IP restriction rule\n"},"ruleSetEnabled":{"type":"boolean","description":"Whether the IP restriction rule set is enabled or not. Important!: This value needs to be the same for all rules if multiple rules are defined. All rules must be active or inactive at the same time.\n"},"type":{"type":"string","description":"The type of the IP restriction rule (allow or deny)\n"}},"requiredInputs":["cidrs","ruleSetEnabled","type"],"stateInputs":{"description":"Input properties used for looking up and filtering IpRestrictionsRule resources.\n","properties":{"cidrs":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/IpRestrictionsRuleCidr:IpRestrictionsRuleCidr"},"description":"Set of CIDR ranges for this rule\n"},"description":{"type":"string","description":"A description of the IP restriction rule\n"},"name":{"type":"string","description":"The name of the IP restriction rule\n"},"ruleSetEnabled":{"type":"boolean","description":"Whether the IP restriction rule set is enabled or not. Important!: This value needs to be the same for all rules if multiple rules are defined. All rules must be active or inactive at the same time.\n"},"type":{"type":"string","description":"The type of the IP restriction rule (allow or deny)\n"}},"type":"object"}},"dbtcloud:index/job:Job":{"description":"\u003e In October 2023, CI improvements have been rolled out to dbt Cloud with minor impacts to some jobs:  [more info](https://docs.getdbt.com/docs/dbt-versions/release-notes/june-2023/ci-updates-phase1-rn). \n\u003cbr/\u003e\n\u003cbr/\u003e\nThose improvements include modifications to deferral which was historically set at the job level and will now be set at the environment level. \nDeferral can still be set to \"self\" by setting \u003cspan pulumi-lang-nodejs=\"`selfDeferring`\" pulumi-lang-dotnet=\"`SelfDeferring`\" pulumi-lang-go=\"`selfDeferring`\" pulumi-lang-python=\"`self_deferring`\" pulumi-lang-yaml=\"`selfDeferring`\" pulumi-lang-java=\"`selfDeferring`\"\u003e`self_deferring`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e but with the new approach, deferral to other runs need to be done with \u003cspan pulumi-lang-nodejs=\"`deferringEnvironmentId`\" pulumi-lang-dotnet=\"`DeferringEnvironmentId`\" pulumi-lang-go=\"`deferringEnvironmentId`\" pulumi-lang-python=\"`deferring_environment_id`\" pulumi-lang-yaml=\"`deferringEnvironmentId`\" pulumi-lang-java=\"`deferringEnvironmentId`\"\u003e`deferring_environment_id`\u003c/span\u003e instead of \u003cspan pulumi-lang-nodejs=\"`deferringJobId`\" pulumi-lang-dotnet=\"`DeferringJobId`\" pulumi-lang-go=\"`deferringJobId`\" pulumi-lang-python=\"`deferring_job_id`\" pulumi-lang-yaml=\"`deferringJobId`\" pulumi-lang-java=\"`deferringJobId`\"\u003e`deferring_job_id`\u003c/span\u003e.\n\n\u003e New with 0.3.1, \u003cspan pulumi-lang-nodejs=\"`triggers`\" pulumi-lang-dotnet=\"`Triggers`\" pulumi-lang-go=\"`triggers`\" pulumi-lang-python=\"`triggers`\" pulumi-lang-yaml=\"`triggers`\" pulumi-lang-java=\"`triggers`\"\u003e`triggers`\u003c/span\u003e now accepts a \u003cspan pulumi-lang-nodejs=\"`onMerge`\" pulumi-lang-dotnet=\"`OnMerge`\" pulumi-lang-go=\"`onMerge`\" pulumi-lang-python=\"`on_merge`\" pulumi-lang-yaml=\"`onMerge`\" pulumi-lang-java=\"`onMerge`\"\u003e`on_merge`\u003c/span\u003e value to trigger jobs when code is merged in git. If \u003cspan pulumi-lang-nodejs=\"`onMerge`\" pulumi-lang-dotnet=\"`OnMerge`\" pulumi-lang-go=\"`onMerge`\" pulumi-lang-python=\"`on_merge`\" pulumi-lang-yaml=\"`onMerge`\" pulumi-lang-java=\"`onMerge`\"\u003e`on_merge`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e all other triggers need to be \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\u003cbr/\u003e\n\u003cbr/\u003e\nFor now, it is not a mandatory field, but it will be in a future version. Please add \u003cspan pulumi-lang-nodejs=\"`onMerge`\" pulumi-lang-dotnet=\"`OnMerge`\" pulumi-lang-go=\"`onMerge`\" pulumi-lang-python=\"`on_merge`\" pulumi-lang-yaml=\"`onMerge`\" pulumi-lang-java=\"`onMerge`\"\u003e`on_merge`\u003c/span\u003e in your config or modules. \n\n### For Continuous Integration\n\nIn the case of Continuous Integration, our CI job needs to defer to the Production environment.\nSo, we need to have a successful run in the Production environment before the CI process can execute as expected.\n\nThe example below shows how the Terraform config can be updated to automatically trigger a run of the job in the Production environment, leveraging the `local-exec` provisioner and \u003cspan pulumi-lang-nodejs=\"`curl`\" pulumi-lang-dotnet=\"`Curl`\" pulumi-lang-go=\"`curl`\" pulumi-lang-python=\"`curl`\" pulumi-lang-yaml=\"`curl`\" pulumi-lang-java=\"`curl`\"\u003e`curl`\u003c/span\u003e to trigger the run.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as command from \"@pulumi/command\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// a periodic job, but we trigger it once with `dbt parse` as soon as it is created so we can defer to the environment it is in\n// to do so, we use a local-exec provisioner, just make sure that the machine running Terraform has curl installed\nconst dailyJob = new dbtcloud.Job(\"daily_job\", {\n    environmentId: prodEnvironment.environmentId,\n    executeSteps: [\"dbt build\"],\n    generateDocs: true,\n    name: \"Daily job\",\n    numThreads: 64,\n    projectId: dbtProject.id,\n    runGenerateSources: true,\n    targetName: \"default\",\n    triggers: {\n        github_webhook: false,\n        git_provider_webhook: false,\n        schedule: true,\n        on_merge: false,\n    },\n    scheduleDays: [\n        0,\n        1,\n        2,\n        3,\n        4,\n        5,\n        6,\n    ],\n    scheduleType: \"days_of_week\",\n    scheduleHours: [0],\n});\nconst dailyJobProvisioner0 = new command.local.Command(\"dailyJobProvisioner0\", {create: `response=$(curl -s -L -o /dev/null -w \\\"%{http_code}\\\" -X POST \\\\\n  -H 'Authorization: Bearer ${dbtToken}' \\\\\n  -H 'Content-Type: application/json' \\\\\n  -d '{\\\"cause\\\": \\\"Generate manifest\\\", \\\"steps_override\\\": [\\\"dbt parse\\\"]}' \\\\\n  ${dbtHostUrl}/v2/accounts/${dbtAccountId}/jobs/${id}/run/)\n      \nif [ \\\"$response\\\" -ge 200 ] \u0026\u0026 [ \\\"$response\\\" -lt 300 ]; then\n  echo \\\"Success: HTTP status $response\\\"\n  exit 0\nelse\n  echo \\\"Failure: HTTP status $response\\\"\n  exit 1\nfi\n`}, {\n    dependsOn: [dailyJob],\n});\n```\n```python\nimport pulumi\nimport pulumi_command as command\nimport pulumi_dbtcloud as dbtcloud\n\n# a periodic job, but we trigger it once with `dbt parse` as soon as it is created so we can defer to the environment it is in\n# to do so, we use a local-exec provisioner, just make sure that the machine running Terraform has curl installed\ndaily_job = dbtcloud.Job(\"daily_job\",\n    environment_id=prod_environment[\"environmentId\"],\n    execute_steps=[\"dbt build\"],\n    generate_docs=True,\n    name=\"Daily job\",\n    num_threads=64,\n    project_id=dbt_project[\"id\"],\n    run_generate_sources=True,\n    target_name=\"default\",\n    triggers={\n        \"github_webhook\": False,\n        \"git_provider_webhook\": False,\n        \"schedule\": True,\n        \"on_merge\": False,\n    },\n    schedule_days=[\n        0,\n        1,\n        2,\n        3,\n        4,\n        5,\n        6,\n    ],\n    schedule_type=\"days_of_week\",\n    schedule_hours=[0])\ndaily_job_provisioner0 = command.local.Command(\"dailyJobProvisioner0\", create=fresponse=$(curl -s -L -o /dev/null -w \\\"%{{http_code}}\\\" -X POST \\\\\n  -H 'Authorization: Bearer {dbt_token}' \\\\\n  -H 'Content-Type: application/json' \\\\\n  -d '{{\\\"cause\\\": \\\"Generate manifest\\\", \\\"steps_override\\\": [\\\"dbt parse\\\"]}}' \\\\\n  {dbt_host_url}/v2/accounts/{dbt_account_id}/jobs/{id}/run/)\n      \nif [ \\\"$response\\\" -ge 200 ] \u0026\u0026 [ \\\"$response\\\" -lt 300 ]; then\n  echo \\\"Success: HTTP status $response\\\"\n  exit 0\nelse\n  echo \\\"Failure: HTTP status $response\\\"\n  exit 1\nfi\n,\nopts = pulumi.ResourceOptions(depends_on=[daily_job]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Command = Pulumi.Command;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // a periodic job, but we trigger it once with `dbt parse` as soon as it is created so we can defer to the environment it is in\n    // to do so, we use a local-exec provisioner, just make sure that the machine running Terraform has curl installed\n    var dailyJob = new DbtCloud.Job(\"daily_job\", new()\n    {\n        EnvironmentId = prodEnvironment.EnvironmentId,\n        ExecuteSteps = new[]\n        {\n            \"dbt build\",\n        },\n        GenerateDocs = true,\n        Name = \"Daily job\",\n        NumThreads = 64,\n        ProjectId = dbtProject.Id,\n        RunGenerateSources = true,\n        TargetName = \"default\",\n        Triggers = new DbtCloud.Inputs.JobTriggersArgs\n        {\n            Github_webhook = false,\n            Git_provider_webhook = false,\n            Schedule = true,\n            On_merge = false,\n        },\n        ScheduleDays = new[]\n        {\n            0,\n            1,\n            2,\n            3,\n            4,\n            5,\n            6,\n        },\n        ScheduleType = \"days_of_week\",\n        ScheduleHours = new[]\n        {\n            0,\n        },\n    });\n\n    var dailyJobProvisioner0 = new Command.Local.Command(\"dailyJobProvisioner0\", new()\n    {\n        Create = @$\"response=$(curl -s -L -o /dev/null -w \\\"\"%{{http_code}}\\\"\" -X POST \\\\\n  -H 'Authorization: Bearer {dbtToken}' \\\\\n  -H 'Content-Type: application/json' \\\\\n  -d '{{\\\"\"cause\\\"\": \\\"\"Generate manifest\\\"\", \\\"\"steps_override\\\"\": [\\\"\"dbt parse\\\"\"]}}' \\\\\n  {dbtHostUrl}/v2/accounts/{dbtAccountId}/jobs/{id}/run/)\n      \nif [ \\\"\"$response\\\"\" -ge 200 ] \u0026\u0026 [ \\\"\"$response\\\"\" -lt 300 ]; then\n  echo \\\"\"Success: HTTP status $response\\\"\"\n  exit 0\nelse\n  echo \\\"\"Failure: HTTP status $response\\\"\"\n  exit 1\nfi\n\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            dailyJob,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-command/sdk/go/command/local\"\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// a periodic job, but we trigger it once with `dbt parse` as soon as it is created so we can defer to the environment it is in\n\t\t// to do so, we use a local-exec provisioner, just make sure that the machine running Terraform has curl installed\n\t\tdailyJob, err := dbtcloud.NewJob(ctx, \"daily_job\", \u0026dbtcloud.JobArgs{\n\t\t\tEnvironmentId: pulumi.Any(prodEnvironment.EnvironmentId),\n\t\t\tExecuteSteps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"dbt build\"),\n\t\t\t},\n\t\t\tGenerateDocs:       pulumi.Bool(true),\n\t\t\tName:               pulumi.String(\"Daily job\"),\n\t\t\tNumThreads:         pulumi.Int(64),\n\t\t\tProjectId:          pulumi.Any(dbtProject.Id),\n\t\t\tRunGenerateSources: pulumi.Bool(true),\n\t\t\tTargetName:         pulumi.String(\"default\"),\n\t\t\tTriggers: \u0026dbtcloud.JobTriggersArgs{\n\t\t\t\tGithub_webhook:       false,\n\t\t\t\tGit_provider_webhook: false,\n\t\t\t\tSchedule:             pulumi.Bool(true),\n\t\t\t\tOn_merge:             false,\n\t\t\t},\n\t\t\tScheduleDays: pulumi.IntArray{\n\t\t\t\tpulumi.Int(0),\n\t\t\t\tpulumi.Int(1),\n\t\t\t\tpulumi.Int(2),\n\t\t\t\tpulumi.Int(3),\n\t\t\t\tpulumi.Int(4),\n\t\t\t\tpulumi.Int(5),\n\t\t\t\tpulumi.Int(6),\n\t\t\t},\n\t\t\tScheduleType: pulumi.String(\"days_of_week\"),\n\t\t\tScheduleHours: pulumi.IntArray{\n\t\t\t\tpulumi.Int(0),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = local.NewCommand(ctx, \"dailyJobProvisioner0\", \u0026local.CommandArgs{\n\t\t\tCreate: fmt.Sprintf(`%v%v' \\\\\n  -H 'Content-Type: application/json' \\\\\n  -d '{\\\"cause\\\": \\\"Generate manifest\\\", \\\"steps_override\\\": [\\\"dbt parse\\\"]}' \\\\\n  %v/v2/accounts/%v/jobs/%v/run/)\n      \nif [ \\\"$response\\\" -ge 200 ] \u0026\u0026 [ \\\"$response\\\" -lt 300 ]; then\n  echo \\\"Success: HTTP status $response\\\"\n  exit 0\nelse\n  echo \\\"Failure: HTTP status $response\\\"\n  exit 1\nfi\n`, \"response=$(curl -s -L -o /dev/null -w \\\\\\\"%{http_code}\\\\\\\" -X POST \\\\\\\\\\n  -H 'Authorization: Bearer \", dbtToken, dbtHostUrl, dbtAccountId, id),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdailyJob,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.Job;\nimport com.pulumi.dbtcloud.JobArgs;\nimport com.pulumi.dbtcloud.inputs.JobTriggersArgs;\nimport com.pulumi.command.local.Command;\nimport com.pulumi.command.local.CommandArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // a periodic job, but we trigger it once with `dbt parse` as soon as it is created so we can defer to the environment it is in\n        // to do so, we use a local-exec provisioner, just make sure that the machine running Terraform has curl installed\n        var dailyJob = new Job(\"dailyJob\", JobArgs.builder()\n            .environmentId(prodEnvironment.environmentId())\n            .executeSteps(\"dbt build\")\n            .generateDocs(true)\n            .name(\"Daily job\")\n            .numThreads(64)\n            .projectId(dbtProject.id())\n            .runGenerateSources(true)\n            .targetName(\"default\")\n            .triggers(JobTriggersArgs.builder()\n%!v(PANIC=Format method: interface conversion: model.Expression is *model.TemplateExpression, not *model.LiteralValueExpression))\n                .scheduleDays(                \n                    0,\n                    1,\n                    2,\n                    3,\n                    4,\n                    5,\n                    6)\n                .scheduleType(\"days_of_week\")\n                .scheduleHours(0)\n                .build());\n\n            var dailyJobProvisioner0 = new Command(\"dailyJobProvisioner0\", CommandArgs.builder()\n                .create(\"\"\"\nresponse=$(curl -s -L -o /dev/null -w \\\"%{http_code}\\\" -X POST \\\\\n  -H 'Authorization: Bearer %s' \\\\\n  -H 'Content-Type: application/json' \\\\\n  -d '{\\\"cause\\\": \\\"Generate manifest\\\", \\\"steps_override\\\": [\\\"dbt parse\\\"]}' \\\\\n  %s/v2/accounts/%s/jobs/%s/run/)\n      \nif [ \\\"$response\\\" -ge 200 ] \u0026\u0026 [ \\\"$response\\\" -lt 300 ]; then\n  echo \\\"Success: HTTP status $response\\\"\n  exit 0\nelse\n  echo \\\"Failure: HTTP status $response\\\"\n  exit 1\nfi\n\", dbtToken,dbtHostUrl,dbtAccountId,id))\n                .build(), CustomResourceOptions.builder()\n                    .dependsOn(List.of(dailyJob))\n                    .build());\n\n        }\n}\n```\n```yaml\nresources:\n  # a periodic job, but we trigger it once with `dbt parse` as soon as it is created so we can defer to the environment it is in\n  # to do so, we use a local-exec provisioner, just make sure that the machine running Terraform has curl installed\n  dailyJob:\n    type: dbtcloud:Job\n    name: daily_job\n    properties:\n      environmentId: ${prodEnvironment.environmentId}\n      executeSteps:\n        - dbt build\n      generateDocs: true\n      name: Daily job\n      numThreads: 64\n      projectId: ${dbtProject.id}\n      runGenerateSources: true\n      targetName: default\n      triggers:\n        github_webhook: false\n        git_provider_webhook: false\n        schedule: true\n        on_merge: false\n      scheduleDays:\n        - 0\n        - 1\n        - 2\n        - 3\n        - 4\n        - 5\n        - 6\n      scheduleType: days_of_week\n      scheduleHours:\n        - 0\n  dailyJobProvisioner0:\n    type: command:local:Command\n    properties:\n      create: \"response=$(curl -s -L -o /dev/null -w \\\\\\\"%{http_code}\\\\\\\" -X POST \\\\\\\\\\n  -H 'Authorization: Bearer ${dbtToken}' \\\\\\\\\\n  -H 'Content-Type: application/json' \\\\\\\\\\n  -d '{\\\\\\\"cause\\\\\\\": \\\\\\\"Generate manifest\\\\\\\", \\\\\\\"steps_override\\\\\\\": [\\\\\\\"dbt parse\\\\\\\"]}' \\\\\\\\\\n  ${dbtHostUrl}/v2/accounts/${dbtAccountId}/jobs/${id}/run/)\\n      \\nif [ \\\\\\\"$response\\\\\\\" -ge 200 ] \u0026\u0026 [ \\\\\\\"$response\\\\\\\" -lt 300 ]; then\\n  echo \\\\\\\"Success: HTTP status $response\\\\\\\"\\n  exit 0\\nelse\\n  echo \\\\\\\"Failure: HTTP status $response\\\\\\\"\\n  exit 1\\nfi\\n\"\n    options:\n      dependsOn:\n        - ${dailyJob}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### For allowing source freshness deferral\n\nIn the case that deferral is required so that we can use [the `source_status:fresher+` selector](https://docs.getdbt.com/docs/build/sources#build-models-based-on-source-freshness), \nthe process is more complicated as the job will be self deferring.\n\nAn example can be found in this GitHub issue.\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_job.my_job\nid = \u003cspan pulumi-lang-nodejs=\"\"jobId\"\" pulumi-lang-dotnet=\"\"JobId\"\" pulumi-lang-go=\"\"jobId\"\" pulumi-lang-python=\"\"job_id\"\" pulumi-lang-yaml=\"\"jobId\"\" pulumi-lang-java=\"\"jobId\"\"\u003e\"job_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_job.my_job\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/job:Job my_job \"job_id\"\n$ pulumi import dbtcloud:index/job:Job my_job 12345\n```\n\n","properties":{"compareChangesFlags":{"type":"string","description":"The model selector for checking changes in the compare changes Advanced CI feature\n"},"dbtVersion":{"type":"string","description":"Version number of dbt to use in this job, usually in the format 1.2.0-latest rather than core versions\n"},"deferringEnvironmentId":{"type":"integer","description":"Environment identifier that this job defers to (new deferring approach)\n"},"deferringJobId":{"type":"integer","description":"Job identifier that this job defers to (legacy deferring approach)\n"},"description":{"type":"string","description":"Description for the job\n"},"environmentId":{"type":"integer","description":"Environment ID to create the job in\n"},"errorsOnLintFailure":{"type":"boolean","description":"Whether the CI job should fail when a lint error is found. Only used when \u003cspan pulumi-lang-nodejs=\"`runLint`\" pulumi-lang-dotnet=\"`RunLint`\" pulumi-lang-go=\"`runLint`\" pulumi-lang-python=\"`run_lint`\" pulumi-lang-yaml=\"`runLint`\" pulumi-lang-java=\"`runLint`\"\u003e`run_lint`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"executeSteps":{"type":"array","items":{"type":"string"},"description":"List of commands to execute for the job\n"},"execution":{"$ref":"#/types/dbtcloud:index/JobExecution:JobExecution","description":"Execution settings for the job\n"},"forceNodeSelection":{"type":"boolean","description":"Whether to force node selection (SAO - Select All Optimizations) for the job. If \u003cspan pulumi-lang-nodejs=\"`dbtVersion`\" pulumi-lang-dotnet=\"`DbtVersion`\" pulumi-lang-go=\"`dbtVersion`\" pulumi-lang-python=\"`dbt_version`\" pulumi-lang-yaml=\"`dbtVersion`\" pulumi-lang-java=\"`dbtVersion`\"\u003e`dbt_version`\u003c/span\u003e is not set to `latest-fusion`, this must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e when specified.\n"},"generateDocs":{"type":"boolean","description":"Flag for whether the job should generate documentation\n"},"isActive":{"type":"boolean","description":"Should always be set to true as setting it to false is the same as creating a job in a deleted state. To create/keep a job in a 'deactivated' state, check  the \u003cspan pulumi-lang-nodejs=\"`triggers`\" pulumi-lang-dotnet=\"`Triggers`\" pulumi-lang-go=\"`triggers`\" pulumi-lang-python=\"`triggers`\" pulumi-lang-yaml=\"`triggers`\" pulumi-lang-java=\"`triggers`\"\u003e`triggers`\u003c/span\u003e config. Setting it to false essentially deletes the job. On resource creation, this field is enforced to be true.\n"},"jobCompletionTriggerConditions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/JobJobCompletionTriggerCondition:JobJobCompletionTriggerCondition"},"description":"Which other job should trigger this job when it finishes, and on which conditions (sometimes referred as 'job chaining').\n","language":{"csharp":{"name":"CompletionTriggerCondition"}}},"jobId":{"type":"integer","description":"Job identifier\n"},"jobType":{"type":"string","description":"Can be used to enforce the job type betwen \u003cspan pulumi-lang-nodejs=\"`ci`\" pulumi-lang-dotnet=\"`Ci`\" pulumi-lang-go=\"`ci`\" pulumi-lang-python=\"`ci`\" pulumi-lang-yaml=\"`ci`\" pulumi-lang-java=\"`ci`\"\u003e`ci`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`merge`\" pulumi-lang-dotnet=\"`Merge`\" pulumi-lang-go=\"`merge`\" pulumi-lang-python=\"`merge`\" pulumi-lang-yaml=\"`merge`\" pulumi-lang-java=\"`merge`\"\u003e`merge`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scheduled`\" pulumi-lang-dotnet=\"`Scheduled`\" pulumi-lang-go=\"`scheduled`\" pulumi-lang-python=\"`scheduled`\" pulumi-lang-yaml=\"`scheduled`\" pulumi-lang-java=\"`scheduled`\"\u003e`scheduled`\u003c/span\u003e. Without this value the job type is inferred from the triggers configured\n"},"name":{"type":"string","description":"Job name\n"},"numThreads":{"type":"integer","description":"Number of threads to use in the job\n"},"projectId":{"type":"integer","description":"Project ID to create the job in\n"},"runCompareChanges":{"type":"boolean","description":"Whether the CI job should compare data changes introduced by the code changes. Requires \u003cspan pulumi-lang-nodejs=\"`deferringEnvironmentId`\" pulumi-lang-dotnet=\"`DeferringEnvironmentId`\" pulumi-lang-go=\"`deferringEnvironmentId`\" pulumi-lang-python=\"`deferring_environment_id`\" pulumi-lang-yaml=\"`deferringEnvironmentId`\" pulumi-lang-java=\"`deferringEnvironmentId`\"\u003e`deferring_environment_id`\u003c/span\u003e to be set. (Advanced CI needs to be activated in the dbt Cloud Account Settings first as well)\n"},"runGenerateSources":{"type":"boolean","description":"Flag for whether the job should add a `dbt source freshness` step to the job. The difference between manually adding a step with `dbt source freshness` in the job steps or using this flag is that with this flag, a failed freshness will still allow the following steps to run.\n"},"runLint":{"type":"boolean","description":"Whether the CI job should lint SQL changes. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"scheduleCron":{"type":"string","description":"Custom cron expression for schedule\n"},"scheduleDays":{"type":"array","items":{"type":"integer"},"description":"List of days of week as numbers (0 = Sunday, 7 = Saturday) to execute the job at if running on a schedule\n"},"scheduleHours":{"type":"array","items":{"type":"integer"},"description":"List of hours to execute the job at if running on a schedule\n"},"scheduleInterval":{"type":"integer","description":"Number of hours between job executions if running on a schedule\n"},"scheduleType":{"type":"string","description":"Type of schedule to use, one of every*day/ days*of*week/ custom*cron/ interval_cron\n"},"selfDeferring":{"type":"boolean","description":"Whether this job defers on a previous run of itself\n"},"targetName":{"type":"string","description":"Target name for the dbt profile\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds to allow the job to run before timing out. Use execution.timeout_seconds instead.\n","deprecationMessage":"Use execution.timeout_seconds instead"},"triggers":{"$ref":"#/types/dbtcloud:index/JobTriggers:JobTriggers","description":"Flags for which types of triggers to use, the values are \u003cspan pulumi-lang-nodejs=\"`githubWebhook`\" pulumi-lang-dotnet=\"`GithubWebhook`\" pulumi-lang-go=\"`githubWebhook`\" pulumi-lang-python=\"`github_webhook`\" pulumi-lang-yaml=\"`githubWebhook`\" pulumi-lang-java=\"`githubWebhook`\"\u003e`github_webhook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gitProviderWebhook`\" pulumi-lang-dotnet=\"`GitProviderWebhook`\" pulumi-lang-go=\"`gitProviderWebhook`\" pulumi-lang-python=\"`git_provider_webhook`\" pulumi-lang-yaml=\"`gitProviderWebhook`\" pulumi-lang-java=\"`gitProviderWebhook`\"\u003e`git_provider_webhook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`onMerge`\" pulumi-lang-dotnet=\"`OnMerge`\" pulumi-lang-go=\"`onMerge`\" pulumi-lang-python=\"`on_merge`\" pulumi-lang-yaml=\"`onMerge`\" pulumi-lang-java=\"`onMerge`\"\u003e`on_merge`\u003c/span\u003e. All flags should be listed and set with \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. When \u003cspan pulumi-lang-nodejs=\"`onMerge`\" pulumi-lang-dotnet=\"`OnMerge`\" pulumi-lang-go=\"`onMerge`\" pulumi-lang-python=\"`on_merge`\" pulumi-lang-yaml=\"`onMerge`\" pulumi-lang-java=\"`onMerge`\"\u003e`on_merge`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, all the other values must be false.\\n\\n\u003cspan pulumi-lang-nodejs=\"`customBranchOnly`\" pulumi-lang-dotnet=\"`CustomBranchOnly`\" pulumi-lang-go=\"`customBranchOnly`\" pulumi-lang-python=\"`custom_branch_only`\" pulumi-lang-yaml=\"`customBranchOnly`\" pulumi-lang-java=\"`customBranchOnly`\"\u003e`custom_branch_only`\u003c/span\u003e used to be allowed but has been deprecated from the API. The jobs will use the custom branch of the environment. Please remove the \u003cspan pulumi-lang-nodejs=\"`customBranchOnly`\" pulumi-lang-dotnet=\"`CustomBranchOnly`\" pulumi-lang-go=\"`customBranchOnly`\" pulumi-lang-python=\"`custom_branch_only`\" pulumi-lang-yaml=\"`customBranchOnly`\" pulumi-lang-java=\"`customBranchOnly`\"\u003e`custom_branch_only`\u003c/span\u003e from your config. \\n\\nTo create a job in a 'deactivated' state, set all to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"triggersOnDraftPr":{"type":"boolean","description":"Whether the CI job should be automatically triggered on draft PRs\n"},"validateExecuteSteps":{"type":"boolean","description":"When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the provider will validate the \u003cspan pulumi-lang-nodejs=\"`executeSteps`\" pulumi-lang-dotnet=\"`ExecuteSteps`\" pulumi-lang-go=\"`executeSteps`\" pulumi-lang-python=\"`execute_steps`\" pulumi-lang-yaml=\"`executeSteps`\" pulumi-lang-java=\"`executeSteps`\"\u003e`execute_steps`\u003c/span\u003e during plan time to ensure they contain valid dbt commands. If a command is not recognized (e.g., a new dbt command not yet supported by the provider), the validation will fail. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to allow flexibility with newer dbt commands.\n"}},"required":["compareChangesFlags","description","environmentId","errorsOnLintFailure","executeSteps","forceNodeSelection","generateDocs","isActive","jobId","jobType","name","numThreads","projectId","runCompareChanges","runGenerateSources","runLint","scheduleInterval","scheduleType","selfDeferring","targetName","timeoutSeconds","triggers","triggersOnDraftPr","validateExecuteSteps"],"inputProperties":{"compareChangesFlags":{"type":"string","description":"The model selector for checking changes in the compare changes Advanced CI feature\n"},"dbtVersion":{"type":"string","description":"Version number of dbt to use in this job, usually in the format 1.2.0-latest rather than core versions\n"},"deferringEnvironmentId":{"type":"integer","description":"Environment identifier that this job defers to (new deferring approach)\n"},"deferringJobId":{"type":"integer","description":"Job identifier that this job defers to (legacy deferring approach)\n"},"description":{"type":"string","description":"Description for the job\n"},"environmentId":{"type":"integer","description":"Environment ID to create the job in\n"},"errorsOnLintFailure":{"type":"boolean","description":"Whether the CI job should fail when a lint error is found. Only used when \u003cspan pulumi-lang-nodejs=\"`runLint`\" pulumi-lang-dotnet=\"`RunLint`\" pulumi-lang-go=\"`runLint`\" pulumi-lang-python=\"`run_lint`\" pulumi-lang-yaml=\"`runLint`\" pulumi-lang-java=\"`runLint`\"\u003e`run_lint`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"executeSteps":{"type":"array","items":{"type":"string"},"description":"List of commands to execute for the job\n"},"execution":{"$ref":"#/types/dbtcloud:index/JobExecution:JobExecution","description":"Execution settings for the job\n"},"forceNodeSelection":{"type":"boolean","description":"Whether to force node selection (SAO - Select All Optimizations) for the job. If \u003cspan pulumi-lang-nodejs=\"`dbtVersion`\" pulumi-lang-dotnet=\"`DbtVersion`\" pulumi-lang-go=\"`dbtVersion`\" pulumi-lang-python=\"`dbt_version`\" pulumi-lang-yaml=\"`dbtVersion`\" pulumi-lang-java=\"`dbtVersion`\"\u003e`dbt_version`\u003c/span\u003e is not set to `latest-fusion`, this must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e when specified.\n"},"generateDocs":{"type":"boolean","description":"Flag for whether the job should generate documentation\n"},"isActive":{"type":"boolean","description":"Should always be set to true as setting it to false is the same as creating a job in a deleted state. To create/keep a job in a 'deactivated' state, check  the \u003cspan pulumi-lang-nodejs=\"`triggers`\" pulumi-lang-dotnet=\"`Triggers`\" pulumi-lang-go=\"`triggers`\" pulumi-lang-python=\"`triggers`\" pulumi-lang-yaml=\"`triggers`\" pulumi-lang-java=\"`triggers`\"\u003e`triggers`\u003c/span\u003e config. Setting it to false essentially deletes the job. On resource creation, this field is enforced to be true.\n"},"jobCompletionTriggerConditions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/JobJobCompletionTriggerCondition:JobJobCompletionTriggerCondition"},"description":"Which other job should trigger this job when it finishes, and on which conditions (sometimes referred as 'job chaining').\n","language":{"csharp":{"name":"CompletionTriggerCondition"}}},"jobType":{"type":"string","description":"Can be used to enforce the job type betwen \u003cspan pulumi-lang-nodejs=\"`ci`\" pulumi-lang-dotnet=\"`Ci`\" pulumi-lang-go=\"`ci`\" pulumi-lang-python=\"`ci`\" pulumi-lang-yaml=\"`ci`\" pulumi-lang-java=\"`ci`\"\u003e`ci`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`merge`\" pulumi-lang-dotnet=\"`Merge`\" pulumi-lang-go=\"`merge`\" pulumi-lang-python=\"`merge`\" pulumi-lang-yaml=\"`merge`\" pulumi-lang-java=\"`merge`\"\u003e`merge`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scheduled`\" pulumi-lang-dotnet=\"`Scheduled`\" pulumi-lang-go=\"`scheduled`\" pulumi-lang-python=\"`scheduled`\" pulumi-lang-yaml=\"`scheduled`\" pulumi-lang-java=\"`scheduled`\"\u003e`scheduled`\u003c/span\u003e. Without this value the job type is inferred from the triggers configured\n"},"name":{"type":"string","description":"Job name\n"},"numThreads":{"type":"integer","description":"Number of threads to use in the job\n"},"projectId":{"type":"integer","description":"Project ID to create the job in\n"},"runCompareChanges":{"type":"boolean","description":"Whether the CI job should compare data changes introduced by the code changes. Requires \u003cspan pulumi-lang-nodejs=\"`deferringEnvironmentId`\" pulumi-lang-dotnet=\"`DeferringEnvironmentId`\" pulumi-lang-go=\"`deferringEnvironmentId`\" pulumi-lang-python=\"`deferring_environment_id`\" pulumi-lang-yaml=\"`deferringEnvironmentId`\" pulumi-lang-java=\"`deferringEnvironmentId`\"\u003e`deferring_environment_id`\u003c/span\u003e to be set. (Advanced CI needs to be activated in the dbt Cloud Account Settings first as well)\n"},"runGenerateSources":{"type":"boolean","description":"Flag for whether the job should add a `dbt source freshness` step to the job. The difference between manually adding a step with `dbt source freshness` in the job steps or using this flag is that with this flag, a failed freshness will still allow the following steps to run.\n"},"runLint":{"type":"boolean","description":"Whether the CI job should lint SQL changes. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"scheduleCron":{"type":"string","description":"Custom cron expression for schedule\n"},"scheduleDays":{"type":"array","items":{"type":"integer"},"description":"List of days of week as numbers (0 = Sunday, 7 = Saturday) to execute the job at if running on a schedule\n"},"scheduleHours":{"type":"array","items":{"type":"integer"},"description":"List of hours to execute the job at if running on a schedule\n"},"scheduleInterval":{"type":"integer","description":"Number of hours between job executions if running on a schedule\n"},"scheduleType":{"type":"string","description":"Type of schedule to use, one of every*day/ days*of*week/ custom*cron/ interval_cron\n"},"selfDeferring":{"type":"boolean","description":"Whether this job defers on a previous run of itself\n"},"targetName":{"type":"string","description":"Target name for the dbt profile\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds to allow the job to run before timing out. Use execution.timeout_seconds instead.\n","deprecationMessage":"Use execution.timeout_seconds instead"},"triggers":{"$ref":"#/types/dbtcloud:index/JobTriggers:JobTriggers","description":"Flags for which types of triggers to use, the values are \u003cspan pulumi-lang-nodejs=\"`githubWebhook`\" pulumi-lang-dotnet=\"`GithubWebhook`\" pulumi-lang-go=\"`githubWebhook`\" pulumi-lang-python=\"`github_webhook`\" pulumi-lang-yaml=\"`githubWebhook`\" pulumi-lang-java=\"`githubWebhook`\"\u003e`github_webhook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gitProviderWebhook`\" pulumi-lang-dotnet=\"`GitProviderWebhook`\" pulumi-lang-go=\"`gitProviderWebhook`\" pulumi-lang-python=\"`git_provider_webhook`\" pulumi-lang-yaml=\"`gitProviderWebhook`\" pulumi-lang-java=\"`gitProviderWebhook`\"\u003e`git_provider_webhook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`onMerge`\" pulumi-lang-dotnet=\"`OnMerge`\" pulumi-lang-go=\"`onMerge`\" pulumi-lang-python=\"`on_merge`\" pulumi-lang-yaml=\"`onMerge`\" pulumi-lang-java=\"`onMerge`\"\u003e`on_merge`\u003c/span\u003e. All flags should be listed and set with \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. When \u003cspan pulumi-lang-nodejs=\"`onMerge`\" pulumi-lang-dotnet=\"`OnMerge`\" pulumi-lang-go=\"`onMerge`\" pulumi-lang-python=\"`on_merge`\" pulumi-lang-yaml=\"`onMerge`\" pulumi-lang-java=\"`onMerge`\"\u003e`on_merge`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, all the other values must be false.\\n\\n\u003cspan pulumi-lang-nodejs=\"`customBranchOnly`\" pulumi-lang-dotnet=\"`CustomBranchOnly`\" pulumi-lang-go=\"`customBranchOnly`\" pulumi-lang-python=\"`custom_branch_only`\" pulumi-lang-yaml=\"`customBranchOnly`\" pulumi-lang-java=\"`customBranchOnly`\"\u003e`custom_branch_only`\u003c/span\u003e used to be allowed but has been deprecated from the API. The jobs will use the custom branch of the environment. Please remove the \u003cspan pulumi-lang-nodejs=\"`customBranchOnly`\" pulumi-lang-dotnet=\"`CustomBranchOnly`\" pulumi-lang-go=\"`customBranchOnly`\" pulumi-lang-python=\"`custom_branch_only`\" pulumi-lang-yaml=\"`customBranchOnly`\" pulumi-lang-java=\"`customBranchOnly`\"\u003e`custom_branch_only`\u003c/span\u003e from your config. \\n\\nTo create a job in a 'deactivated' state, set all to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"triggersOnDraftPr":{"type":"boolean","description":"Whether the CI job should be automatically triggered on draft PRs\n"},"validateExecuteSteps":{"type":"boolean","description":"When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the provider will validate the \u003cspan pulumi-lang-nodejs=\"`executeSteps`\" pulumi-lang-dotnet=\"`ExecuteSteps`\" pulumi-lang-go=\"`executeSteps`\" pulumi-lang-python=\"`execute_steps`\" pulumi-lang-yaml=\"`executeSteps`\" pulumi-lang-java=\"`executeSteps`\"\u003e`execute_steps`\u003c/span\u003e during plan time to ensure they contain valid dbt commands. If a command is not recognized (e.g., a new dbt command not yet supported by the provider), the validation will fail. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to allow flexibility with newer dbt commands.\n"}},"requiredInputs":["environmentId","executeSteps","projectId","triggers"],"stateInputs":{"description":"Input properties used for looking up and filtering Job resources.\n","properties":{"compareChangesFlags":{"type":"string","description":"The model selector for checking changes in the compare changes Advanced CI feature\n"},"dbtVersion":{"type":"string","description":"Version number of dbt to use in this job, usually in the format 1.2.0-latest rather than core versions\n"},"deferringEnvironmentId":{"type":"integer","description":"Environment identifier that this job defers to (new deferring approach)\n"},"deferringJobId":{"type":"integer","description":"Job identifier that this job defers to (legacy deferring approach)\n"},"description":{"type":"string","description":"Description for the job\n"},"environmentId":{"type":"integer","description":"Environment ID to create the job in\n"},"errorsOnLintFailure":{"type":"boolean","description":"Whether the CI job should fail when a lint error is found. Only used when \u003cspan pulumi-lang-nodejs=\"`runLint`\" pulumi-lang-dotnet=\"`RunLint`\" pulumi-lang-go=\"`runLint`\" pulumi-lang-python=\"`run_lint`\" pulumi-lang-yaml=\"`runLint`\" pulumi-lang-java=\"`runLint`\"\u003e`run_lint`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"executeSteps":{"type":"array","items":{"type":"string"},"description":"List of commands to execute for the job\n"},"execution":{"$ref":"#/types/dbtcloud:index/JobExecution:JobExecution","description":"Execution settings for the job\n"},"forceNodeSelection":{"type":"boolean","description":"Whether to force node selection (SAO - Select All Optimizations) for the job. If \u003cspan pulumi-lang-nodejs=\"`dbtVersion`\" pulumi-lang-dotnet=\"`DbtVersion`\" pulumi-lang-go=\"`dbtVersion`\" pulumi-lang-python=\"`dbt_version`\" pulumi-lang-yaml=\"`dbtVersion`\" pulumi-lang-java=\"`dbtVersion`\"\u003e`dbt_version`\u003c/span\u003e is not set to `latest-fusion`, this must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e when specified.\n"},"generateDocs":{"type":"boolean","description":"Flag for whether the job should generate documentation\n"},"isActive":{"type":"boolean","description":"Should always be set to true as setting it to false is the same as creating a job in a deleted state. To create/keep a job in a 'deactivated' state, check  the \u003cspan pulumi-lang-nodejs=\"`triggers`\" pulumi-lang-dotnet=\"`Triggers`\" pulumi-lang-go=\"`triggers`\" pulumi-lang-python=\"`triggers`\" pulumi-lang-yaml=\"`triggers`\" pulumi-lang-java=\"`triggers`\"\u003e`triggers`\u003c/span\u003e config. Setting it to false essentially deletes the job. On resource creation, this field is enforced to be true.\n"},"jobCompletionTriggerConditions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/JobJobCompletionTriggerCondition:JobJobCompletionTriggerCondition"},"description":"Which other job should trigger this job when it finishes, and on which conditions (sometimes referred as 'job chaining').\n","language":{"csharp":{"name":"CompletionTriggerCondition"}}},"jobId":{"type":"integer","description":"Job identifier\n"},"jobType":{"type":"string","description":"Can be used to enforce the job type betwen \u003cspan pulumi-lang-nodejs=\"`ci`\" pulumi-lang-dotnet=\"`Ci`\" pulumi-lang-go=\"`ci`\" pulumi-lang-python=\"`ci`\" pulumi-lang-yaml=\"`ci`\" pulumi-lang-java=\"`ci`\"\u003e`ci`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`merge`\" pulumi-lang-dotnet=\"`Merge`\" pulumi-lang-go=\"`merge`\" pulumi-lang-python=\"`merge`\" pulumi-lang-yaml=\"`merge`\" pulumi-lang-java=\"`merge`\"\u003e`merge`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scheduled`\" pulumi-lang-dotnet=\"`Scheduled`\" pulumi-lang-go=\"`scheduled`\" pulumi-lang-python=\"`scheduled`\" pulumi-lang-yaml=\"`scheduled`\" pulumi-lang-java=\"`scheduled`\"\u003e`scheduled`\u003c/span\u003e. Without this value the job type is inferred from the triggers configured\n"},"name":{"type":"string","description":"Job name\n"},"numThreads":{"type":"integer","description":"Number of threads to use in the job\n"},"projectId":{"type":"integer","description":"Project ID to create the job in\n"},"runCompareChanges":{"type":"boolean","description":"Whether the CI job should compare data changes introduced by the code changes. Requires \u003cspan pulumi-lang-nodejs=\"`deferringEnvironmentId`\" pulumi-lang-dotnet=\"`DeferringEnvironmentId`\" pulumi-lang-go=\"`deferringEnvironmentId`\" pulumi-lang-python=\"`deferring_environment_id`\" pulumi-lang-yaml=\"`deferringEnvironmentId`\" pulumi-lang-java=\"`deferringEnvironmentId`\"\u003e`deferring_environment_id`\u003c/span\u003e to be set. (Advanced CI needs to be activated in the dbt Cloud Account Settings first as well)\n"},"runGenerateSources":{"type":"boolean","description":"Flag for whether the job should add a `dbt source freshness` step to the job. The difference between manually adding a step with `dbt source freshness` in the job steps or using this flag is that with this flag, a failed freshness will still allow the following steps to run.\n"},"runLint":{"type":"boolean","description":"Whether the CI job should lint SQL changes. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"scheduleCron":{"type":"string","description":"Custom cron expression for schedule\n"},"scheduleDays":{"type":"array","items":{"type":"integer"},"description":"List of days of week as numbers (0 = Sunday, 7 = Saturday) to execute the job at if running on a schedule\n"},"scheduleHours":{"type":"array","items":{"type":"integer"},"description":"List of hours to execute the job at if running on a schedule\n"},"scheduleInterval":{"type":"integer","description":"Number of hours between job executions if running on a schedule\n"},"scheduleType":{"type":"string","description":"Type of schedule to use, one of every*day/ days*of*week/ custom*cron/ interval_cron\n"},"selfDeferring":{"type":"boolean","description":"Whether this job defers on a previous run of itself\n"},"targetName":{"type":"string","description":"Target name for the dbt profile\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds to allow the job to run before timing out. Use execution.timeout_seconds instead.\n","deprecationMessage":"Use execution.timeout_seconds instead"},"triggers":{"$ref":"#/types/dbtcloud:index/JobTriggers:JobTriggers","description":"Flags for which types of triggers to use, the values are \u003cspan pulumi-lang-nodejs=\"`githubWebhook`\" pulumi-lang-dotnet=\"`GithubWebhook`\" pulumi-lang-go=\"`githubWebhook`\" pulumi-lang-python=\"`github_webhook`\" pulumi-lang-yaml=\"`githubWebhook`\" pulumi-lang-java=\"`githubWebhook`\"\u003e`github_webhook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gitProviderWebhook`\" pulumi-lang-dotnet=\"`GitProviderWebhook`\" pulumi-lang-go=\"`gitProviderWebhook`\" pulumi-lang-python=\"`git_provider_webhook`\" pulumi-lang-yaml=\"`gitProviderWebhook`\" pulumi-lang-java=\"`gitProviderWebhook`\"\u003e`git_provider_webhook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`onMerge`\" pulumi-lang-dotnet=\"`OnMerge`\" pulumi-lang-go=\"`onMerge`\" pulumi-lang-python=\"`on_merge`\" pulumi-lang-yaml=\"`onMerge`\" pulumi-lang-java=\"`onMerge`\"\u003e`on_merge`\u003c/span\u003e. All flags should be listed and set with \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. When \u003cspan pulumi-lang-nodejs=\"`onMerge`\" pulumi-lang-dotnet=\"`OnMerge`\" pulumi-lang-go=\"`onMerge`\" pulumi-lang-python=\"`on_merge`\" pulumi-lang-yaml=\"`onMerge`\" pulumi-lang-java=\"`onMerge`\"\u003e`on_merge`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, all the other values must be false.\\n\\n\u003cspan pulumi-lang-nodejs=\"`customBranchOnly`\" pulumi-lang-dotnet=\"`CustomBranchOnly`\" pulumi-lang-go=\"`customBranchOnly`\" pulumi-lang-python=\"`custom_branch_only`\" pulumi-lang-yaml=\"`customBranchOnly`\" pulumi-lang-java=\"`customBranchOnly`\"\u003e`custom_branch_only`\u003c/span\u003e used to be allowed but has been deprecated from the API. The jobs will use the custom branch of the environment. Please remove the \u003cspan pulumi-lang-nodejs=\"`customBranchOnly`\" pulumi-lang-dotnet=\"`CustomBranchOnly`\" pulumi-lang-go=\"`customBranchOnly`\" pulumi-lang-python=\"`custom_branch_only`\" pulumi-lang-yaml=\"`customBranchOnly`\" pulumi-lang-java=\"`customBranchOnly`\"\u003e`custom_branch_only`\u003c/span\u003e from your config. \\n\\nTo create a job in a 'deactivated' state, set all to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"triggersOnDraftPr":{"type":"boolean","description":"Whether the CI job should be automatically triggered on draft PRs\n"},"validateExecuteSteps":{"type":"boolean","description":"When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the provider will validate the \u003cspan pulumi-lang-nodejs=\"`executeSteps`\" pulumi-lang-dotnet=\"`ExecuteSteps`\" pulumi-lang-go=\"`executeSteps`\" pulumi-lang-python=\"`execute_steps`\" pulumi-lang-yaml=\"`executeSteps`\" pulumi-lang-java=\"`executeSteps`\"\u003e`execute_steps`\u003c/span\u003e during plan time to ensure they contain valid dbt commands. If a command is not recognized (e.g., a new dbt command not yet supported by the provider), the validation will fail. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to allow flexibility with newer dbt commands.\n"}},"type":"object"}},"dbtcloud:index/licenseMap:LicenseMap":{"description":"Maps SSO groups to a given license type\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Developer license group mapping\nconst devLicenseMap = new dbtcloud.LicenseMap(\"dev_license_map\", {\n    licenseType: \"developer\",\n    ssoLicenseMappingGroups: [\"DEV-SSO-GROUP\"],\n});\n// Read-only license mapping\nconst readOnlyLicenseMap = new dbtcloud.LicenseMap(\"read_only_license_map\", {\n    licenseType: \"read_only\",\n    ssoLicenseMappingGroups: [\"READ-ONLY-SSO-GROUP\"],\n});\n// IT license mapping\nconst itLicenseMap = new dbtcloud.LicenseMap(\"it_license_map\", {\n    licenseType: \"it\",\n    ssoLicenseMappingGroups: [\"IT-SSO-GROUP\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Developer license group mapping\ndev_license_map = dbtcloud.LicenseMap(\"dev_license_map\",\n    license_type=\"developer\",\n    sso_license_mapping_groups=[\"DEV-SSO-GROUP\"])\n# Read-only license mapping\nread_only_license_map = dbtcloud.LicenseMap(\"read_only_license_map\",\n    license_type=\"read_only\",\n    sso_license_mapping_groups=[\"READ-ONLY-SSO-GROUP\"])\n# IT license mapping\nit_license_map = dbtcloud.LicenseMap(\"it_license_map\",\n    license_type=\"it\",\n    sso_license_mapping_groups=[\"IT-SSO-GROUP\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Developer license group mapping\n    var devLicenseMap = new DbtCloud.LicenseMap(\"dev_license_map\", new()\n    {\n        LicenseType = \"developer\",\n        SsoLicenseMappingGroups = new[]\n        {\n            \"DEV-SSO-GROUP\",\n        },\n    });\n\n    // Read-only license mapping\n    var readOnlyLicenseMap = new DbtCloud.LicenseMap(\"read_only_license_map\", new()\n    {\n        LicenseType = \"read_only\",\n        SsoLicenseMappingGroups = new[]\n        {\n            \"READ-ONLY-SSO-GROUP\",\n        },\n    });\n\n    // IT license mapping\n    var itLicenseMap = new DbtCloud.LicenseMap(\"it_license_map\", new()\n    {\n        LicenseType = \"it\",\n        SsoLicenseMappingGroups = new[]\n        {\n            \"IT-SSO-GROUP\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Developer license group mapping\n\t\t_, err := dbtcloud.NewLicenseMap(ctx, \"dev_license_map\", \u0026dbtcloud.LicenseMapArgs{\n\t\t\tLicenseType: pulumi.String(\"developer\"),\n\t\t\tSsoLicenseMappingGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"DEV-SSO-GROUP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Read-only license mapping\n\t\t_, err = dbtcloud.NewLicenseMap(ctx, \"read_only_license_map\", \u0026dbtcloud.LicenseMapArgs{\n\t\t\tLicenseType: pulumi.String(\"read_only\"),\n\t\t\tSsoLicenseMappingGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"READ-ONLY-SSO-GROUP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IT license mapping\n\t\t_, err = dbtcloud.NewLicenseMap(ctx, \"it_license_map\", \u0026dbtcloud.LicenseMapArgs{\n\t\t\tLicenseType: pulumi.String(\"it\"),\n\t\t\tSsoLicenseMappingGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"IT-SSO-GROUP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.LicenseMap;\nimport com.pulumi.dbtcloud.LicenseMapArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Developer license group mapping\n        var devLicenseMap = new LicenseMap(\"devLicenseMap\", LicenseMapArgs.builder()\n            .licenseType(\"developer\")\n            .ssoLicenseMappingGroups(\"DEV-SSO-GROUP\")\n            .build());\n\n        // Read-only license mapping\n        var readOnlyLicenseMap = new LicenseMap(\"readOnlyLicenseMap\", LicenseMapArgs.builder()\n            .licenseType(\"read_only\")\n            .ssoLicenseMappingGroups(\"READ-ONLY-SSO-GROUP\")\n            .build());\n\n        // IT license mapping\n        var itLicenseMap = new LicenseMap(\"itLicenseMap\", LicenseMapArgs.builder()\n            .licenseType(\"it\")\n            .ssoLicenseMappingGroups(\"IT-SSO-GROUP\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Developer license group mapping\n  devLicenseMap:\n    type: dbtcloud:LicenseMap\n    name: dev_license_map\n    properties:\n      licenseType: developer\n      ssoLicenseMappingGroups:\n        - DEV-SSO-GROUP\n  # Read-only license mapping\n  readOnlyLicenseMap:\n    type: dbtcloud:LicenseMap\n    name: read_only_license_map\n    properties:\n      licenseType: read_only\n      ssoLicenseMappingGroups:\n        - READ-ONLY-SSO-GROUP\n  # IT license mapping\n  itLicenseMap:\n    type: dbtcloud:LicenseMap\n    name: it_license_map\n    properties:\n      licenseType: it\n      ssoLicenseMappingGroups:\n        - IT-SSO-GROUP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_license_map.my_license_map\nid = \u003cspan pulumi-lang-nodejs=\"\"licenseMapId\"\" pulumi-lang-dotnet=\"\"LicenseMapId\"\" pulumi-lang-go=\"\"licenseMapId\"\" pulumi-lang-python=\"\"license_map_id\"\" pulumi-lang-yaml=\"\"licenseMapId\"\" pulumi-lang-java=\"\"licenseMapId\"\"\u003e\"license_map_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_license_map.my_license_map\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/licenseMap:LicenseMap my_license_map \"license_map_id\"\n$ pulumi import dbtcloud:index/licenseMap:LicenseMap my_license_map 12345\n```\n\n","properties":{"licenseType":{"type":"string","description":"License type\n"},"ssoLicenseMappingGroups":{"type":"array","items":{"type":"string"},"description":"SSO license mapping group names for this group\n"}},"required":["licenseType"],"inputProperties":{"licenseType":{"type":"string","description":"License type\n"},"ssoLicenseMappingGroups":{"type":"array","items":{"type":"string"},"description":"SSO license mapping group names for this group\n"}},"requiredInputs":["licenseType"],"stateInputs":{"description":"Input properties used for looking up and filtering LicenseMap resources.\n","properties":{"licenseType":{"type":"string","description":"License type\n"},"ssoLicenseMappingGroups":{"type":"array","items":{"type":"string"},"description":"SSO license mapping group names for this group\n"}},"type":"object"}},"dbtcloud:index/lineageIntegration:LineageIntegration":{"description":"Setup lineage integration for dbt Cloud to automatically fetch lineage from external BI tools in dbt Explorer. Currently supports Tableau.\n\nThis resource requires having an environment tagged as production already created for you project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// the resource can only be configured when a Prod environment has been set\n// so, you might want to explicitly set the dependency on your Prod environment resource\nconst myLineage = new dbtcloud.LineageIntegration(\"my_lineage\", {\n    projectId: myProject.id,\n    host: \"my.host.com\",\n    siteId: \"mysiteid\",\n    tokenName: \"my-token-name\",\n    token: \"my-sensitive-token\",\n}, {\n    dependsOn: [myProdEnv],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# the resource can only be configured when a Prod environment has been set\n# so, you might want to explicitly set the dependency on your Prod environment resource\nmy_lineage = dbtcloud.LineageIntegration(\"my_lineage\",\n    project_id=my_project[\"id\"],\n    host=\"my.host.com\",\n    site_id=\"mysiteid\",\n    token_name=\"my-token-name\",\n    token=\"my-sensitive-token\",\n    opts = pulumi.ResourceOptions(depends_on=[my_prod_env]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // the resource can only be configured when a Prod environment has been set\n    // so, you might want to explicitly set the dependency on your Prod environment resource\n    var myLineage = new DbtCloud.LineageIntegration(\"my_lineage\", new()\n    {\n        ProjectId = myProject.Id,\n        Host = \"my.host.com\",\n        SiteId = \"mysiteid\",\n        TokenName = \"my-token-name\",\n        Token = \"my-sensitive-token\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            myProdEnv,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// the resource can only be configured when a Prod environment has been set\n\t\t// so, you might want to explicitly set the dependency on your Prod environment resource\n\t\t_, err := dbtcloud.NewLineageIntegration(ctx, \"my_lineage\", \u0026dbtcloud.LineageIntegrationArgs{\n\t\t\tProjectId: pulumi.Any(myProject.Id),\n\t\t\tHost:      pulumi.String(\"my.host.com\"),\n\t\t\tSiteId:    pulumi.String(\"mysiteid\"),\n\t\t\tTokenName: pulumi.String(\"my-token-name\"),\n\t\t\tToken:     pulumi.String(\"my-sensitive-token\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmyProdEnv,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.LineageIntegration;\nimport com.pulumi.dbtcloud.LineageIntegrationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // the resource can only be configured when a Prod environment has been set\n        // so, you might want to explicitly set the dependency on your Prod environment resource\n        var myLineage = new LineageIntegration(\"myLineage\", LineageIntegrationArgs.builder()\n            .projectId(myProject.id())\n            .host(\"my.host.com\")\n            .siteId(\"mysiteid\")\n            .tokenName(\"my-token-name\")\n            .token(\"my-sensitive-token\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(myProdEnv)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # the resource can only be configured when a Prod environment has been set\n  # // so, you might want to explicitly set the dependency on your Prod environment resource\n  myLineage:\n    type: dbtcloud:LineageIntegration\n    name: my_lineage\n    properties:\n      projectId: ${myProject.id}\n      host: my.host.com\n      siteId: mysiteid\n      tokenName: my-token-name\n      token: my-sensitive-token\n    options:\n      dependsOn:\n        - ${myProdEnv}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_lineage_integration.my_lineage_integration\nid = \"projet_id:lineage_integration_id\"\n}\n\nimport {\nto = dbtcloud_lineage_integration.my_lineage_integration\nid = \"123:4567\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/lineageIntegration:LineageIntegration my_lineage_integration \"projet_id:lineage_integration_id\"\n$ pulumi import dbtcloud:index/lineageIntegration:LineageIntegration my_lineage_integration 123:4567\n```\n\n","properties":{"host":{"type":"string","description":"The URL of the BI server (see docs for more details)\n"},"lineageIntegrationId":{"type":"integer","description":"The ID of the lineage integration\n"},"name":{"type":"string","description":"The integration type. Today only 'tableau' is supported\n"},"projectId":{"type":"integer","description":"The dbt Cloud project ID for the integration\n"},"siteId":{"type":"string","description":"The sitename for the collections of dashboards (see docs for more details)\n"},"token":{"type":"string","description":"The secret token value to use to authenticate to the BI server\n","secret":true},"tokenName":{"type":"string","description":"The token to use to authenticate to the BI server\n"}},"required":["host","lineageIntegrationId","name","projectId","siteId","token","tokenName"],"inputProperties":{"host":{"type":"string","description":"The URL of the BI server (see docs for more details)\n"},"projectId":{"type":"integer","description":"The dbt Cloud project ID for the integration\n"},"siteId":{"type":"string","description":"The sitename for the collections of dashboards (see docs for more details)\n"},"token":{"type":"string","description":"The secret token value to use to authenticate to the BI server\n","secret":true},"tokenName":{"type":"string","description":"The token to use to authenticate to the BI server\n"}},"requiredInputs":["host","projectId","siteId","token","tokenName"],"stateInputs":{"description":"Input properties used for looking up and filtering LineageIntegration resources.\n","properties":{"host":{"type":"string","description":"The URL of the BI server (see docs for more details)\n"},"lineageIntegrationId":{"type":"integer","description":"The ID of the lineage integration\n"},"name":{"type":"string","description":"The integration type. Today only 'tableau' is supported\n"},"projectId":{"type":"integer","description":"The dbt Cloud project ID for the integration\n"},"siteId":{"type":"string","description":"The sitename for the collections of dashboards (see docs for more details)\n"},"token":{"type":"string","description":"The secret token value to use to authenticate to the BI server\n","secret":true},"tokenName":{"type":"string","description":"The token to use to authenticate to the BI server\n"}},"type":"object"}},"dbtcloud:index/modelNotifications:ModelNotifications":{"description":"Configure model notifications for a dbt Cloud environment. By default all the `on_...` are set to false. When destroyed, the model notifications are disabled.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst prodModelNotifications = new dbtcloud.ModelNotifications(\"prod_model_notifications\", {\n    environmentId: prodEnvironment.environmentId,\n    enabled: true,\n    onSuccess: false,\n    onFailure: true,\n    onWarning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nprod_model_notifications = dbtcloud.ModelNotifications(\"prod_model_notifications\",\n    environment_id=prod_environment[\"environmentId\"],\n    enabled=True,\n    on_success=False,\n    on_failure=True,\n    on_warning=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var prodModelNotifications = new DbtCloud.ModelNotifications(\"prod_model_notifications\", new()\n    {\n        EnvironmentId = prodEnvironment.EnvironmentId,\n        Enabled = true,\n        OnSuccess = false,\n        OnFailure = true,\n        OnWarning = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewModelNotifications(ctx, \"prod_model_notifications\", \u0026dbtcloud.ModelNotificationsArgs{\n\t\t\tEnvironmentId: pulumi.Any(prodEnvironment.EnvironmentId),\n\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\tOnSuccess:     pulumi.Bool(false),\n\t\t\tOnFailure:     pulumi.Bool(true),\n\t\t\tOnWarning:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.ModelNotifications;\nimport com.pulumi.dbtcloud.ModelNotificationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var prodModelNotifications = new ModelNotifications(\"prodModelNotifications\", ModelNotificationsArgs.builder()\n            .environmentId(prodEnvironment.environmentId())\n            .enabled(true)\n            .onSuccess(false)\n            .onFailure(true)\n            .onWarning(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  prodModelNotifications:\n    type: dbtcloud:ModelNotifications\n    name: prod_model_notifications\n    properties:\n      environmentId: ${prodEnvironment.environmentId}\n      enabled: true\n      onSuccess: false\n      onFailure: true\n      onWarning: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nModel notifications are imported using the environment ID where the notifications are enabled\nUsing import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_model_notifications.my_model_notifications\nid = \u003cspan pulumi-lang-nodejs=\"\"environmentId\"\" pulumi-lang-dotnet=\"\"EnvironmentId\"\" pulumi-lang-go=\"\"environmentId\"\" pulumi-lang-python=\"\"environment_id\"\" pulumi-lang-yaml=\"\"environmentId\"\" pulumi-lang-java=\"\"environmentId\"\"\u003e\"environment_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_model_notifications.my_model_notifications\nid = \"12345\"\n}\n\nUsing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/modelNotifications:ModelNotifications my_model_notifications \"environment_id\"\n$ pulumi import dbtcloud:index/modelNotifications:ModelNotifications my_model_notifications 12345\n```\n\n","properties":{"enabled":{"type":"boolean","description":"Whether model notifications are enabled for this environment\n"},"environmentId":{"type":"string","description":"The ID of the dbt Cloud environment\n"},"onFailure":{"type":"boolean","description":"Whether to send notifications for failed model runs\n"},"onSkipped":{"type":"boolean","description":"Whether to send notifications for skipped model runs\n"},"onSuccess":{"type":"boolean","description":"Whether to send notifications for successful model runs\n"},"onWarning":{"type":"boolean","description":"Whether to send notifications for model runs with warnings\n"}},"required":["enabled","environmentId","onFailure","onSkipped","onSuccess","onWarning"],"inputProperties":{"enabled":{"type":"boolean","description":"Whether model notifications are enabled for this environment\n"},"environmentId":{"type":"string","description":"The ID of the dbt Cloud environment\n"},"onFailure":{"type":"boolean","description":"Whether to send notifications for failed model runs\n"},"onSkipped":{"type":"boolean","description":"Whether to send notifications for skipped model runs\n"},"onSuccess":{"type":"boolean","description":"Whether to send notifications for successful model runs\n"},"onWarning":{"type":"boolean","description":"Whether to send notifications for model runs with warnings\n"}},"requiredInputs":["environmentId"],"stateInputs":{"description":"Input properties used for looking up and filtering ModelNotifications resources.\n","properties":{"enabled":{"type":"boolean","description":"Whether model notifications are enabled for this environment\n"},"environmentId":{"type":"string","description":"The ID of the dbt Cloud environment\n"},"onFailure":{"type":"boolean","description":"Whether to send notifications for failed model runs\n"},"onSkipped":{"type":"boolean","description":"Whether to send notifications for skipped model runs\n"},"onSuccess":{"type":"boolean","description":"Whether to send notifications for successful model runs\n"},"onWarning":{"type":"boolean","description":"Whether to send notifications for model runs with warnings\n"}},"type":"object"}},"dbtcloud:index/notification:Notification":{"description":"Setup notifications on jobs success/failure to internal users, external email addresses or Slack channels\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// dbt Cloud allows us to create internal and external notifications\n//\n// an internal notification will send emails to the user mentioned in `user_id`\n//\n// NOTE: If internal notification settings already exist for a user, currently you MUST import\n// those first into the state file before you can create a new internal notification for that user.\n// Failure to do so, will result in the user losing access to existing notifications and dbt\n// support will need to be contacted to restore access.\n// cmd: terraform import dbtcloud_notification.prod_job_internal_notification \u003cuser_id\u003e\nconst prodJobInternalNotification = new dbtcloud.Notification(\"prod_job_internal_notification\", {\n    userId: 100,\n    onSuccesses: [prodJob.id],\n    onFailures: [12345],\n    notificationType: 1,\n});\n// we can also send \"external\" email notifications to emails to related to dbt Cloud users\nconst prodJobExternalNotification = new dbtcloud.Notification(\"prod_job_external_notification\", {\n    userId: 100,\n    onFailures: [\n        23456,\n        56788,\n    ],\n    onCancels: [prodJob.id],\n    notificationType: 4,\n    externalEmail: \"my_email@mail.com\",\n});\n// and finally, we can set up Slack notifications\nconst prodJobSlackNotifications = new dbtcloud.Notification(\"prod_job_slack_notifications\", {\n    userId: 200,\n    onFailures: [\n        23456,\n        56788,\n    ],\n    onCancels: [prodJob.id],\n    notificationType: 2,\n    slackChannelId: \"C12345ABCDE\",\n    slackChannelName: \"#my-awesome-channel\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# dbt Cloud allows us to create internal and external notifications\n#\n# an internal notification will send emails to the user mentioned in `user_id`\n#\n# NOTE: If internal notification settings already exist for a user, currently you MUST import\n# those first into the state file before you can create a new internal notification for that user.\n# Failure to do so, will result in the user losing access to existing notifications and dbt\n# support will need to be contacted to restore access.\n# cmd: terraform import dbtcloud_notification.prod_job_internal_notification \u003cuser_id\u003e\nprod_job_internal_notification = dbtcloud.Notification(\"prod_job_internal_notification\",\n    user_id=100,\n    on_successes=[prod_job[\"id\"]],\n    on_failures=[12345],\n    notification_type=1)\n# we can also send \"external\" email notifications to emails to related to dbt Cloud users\nprod_job_external_notification = dbtcloud.Notification(\"prod_job_external_notification\",\n    user_id=100,\n    on_failures=[\n        23456,\n        56788,\n    ],\n    on_cancels=[prod_job[\"id\"]],\n    notification_type=4,\n    external_email=\"my_email@mail.com\")\n# and finally, we can set up Slack notifications\nprod_job_slack_notifications = dbtcloud.Notification(\"prod_job_slack_notifications\",\n    user_id=200,\n    on_failures=[\n        23456,\n        56788,\n    ],\n    on_cancels=[prod_job[\"id\"]],\n    notification_type=2,\n    slack_channel_id=\"C12345ABCDE\",\n    slack_channel_name=\"#my-awesome-channel\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // dbt Cloud allows us to create internal and external notifications\n    //\n    // an internal notification will send emails to the user mentioned in `user_id`\n    //\n    // NOTE: If internal notification settings already exist for a user, currently you MUST import\n    // those first into the state file before you can create a new internal notification for that user.\n    // Failure to do so, will result in the user losing access to existing notifications and dbt\n    // support will need to be contacted to restore access.\n    // cmd: terraform import dbtcloud_notification.prod_job_internal_notification \u003cuser_id\u003e\n    var prodJobInternalNotification = new DbtCloud.Notification(\"prod_job_internal_notification\", new()\n    {\n        UserId = 100,\n        OnSuccesses = new[]\n        {\n            prodJob.Id,\n        },\n        OnFailures = new[]\n        {\n            12345,\n        },\n        NotificationType = 1,\n    });\n\n    // we can also send \"external\" email notifications to emails to related to dbt Cloud users\n    var prodJobExternalNotification = new DbtCloud.Notification(\"prod_job_external_notification\", new()\n    {\n        UserId = 100,\n        OnFailures = new[]\n        {\n            23456,\n            56788,\n        },\n        OnCancels = new[]\n        {\n            prodJob.Id,\n        },\n        NotificationType = 4,\n        ExternalEmail = \"my_email@mail.com\",\n    });\n\n    // and finally, we can set up Slack notifications\n    var prodJobSlackNotifications = new DbtCloud.Notification(\"prod_job_slack_notifications\", new()\n    {\n        UserId = 200,\n        OnFailures = new[]\n        {\n            23456,\n            56788,\n        },\n        OnCancels = new[]\n        {\n            prodJob.Id,\n        },\n        NotificationType = 2,\n        SlackChannelId = \"C12345ABCDE\",\n        SlackChannelName = \"#my-awesome-channel\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// dbt Cloud allows us to create internal and external notifications\n\t\t//\n\t\t// an internal notification will send emails to the user mentioned in `user_id`\n\t\t//\n\t\t// NOTE: If internal notification settings already exist for a user, currently you MUST import\n\t\t// those first into the state file before you can create a new internal notification for that user.\n\t\t// Failure to do so, will result in the user losing access to existing notifications and dbt\n\t\t// support will need to be contacted to restore access.\n\t\t// cmd: terraform import dbtcloud_notification.prod_job_internal_notification \u003cuser_id\u003e\n\t\t_, err := dbtcloud.NewNotification(ctx, \"prod_job_internal_notification\", \u0026dbtcloud.NotificationArgs{\n\t\t\tUserId: pulumi.Int(100),\n\t\t\tOnSuccesses: pulumi.IntArray{\n\t\t\t\tprodJob.Id,\n\t\t\t},\n\t\t\tOnFailures: pulumi.IntArray{\n\t\t\t\tpulumi.Int(12345),\n\t\t\t},\n\t\t\tNotificationType: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// we can also send \"external\" email notifications to emails to related to dbt Cloud users\n\t\t_, err = dbtcloud.NewNotification(ctx, \"prod_job_external_notification\", \u0026dbtcloud.NotificationArgs{\n\t\t\tUserId: pulumi.Int(100),\n\t\t\tOnFailures: pulumi.IntArray{\n\t\t\t\tpulumi.Int(23456),\n\t\t\t\tpulumi.Int(56788),\n\t\t\t},\n\t\t\tOnCancels: pulumi.IntArray{\n\t\t\t\tprodJob.Id,\n\t\t\t},\n\t\t\tNotificationType: pulumi.Int(4),\n\t\t\tExternalEmail:    pulumi.String(\"my_email@mail.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// and finally, we can set up Slack notifications\n\t\t_, err = dbtcloud.NewNotification(ctx, \"prod_job_slack_notifications\", \u0026dbtcloud.NotificationArgs{\n\t\t\tUserId: pulumi.Int(200),\n\t\t\tOnFailures: pulumi.IntArray{\n\t\t\t\tpulumi.Int(23456),\n\t\t\t\tpulumi.Int(56788),\n\t\t\t},\n\t\t\tOnCancels: pulumi.IntArray{\n\t\t\t\tprodJob.Id,\n\t\t\t},\n\t\t\tNotificationType: pulumi.Int(2),\n\t\t\tSlackChannelId:   pulumi.String(\"C12345ABCDE\"),\n\t\t\tSlackChannelName: pulumi.String(\"#my-awesome-channel\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.Notification;\nimport com.pulumi.dbtcloud.NotificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // dbt Cloud allows us to create internal and external notifications\n        //\n        // an internal notification will send emails to the user mentioned in `user_id`\n        //\n        // NOTE: If internal notification settings already exist for a user, currently you MUST import\n        // those first into the state file before you can create a new internal notification for that user.\n        // Failure to do so, will result in the user losing access to existing notifications and dbt\n        // support will need to be contacted to restore access.\n        // cmd: terraform import dbtcloud_notification.prod_job_internal_notification \u003cuser_id\u003e\n        var prodJobInternalNotification = new Notification(\"prodJobInternalNotification\", NotificationArgs.builder()\n            .userId(100)\n            .onSuccesses(prodJob.id())\n            .onFailures(12345)\n            .notificationType(1)\n            .build());\n\n        // we can also send \"external\" email notifications to emails to related to dbt Cloud users\n        var prodJobExternalNotification = new Notification(\"prodJobExternalNotification\", NotificationArgs.builder()\n            .userId(100)\n            .onFailures(            \n                23456,\n                56788)\n            .onCancels(prodJob.id())\n            .notificationType(4)\n            .externalEmail(\"my_email@mail.com\")\n            .build());\n\n        // and finally, we can set up Slack notifications\n        var prodJobSlackNotifications = new Notification(\"prodJobSlackNotifications\", NotificationArgs.builder()\n            .userId(200)\n            .onFailures(            \n                23456,\n                56788)\n            .onCancels(prodJob.id())\n            .notificationType(2)\n            .slackChannelId(\"C12345ABCDE\")\n            .slackChannelName(\"#my-awesome-channel\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # dbt Cloud allows us to create internal and external notifications\n  # //\n  # // an internal notification will send emails to the user mentioned in `user_id`\n  # //\n  # // NOTE: If internal notification settings already exist for a user, currently you MUST import\n  # // those first into the state file before you can create a new internal notification for that user.\n  # // Failure to do so, will result in the user losing access to existing notifications and dbt\n  # // support will need to be contacted to restore access.\n  # // cmd: terraform import dbtcloud_notification.prod_job_internal_notification \u003cuser_id\u003e\n  prodJobInternalNotification:\n    type: dbtcloud:Notification\n    name: prod_job_internal_notification\n    properties:\n      userId: 100\n      onSuccesses:\n        - ${prodJob.id}\n      onFailures:\n        - 12345\n      notificationType: 1\n  # we can also send \"external\" email notifications to emails to related to dbt Cloud users\n  prodJobExternalNotification:\n    type: dbtcloud:Notification\n    name: prod_job_external_notification\n    properties:\n      userId: 100\n      onFailures:\n        - 23456\n        - 56788\n      onCancels:\n        - ${prodJob.id}\n      notificationType: 4 # the external_email is the email address that will receive the notification\n      externalEmail: my_email@mail.com\n  # and finally, we can set up Slack notifications\n  prodJobSlackNotifications:\n    type: dbtcloud:Notification\n    name: prod_job_slack_notifications\n    properties:\n      userId: 200\n      onFailures:\n        - 23456\n        - 56788\n      onCancels:\n        - ${prodJob.id}\n      notificationType: 2\n      slackChannelId: C12345ABCDE\n      slackChannelName: '#my-awesome-channel'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_notification.my_notification\nid = \u003cspan pulumi-lang-nodejs=\"\"notificationId\"\" pulumi-lang-dotnet=\"\"NotificationId\"\" pulumi-lang-go=\"\"notificationId\"\" pulumi-lang-python=\"\"notification_id\"\" pulumi-lang-yaml=\"\"notificationId\"\" pulumi-lang-java=\"\"notificationId\"\"\u003e\"notification_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_notification.my_notification\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/notification:Notification my_notification \"notification_id\"\n$ pulumi import dbtcloud:index/notification:Notification my_notification 12345\n```\n\n","properties":{"externalEmail":{"type":"string","description":"The external email to receive the notification\n"},"notificationType":{"type":"integer","description":"Type of notification (1 = dbt Cloud user email (default): does not require an\u003cspan pulumi-lang-nodejs=\" externalEmail \" pulumi-lang-dotnet=\" ExternalEmail \" pulumi-lang-go=\" externalEmail \" pulumi-lang-python=\" external_email \" pulumi-lang-yaml=\" externalEmail \" pulumi-lang-java=\" externalEmail \"\u003e external_email \u003c/span\u003e; 2 = Slack channel: requires \u003cspan pulumi-lang-nodejs=\"`slackChannelId`\" pulumi-lang-dotnet=\"`SlackChannelId`\" pulumi-lang-go=\"`slackChannelId`\" pulumi-lang-python=\"`slack_channel_id`\" pulumi-lang-yaml=\"`slackChannelId`\" pulumi-lang-java=\"`slackChannelId`\"\u003e`slack_channel_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slackChannelName`\" pulumi-lang-dotnet=\"`SlackChannelName`\" pulumi-lang-go=\"`slackChannelName`\" pulumi-lang-python=\"`slack_channel_name`\" pulumi-lang-yaml=\"`slackChannelName`\" pulumi-lang-java=\"`slackChannelName`\"\u003e`slack_channel_name`\u003c/span\u003e ; 4 = external email: requires setting an \u003cspan pulumi-lang-nodejs=\"`externalEmail`\" pulumi-lang-dotnet=\"`ExternalEmail`\" pulumi-lang-go=\"`externalEmail`\" pulumi-lang-python=\"`external_email`\" pulumi-lang-yaml=\"`externalEmail`\" pulumi-lang-java=\"`externalEmail`\"\u003e`external_email`\u003c/span\u003e)\n"},"onCancels":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on cancel\n"},"onFailures":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on failure\n"},"onSuccesses":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on success\n"},"onWarnings":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on warning\n"},"slackChannelId":{"type":"string","description":"The ID of the Slack channel to receive the notification. It can be found at the bottom of the Slack channel settings\n"},"slackChannelName":{"type":"string","description":"The name of the slack channel\n"},"state":{"type":"integer","description":"State of the notification (1 = active (default), 2 = inactive)\n"},"userId":{"type":"integer","description":"Internal dbt Cloud User ID. Must be the user*id for an existing user even if the notification is an external one. In the case of a Slack notification, it must be the user*id of the user that set up the Slack Integration.\n"}},"required":["notificationType","onCancels","onFailures","onSuccesses","onWarnings","state","userId"],"inputProperties":{"externalEmail":{"type":"string","description":"The external email to receive the notification\n"},"notificationType":{"type":"integer","description":"Type of notification (1 = dbt Cloud user email (default): does not require an\u003cspan pulumi-lang-nodejs=\" externalEmail \" pulumi-lang-dotnet=\" ExternalEmail \" pulumi-lang-go=\" externalEmail \" pulumi-lang-python=\" external_email \" pulumi-lang-yaml=\" externalEmail \" pulumi-lang-java=\" externalEmail \"\u003e external_email \u003c/span\u003e; 2 = Slack channel: requires \u003cspan pulumi-lang-nodejs=\"`slackChannelId`\" pulumi-lang-dotnet=\"`SlackChannelId`\" pulumi-lang-go=\"`slackChannelId`\" pulumi-lang-python=\"`slack_channel_id`\" pulumi-lang-yaml=\"`slackChannelId`\" pulumi-lang-java=\"`slackChannelId`\"\u003e`slack_channel_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slackChannelName`\" pulumi-lang-dotnet=\"`SlackChannelName`\" pulumi-lang-go=\"`slackChannelName`\" pulumi-lang-python=\"`slack_channel_name`\" pulumi-lang-yaml=\"`slackChannelName`\" pulumi-lang-java=\"`slackChannelName`\"\u003e`slack_channel_name`\u003c/span\u003e ; 4 = external email: requires setting an \u003cspan pulumi-lang-nodejs=\"`externalEmail`\" pulumi-lang-dotnet=\"`ExternalEmail`\" pulumi-lang-go=\"`externalEmail`\" pulumi-lang-python=\"`external_email`\" pulumi-lang-yaml=\"`externalEmail`\" pulumi-lang-java=\"`externalEmail`\"\u003e`external_email`\u003c/span\u003e)\n"},"onCancels":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on cancel\n"},"onFailures":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on failure\n"},"onSuccesses":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on success\n"},"onWarnings":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on warning\n"},"slackChannelId":{"type":"string","description":"The ID of the Slack channel to receive the notification. It can be found at the bottom of the Slack channel settings\n"},"slackChannelName":{"type":"string","description":"The name of the slack channel\n"},"state":{"type":"integer","description":"State of the notification (1 = active (default), 2 = inactive)\n"},"userId":{"type":"integer","description":"Internal dbt Cloud User ID. Must be the user*id for an existing user even if the notification is an external one. In the case of a Slack notification, it must be the user*id of the user that set up the Slack Integration.\n"}},"requiredInputs":["userId"],"stateInputs":{"description":"Input properties used for looking up and filtering Notification resources.\n","properties":{"externalEmail":{"type":"string","description":"The external email to receive the notification\n"},"notificationType":{"type":"integer","description":"Type of notification (1 = dbt Cloud user email (default): does not require an\u003cspan pulumi-lang-nodejs=\" externalEmail \" pulumi-lang-dotnet=\" ExternalEmail \" pulumi-lang-go=\" externalEmail \" pulumi-lang-python=\" external_email \" pulumi-lang-yaml=\" externalEmail \" pulumi-lang-java=\" externalEmail \"\u003e external_email \u003c/span\u003e; 2 = Slack channel: requires \u003cspan pulumi-lang-nodejs=\"`slackChannelId`\" pulumi-lang-dotnet=\"`SlackChannelId`\" pulumi-lang-go=\"`slackChannelId`\" pulumi-lang-python=\"`slack_channel_id`\" pulumi-lang-yaml=\"`slackChannelId`\" pulumi-lang-java=\"`slackChannelId`\"\u003e`slack_channel_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slackChannelName`\" pulumi-lang-dotnet=\"`SlackChannelName`\" pulumi-lang-go=\"`slackChannelName`\" pulumi-lang-python=\"`slack_channel_name`\" pulumi-lang-yaml=\"`slackChannelName`\" pulumi-lang-java=\"`slackChannelName`\"\u003e`slack_channel_name`\u003c/span\u003e ; 4 = external email: requires setting an \u003cspan pulumi-lang-nodejs=\"`externalEmail`\" pulumi-lang-dotnet=\"`ExternalEmail`\" pulumi-lang-go=\"`externalEmail`\" pulumi-lang-python=\"`external_email`\" pulumi-lang-yaml=\"`externalEmail`\" pulumi-lang-java=\"`externalEmail`\"\u003e`external_email`\u003c/span\u003e)\n"},"onCancels":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on cancel\n"},"onFailures":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on failure\n"},"onSuccesses":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on success\n"},"onWarnings":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on warning\n"},"slackChannelId":{"type":"string","description":"The ID of the Slack channel to receive the notification. It can be found at the bottom of the Slack channel settings\n"},"slackChannelName":{"type":"string","description":"The name of the slack channel\n"},"state":{"type":"integer","description":"State of the notification (1 = active (default), 2 = inactive)\n"},"userId":{"type":"integer","description":"Internal dbt Cloud User ID. Must be the user*id for an existing user even if the notification is an external one. In the case of a Slack notification, it must be the user*id of the user that set up the Slack Integration.\n"}},"type":"object"}},"dbtcloud:index/oauthConfiguration:OauthConfiguration":{"description":"Configure an external OAuth integration for the data warehouse. Currently supports Okta and Entra ID (i.e. Azure AD) for Snowflake.\n\nSee the [documentation](https://docs.getdbt.com/docs/cloud/manage-access/external-oauth) for more information on how to configure it.\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_oauth_configuration.my_external_oauth\nid = \u003cspan pulumi-lang-nodejs=\"\"externalOauthId\"\" pulumi-lang-dotnet=\"\"ExternalOauthId\"\" pulumi-lang-go=\"\"externalOauthId\"\" pulumi-lang-python=\"\"external_oauth_id\"\" pulumi-lang-yaml=\"\"externalOauthId\"\" pulumi-lang-java=\"\"externalOauthId\"\"\u003e\"external_oauth_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_oauth_configuration.my_external_oauth\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/oauthConfiguration:OauthConfiguration my_external_oauth \"external_oauth_id\"\n$ pulumi import dbtcloud:index/oauthConfiguration:OauthConfiguration my_external_oauth 12345\n```\n\n","properties":{"applicationIdUri":{"type":"string","description":"The Application ID URI for the OAuth integration. Only for Entra\n"},"authorizeUrl":{"type":"string","description":"The Authorize URL for the OAuth integration\n"},"clientId":{"type":"string","description":"The Client ID for the OAuth integration\n"},"clientSecret":{"type":"string","description":"The Client secret for the OAuth integration\n","secret":true},"name":{"type":"string","description":"The name of OAuth integration\n"},"redirectUri":{"type":"string","description":"The redirect URL for the OAuth integration\n"},"tokenUrl":{"type":"string","description":"The Token URL for the OAuth integration\n"},"type":{"type":"string","description":"The type of OAuth integration (\u003cspan pulumi-lang-nodejs=\"`entra`\" pulumi-lang-dotnet=\"`Entra`\" pulumi-lang-go=\"`entra`\" pulumi-lang-python=\"`entra`\" pulumi-lang-yaml=\"`entra`\" pulumi-lang-java=\"`entra`\"\u003e`entra`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`okta`\" pulumi-lang-dotnet=\"`Okta`\" pulumi-lang-go=\"`okta`\" pulumi-lang-python=\"`okta`\" pulumi-lang-yaml=\"`okta`\" pulumi-lang-java=\"`okta`\"\u003e`okta`\u003c/span\u003e)\n"}},"required":["applicationIdUri","authorizeUrl","clientId","clientSecret","name","redirectUri","tokenUrl","type"],"inputProperties":{"applicationIdUri":{"type":"string","description":"The Application ID URI for the OAuth integration. Only for Entra\n"},"authorizeUrl":{"type":"string","description":"The Authorize URL for the OAuth integration\n"},"clientId":{"type":"string","description":"The Client ID for the OAuth integration\n"},"clientSecret":{"type":"string","description":"The Client secret for the OAuth integration\n","secret":true},"name":{"type":"string","description":"The name of OAuth integration\n"},"redirectUri":{"type":"string","description":"The redirect URL for the OAuth integration\n"},"tokenUrl":{"type":"string","description":"The Token URL for the OAuth integration\n"},"type":{"type":"string","description":"The type of OAuth integration (\u003cspan pulumi-lang-nodejs=\"`entra`\" pulumi-lang-dotnet=\"`Entra`\" pulumi-lang-go=\"`entra`\" pulumi-lang-python=\"`entra`\" pulumi-lang-yaml=\"`entra`\" pulumi-lang-java=\"`entra`\"\u003e`entra`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`okta`\" pulumi-lang-dotnet=\"`Okta`\" pulumi-lang-go=\"`okta`\" pulumi-lang-python=\"`okta`\" pulumi-lang-yaml=\"`okta`\" pulumi-lang-java=\"`okta`\"\u003e`okta`\u003c/span\u003e)\n"}},"requiredInputs":["authorizeUrl","clientId","clientSecret","redirectUri","tokenUrl","type"],"stateInputs":{"description":"Input properties used for looking up and filtering OauthConfiguration resources.\n","properties":{"applicationIdUri":{"type":"string","description":"The Application ID URI for the OAuth integration. Only for Entra\n"},"authorizeUrl":{"type":"string","description":"The Authorize URL for the OAuth integration\n"},"clientId":{"type":"string","description":"The Client ID for the OAuth integration\n"},"clientSecret":{"type":"string","description":"The Client secret for the OAuth integration\n","secret":true},"name":{"type":"string","description":"The name of OAuth integration\n"},"redirectUri":{"type":"string","description":"The redirect URL for the OAuth integration\n"},"tokenUrl":{"type":"string","description":"The Token URL for the OAuth integration\n"},"type":{"type":"string","description":"The type of OAuth integration (\u003cspan pulumi-lang-nodejs=\"`entra`\" pulumi-lang-dotnet=\"`Entra`\" pulumi-lang-go=\"`entra`\" pulumi-lang-python=\"`entra`\" pulumi-lang-yaml=\"`entra`\" pulumi-lang-java=\"`entra`\"\u003e`entra`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`okta`\" pulumi-lang-dotnet=\"`Okta`\" pulumi-lang-go=\"`okta`\" pulumi-lang-python=\"`okta`\" pulumi-lang-yaml=\"`okta`\" pulumi-lang-java=\"`okta`\"\u003e`okta`\u003c/span\u003e)\n"}},"type":"object"}},"dbtcloud:index/partialEnvironmentVariable:PartialEnvironmentVariable":{"description":"Set up partial environment variables with only a subset of environment values for a given environment variable.\n\nThis resource is different from \u003cspan pulumi-lang-nodejs=\"`dbtcloud.EnvironmentVariable`\" pulumi-lang-dotnet=\"`dbtcloud.EnvironmentVariable`\" pulumi-lang-go=\"`EnvironmentVariable`\" pulumi-lang-python=\"`EnvironmentVariable`\" pulumi-lang-yaml=\"`dbtcloud.EnvironmentVariable`\" pulumi-lang-java=\"`dbtcloud.EnvironmentVariable`\"\u003e`dbtcloud.EnvironmentVariable`\u003c/span\u003e as it allows having different resources setting up different environment values for the same environment variable.\n\nIf a company uses only one Terraform project/workspace to manage all their dbt Cloud Account config, it is recommended to use \u003cspan pulumi-lang-nodejs=\"`dbtCloudEnvironmentVariable`\" pulumi-lang-dotnet=\"`DbtCloudEnvironmentVariable`\" pulumi-lang-go=\"`dbtCloudEnvironmentVariable`\" pulumi-lang-python=\"`dbt_cloud_environment_variable`\" pulumi-lang-yaml=\"`dbtCloudEnvironmentVariable`\" pulumi-lang-java=\"`dbtCloudEnvironmentVariable`\"\u003e`dbt_cloud_environment_variable`\u003c/span\u003e instead of \u003cspan pulumi-lang-nodejs=\"`dbtCloudPartialEnvironmentVariable`\" pulumi-lang-dotnet=\"`DbtCloudPartialEnvironmentVariable`\" pulumi-lang-go=\"`dbtCloudPartialEnvironmentVariable`\" pulumi-lang-python=\"`dbt_cloud_partial_environment_variable`\" pulumi-lang-yaml=\"`dbtCloudPartialEnvironmentVariable`\" pulumi-lang-java=\"`dbtCloudPartialEnvironmentVariable`\"\u003e`dbt_cloud_partial_environment_variable`\u003c/span\u003e.\n\n\u003e This resource allows provider users to update specific environment values without knowing or changing values for other environments.\n\n**IMPORTANT** This resource can also manage other resources' fields. We strongly advise against overlapping scope (i.e. updating values managed by other resources) as this could lead to unexpected changes in the remote state.\n\n## Example Usage\n\n### \n","properties":{"environmentValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Map from environment names to respective variable value. This field is not set as sensitive so take precautions when using secret environment variables. Only the specified environment values will be managed by this resource.\n"},"name":{"type":"string","description":"Name for the variable, must be unique within a project, must be prefixed with 'DBT_'\n"},"projectId":{"type":"integer","description":"Project ID to create or update the environment variable in\n"}},"required":["environmentValues","name","projectId"],"inputProperties":{"environmentValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Map from environment names to respective variable value. This field is not set as sensitive so take precautions when using secret environment variables. Only the specified environment values will be managed by this resource.\n"},"name":{"type":"string","description":"Name for the variable, must be unique within a project, must be prefixed with 'DBT_'\n"},"projectId":{"type":"integer","description":"Project ID to create or update the environment variable in\n"}},"requiredInputs":["environmentValues","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering PartialEnvironmentVariable resources.\n","properties":{"environmentValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Map from environment names to respective variable value. This field is not set as sensitive so take precautions when using secret environment variables. Only the specified environment values will be managed by this resource.\n"},"name":{"type":"string","description":"Name for the variable, must be unique within a project, must be prefixed with 'DBT_'\n"},"projectId":{"type":"integer","description":"Project ID to create or update the environment variable in\n"}},"type":"object"}},"dbtcloud:index/partialLicenseMap:PartialLicenseMap":{"description":"Set up partial license maps with only a subset of SSO groups for a given license type.\n\nThis resource is different from \u003cspan pulumi-lang-nodejs=\"`dbtcloud.LicenseMap`\" pulumi-lang-dotnet=\"`dbtcloud.LicenseMap`\" pulumi-lang-go=\"`LicenseMap`\" pulumi-lang-python=\"`LicenseMap`\" pulumi-lang-yaml=\"`dbtcloud.LicenseMap`\" pulumi-lang-java=\"`dbtcloud.LicenseMap`\"\u003e`dbtcloud.LicenseMap`\u003c/span\u003e as it allows having different resources setting up different groups for the same license type.\n\nIf a company uses only one Terraform project/workspace to manage all their dbt Cloud Account config, it is recommended to use \u003cspan pulumi-lang-nodejs=\"`dbtCloudLicenseMap`\" pulumi-lang-dotnet=\"`DbtCloudLicenseMap`\" pulumi-lang-go=\"`dbtCloudLicenseMap`\" pulumi-lang-python=\"`dbt_cloud_license_map`\" pulumi-lang-yaml=\"`dbtCloudLicenseMap`\" pulumi-lang-java=\"`dbtCloudLicenseMap`\"\u003e`dbt_cloud_license_map`\u003c/span\u003e instead of \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroupPartialLicenseMap`\" pulumi-lang-dotnet=\"`DbtCloudGroupPartialLicenseMap`\" pulumi-lang-go=\"`dbtCloudGroupPartialLicenseMap`\" pulumi-lang-python=\"`dbt_cloud_group_partial_license_map`\" pulumi-lang-yaml=\"`dbtCloudGroupPartialLicenseMap`\" pulumi-lang-java=\"`dbtCloudGroupPartialLicenseMap`\"\u003e`dbt_cloud_group_partial_license_map`\u003c/span\u003e.\n\n\u003e This is a new resource like other \"partial\" ones and any feedback is welcome in the GitHub repository.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Developer license group mapping\nconst devLicenseMap = new dbtcloud.PartialLicenseMap(\"dev_license_map\", {\n    licenseType: \"developer\",\n    ssoLicenseMappingGroups: [\"DEV-SSO-GROUP\"],\n});\n// Read-only license mapping\nconst readOnlyLicenseMap = new dbtcloud.PartialLicenseMap(\"read_only_license_map\", {\n    licenseType: \"read_only\",\n    ssoLicenseMappingGroups: [\"READ-ONLY-SSO-GROUP\"],\n});\n// IT license mapping\nconst itLicenseMap = new dbtcloud.PartialLicenseMap(\"it_license_map\", {\n    licenseType: \"it\",\n    ssoLicenseMappingGroups: [\"IT-SSO-GROUP\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Developer license group mapping\ndev_license_map = dbtcloud.PartialLicenseMap(\"dev_license_map\",\n    license_type=\"developer\",\n    sso_license_mapping_groups=[\"DEV-SSO-GROUP\"])\n# Read-only license mapping\nread_only_license_map = dbtcloud.PartialLicenseMap(\"read_only_license_map\",\n    license_type=\"read_only\",\n    sso_license_mapping_groups=[\"READ-ONLY-SSO-GROUP\"])\n# IT license mapping\nit_license_map = dbtcloud.PartialLicenseMap(\"it_license_map\",\n    license_type=\"it\",\n    sso_license_mapping_groups=[\"IT-SSO-GROUP\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Developer license group mapping\n    var devLicenseMap = new DbtCloud.PartialLicenseMap(\"dev_license_map\", new()\n    {\n        LicenseType = \"developer\",\n        SsoLicenseMappingGroups = new[]\n        {\n            \"DEV-SSO-GROUP\",\n        },\n    });\n\n    // Read-only license mapping\n    var readOnlyLicenseMap = new DbtCloud.PartialLicenseMap(\"read_only_license_map\", new()\n    {\n        LicenseType = \"read_only\",\n        SsoLicenseMappingGroups = new[]\n        {\n            \"READ-ONLY-SSO-GROUP\",\n        },\n    });\n\n    // IT license mapping\n    var itLicenseMap = new DbtCloud.PartialLicenseMap(\"it_license_map\", new()\n    {\n        LicenseType = \"it\",\n        SsoLicenseMappingGroups = new[]\n        {\n            \"IT-SSO-GROUP\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Developer license group mapping\n\t\t_, err := dbtcloud.NewPartialLicenseMap(ctx, \"dev_license_map\", \u0026dbtcloud.PartialLicenseMapArgs{\n\t\t\tLicenseType: pulumi.String(\"developer\"),\n\t\t\tSsoLicenseMappingGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"DEV-SSO-GROUP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Read-only license mapping\n\t\t_, err = dbtcloud.NewPartialLicenseMap(ctx, \"read_only_license_map\", \u0026dbtcloud.PartialLicenseMapArgs{\n\t\t\tLicenseType: pulumi.String(\"read_only\"),\n\t\t\tSsoLicenseMappingGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"READ-ONLY-SSO-GROUP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IT license mapping\n\t\t_, err = dbtcloud.NewPartialLicenseMap(ctx, \"it_license_map\", \u0026dbtcloud.PartialLicenseMapArgs{\n\t\t\tLicenseType: pulumi.String(\"it\"),\n\t\t\tSsoLicenseMappingGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"IT-SSO-GROUP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.PartialLicenseMap;\nimport com.pulumi.dbtcloud.PartialLicenseMapArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Developer license group mapping\n        var devLicenseMap = new PartialLicenseMap(\"devLicenseMap\", PartialLicenseMapArgs.builder()\n            .licenseType(\"developer\")\n            .ssoLicenseMappingGroups(\"DEV-SSO-GROUP\")\n            .build());\n\n        // Read-only license mapping\n        var readOnlyLicenseMap = new PartialLicenseMap(\"readOnlyLicenseMap\", PartialLicenseMapArgs.builder()\n            .licenseType(\"read_only\")\n            .ssoLicenseMappingGroups(\"READ-ONLY-SSO-GROUP\")\n            .build());\n\n        // IT license mapping\n        var itLicenseMap = new PartialLicenseMap(\"itLicenseMap\", PartialLicenseMapArgs.builder()\n            .licenseType(\"it\")\n            .ssoLicenseMappingGroups(\"IT-SSO-GROUP\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Developer license group mapping\n  devLicenseMap:\n    type: dbtcloud:PartialLicenseMap\n    name: dev_license_map\n    properties:\n      licenseType: developer\n      ssoLicenseMappingGroups:\n        - DEV-SSO-GROUP\n  # Read-only license mapping\n  readOnlyLicenseMap:\n    type: dbtcloud:PartialLicenseMap\n    name: read_only_license_map\n    properties:\n      licenseType: read_only\n      ssoLicenseMappingGroups:\n        - READ-ONLY-SSO-GROUP\n  # IT license mapping\n  itLicenseMap:\n    type: dbtcloud:PartialLicenseMap\n    name: it_license_map\n    properties:\n      licenseType: it\n      ssoLicenseMappingGroups:\n        - IT-SSO-GROUP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"licenseType":{"type":"string","description":"The license type to update\n"},"ssoLicenseMappingGroups":{"type":"array","items":{"type":"string"},"description":"List of SSO groups to map to the license type.\n"}},"required":["licenseType","ssoLicenseMappingGroups"],"inputProperties":{"licenseType":{"type":"string","description":"The license type to update\n"},"ssoLicenseMappingGroups":{"type":"array","items":{"type":"string"},"description":"List of SSO groups to map to the license type.\n"}},"requiredInputs":["licenseType","ssoLicenseMappingGroups"],"stateInputs":{"description":"Input properties used for looking up and filtering PartialLicenseMap resources.\n","properties":{"licenseType":{"type":"string","description":"The license type to update\n"},"ssoLicenseMappingGroups":{"type":"array","items":{"type":"string"},"description":"List of SSO groups to map to the license type.\n"}},"type":"object"}},"dbtcloud:index/partialNotification:PartialNotification":{"description":"Setup partial notifications on jobs success/failure to internal users, external email addresses or Slack channels. This is different from \u003cspan pulumi-lang-nodejs=\"`dbtCloudNotification`\" pulumi-lang-dotnet=\"`DbtCloudNotification`\" pulumi-lang-go=\"`dbtCloudNotification`\" pulumi-lang-python=\"`dbt_cloud_notification`\" pulumi-lang-yaml=\"`dbtCloudNotification`\" pulumi-lang-java=\"`dbtCloudNotification`\"\u003e`dbt_cloud_notification`\u003c/span\u003e as it allows to have multiple resources updating the same notification recipient (email, user or Slack channel) and is useful for companies managing a single dbt Cloud Account configuration from different Terraform projects/workspaces.\n\nIf a company uses only one Terraform project/workspace to manage all their dbt Cloud Account config, it is recommended to use \u003cspan pulumi-lang-nodejs=\"`dbtCloudNotification`\" pulumi-lang-dotnet=\"`DbtCloudNotification`\" pulumi-lang-go=\"`dbtCloudNotification`\" pulumi-lang-python=\"`dbt_cloud_notification`\" pulumi-lang-yaml=\"`dbtCloudNotification`\" pulumi-lang-java=\"`dbtCloudNotification`\"\u003e`dbt_cloud_notification`\u003c/span\u003e instead of \u003cspan pulumi-lang-nodejs=\"`dbtCloudPartialNotification`\" pulumi-lang-dotnet=\"`DbtCloudPartialNotification`\" pulumi-lang-go=\"`dbtCloudPartialNotification`\" pulumi-lang-python=\"`dbt_cloud_partial_notification`\" pulumi-lang-yaml=\"`dbtCloudPartialNotification`\" pulumi-lang-java=\"`dbtCloudPartialNotification`\"\u003e`dbt_cloud_partial_notification`\u003c/span\u003e.\n\n\u003e This is a new resource. Feedback is welcome.\n\nThe resource currently requires a Service Token with Account Admin access.\n\nThe current behavior of the resource is the following:\n\n- when using \u003cspan pulumi-lang-nodejs=\"`dbtCloudPartialNotification`\" pulumi-lang-dotnet=\"`DbtCloudPartialNotification`\" pulumi-lang-go=\"`dbtCloudPartialNotification`\" pulumi-lang-python=\"`dbt_cloud_partial_notification`\" pulumi-lang-yaml=\"`dbtCloudPartialNotification`\" pulumi-lang-java=\"`dbtCloudPartialNotification`\"\u003e`dbt_cloud_partial_notification`\u003c/span\u003e, don't use \u003cspan pulumi-lang-nodejs=\"`dbtCloudNotification`\" pulumi-lang-dotnet=\"`DbtCloudNotification`\" pulumi-lang-go=\"`dbtCloudNotification`\" pulumi-lang-python=\"`dbt_cloud_notification`\" pulumi-lang-yaml=\"`dbtCloudNotification`\" pulumi-lang-java=\"`dbtCloudNotification`\"\u003e`dbt_cloud_notification`\u003c/span\u003e for the same notification recipient in any other project/workspace. Otherwise, the behavior is undefined and partial notifications might be removed.\n- when defining a new \u003cspan pulumi-lang-nodejs=\"`dbtCloudPartialNotification`\" pulumi-lang-dotnet=\"`DbtCloudPartialNotification`\" pulumi-lang-go=\"`dbtCloudPartialNotification`\" pulumi-lang-python=\"`dbt_cloud_partial_notification`\" pulumi-lang-yaml=\"`dbtCloudPartialNotification`\" pulumi-lang-java=\"`dbtCloudPartialNotification`\"\u003e`dbt_cloud_partial_notification`\u003c/span\u003e\n  - if the notification recipient doesn't exist, it will be created\n  - if a notification config exists for the current recipient, Job IDs will be added in the list of jobs to trigger the notifications\n- in a given Terraform project/workspace, avoid having different \u003cspan pulumi-lang-nodejs=\"`dbtCloudPartialNotification`\" pulumi-lang-dotnet=\"`DbtCloudPartialNotification`\" pulumi-lang-go=\"`dbtCloudPartialNotification`\" pulumi-lang-python=\"`dbt_cloud_partial_notification`\" pulumi-lang-yaml=\"`dbtCloudPartialNotification`\" pulumi-lang-java=\"`dbtCloudPartialNotification`\"\u003e`dbt_cloud_partial_notification`\u003c/span\u003e for the same recipient to prevent sync issues. Add all the jobs in the same resource. \n- all resources for the same notification recipient need to have the same values for \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e. Those fields are not considered \"partial\".\n- when a resource is updated, the dbt Cloud notification recipient will be updated accordingly, removing and adding job ids in the list of jobs triggering notifications\n- when the resource is deleted/destroyed, if the resulting notification recipient list of jobs is empty, the notification will be deleted ; otherwise, the notification will be updated, removing the job ids from the deleted resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// the config is the same as for `dbtcloud_notification`\nconst prodJobInternalNotification = new dbtcloud.PartialNotification(\"prod_job_internal_notification\", {\n    userId: 100,\n    onSuccesses: [prodJob.id],\n    onFailures: [12345],\n    notificationType: 1,\n});\n// we can also send \"external\" email notifications to emails to related to dbt Cloud users\nconst prodJobExternalNotification = new dbtcloud.PartialNotification(\"prod_job_external_notification\", {\n    userId: 100,\n    onFailures: [\n        23456,\n        56788,\n    ],\n    onCancels: [prodJob.id],\n    notificationType: 4,\n    externalEmail: \"my_email@mail.com\",\n});\n// and finally, we can set up Slack notifications\nconst prodJobSlackNotifications = new dbtcloud.PartialNotification(\"prod_job_slack_notifications\", {\n    userId: 100,\n    onFailures: [\n        23456,\n        56788,\n    ],\n    onCancels: [prodJob.id],\n    notificationType: 2,\n    slackChannelId: \"C12345ABCDE\",\n    slackChannelName: \"#my-awesome-channel\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# the config is the same as for `dbtcloud_notification`\nprod_job_internal_notification = dbtcloud.PartialNotification(\"prod_job_internal_notification\",\n    user_id=100,\n    on_successes=[prod_job[\"id\"]],\n    on_failures=[12345],\n    notification_type=1)\n# we can also send \"external\" email notifications to emails to related to dbt Cloud users\nprod_job_external_notification = dbtcloud.PartialNotification(\"prod_job_external_notification\",\n    user_id=100,\n    on_failures=[\n        23456,\n        56788,\n    ],\n    on_cancels=[prod_job[\"id\"]],\n    notification_type=4,\n    external_email=\"my_email@mail.com\")\n# and finally, we can set up Slack notifications\nprod_job_slack_notifications = dbtcloud.PartialNotification(\"prod_job_slack_notifications\",\n    user_id=100,\n    on_failures=[\n        23456,\n        56788,\n    ],\n    on_cancels=[prod_job[\"id\"]],\n    notification_type=2,\n    slack_channel_id=\"C12345ABCDE\",\n    slack_channel_name=\"#my-awesome-channel\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // the config is the same as for `dbtcloud_notification`\n    var prodJobInternalNotification = new DbtCloud.PartialNotification(\"prod_job_internal_notification\", new()\n    {\n        UserId = 100,\n        OnSuccesses = new[]\n        {\n            prodJob.Id,\n        },\n        OnFailures = new[]\n        {\n            12345,\n        },\n        NotificationType = 1,\n    });\n\n    // we can also send \"external\" email notifications to emails to related to dbt Cloud users\n    var prodJobExternalNotification = new DbtCloud.PartialNotification(\"prod_job_external_notification\", new()\n    {\n        UserId = 100,\n        OnFailures = new[]\n        {\n            23456,\n            56788,\n        },\n        OnCancels = new[]\n        {\n            prodJob.Id,\n        },\n        NotificationType = 4,\n        ExternalEmail = \"my_email@mail.com\",\n    });\n\n    // and finally, we can set up Slack notifications\n    var prodJobSlackNotifications = new DbtCloud.PartialNotification(\"prod_job_slack_notifications\", new()\n    {\n        UserId = 100,\n        OnFailures = new[]\n        {\n            23456,\n            56788,\n        },\n        OnCancels = new[]\n        {\n            prodJob.Id,\n        },\n        NotificationType = 2,\n        SlackChannelId = \"C12345ABCDE\",\n        SlackChannelName = \"#my-awesome-channel\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// the config is the same as for `dbtcloud_notification`\n\t\t_, err := dbtcloud.NewPartialNotification(ctx, \"prod_job_internal_notification\", \u0026dbtcloud.PartialNotificationArgs{\n\t\t\tUserId: pulumi.Int(100),\n\t\t\tOnSuccesses: pulumi.IntArray{\n\t\t\t\tprodJob.Id,\n\t\t\t},\n\t\t\tOnFailures: pulumi.IntArray{\n\t\t\t\tpulumi.Int(12345),\n\t\t\t},\n\t\t\tNotificationType: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// we can also send \"external\" email notifications to emails to related to dbt Cloud users\n\t\t_, err = dbtcloud.NewPartialNotification(ctx, \"prod_job_external_notification\", \u0026dbtcloud.PartialNotificationArgs{\n\t\t\tUserId: pulumi.Int(100),\n\t\t\tOnFailures: pulumi.IntArray{\n\t\t\t\tpulumi.Int(23456),\n\t\t\t\tpulumi.Int(56788),\n\t\t\t},\n\t\t\tOnCancels: pulumi.IntArray{\n\t\t\t\tprodJob.Id,\n\t\t\t},\n\t\t\tNotificationType: pulumi.Int(4),\n\t\t\tExternalEmail:    pulumi.String(\"my_email@mail.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// and finally, we can set up Slack notifications\n\t\t_, err = dbtcloud.NewPartialNotification(ctx, \"prod_job_slack_notifications\", \u0026dbtcloud.PartialNotificationArgs{\n\t\t\tUserId: pulumi.Int(100),\n\t\t\tOnFailures: pulumi.IntArray{\n\t\t\t\tpulumi.Int(23456),\n\t\t\t\tpulumi.Int(56788),\n\t\t\t},\n\t\t\tOnCancels: pulumi.IntArray{\n\t\t\t\tprodJob.Id,\n\t\t\t},\n\t\t\tNotificationType: pulumi.Int(2),\n\t\t\tSlackChannelId:   pulumi.String(\"C12345ABCDE\"),\n\t\t\tSlackChannelName: pulumi.String(\"#my-awesome-channel\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.PartialNotification;\nimport com.pulumi.dbtcloud.PartialNotificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // the config is the same as for `dbtcloud_notification`\n        var prodJobInternalNotification = new PartialNotification(\"prodJobInternalNotification\", PartialNotificationArgs.builder()\n            .userId(100)\n            .onSuccesses(prodJob.id())\n            .onFailures(12345)\n            .notificationType(1)\n            .build());\n\n        // we can also send \"external\" email notifications to emails to related to dbt Cloud users\n        var prodJobExternalNotification = new PartialNotification(\"prodJobExternalNotification\", PartialNotificationArgs.builder()\n            .userId(100)\n            .onFailures(            \n                23456,\n                56788)\n            .onCancels(prodJob.id())\n            .notificationType(4)\n            .externalEmail(\"my_email@mail.com\")\n            .build());\n\n        // and finally, we can set up Slack notifications\n        var prodJobSlackNotifications = new PartialNotification(\"prodJobSlackNotifications\", PartialNotificationArgs.builder()\n            .userId(100)\n            .onFailures(            \n                23456,\n                56788)\n            .onCancels(prodJob.id())\n            .notificationType(2)\n            .slackChannelId(\"C12345ABCDE\")\n            .slackChannelName(\"#my-awesome-channel\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # the config is the same as for `dbtcloud_notification`\n  prodJobInternalNotification:\n    type: dbtcloud:PartialNotification\n    name: prod_job_internal_notification\n    properties:\n      userId: 100\n      onSuccesses:\n        - ${prodJob.id}\n      onFailures:\n        - 12345\n      notificationType: 1\n  # we can also send \"external\" email notifications to emails to related to dbt Cloud users\n  prodJobExternalNotification:\n    type: dbtcloud:PartialNotification\n    name: prod_job_external_notification\n    properties:\n      userId: 100\n      onFailures:\n        - 23456\n        - 56788\n      onCancels:\n        - ${prodJob.id}\n      notificationType: 4 # the external_email is the email address that will receive the notification\n      externalEmail: my_email@mail.com\n  # and finally, we can set up Slack notifications\n  prodJobSlackNotifications:\n    type: dbtcloud:PartialNotification\n    name: prod_job_slack_notifications\n    properties:\n      userId: 100\n      onFailures:\n        - 23456\n        - 56788\n      onCancels:\n        - ${prodJob.id}\n      notificationType: 2\n      slackChannelId: C12345ABCDE\n      slackChannelName: '#my-awesome-channel'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"externalEmail":{"type":"string","description":"The external email to receive the notification [global, used as identifier]\n"},"notificationType":{"type":"integer","description":"Type of notification (1 = dbt Cloud user email (default): does not require an\u003cspan pulumi-lang-nodejs=\" externalEmail \" pulumi-lang-dotnet=\" ExternalEmail \" pulumi-lang-go=\" externalEmail \" pulumi-lang-python=\" external_email \" pulumi-lang-yaml=\" externalEmail \" pulumi-lang-java=\" externalEmail \"\u003e external_email \u003c/span\u003e; 2 = Slack channel: requires \u003cspan pulumi-lang-nodejs=\"`slackChannelId`\" pulumi-lang-dotnet=\"`SlackChannelId`\" pulumi-lang-go=\"`slackChannelId`\" pulumi-lang-python=\"`slack_channel_id`\" pulumi-lang-yaml=\"`slackChannelId`\" pulumi-lang-java=\"`slackChannelId`\"\u003e`slack_channel_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slackChannelName`\" pulumi-lang-dotnet=\"`SlackChannelName`\" pulumi-lang-go=\"`slackChannelName`\" pulumi-lang-python=\"`slack_channel_name`\" pulumi-lang-yaml=\"`slackChannelName`\" pulumi-lang-java=\"`slackChannelName`\"\u003e`slack_channel_name`\u003c/span\u003e ; 4 = external email: requires setting an \u003cspan pulumi-lang-nodejs=\"`externalEmail`\" pulumi-lang-dotnet=\"`ExternalEmail`\" pulumi-lang-go=\"`externalEmail`\" pulumi-lang-python=\"`external_email`\" pulumi-lang-yaml=\"`externalEmail`\" pulumi-lang-java=\"`externalEmail`\"\u003e`external_email`\u003c/span\u003e) [global, used as identifier]\n"},"onCancels":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on cancel. Those will be added/removed when config is added/removed.\n"},"onFailures":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on failure Those will be added/removed when config is added/removed.\n"},"onSuccesses":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on success Those will be added/removed when config is added/removed.\n"},"onWarnings":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on warning Those will be added/removed when config is added/removed.\n"},"slackChannelId":{"type":"string","description":"The ID of the Slack channel to receive the notification. It can be found at the bottom of the Slack channel settings [global, used as identifier]\n"},"slackChannelName":{"type":"string","description":"The name of the slack channel [global, used as identifier]\n"},"state":{"type":"integer","description":"State of the notification (1 = active (default), 2 = inactive) [global]\n"},"userId":{"type":"integer","description":"Internal dbt Cloud User ID. Must be the\u003cspan pulumi-lang-nodejs=\" userId \" pulumi-lang-dotnet=\" UserId \" pulumi-lang-go=\" userId \" pulumi-lang-python=\" user_id \" pulumi-lang-yaml=\" userId \" pulumi-lang-java=\" userId \"\u003e user_id \u003c/span\u003efor an existing user even if the notification is an external one [global]\n"}},"required":["notificationType","onCancels","onFailures","onSuccesses","onWarnings","state","userId"],"inputProperties":{"externalEmail":{"type":"string","description":"The external email to receive the notification [global, used as identifier]\n"},"notificationType":{"type":"integer","description":"Type of notification (1 = dbt Cloud user email (default): does not require an\u003cspan pulumi-lang-nodejs=\" externalEmail \" pulumi-lang-dotnet=\" ExternalEmail \" pulumi-lang-go=\" externalEmail \" pulumi-lang-python=\" external_email \" pulumi-lang-yaml=\" externalEmail \" pulumi-lang-java=\" externalEmail \"\u003e external_email \u003c/span\u003e; 2 = Slack channel: requires \u003cspan pulumi-lang-nodejs=\"`slackChannelId`\" pulumi-lang-dotnet=\"`SlackChannelId`\" pulumi-lang-go=\"`slackChannelId`\" pulumi-lang-python=\"`slack_channel_id`\" pulumi-lang-yaml=\"`slackChannelId`\" pulumi-lang-java=\"`slackChannelId`\"\u003e`slack_channel_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slackChannelName`\" pulumi-lang-dotnet=\"`SlackChannelName`\" pulumi-lang-go=\"`slackChannelName`\" pulumi-lang-python=\"`slack_channel_name`\" pulumi-lang-yaml=\"`slackChannelName`\" pulumi-lang-java=\"`slackChannelName`\"\u003e`slack_channel_name`\u003c/span\u003e ; 4 = external email: requires setting an \u003cspan pulumi-lang-nodejs=\"`externalEmail`\" pulumi-lang-dotnet=\"`ExternalEmail`\" pulumi-lang-go=\"`externalEmail`\" pulumi-lang-python=\"`external_email`\" pulumi-lang-yaml=\"`externalEmail`\" pulumi-lang-java=\"`externalEmail`\"\u003e`external_email`\u003c/span\u003e) [global, used as identifier]\n"},"onCancels":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on cancel. Those will be added/removed when config is added/removed.\n"},"onFailures":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on failure Those will be added/removed when config is added/removed.\n"},"onSuccesses":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on success Those will be added/removed when config is added/removed.\n"},"onWarnings":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on warning Those will be added/removed when config is added/removed.\n"},"slackChannelId":{"type":"string","description":"The ID of the Slack channel to receive the notification. It can be found at the bottom of the Slack channel settings [global, used as identifier]\n"},"slackChannelName":{"type":"string","description":"The name of the slack channel [global, used as identifier]\n"},"state":{"type":"integer","description":"State of the notification (1 = active (default), 2 = inactive) [global]\n"},"userId":{"type":"integer","description":"Internal dbt Cloud User ID. Must be the\u003cspan pulumi-lang-nodejs=\" userId \" pulumi-lang-dotnet=\" UserId \" pulumi-lang-go=\" userId \" pulumi-lang-python=\" user_id \" pulumi-lang-yaml=\" userId \" pulumi-lang-java=\" userId \"\u003e user_id \u003c/span\u003efor an existing user even if the notification is an external one [global]\n"}},"requiredInputs":["userId"],"stateInputs":{"description":"Input properties used for looking up and filtering PartialNotification resources.\n","properties":{"externalEmail":{"type":"string","description":"The external email to receive the notification [global, used as identifier]\n"},"notificationType":{"type":"integer","description":"Type of notification (1 = dbt Cloud user email (default): does not require an\u003cspan pulumi-lang-nodejs=\" externalEmail \" pulumi-lang-dotnet=\" ExternalEmail \" pulumi-lang-go=\" externalEmail \" pulumi-lang-python=\" external_email \" pulumi-lang-yaml=\" externalEmail \" pulumi-lang-java=\" externalEmail \"\u003e external_email \u003c/span\u003e; 2 = Slack channel: requires \u003cspan pulumi-lang-nodejs=\"`slackChannelId`\" pulumi-lang-dotnet=\"`SlackChannelId`\" pulumi-lang-go=\"`slackChannelId`\" pulumi-lang-python=\"`slack_channel_id`\" pulumi-lang-yaml=\"`slackChannelId`\" pulumi-lang-java=\"`slackChannelId`\"\u003e`slack_channel_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slackChannelName`\" pulumi-lang-dotnet=\"`SlackChannelName`\" pulumi-lang-go=\"`slackChannelName`\" pulumi-lang-python=\"`slack_channel_name`\" pulumi-lang-yaml=\"`slackChannelName`\" pulumi-lang-java=\"`slackChannelName`\"\u003e`slack_channel_name`\u003c/span\u003e ; 4 = external email: requires setting an \u003cspan pulumi-lang-nodejs=\"`externalEmail`\" pulumi-lang-dotnet=\"`ExternalEmail`\" pulumi-lang-go=\"`externalEmail`\" pulumi-lang-python=\"`external_email`\" pulumi-lang-yaml=\"`externalEmail`\" pulumi-lang-java=\"`externalEmail`\"\u003e`external_email`\u003c/span\u003e) [global, used as identifier]\n"},"onCancels":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on cancel. Those will be added/removed when config is added/removed.\n"},"onFailures":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on failure Those will be added/removed when config is added/removed.\n"},"onSuccesses":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on success Those will be added/removed when config is added/removed.\n"},"onWarnings":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook on warning Those will be added/removed when config is added/removed.\n"},"slackChannelId":{"type":"string","description":"The ID of the Slack channel to receive the notification. It can be found at the bottom of the Slack channel settings [global, used as identifier]\n"},"slackChannelName":{"type":"string","description":"The name of the slack channel [global, used as identifier]\n"},"state":{"type":"integer","description":"State of the notification (1 = active (default), 2 = inactive) [global]\n"},"userId":{"type":"integer","description":"Internal dbt Cloud User ID. Must be the\u003cspan pulumi-lang-nodejs=\" userId \" pulumi-lang-dotnet=\" UserId \" pulumi-lang-go=\" userId \" pulumi-lang-python=\" user_id \" pulumi-lang-yaml=\" userId \" pulumi-lang-java=\" userId \"\u003e user_id \u003c/span\u003efor an existing user even if the notification is an external one [global]\n"}},"type":"object"}},"dbtcloud:index/postgresCredential:PostgresCredential":{"description":"Postgres credential resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst postgresProdCredential = new dbtcloud.PostgresCredential(\"postgres_prod_credential\", {\n    isActive: true,\n    projectId: dbtProject.id,\n    type: \"postgres\",\n    defaultSchema: \"my_schema\",\n    username: \"my_username\",\n    password: \"my_password\",\n    numThreads: 16,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\npostgres_prod_credential = dbtcloud.PostgresCredential(\"postgres_prod_credential\",\n    is_active=True,\n    project_id=dbt_project[\"id\"],\n    type=\"postgres\",\n    default_schema=\"my_schema\",\n    username=\"my_username\",\n    password=\"my_password\",\n    num_threads=16)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var postgresProdCredential = new DbtCloud.PostgresCredential(\"postgres_prod_credential\", new()\n    {\n        IsActive = true,\n        ProjectId = dbtProject.Id,\n        Type = \"postgres\",\n        DefaultSchema = \"my_schema\",\n        Username = \"my_username\",\n        Password = \"my_password\",\n        NumThreads = 16,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewPostgresCredential(ctx, \"postgres_prod_credential\", \u0026dbtcloud.PostgresCredentialArgs{\n\t\t\tIsActive:      pulumi.Bool(true),\n\t\t\tProjectId:     pulumi.Any(dbtProject.Id),\n\t\t\tType:          pulumi.String(\"postgres\"),\n\t\t\tDefaultSchema: pulumi.String(\"my_schema\"),\n\t\t\tUsername:      pulumi.String(\"my_username\"),\n\t\t\tPassword:      pulumi.String(\"my_password\"),\n\t\t\tNumThreads:    pulumi.Int(16),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.PostgresCredential;\nimport com.pulumi.dbtcloud.PostgresCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var postgresProdCredential = new PostgresCredential(\"postgresProdCredential\", PostgresCredentialArgs.builder()\n            .isActive(true)\n            .projectId(dbtProject.id())\n            .type(\"postgres\")\n            .defaultSchema(\"my_schema\")\n            .username(\"my_username\")\n            .password(\"my_password\")\n            .numThreads(16)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  postgresProdCredential:\n    type: dbtcloud:PostgresCredential\n    name: postgres_prod_credential\n    properties:\n      isActive: true\n      projectId: ${dbtProject.id}\n      type: postgres\n      defaultSchema: my_schema\n      username: my_username\n      password: my_password\n      numThreads: 16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_postgres_credential.my_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_postgres_credential.my_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/postgresCredential:PostgresCredential my_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/postgresCredential:PostgresCredential my_credential 12345:6789\n```\n\n","properties":{"credentialId":{"type":"integer","description":"The system Postgres/Redshift/AlloyDB credential ID.\n"},"defaultSchema":{"type":"string","description":"Default schema name. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"isActive":{"type":"boolean","description":"Whether the Postgres/Redshift/AlloyDB credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use (required for Redshift)\n"},"password":{"type":"string","description":"Password for Postgres/Redshift/AlloyDB\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Postgres/Redshift/AlloyDB credential in.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Postgres credential for the Semantic Layer.\n"},"targetName":{"type":"string","description":"Default schema name\n"},"type":{"type":"string","description":"Type of connection. One of (postgres/redshift). Use postgres for alloydb connections. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"username":{"type":"string","description":"Username for Postgres/Redshift/AlloyDB\n"}},"required":["credentialId","defaultSchema","isActive","numThreads","projectId","semanticLayerCredential","targetName","type","username"],"inputProperties":{"defaultSchema":{"type":"string","description":"Default schema name. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"isActive":{"type":"boolean","description":"Whether the Postgres/Redshift/AlloyDB credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use (required for Redshift)\n"},"password":{"type":"string","description":"Password for Postgres/Redshift/AlloyDB\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Postgres/Redshift/AlloyDB credential in.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Postgres credential for the Semantic Layer.\n"},"targetName":{"type":"string","description":"Default schema name\n"},"type":{"type":"string","description":"Type of connection. One of (postgres/redshift). Use postgres for alloydb connections. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"username":{"type":"string","description":"Username for Postgres/Redshift/AlloyDB\n"}},"requiredInputs":["projectId","username"],"stateInputs":{"description":"Input properties used for looking up and filtering PostgresCredential resources.\n","properties":{"credentialId":{"type":"integer","description":"The system Postgres/Redshift/AlloyDB credential ID.\n"},"defaultSchema":{"type":"string","description":"Default schema name. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"isActive":{"type":"boolean","description":"Whether the Postgres/Redshift/AlloyDB credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use (required for Redshift)\n"},"password":{"type":"string","description":"Password for Postgres/Redshift/AlloyDB\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Postgres/Redshift/AlloyDB credential in.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Postgres credential for the Semantic Layer.\n"},"targetName":{"type":"string","description":"Default schema name\n"},"type":{"type":"string","description":"Type of connection. One of (postgres/redshift). Use postgres for alloydb connections. Optional only when semantic*layer*credential is set to true; otherwise, this field is required.\n"},"username":{"type":"string","description":"Username for Postgres/Redshift/AlloyDB\n"}},"type":"object"}},"dbtcloud:index/postgresSemanticLayerCredential:PostgresSemanticLayerCredential":{"description":"Postgres credential resource. This resource is composed of a Postgres credential and a Semantic Layer configuration. It is used to create a Postgres credential for the Semantic Layer.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst testPostgresSemanticLayerCredential = new dbtcloud.PostgresSemanticLayerCredential(\"test_postgres_semantic_layer_credential\", {\n    configuration: {\n        projectId: projectId,\n        name: \"Postgres SL Credential\",\n        adapterVersion: \"postgres_v0\",\n    },\n    credential: {\n        projectId: projectId,\n        username: username,\n        password: password,\n        semanticLayerCredential: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ntest_postgres_semantic_layer_credential = dbtcloud.PostgresSemanticLayerCredential(\"test_postgres_semantic_layer_credential\",\n    configuration={\n        \"project_id\": project_id,\n        \"name\": \"Postgres SL Credential\",\n        \"adapter_version\": \"postgres_v0\",\n    },\n    credential={\n        \"project_id\": project_id,\n        \"username\": username,\n        \"password\": password,\n        \"semantic_layer_credential\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testPostgresSemanticLayerCredential = new DbtCloud.PostgresSemanticLayerCredential(\"test_postgres_semantic_layer_credential\", new()\n    {\n        Configuration = new DbtCloud.Inputs.PostgresSemanticLayerCredentialConfigurationArgs\n        {\n            ProjectId = projectId,\n            Name = \"Postgres SL Credential\",\n            AdapterVersion = \"postgres_v0\",\n        },\n        Credential = new DbtCloud.Inputs.PostgresSemanticLayerCredentialCredentialArgs\n        {\n            ProjectId = projectId,\n            Username = username,\n            Password = password,\n            SemanticLayerCredential = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewPostgresSemanticLayerCredential(ctx, \"test_postgres_semantic_layer_credential\", \u0026dbtcloud.PostgresSemanticLayerCredentialArgs{\n\t\t\tConfiguration: \u0026dbtcloud.PostgresSemanticLayerCredentialConfigurationArgs{\n\t\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\t\tName:           pulumi.String(\"Postgres SL Credential\"),\n\t\t\t\tAdapterVersion: pulumi.String(\"postgres_v0\"),\n\t\t\t},\n\t\t\tCredential: \u0026dbtcloud.PostgresSemanticLayerCredentialCredentialArgs{\n\t\t\t\tProjectId:               pulumi.Any(projectId),\n\t\t\t\tUsername:                pulumi.Any(username),\n\t\t\t\tPassword:                pulumi.Any(password),\n\t\t\t\tSemanticLayerCredential: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.PostgresSemanticLayerCredential;\nimport com.pulumi.dbtcloud.PostgresSemanticLayerCredentialArgs;\nimport com.pulumi.dbtcloud.inputs.PostgresSemanticLayerCredentialConfigurationArgs;\nimport com.pulumi.dbtcloud.inputs.PostgresSemanticLayerCredentialCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testPostgresSemanticLayerCredential = new PostgresSemanticLayerCredential(\"testPostgresSemanticLayerCredential\", PostgresSemanticLayerCredentialArgs.builder()\n            .configuration(PostgresSemanticLayerCredentialConfigurationArgs.builder()\n                .projectId(projectId)\n                .name(\"Postgres SL Credential\")\n                .adapterVersion(\"postgres_v0\")\n                .build())\n            .credential(PostgresSemanticLayerCredentialCredentialArgs.builder()\n                .projectId(projectId)\n                .username(username)\n                .password(password)\n                .semanticLayerCredential(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testPostgresSemanticLayerCredential:\n    type: dbtcloud:PostgresSemanticLayerCredential\n    name: test_postgres_semantic_layer_credential\n    properties:\n      configuration:\n        projectId: ${projectId}\n        name: Postgres SL Credential\n        adapterVersion: postgres_v0\n      credential:\n        projectId: ${projectId}\n        username: ${username}\n        password: ${password}\n        semanticLayerCredential: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_postgres_semantic_layer_credential.example\nid = \u003cspan pulumi-lang-nodejs=\"\"credentialId\"\" pulumi-lang-dotnet=\"\"CredentialId\"\" pulumi-lang-go=\"\"credentialId\"\" pulumi-lang-python=\"\"credential_id\"\" pulumi-lang-yaml=\"\"credentialId\"\" pulumi-lang-java=\"\"credentialId\"\"\u003e\"credential_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_postgres_semantic_layer_credential.example\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/postgresSemanticLayerCredential:PostgresSemanticLayerCredential example \"credential_id\"\n$ pulumi import dbtcloud:index/postgresSemanticLayerCredential:PostgresSemanticLayerCredential example 12345\n```\n\n","properties":{"configuration":{"$ref":"#/types/dbtcloud:index/PostgresSemanticLayerCredentialConfiguration:PostgresSemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/PostgresSemanticLayerCredentialCredential:PostgresSemanticLayerCredentialCredential","description":"Postgres credential details, but used in the context of the Semantic Layer.\n"}},"required":["configuration","credential"],"inputProperties":{"configuration":{"$ref":"#/types/dbtcloud:index/PostgresSemanticLayerCredentialConfiguration:PostgresSemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/PostgresSemanticLayerCredentialCredential:PostgresSemanticLayerCredentialCredential","description":"Postgres credential details, but used in the context of the Semantic Layer.\n"}},"requiredInputs":["configuration","credential"],"stateInputs":{"description":"Input properties used for looking up and filtering PostgresSemanticLayerCredential resources.\n","properties":{"configuration":{"$ref":"#/types/dbtcloud:index/PostgresSemanticLayerCredentialConfiguration:PostgresSemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/PostgresSemanticLayerCredentialCredential:PostgresSemanticLayerCredentialCredential","description":"Postgres credential details, but used in the context of the Semantic Layer.\n"}},"type":"object"}},"dbtcloud:index/profile:Profile":{"description":"Manages a dbt Cloud profile. A profile ties together a connection and credentials for use within environments.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// A profile ties together a connection and credentials for use within environments.\nconst myProfile = new dbtcloud.Profile(\"my_profile\", {\n    projectId: myProject.id,\n    key: \"my-profile\",\n    connectionId: myConnection.id,\n    credentialsId: myCredential.credentialId,\n});\n// A profile with extended attributes\nconst myProfileWithAttrs = new dbtcloud.Profile(\"my_profile_with_attrs\", {\n    projectId: myProject.id,\n    key: \"my-profile-with-attrs\",\n    connectionId: myConnection.id,\n    credentialsId: myCredential.credentialId,\n    extendedAttributesId: myAttributes.extendedAttributesId,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# A profile ties together a connection and credentials for use within environments.\nmy_profile = dbtcloud.Profile(\"my_profile\",\n    project_id=my_project[\"id\"],\n    key=\"my-profile\",\n    connection_id=my_connection[\"id\"],\n    credentials_id=my_credential[\"credentialId\"])\n# A profile with extended attributes\nmy_profile_with_attrs = dbtcloud.Profile(\"my_profile_with_attrs\",\n    project_id=my_project[\"id\"],\n    key=\"my-profile-with-attrs\",\n    connection_id=my_connection[\"id\"],\n    credentials_id=my_credential[\"credentialId\"],\n    extended_attributes_id=my_attributes[\"extendedAttributesId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // A profile ties together a connection and credentials for use within environments.\n    var myProfile = new DbtCloud.Profile(\"my_profile\", new()\n    {\n        ProjectId = myProject.Id,\n        Key = \"my-profile\",\n        ConnectionId = myConnection.Id,\n        CredentialsId = myCredential.CredentialId,\n    });\n\n    // A profile with extended attributes\n    var myProfileWithAttrs = new DbtCloud.Profile(\"my_profile_with_attrs\", new()\n    {\n        ProjectId = myProject.Id,\n        Key = \"my-profile-with-attrs\",\n        ConnectionId = myConnection.Id,\n        CredentialsId = myCredential.CredentialId,\n        ExtendedAttributesId = myAttributes.ExtendedAttributesId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// A profile ties together a connection and credentials for use within environments.\n\t\t_, err := dbtcloud.NewProfile(ctx, \"my_profile\", \u0026dbtcloud.ProfileArgs{\n\t\t\tProjectId:     pulumi.Any(myProject.Id),\n\t\t\tKey:           pulumi.String(\"my-profile\"),\n\t\t\tConnectionId:  pulumi.Any(myConnection.Id),\n\t\t\tCredentialsId: pulumi.Any(myCredential.CredentialId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// A profile with extended attributes\n\t\t_, err = dbtcloud.NewProfile(ctx, \"my_profile_with_attrs\", \u0026dbtcloud.ProfileArgs{\n\t\t\tProjectId:            pulumi.Any(myProject.Id),\n\t\t\tKey:                  pulumi.String(\"my-profile-with-attrs\"),\n\t\t\tConnectionId:         pulumi.Any(myConnection.Id),\n\t\t\tCredentialsId:        pulumi.Any(myCredential.CredentialId),\n\t\t\tExtendedAttributesId: pulumi.Any(myAttributes.ExtendedAttributesId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.Profile;\nimport com.pulumi.dbtcloud.ProfileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // A profile ties together a connection and credentials for use within environments.\n        var myProfile = new Profile(\"myProfile\", ProfileArgs.builder()\n            .projectId(myProject.id())\n            .key(\"my-profile\")\n            .connectionId(myConnection.id())\n            .credentialsId(myCredential.credentialId())\n            .build());\n\n        // A profile with extended attributes\n        var myProfileWithAttrs = new Profile(\"myProfileWithAttrs\", ProfileArgs.builder()\n            .projectId(myProject.id())\n            .key(\"my-profile-with-attrs\")\n            .connectionId(myConnection.id())\n            .credentialsId(myCredential.credentialId())\n            .extendedAttributesId(myAttributes.extendedAttributesId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # A profile ties together a connection and credentials for use within environments.\n  myProfile:\n    type: dbtcloud:Profile\n    name: my_profile\n    properties:\n      projectId: ${myProject.id}\n      key: my-profile\n      connectionId: ${myConnection.id}\n      credentialsId: ${myCredential.credentialId}\n  # A profile with extended attributes\n  myProfileWithAttrs:\n    type: dbtcloud:Profile\n    name: my_profile_with_attrs\n    properties:\n      projectId: ${myProject.id}\n      key: my-profile-with-attrs\n      connectionId: ${myConnection.id}\n      credentialsId: ${myCredential.credentialId}\n      extendedAttributesId: ${myAttributes.extendedAttributesId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_profile.my_profile\nid = \"project_id:profile_id\"\n}\n\nimport {\nto = dbtcloud_profile.my_profile\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/profile:Profile my_profile \"project_id:profile_id\"\n$ pulumi import dbtcloud:index/profile:Profile my_profile 12345:6789\n```\n\n","properties":{"connectionId":{"type":"integer","description":"The ID of the connection to use for this profile\n"},"credentialsId":{"type":"integer","description":"The ID of the credentials to use for this profile\n"},"extendedAttributesId":{"type":"integer","description":"The ID of the extended attributes for this profile. Set to null to unset.\n"},"key":{"type":"string","description":"Unique identifier for the profile\n"},"profileId":{"type":"integer","description":"The ID of the profile\n"},"projectId":{"type":"integer","description":"The ID of the project in which to create the profile\n"}},"required":["connectionId","credentialsId","key","profileId","projectId"],"inputProperties":{"connectionId":{"type":"integer","description":"The ID of the connection to use for this profile\n"},"credentialsId":{"type":"integer","description":"The ID of the credentials to use for this profile\n"},"extendedAttributesId":{"type":"integer","description":"The ID of the extended attributes for this profile. Set to null to unset.\n"},"key":{"type":"string","description":"Unique identifier for the profile\n"},"projectId":{"type":"integer","description":"The ID of the project in which to create the profile\n"}},"requiredInputs":["connectionId","credentialsId","key","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering Profile resources.\n","properties":{"connectionId":{"type":"integer","description":"The ID of the connection to use for this profile\n"},"credentialsId":{"type":"integer","description":"The ID of the credentials to use for this profile\n"},"extendedAttributesId":{"type":"integer","description":"The ID of the extended attributes for this profile. Set to null to unset.\n"},"key":{"type":"string","description":"Unique identifier for the profile\n"},"profileId":{"type":"integer","description":"The ID of the profile\n"},"projectId":{"type":"integer","description":"The ID of the project in which to create the profile\n"}},"type":"object"}},"dbtcloud:index/project:Project":{"description":"Manages a dbt Cloud project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst dbtProject = new dbtcloud.Project(\"dbt_project\", {name: \"Analytics\"});\nconst dbtProjectWithDescription = new dbtcloud.Project(\"dbt_project_with_description\", {\n    name: \"Analytics with description\",\n    description: \"My awesome analytics project\",\n});\nconst dbtProjectWithSubdir = new dbtcloud.Project(\"dbt_project_with_subdir\", {\n    name: \"Analytics in Subdir\",\n    dbtProjectSubdirectory: \"path\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ndbt_project = dbtcloud.Project(\"dbt_project\", name=\"Analytics\")\ndbt_project_with_description = dbtcloud.Project(\"dbt_project_with_description\",\n    name=\"Analytics with description\",\n    description=\"My awesome analytics project\")\ndbt_project_with_subdir = dbtcloud.Project(\"dbt_project_with_subdir\",\n    name=\"Analytics in Subdir\",\n    dbt_project_subdirectory=\"path\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dbtProject = new DbtCloud.Project(\"dbt_project\", new()\n    {\n        Name = \"Analytics\",\n    });\n\n    var dbtProjectWithDescription = new DbtCloud.Project(\"dbt_project_with_description\", new()\n    {\n        Name = \"Analytics with description\",\n        Description = \"My awesome analytics project\",\n    });\n\n    var dbtProjectWithSubdir = new DbtCloud.Project(\"dbt_project_with_subdir\", new()\n    {\n        Name = \"Analytics in Subdir\",\n        DbtProjectSubdirectory = \"path\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewProject(ctx, \"dbt_project\", \u0026dbtcloud.ProjectArgs{\n\t\t\tName: pulumi.String(\"Analytics\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewProject(ctx, \"dbt_project_with_description\", \u0026dbtcloud.ProjectArgs{\n\t\t\tName:        pulumi.String(\"Analytics with description\"),\n\t\t\tDescription: pulumi.String(\"My awesome analytics project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.NewProject(ctx, \"dbt_project_with_subdir\", \u0026dbtcloud.ProjectArgs{\n\t\t\tName:                   pulumi.String(\"Analytics in Subdir\"),\n\t\t\tDbtProjectSubdirectory: pulumi.String(\"path\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.Project;\nimport com.pulumi.dbtcloud.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dbtProject = new Project(\"dbtProject\", ProjectArgs.builder()\n            .name(\"Analytics\")\n            .build());\n\n        var dbtProjectWithDescription = new Project(\"dbtProjectWithDescription\", ProjectArgs.builder()\n            .name(\"Analytics with description\")\n            .description(\"My awesome analytics project\")\n            .build());\n\n        var dbtProjectWithSubdir = new Project(\"dbtProjectWithSubdir\", ProjectArgs.builder()\n            .name(\"Analytics in Subdir\")\n            .dbtProjectSubdirectory(\"path\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dbtProject:\n    type: dbtcloud:Project\n    name: dbt_project\n    properties:\n      name: Analytics\n  dbtProjectWithDescription:\n    type: dbtcloud:Project\n    name: dbt_project_with_description\n    properties:\n      name: Analytics with description\n      description: My awesome analytics project\n  dbtProjectWithSubdir:\n    type: dbtcloud:Project\n    name: dbt_project_with_subdir\n    properties:\n      name: Analytics in Subdir\n      dbtProjectSubdirectory: path\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_project.my_project\nid = \u003cspan pulumi-lang-nodejs=\"\"projectId\"\" pulumi-lang-dotnet=\"\"ProjectId\"\" pulumi-lang-go=\"\"projectId\"\" pulumi-lang-python=\"\"project_id\"\" pulumi-lang-yaml=\"\"projectId\"\" pulumi-lang-java=\"\"projectId\"\"\u003e\"project_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_project.my_project\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/project:Project my_project \"project_id\"\n$ pulumi import dbtcloud:index/project:Project my_project 12345\n```\n\n","properties":{"dbtProjectSubdirectory":{"type":"string","description":"DBT project subdirectory\n"},"description":{"type":"string","description":"Description for the project. Will show in dbt Explorer.\n"},"name":{"type":"string","description":"Project name\n"},"type":{"type":"integer","description":"The type of dbt project (0=default or 1=hybrid)\n"}},"required":["dbtProjectSubdirectory","description","name","type"],"inputProperties":{"dbtProjectSubdirectory":{"type":"string","description":"DBT project subdirectory\n"},"description":{"type":"string","description":"Description for the project. Will show in dbt Explorer.\n"},"name":{"type":"string","description":"Project name\n"},"type":{"type":"integer","description":"The type of dbt project (0=default or 1=hybrid)\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"dbtProjectSubdirectory":{"type":"string","description":"DBT project subdirectory\n"},"description":{"type":"string","description":"Description for the project. Will show in dbt Explorer.\n"},"name":{"type":"string","description":"Project name\n"},"type":{"type":"integer","description":"The type of dbt project (0=default or 1=hybrid)\n"}},"type":"object"}},"dbtcloud:index/projectArtefacts:ProjectArtefacts":{"description":"[Deprecated] Resource for mentioning what jobs are the source of truth for the legacy dbt Docs and dbt Source Freshness pages. dbt Explorer doesn't require this config anymore.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myProjectArtefacts = new dbtcloud.ProjectArtefacts(\"my_project_artefacts\", {\n    projectId: dbtProject.id,\n    docsJobId: prodJob.id,\n    freshnessJobId: prodJob.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_project_artefacts = dbtcloud.ProjectArtefacts(\"my_project_artefacts\",\n    project_id=dbt_project[\"id\"],\n    docs_job_id=prod_job[\"id\"],\n    freshness_job_id=prod_job[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myProjectArtefacts = new DbtCloud.ProjectArtefacts(\"my_project_artefacts\", new()\n    {\n        ProjectId = dbtProject.Id,\n        DocsJobId = prodJob.Id,\n        FreshnessJobId = prodJob.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewProjectArtefacts(ctx, \"my_project_artefacts\", \u0026dbtcloud.ProjectArtefactsArgs{\n\t\t\tProjectId:      pulumi.Any(dbtProject.Id),\n\t\t\tDocsJobId:      pulumi.Any(prodJob.Id),\n\t\t\tFreshnessJobId: pulumi.Any(prodJob.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.ProjectArtefacts;\nimport com.pulumi.dbtcloud.ProjectArtefactsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myProjectArtefacts = new ProjectArtefacts(\"myProjectArtefacts\", ProjectArtefactsArgs.builder()\n            .projectId(dbtProject.id())\n            .docsJobId(prodJob.id())\n            .freshnessJobId(prodJob.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myProjectArtefacts:\n    type: dbtcloud:ProjectArtefacts\n    name: my_project_artefacts\n    properties:\n      projectId: ${dbtProject.id}\n      docsJobId: ${prodJob.id}\n      freshnessJobId: ${prodJob.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_project_artefacts.my_artefacts\nid = \u003cspan pulumi-lang-nodejs=\"\"projectId\"\" pulumi-lang-dotnet=\"\"ProjectId\"\" pulumi-lang-go=\"\"projectId\"\" pulumi-lang-python=\"\"project_id\"\" pulumi-lang-yaml=\"\"projectId\"\" pulumi-lang-java=\"\"projectId\"\"\u003e\"project_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_project_artefacts.my_artefacts\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/projectArtefacts:ProjectArtefacts my_artefacts \"project_id\"\n$ pulumi import dbtcloud:index/projectArtefacts:ProjectArtefacts my_artefacts 12345\n```\n\n","properties":{"docsJobId":{"type":"integer","description":"Docs Job ID\n"},"freshnessJobId":{"type":"integer","description":"Freshness Job ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"required":["docsJobId","freshnessJobId","projectId"],"inputProperties":{"docsJobId":{"type":"integer","description":"Docs Job ID\n"},"freshnessJobId":{"type":"integer","description":"Freshness Job ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectArtefacts resources.\n","properties":{"docsJobId":{"type":"integer","description":"Docs Job ID\n"},"freshnessJobId":{"type":"integer","description":"Freshness Job ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object"}},"dbtcloud:index/projectRepository:ProjectRepository":{"description":"Manages a dbt Cloud project repository.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst dbtProjectRepository = new dbtcloud.ProjectRepository(\"dbt_project_repository\", {\n    projectId: dbtProject.id,\n    repositoryId: dbtRepository.repositoryId,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ndbt_project_repository = dbtcloud.ProjectRepository(\"dbt_project_repository\",\n    project_id=dbt_project[\"id\"],\n    repository_id=dbt_repository[\"repositoryId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dbtProjectRepository = new DbtCloud.ProjectRepository(\"dbt_project_repository\", new()\n    {\n        ProjectId = dbtProject.Id,\n        RepositoryId = dbtRepository.RepositoryId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewProjectRepository(ctx, \"dbt_project_repository\", \u0026dbtcloud.ProjectRepositoryArgs{\n\t\t\tProjectId:    pulumi.Any(dbtProject.Id),\n\t\t\tRepositoryId: pulumi.Any(dbtRepository.RepositoryId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.ProjectRepository;\nimport com.pulumi.dbtcloud.ProjectRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dbtProjectRepository = new ProjectRepository(\"dbtProjectRepository\", ProjectRepositoryArgs.builder()\n            .projectId(dbtProject.id())\n            .repositoryId(dbtRepository.repositoryId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dbtProjectRepository:\n    type: dbtcloud:ProjectRepository\n    name: dbt_project_repository\n    properties:\n      projectId: ${dbtProject.id}\n      repositoryId: ${dbtRepository.repositoryId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_project_repository.my_project\nid = \"project_id:repository_id\"\n}\n\nimport {\nto = dbtcloud_project_repository.my_project\nid = \"12345:5678\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/projectRepository:ProjectRepository my_project \"project_id:repository_id\"\n$ pulumi import dbtcloud:index/projectRepository:ProjectRepository my_project 12345:5678\n```\n\n","properties":{"projectId":{"type":"integer","description":"Project ID\n"},"repositoryId":{"type":"integer","description":"Repository ID\n"}},"required":["projectId","repositoryId"],"inputProperties":{"projectId":{"type":"integer","description":"Project ID\n"},"repositoryId":{"type":"integer","description":"Repository ID\n"}},"requiredInputs":["projectId","repositoryId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectRepository resources.\n","properties":{"projectId":{"type":"integer","description":"Project ID\n"},"repositoryId":{"type":"integer","description":"Repository ID\n"}},"type":"object"}},"dbtcloud:index/redshiftCredential:RedshiftCredential":{"description":"Redshift credential resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst redshift = new dbtcloud.RedshiftCredential(\"redshift\", {\n    numThreads: 16,\n    projectId: testProject.id,\n    defaultSchema: \"my_schema\",\n    username: \"my_username\",\n    password: \"my_sensitive_password\",\n    isActive: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nredshift = dbtcloud.RedshiftCredential(\"redshift\",\n    num_threads=16,\n    project_id=test_project[\"id\"],\n    default_schema=\"my_schema\",\n    username=\"my_username\",\n    password=\"my_sensitive_password\",\n    is_active=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var redshift = new DbtCloud.RedshiftCredential(\"redshift\", new()\n    {\n        NumThreads = 16,\n        ProjectId = testProject.Id,\n        DefaultSchema = \"my_schema\",\n        Username = \"my_username\",\n        Password = \"my_sensitive_password\",\n        IsActive = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewRedshiftCredential(ctx, \"redshift\", \u0026dbtcloud.RedshiftCredentialArgs{\n\t\t\tNumThreads:    pulumi.Int(16),\n\t\t\tProjectId:     pulumi.Any(testProject.Id),\n\t\t\tDefaultSchema: pulumi.String(\"my_schema\"),\n\t\t\tUsername:      pulumi.String(\"my_username\"),\n\t\t\tPassword:      pulumi.String(\"my_sensitive_password\"),\n\t\t\tIsActive:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.RedshiftCredential;\nimport com.pulumi.dbtcloud.RedshiftCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var redshift = new RedshiftCredential(\"redshift\", RedshiftCredentialArgs.builder()\n            .numThreads(16)\n            .projectId(testProject.id())\n            .defaultSchema(\"my_schema\")\n            .username(\"my_username\")\n            .password(\"my_sensitive_password\")\n            .isActive(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  redshift:\n    type: dbtcloud:RedshiftCredential\n    properties:\n      numThreads: 16\n      projectId: ${testProject.id}\n      defaultSchema: my_schema\n      username: my_username\n      password: my_sensitive_password\n      isActive: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_redshift_credential.my_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_redshift_credential.my_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/redshiftCredential:RedshiftCredential my_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/redshiftCredential:RedshiftCredential my_credential 12345:6789\n```\n\n","properties":{"credentialId":{"type":"integer","description":"The internal credential ID\n"},"defaultSchema":{"type":"string","description":"Default schema name\n"},"isActive":{"type":"boolean","description":"Whether the Redshift credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"password":{"type":"string","description":"The password for the Redshift account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Redshift credential in\n"},"username":{"type":"string","description":"The username for the Redshift account.\n"}},"required":["credentialId","defaultSchema","isActive","numThreads","password","projectId","username"],"inputProperties":{"defaultSchema":{"type":"string","description":"Default schema name\n"},"isActive":{"type":"boolean","description":"Whether the Redshift credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"password":{"type":"string","description":"The password for the Redshift account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Redshift credential in\n"},"username":{"type":"string","description":"The username for the Redshift account.\n"}},"requiredInputs":["defaultSchema","numThreads","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering RedshiftCredential resources.\n","properties":{"credentialId":{"type":"integer","description":"The internal credential ID\n"},"defaultSchema":{"type":"string","description":"Default schema name\n"},"isActive":{"type":"boolean","description":"Whether the Redshift credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"password":{"type":"string","description":"The password for the Redshift account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Redshift credential in\n"},"username":{"type":"string","description":"The username for the Redshift account.\n"}},"type":"object"}},"dbtcloud:index/redshiftSemanticLayerCredential:RedshiftSemanticLayerCredential":{"description":"Redshift credential resource. This resource is composed of a Redshift credential and a Semantic Layer configuration. It is used to create a Redshift credential for the Semantic Layer.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst testRedshiftSemanticLayerCredential = new dbtcloud.RedshiftSemanticLayerCredential(\"test_redshift_semantic_layer_credential\", {\n    configuration: {\n        projectId: projectId,\n        name: \"Redshift SL Credential\",\n        adapterVersion: \"redshift_v0\",\n    },\n    credential: {\n        projectId: projectId,\n        username: username,\n        isActive: true,\n        password: password,\n        numThreads: numThreads,\n        defaultSchema: defaultSchema,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ntest_redshift_semantic_layer_credential = dbtcloud.RedshiftSemanticLayerCredential(\"test_redshift_semantic_layer_credential\",\n    configuration={\n        \"project_id\": project_id,\n        \"name\": \"Redshift SL Credential\",\n        \"adapter_version\": \"redshift_v0\",\n    },\n    credential={\n        \"project_id\": project_id,\n        \"username\": username,\n        \"is_active\": True,\n        \"password\": password,\n        \"num_threads\": num_threads,\n        \"default_schema\": default_schema,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRedshiftSemanticLayerCredential = new DbtCloud.RedshiftSemanticLayerCredential(\"test_redshift_semantic_layer_credential\", new()\n    {\n        Configuration = new DbtCloud.Inputs.RedshiftSemanticLayerCredentialConfigurationArgs\n        {\n            ProjectId = projectId,\n            Name = \"Redshift SL Credential\",\n            AdapterVersion = \"redshift_v0\",\n        },\n        Credential = new DbtCloud.Inputs.RedshiftSemanticLayerCredentialCredentialArgs\n        {\n            ProjectId = projectId,\n            Username = username,\n            IsActive = true,\n            Password = password,\n            NumThreads = numThreads,\n            DefaultSchema = defaultSchema,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewRedshiftSemanticLayerCredential(ctx, \"test_redshift_semantic_layer_credential\", \u0026dbtcloud.RedshiftSemanticLayerCredentialArgs{\n\t\t\tConfiguration: \u0026dbtcloud.RedshiftSemanticLayerCredentialConfigurationArgs{\n\t\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\t\tName:           pulumi.String(\"Redshift SL Credential\"),\n\t\t\t\tAdapterVersion: pulumi.String(\"redshift_v0\"),\n\t\t\t},\n\t\t\tCredential: \u0026dbtcloud.RedshiftSemanticLayerCredentialCredentialArgs{\n\t\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\t\tUsername:      pulumi.Any(username),\n\t\t\t\tIsActive:      pulumi.Bool(true),\n\t\t\t\tPassword:      pulumi.Any(password),\n\t\t\t\tNumThreads:    pulumi.Any(numThreads),\n\t\t\t\tDefaultSchema: pulumi.Any(defaultSchema),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.RedshiftSemanticLayerCredential;\nimport com.pulumi.dbtcloud.RedshiftSemanticLayerCredentialArgs;\nimport com.pulumi.dbtcloud.inputs.RedshiftSemanticLayerCredentialConfigurationArgs;\nimport com.pulumi.dbtcloud.inputs.RedshiftSemanticLayerCredentialCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testRedshiftSemanticLayerCredential = new RedshiftSemanticLayerCredential(\"testRedshiftSemanticLayerCredential\", RedshiftSemanticLayerCredentialArgs.builder()\n            .configuration(RedshiftSemanticLayerCredentialConfigurationArgs.builder()\n                .projectId(projectId)\n                .name(\"Redshift SL Credential\")\n                .adapterVersion(\"redshift_v0\")\n                .build())\n            .credential(RedshiftSemanticLayerCredentialCredentialArgs.builder()\n                .projectId(projectId)\n                .username(username)\n                .isActive(true)\n                .password(password)\n                .numThreads(numThreads)\n                .defaultSchema(defaultSchema)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRedshiftSemanticLayerCredential:\n    type: dbtcloud:RedshiftSemanticLayerCredential\n    name: test_redshift_semantic_layer_credential\n    properties:\n      configuration:\n        projectId: ${projectId}\n        name: Redshift SL Credential\n        adapterVersion: redshift_v0\n      credential:\n        projectId: ${projectId}\n        username: ${username}\n        isActive: true\n        password: ${password}\n        numThreads: ${numThreads}\n        defaultSchema: ${defaultSchema}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_redshift_semantic_layer_credential.example\nid = \u003cspan pulumi-lang-nodejs=\"\"credentialId\"\" pulumi-lang-dotnet=\"\"CredentialId\"\" pulumi-lang-go=\"\"credentialId\"\" pulumi-lang-python=\"\"credential_id\"\" pulumi-lang-yaml=\"\"credentialId\"\" pulumi-lang-java=\"\"credentialId\"\"\u003e\"credential_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_redshift_semantic_layer_credential.example\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/redshiftSemanticLayerCredential:RedshiftSemanticLayerCredential example \"credential_id\"\n$ pulumi import dbtcloud:index/redshiftSemanticLayerCredential:RedshiftSemanticLayerCredential example 12345\n```\n\n","properties":{"configuration":{"$ref":"#/types/dbtcloud:index/RedshiftSemanticLayerCredentialConfiguration:RedshiftSemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/RedshiftSemanticLayerCredentialCredential:RedshiftSemanticLayerCredentialCredential","description":"Redshift credential details, but used in the context of the Semantic Layer.\n"}},"required":["configuration","credential"],"inputProperties":{"configuration":{"$ref":"#/types/dbtcloud:index/RedshiftSemanticLayerCredentialConfiguration:RedshiftSemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/RedshiftSemanticLayerCredentialCredential:RedshiftSemanticLayerCredentialCredential","description":"Redshift credential details, but used in the context of the Semantic Layer.\n"}},"requiredInputs":["configuration","credential"],"stateInputs":{"description":"Input properties used for looking up and filtering RedshiftSemanticLayerCredential resources.\n","properties":{"configuration":{"$ref":"#/types/dbtcloud:index/RedshiftSemanticLayerCredentialConfiguration:RedshiftSemanticLayerCredentialConfiguration","description":"Semantic Layer credential configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/RedshiftSemanticLayerCredentialCredential:RedshiftSemanticLayerCredentialCredential","description":"Redshift credential details, but used in the context of the Semantic Layer.\n"}},"type":"object"}},"dbtcloud:index/repository:Repository":{"description":"This resource allows you to manage connections to git repositories in dbt Cloud.\n\nBy itself, this resource won't show you the repository in the dbt Cloud UI. \nYou will need to also set up a \u003cspan pulumi-lang-nodejs=\"`dbtcloud.ProjectRepository`\" pulumi-lang-dotnet=\"`dbtcloud.ProjectRepository`\" pulumi-lang-go=\"`ProjectRepository`\" pulumi-lang-python=\"`ProjectRepository`\" pulumi-lang-yaml=\"`dbtcloud.ProjectRepository`\" pulumi-lang-java=\"`dbtcloud.ProjectRepository`\"\u003e`dbtcloud.ProjectRepository`\u003c/span\u003e resource as well to link your dbt Cloud project and the git repository.\n\nIn order to find the \u003cspan pulumi-lang-nodejs=\"`githubInstallationId`\" pulumi-lang-dotnet=\"`GithubInstallationId`\" pulumi-lang-go=\"`githubInstallationId`\" pulumi-lang-python=\"`github_installation_id`\" pulumi-lang-yaml=\"`githubInstallationId`\" pulumi-lang-java=\"`githubInstallationId`\"\u003e`github_installation_id`\u003c/span\u003e, you can log in to dbt Cloud, replace `\u003cdbt_cloud_url\u003e` by your dbt Cloud\nURL and run the following commands in the Google Chrome console:\n\n```javascript\ndbt_cloud_api_result = await (fetch('https://\u003cdbt_cloud_url\u003e/api/v2/integrations/github/installations/').then(res =\u003e res.json()));\nconsole.log(\"github_application_id: \" + dbt_cloud_api_result.filter(res =\u003e res[\"access_tokens_url\"].includes(\"github\"))[0][\"id\"]);\n```\n\nAlternatively, you can go to the page `https://\u003cdbt_cloud_url\u003e/api/v2/integrations/github/installations/` and read the\nvalue of \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e  or use the \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e provider to retrieve it automatically like in the example below.\n\n{{% examples %}}\n## Example Usage\n\n```terraform\n### repo cloned via the GitHub integration, manually entering the `github_installation_id`\nresource \"dbtcloud_repository\" \"github_repo\" {\n  project_id             = dbtcloud_project.dbt_project.id\n  remote_url             = \"git@github.com:\u003cgithub_org\u003e/\u003cgithub_repo\u003e.git\"\n  github_installation_id = 9876\n  git_clone_strategy     = \"github_app\"\n}\n\n\n### repo cloned via the GitHub integration, with auto-retrieval of the `github_installation_id`\n# here, we assume that `token` and `host_url` are respectively accessible via `var.dbt_token` and `var.dbt_host_url`\n# NOTE: the following requires connecting via a user token and can't be retrieved with a service token\ndata \"http\" \"github_installations_response\" {\n  url = format(\"%s/v2/integrations/github/installations/\", var.dbt_host_url)\n  request_headers = {\n    Authorization = format(\"Bearer %s\", var.dbt_token)\n  }\n}\n\nlocals {\n  github_installation_id = jsondecode(data.http.github_installations_response.response_body)[0].id\n}\n\nresource \"dbtcloud_repository\" \"github_repo_other\" {\n  project_id             = dbtcloud_project.dbt_project.id\n  remote_url             = \"git@github.com:\u003cgithub_org\u003e/\u003cgithub_repo\u003e.git\"\n  github_installation_id = local.github_installation_id\n  git_clone_strategy     = \"github_app\"\n}\n\n\n### repo cloned via the GitLab integration\n# as of 15 Sept 2023 this resource requires using a user token and can't be set with a service token - CC-791\nresource \"dbtcloud_repository\" \"gitlab_repo\" {\n  project_id         = dbtcloud_project.dbt_project.id\n  remote_url         = \"\u003cgitlab-group\u003e/\u003cgitlab-project\u003e\"\n  gitlab_project_id  = 8765\n  git_clone_strategy = \"deploy_token\"\n}\n\n\n### repo cloned via the deploy token strategy\nresource \"dbtcloud_repository\" \"deploy_repo\" {\n  project_id         = dbtcloud_project.dbt_project.id\n  remote_url         = \"git://github.com/\u003cgithub_org\u003e/\u003cgithub_repo\u003e.git\"\n  git_clone_strategy = \"deploy_key\"\n}\n\n\n### repo cloned via the Azure Dev Ops integration\nresource \"dbtcloud_repository\" \"ado_repo\" {\n  project_id = dbtcloud_project.dbt_project.id\n  # the following values can be added manually (IDs can be retrieved from the ADO API) or via data sources\n  # remote_url                              = \"https://abc@dev.azure.com/abc/def/_git/my_repo\"\n  # azure_active_directory_project_id       = \"12345678-1234-1234-1234-1234567890ab\"\n  # azure_active_directory_repository_id    = \"87654321-4321-abcd-abcd-464327678642\"\n  remote_url                                = data.dbtcloud_azure_dev_ops_repository.my_devops_repo.remote_url\n  azure_active_directory_repository_id      = data.dbtcloud_azure_dev_ops_repository.my_devops_repo.id\n  azure_active_directory_project_id         = data.dbtcloud_azure_dev_ops_project.my_devops_project.id\n  azure_bypass_webhook_registration_failure = false\n  git_clone_strategy                        = \"azure_active_directory_app\"\n}\n\n### repo with private link endpoint\n# You have to have a PrivateLink Endpoint available in the dropdown in the dbt cloud app under Project/ New repository modal, under Git Clone with PrivateLink Endpoint selected.\nresource \"dbtcloud_repository\" \"ado_repo\" {\n  project_id = dbtcloud_project.dbt_project.id\n  remote_url = \"git@github.somecorp.com:username/terraform-provider.git\"\n  private_link_endpoint_id = \"\u003cprivate_link_endpoint_id\u003e\"\n  pull_request_url_template = \"https://github.somecorp.com/username/terraform-provider/revert2/{{destination}}...{{source}}\"\n}\n```\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_repository.my_repository\nid = \"project_id:repository_id\"\n}\n\nimport {\nto = dbtcloud_repository.my_repository\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/repository:Repository my_repository \"project_id:repository_id\"\n$ pulumi import dbtcloud:index/repository:Repository my_repository 12345:6789\n```\n\n\n{{% /examples %}}","properties":{"azureActiveDirectoryProjectId":{"type":"string","description":"The Azure Dev Ops project ID. It can be retrieved via the Azure API or using the data source \u003cspan pulumi-lang-nodejs=\"`dbtcloud.getAzureDevOpsProject`\" pulumi-lang-dotnet=\"`dbtcloud.getAzureDevOpsProject`\" pulumi-lang-go=\"`getAzureDevOpsProject`\" pulumi-lang-python=\"`get_azure_dev_ops_project`\" pulumi-lang-yaml=\"`dbtcloud.getAzureDevOpsProject`\" pulumi-lang-java=\"`dbtcloud.getAzureDevOpsProject`\"\u003e`dbtcloud.getAzureDevOpsProject`\u003c/span\u003e and the project name - (required for ADO native integration only)\n"},"azureActiveDirectoryRepositoryId":{"type":"string","description":"The Azure Dev Ops repository ID. It can be retrieved via the Azure API or using the data source \u003cspan pulumi-lang-nodejs=\"`dbtcloud.getAzureDevOpsRepository`\" pulumi-lang-dotnet=\"`dbtcloud.getAzureDevOpsRepository`\" pulumi-lang-go=\"`getAzureDevOpsRepository`\" pulumi-lang-python=\"`get_azure_dev_ops_repository`\" pulumi-lang-yaml=\"`dbtcloud.getAzureDevOpsRepository`\" pulumi-lang-java=\"`dbtcloud.getAzureDevOpsRepository`\"\u003e`dbtcloud.getAzureDevOpsRepository`\u003c/span\u003e along with the ADO Project ID and the repository name - (required for ADO native integration only)\n"},"azureBypassWebhookRegistrationFailure":{"type":"boolean","description":"If set to False (the default), the connection will fail if the service user doesn't have access to set webhooks (required for auto-triggering CI jobs). If set to True, the connection will be successful but no automated CI job will be triggered - (for ADO native integration only)\n"},"deployKey":{"type":"string","description":"Public key generated by dbt when using \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e clone strategy\n"},"fetchDeployKey":{"type":"boolean","description":"Whether we should return the public deploy key - (for the \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e strategy)\n","deprecationMessage":"This field is deprecated and will be removed in a future version of the provider, please remove it from your configuration. The key is always fetched when the clone strategy is \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e"},"gitCloneStrategy":{"type":"string","description":"Git clone strategy for the repository. Can be \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e (default) for cloning via SSH Deploy Key, \u003cspan pulumi-lang-nodejs=\"`githubApp`\" pulumi-lang-dotnet=\"`GithubApp`\" pulumi-lang-go=\"`githubApp`\" pulumi-lang-python=\"`github_app`\" pulumi-lang-yaml=\"`githubApp`\" pulumi-lang-java=\"`githubApp`\"\u003e`github_app`\u003c/span\u003e for GitHub native integration, \u003cspan pulumi-lang-nodejs=\"`deployToken`\" pulumi-lang-dotnet=\"`DeployToken`\" pulumi-lang-go=\"`deployToken`\" pulumi-lang-python=\"`deploy_token`\" pulumi-lang-yaml=\"`deployToken`\" pulumi-lang-java=\"`deployToken`\"\u003e`deploy_token`\u003c/span\u003e for the GitLab native integration and \u003cspan pulumi-lang-nodejs=\"`azureActiveDirectoryApp`\" pulumi-lang-dotnet=\"`AzureActiveDirectoryApp`\" pulumi-lang-go=\"`azureActiveDirectoryApp`\" pulumi-lang-python=\"`azure_active_directory_app`\" pulumi-lang-yaml=\"`azureActiveDirectoryApp`\" pulumi-lang-java=\"`azureActiveDirectoryApp`\"\u003e`azure_active_directory_app`\u003c/span\u003e for ADO native integration\n"},"githubInstallationId":{"type":"integer","description":"Identifier for the GitHub App - (for GitHub native integration only)\n"},"gitlabProjectId":{"type":"integer","description":"Identifier for the Gitlab project -  (for GitLab native integration only)\n"},"isActive":{"type":"boolean","description":"Whether the repository is active\n"},"privateLinkEndpointId":{"type":"string","description":"Identifier for the PrivateLink endpoint.\n"},"projectId":{"type":"integer","description":"Project ID to create the repository in\n"},"pullRequestUrlTemplate":{"type":"string","description":"URL template for creating a pull request. If it is not set, the default template will create a PR from the current branch to the branch configured in the Development environment.\n"},"remoteUrl":{"type":"string","description":"Git URL for the repository or \u003cGroup\u003e/\u003cProject\u003e for Gitlab\n"},"repositoryCredentialsId":{"type":"integer","description":"Credentials ID for the repository (From the repository side not the dbt Cloud ID)\n"},"repositoryId":{"type":"integer","description":"Repository Identifier\n"}},"required":["azureActiveDirectoryProjectId","azureActiveDirectoryRepositoryId","azureBypassWebhookRegistrationFailure","deployKey","fetchDeployKey","gitCloneStrategy","isActive","projectId","pullRequestUrlTemplate","remoteUrl","repositoryCredentialsId","repositoryId"],"inputProperties":{"azureActiveDirectoryProjectId":{"type":"string","description":"The Azure Dev Ops project ID. It can be retrieved via the Azure API or using the data source \u003cspan pulumi-lang-nodejs=\"`dbtcloud.getAzureDevOpsProject`\" pulumi-lang-dotnet=\"`dbtcloud.getAzureDevOpsProject`\" pulumi-lang-go=\"`getAzureDevOpsProject`\" pulumi-lang-python=\"`get_azure_dev_ops_project`\" pulumi-lang-yaml=\"`dbtcloud.getAzureDevOpsProject`\" pulumi-lang-java=\"`dbtcloud.getAzureDevOpsProject`\"\u003e`dbtcloud.getAzureDevOpsProject`\u003c/span\u003e and the project name - (required for ADO native integration only)\n"},"azureActiveDirectoryRepositoryId":{"type":"string","description":"The Azure Dev Ops repository ID. It can be retrieved via the Azure API or using the data source \u003cspan pulumi-lang-nodejs=\"`dbtcloud.getAzureDevOpsRepository`\" pulumi-lang-dotnet=\"`dbtcloud.getAzureDevOpsRepository`\" pulumi-lang-go=\"`getAzureDevOpsRepository`\" pulumi-lang-python=\"`get_azure_dev_ops_repository`\" pulumi-lang-yaml=\"`dbtcloud.getAzureDevOpsRepository`\" pulumi-lang-java=\"`dbtcloud.getAzureDevOpsRepository`\"\u003e`dbtcloud.getAzureDevOpsRepository`\u003c/span\u003e along with the ADO Project ID and the repository name - (required for ADO native integration only)\n"},"azureBypassWebhookRegistrationFailure":{"type":"boolean","description":"If set to False (the default), the connection will fail if the service user doesn't have access to set webhooks (required for auto-triggering CI jobs). If set to True, the connection will be successful but no automated CI job will be triggered - (for ADO native integration only)\n"},"fetchDeployKey":{"type":"boolean","description":"Whether we should return the public deploy key - (for the \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e strategy)\n","deprecationMessage":"This field is deprecated and will be removed in a future version of the provider, please remove it from your configuration. The key is always fetched when the clone strategy is \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e"},"gitCloneStrategy":{"type":"string","description":"Git clone strategy for the repository. Can be \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e (default) for cloning via SSH Deploy Key, \u003cspan pulumi-lang-nodejs=\"`githubApp`\" pulumi-lang-dotnet=\"`GithubApp`\" pulumi-lang-go=\"`githubApp`\" pulumi-lang-python=\"`github_app`\" pulumi-lang-yaml=\"`githubApp`\" pulumi-lang-java=\"`githubApp`\"\u003e`github_app`\u003c/span\u003e for GitHub native integration, \u003cspan pulumi-lang-nodejs=\"`deployToken`\" pulumi-lang-dotnet=\"`DeployToken`\" pulumi-lang-go=\"`deployToken`\" pulumi-lang-python=\"`deploy_token`\" pulumi-lang-yaml=\"`deployToken`\" pulumi-lang-java=\"`deployToken`\"\u003e`deploy_token`\u003c/span\u003e for the GitLab native integration and \u003cspan pulumi-lang-nodejs=\"`azureActiveDirectoryApp`\" pulumi-lang-dotnet=\"`AzureActiveDirectoryApp`\" pulumi-lang-go=\"`azureActiveDirectoryApp`\" pulumi-lang-python=\"`azure_active_directory_app`\" pulumi-lang-yaml=\"`azureActiveDirectoryApp`\" pulumi-lang-java=\"`azureActiveDirectoryApp`\"\u003e`azure_active_directory_app`\u003c/span\u003e for ADO native integration\n"},"githubInstallationId":{"type":"integer","description":"Identifier for the GitHub App - (for GitHub native integration only)\n"},"gitlabProjectId":{"type":"integer","description":"Identifier for the Gitlab project -  (for GitLab native integration only)\n"},"isActive":{"type":"boolean","description":"Whether the repository is active\n"},"privateLinkEndpointId":{"type":"string","description":"Identifier for the PrivateLink endpoint.\n"},"projectId":{"type":"integer","description":"Project ID to create the repository in\n"},"pullRequestUrlTemplate":{"type":"string","description":"URL template for creating a pull request. If it is not set, the default template will create a PR from the current branch to the branch configured in the Development environment.\n"},"remoteUrl":{"type":"string","description":"Git URL for the repository or \u003cGroup\u003e/\u003cProject\u003e for Gitlab\n"}},"requiredInputs":["projectId","remoteUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering Repository resources.\n","properties":{"azureActiveDirectoryProjectId":{"type":"string","description":"The Azure Dev Ops project ID. It can be retrieved via the Azure API or using the data source \u003cspan pulumi-lang-nodejs=\"`dbtcloud.getAzureDevOpsProject`\" pulumi-lang-dotnet=\"`dbtcloud.getAzureDevOpsProject`\" pulumi-lang-go=\"`getAzureDevOpsProject`\" pulumi-lang-python=\"`get_azure_dev_ops_project`\" pulumi-lang-yaml=\"`dbtcloud.getAzureDevOpsProject`\" pulumi-lang-java=\"`dbtcloud.getAzureDevOpsProject`\"\u003e`dbtcloud.getAzureDevOpsProject`\u003c/span\u003e and the project name - (required for ADO native integration only)\n"},"azureActiveDirectoryRepositoryId":{"type":"string","description":"The Azure Dev Ops repository ID. It can be retrieved via the Azure API or using the data source \u003cspan pulumi-lang-nodejs=\"`dbtcloud.getAzureDevOpsRepository`\" pulumi-lang-dotnet=\"`dbtcloud.getAzureDevOpsRepository`\" pulumi-lang-go=\"`getAzureDevOpsRepository`\" pulumi-lang-python=\"`get_azure_dev_ops_repository`\" pulumi-lang-yaml=\"`dbtcloud.getAzureDevOpsRepository`\" pulumi-lang-java=\"`dbtcloud.getAzureDevOpsRepository`\"\u003e`dbtcloud.getAzureDevOpsRepository`\u003c/span\u003e along with the ADO Project ID and the repository name - (required for ADO native integration only)\n"},"azureBypassWebhookRegistrationFailure":{"type":"boolean","description":"If set to False (the default), the connection will fail if the service user doesn't have access to set webhooks (required for auto-triggering CI jobs). If set to True, the connection will be successful but no automated CI job will be triggered - (for ADO native integration only)\n"},"deployKey":{"type":"string","description":"Public key generated by dbt when using \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e clone strategy\n"},"fetchDeployKey":{"type":"boolean","description":"Whether we should return the public deploy key - (for the \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e strategy)\n","deprecationMessage":"This field is deprecated and will be removed in a future version of the provider, please remove it from your configuration. The key is always fetched when the clone strategy is \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e"},"gitCloneStrategy":{"type":"string","description":"Git clone strategy for the repository. Can be \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e (default) for cloning via SSH Deploy Key, \u003cspan pulumi-lang-nodejs=\"`githubApp`\" pulumi-lang-dotnet=\"`GithubApp`\" pulumi-lang-go=\"`githubApp`\" pulumi-lang-python=\"`github_app`\" pulumi-lang-yaml=\"`githubApp`\" pulumi-lang-java=\"`githubApp`\"\u003e`github_app`\u003c/span\u003e for GitHub native integration, \u003cspan pulumi-lang-nodejs=\"`deployToken`\" pulumi-lang-dotnet=\"`DeployToken`\" pulumi-lang-go=\"`deployToken`\" pulumi-lang-python=\"`deploy_token`\" pulumi-lang-yaml=\"`deployToken`\" pulumi-lang-java=\"`deployToken`\"\u003e`deploy_token`\u003c/span\u003e for the GitLab native integration and \u003cspan pulumi-lang-nodejs=\"`azureActiveDirectoryApp`\" pulumi-lang-dotnet=\"`AzureActiveDirectoryApp`\" pulumi-lang-go=\"`azureActiveDirectoryApp`\" pulumi-lang-python=\"`azure_active_directory_app`\" pulumi-lang-yaml=\"`azureActiveDirectoryApp`\" pulumi-lang-java=\"`azureActiveDirectoryApp`\"\u003e`azure_active_directory_app`\u003c/span\u003e for ADO native integration\n"},"githubInstallationId":{"type":"integer","description":"Identifier for the GitHub App - (for GitHub native integration only)\n"},"gitlabProjectId":{"type":"integer","description":"Identifier for the Gitlab project -  (for GitLab native integration only)\n"},"isActive":{"type":"boolean","description":"Whether the repository is active\n"},"privateLinkEndpointId":{"type":"string","description":"Identifier for the PrivateLink endpoint.\n"},"projectId":{"type":"integer","description":"Project ID to create the repository in\n"},"pullRequestUrlTemplate":{"type":"string","description":"URL template for creating a pull request. If it is not set, the default template will create a PR from the current branch to the branch configured in the Development environment.\n"},"remoteUrl":{"type":"string","description":"Git URL for the repository or \u003cGroup\u003e/\u003cProject\u003e for Gitlab\n"},"repositoryCredentialsId":{"type":"integer","description":"Credentials ID for the repository (From the repository side not the dbt Cloud ID)\n"},"repositoryId":{"type":"integer","description":"Repository Identifier\n"}},"type":"object"}},"dbtcloud:index/salesforceCredential:SalesforceCredential":{"description":"Salesforce credential resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Create a Salesforce credential for dbt Cloud using JWT Bearer Flow authentication\nconst mySalesforceCred = new dbtcloud.SalesforceCredential(\"my_salesforce_cred\", {\n    projectId: dbtProject.id,\n    username: \"user@example.com\",\n    clientId: \"your-oauth-client-id\",\n    privateKey: \"private-key value\",\n    targetName: \"default\",\n    numThreads: 6,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Create a Salesforce credential for dbt Cloud using JWT Bearer Flow authentication\nmy_salesforce_cred = dbtcloud.SalesforceCredential(\"my_salesforce_cred\",\n    project_id=dbt_project[\"id\"],\n    username=\"user@example.com\",\n    client_id=\"your-oauth-client-id\",\n    private_key=\"private-key value\",\n    target_name=\"default\",\n    num_threads=6)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a Salesforce credential for dbt Cloud using JWT Bearer Flow authentication\n    var mySalesforceCred = new DbtCloud.SalesforceCredential(\"my_salesforce_cred\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Username = \"user@example.com\",\n        ClientId = \"your-oauth-client-id\",\n        PrivateKey = \"private-key value\",\n        TargetName = \"default\",\n        NumThreads = 6,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a Salesforce credential for dbt Cloud using JWT Bearer Flow authentication\n\t\t_, err := dbtcloud.NewSalesforceCredential(ctx, \"my_salesforce_cred\", \u0026dbtcloud.SalesforceCredentialArgs{\n\t\t\tProjectId:  pulumi.Any(dbtProject.Id),\n\t\t\tUsername:   pulumi.String(\"user@example.com\"),\n\t\t\tClientId:   pulumi.String(\"your-oauth-client-id\"),\n\t\t\tPrivateKey: pulumi.String(\"private-key value\"),\n\t\t\tTargetName: pulumi.String(\"default\"),\n\t\t\tNumThreads: pulumi.Int(6),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.SalesforceCredential;\nimport com.pulumi.dbtcloud.SalesforceCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a Salesforce credential for dbt Cloud using JWT Bearer Flow authentication\n        var mySalesforceCred = new SalesforceCredential(\"mySalesforceCred\", SalesforceCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .username(\"user@example.com\")\n            .clientId(\"your-oauth-client-id\")\n            .privateKey(\"private-key value\")\n            .targetName(\"default\")\n            .numThreads(6)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a Salesforce credential for dbt Cloud using JWT Bearer Flow authentication\n  mySalesforceCred:\n    type: dbtcloud:SalesforceCredential\n    name: my_salesforce_cred\n    properties:\n      projectId: ${dbtProject.id}\n      username: user@example.com\n      clientId: your-oauth-client-id\n      privateKey: private-key value\n      targetName: default\n      numThreads: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_salesforce_credential.my_salesforce_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_salesforce_credential.my_salesforce_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/salesforceCredential:SalesforceCredential my_salesforce_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/salesforceCredential:SalesforceCredential my_salesforce_credential 12345:6789\n```\n\n","properties":{"clientId":{"type":"string","description":"The OAuth connected app client/consumer ID\n","secret":true},"credentialId":{"type":"integer","description":"The system Salesforce credential ID\n"},"numThreads":{"type":"integer","description":"The number of threads to use for dbt operations\n"},"privateKey":{"type":"string","description":"The private key for JWT bearer flow authentication\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Salesforce credential in\n"},"targetName":{"type":"string","description":"Target name\n"},"username":{"type":"string","description":"The Salesforce username for OAuth JWT bearer flow authentication\n"}},"required":["clientId","credentialId","numThreads","privateKey","projectId","targetName","username"],"inputProperties":{"clientId":{"type":"string","description":"The OAuth connected app client/consumer ID\n","secret":true},"numThreads":{"type":"integer","description":"The number of threads to use for dbt operations\n"},"privateKey":{"type":"string","description":"The private key for JWT bearer flow authentication\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Salesforce credential in\n"},"targetName":{"type":"string","description":"Target name\n"},"username":{"type":"string","description":"The Salesforce username for OAuth JWT bearer flow authentication\n"}},"requiredInputs":["clientId","privateKey","projectId","username"],"stateInputs":{"description":"Input properties used for looking up and filtering SalesforceCredential resources.\n","properties":{"clientId":{"type":"string","description":"The OAuth connected app client/consumer ID\n","secret":true},"credentialId":{"type":"integer","description":"The system Salesforce credential ID\n"},"numThreads":{"type":"integer","description":"The number of threads to use for dbt operations\n"},"privateKey":{"type":"string","description":"The private key for JWT bearer flow authentication\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Salesforce credential in\n"},"targetName":{"type":"string","description":"Target name\n"},"username":{"type":"string","description":"The Salesforce username for OAuth JWT bearer flow authentication\n"}},"type":"object"}},"dbtcloud:index/scimGroupPartialPermissions:ScimGroupPartialPermissions":{"description":"Provide a partial set of permissions for an externally managed group (e.g., SCIM, manually created). \nThis resource ONLY manages a subset of permissions and never creates or deletes groups.\n\nThis is designed for federated permission management where a platform team sets global permissions \nand individual teams manage their own project-specific permissions for the same group.\n\n⚠️  **Important Differences:**\n- \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroup`\" pulumi-lang-dotnet=\"`DbtCloudGroup`\" pulumi-lang-go=\"`dbtCloudGroup`\" pulumi-lang-python=\"`dbt_cloud_group`\" pulumi-lang-yaml=\"`dbtCloudGroup`\" pulumi-lang-java=\"`dbtCloudGroup`\"\u003e`dbt_cloud_group`\u003c/span\u003e: Creates group and fully manages ALL permissions (single Pulumi Stack)\n- \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudGroupPartialPermissions`\"\u003e`dbt_cloud_group_partial_permissions`\u003c/span\u003e: Creates group and manages PARTIAL permissions (multiple Pulumi Stacks)\n- \u003cspan pulumi-lang-nodejs=\"`dbtCloudScimGroupPermissions`\" pulumi-lang-dotnet=\"`DbtCloudScimGroupPermissions`\" pulumi-lang-go=\"`dbtCloudScimGroupPermissions`\" pulumi-lang-python=\"`dbt_cloud_scim_group_permissions`\" pulumi-lang-yaml=\"`dbtCloudScimGroupPermissions`\" pulumi-lang-java=\"`dbtCloudScimGroupPermissions`\"\u003e`dbt_cloud_scim_group_permissions`\u003c/span\u003e: Externally-managed group, fully manages ALL permissions (replaces all permissions)\n- \u003cspan pulumi-lang-nodejs=\"`dbtCloudScimGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudScimGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudScimGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_scim_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudScimGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudScimGroupPartialPermissions`\"\u003e`dbt_cloud_scim_group_partial_permissions`\u003c/span\u003e: Externally-managed group, manages PARTIAL permissions (adds/removes only specified permissions)\n\n**Use Case:**\n- Group exists in external identity provider (e.g., Okta, Azure AD) and syncs via SCIM\n- Platform team manages base permissions (e.g., account-level access)\n- Individual teams manage their own project-specific permissions\n- Multiple Pulumi Stacks can safely manage different permissions for the same group\n\n⚠️  Do not mix different resource types for the same group:\n- Don't use \u003cspan pulumi-lang-nodejs=\"`dbtCloudScimGroupPermissions`\" pulumi-lang-dotnet=\"`DbtCloudScimGroupPermissions`\" pulumi-lang-go=\"`dbtCloudScimGroupPermissions`\" pulumi-lang-python=\"`dbt_cloud_scim_group_permissions`\" pulumi-lang-yaml=\"`dbtCloudScimGroupPermissions`\" pulumi-lang-java=\"`dbtCloudScimGroupPermissions`\"\u003e`dbt_cloud_scim_group_permissions`\u003c/span\u003e (full permissions) with \u003cspan pulumi-lang-nodejs=\"`dbtCloudScimGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudScimGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudScimGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_scim_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudScimGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudScimGroupPartialPermissions`\"\u003e`dbt_cloud_scim_group_partial_permissions`\u003c/span\u003e (partial permissions)\n- Don't use \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroup`\" pulumi-lang-dotnet=\"`DbtCloudGroup`\" pulumi-lang-go=\"`dbtCloudGroup`\" pulumi-lang-python=\"`dbt_cloud_group`\" pulumi-lang-yaml=\"`dbtCloudGroup`\" pulumi-lang-java=\"`dbtCloudGroup`\"\u003e`dbt_cloud_group`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudGroupPartialPermissions`\"\u003e`dbt_cloud_group_partial_permissions`\u003c/span\u003e for externally managed groups\n\nThe resource currently requires a Service Token with Account Admin access.\n\n**Behavior:**\n- When creating: Adds specified permissions to the existing group (if not already present)\n- When updating: Adds new permissions and removes old permissions from this resource\n- When deleting: Removes only the permissions managed by this resource (group and other permissions remain)\n\n\u003e This resource is designed for **federated permission management** where multiple teams manage different permissions for the same externally-managed group (e.g., SCIM groups).\n\n\u003e **Warning: Duplicate Permissions Across States** - If multiple Terraform states define the **exact same permission** (identical \u003cspan pulumi-lang-nodejs=\"`permissionSet`\" pulumi-lang-dotnet=\"`PermissionSet`\" pulumi-lang-go=\"`permissionSet`\" pulumi-lang-python=\"`permission_set`\" pulumi-lang-yaml=\"`permissionSet`\" pulumi-lang-java=\"`permissionSet`\"\u003e`permission_set`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allProjects`\" pulumi-lang-dotnet=\"`AllProjects`\" pulumi-lang-go=\"`allProjects`\" pulumi-lang-python=\"`all_projects`\" pulumi-lang-yaml=\"`allProjects`\" pulumi-lang-java=\"`allProjects`\"\u003e`all_projects`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`writableEnvironmentCategories`\" pulumi-lang-dotnet=\"`WritableEnvironmentCategories`\" pulumi-lang-go=\"`writableEnvironmentCategories`\" pulumi-lang-python=\"`writable_environment_categories`\" pulumi-lang-yaml=\"`writableEnvironmentCategories`\" pulumi-lang-java=\"`writableEnvironmentCategories`\"\u003e`writable_environment_categories`\u003c/span\u003e), they will reference the same underlying permission object in dbt Cloud. This creates a conflict: when one state deletes its resource, it removes the permission from dbt Cloud, causing drift in other states that reference the same permission. **Best Practice:** Ensure each Terraform state manages **distinct** permissions. Coordinate with other teams to avoid defining identical permissions, or differentiate them using \u003cspan pulumi-lang-nodejs=\"`writableEnvironmentCategories`\" pulumi-lang-dotnet=\"`WritableEnvironmentCategories`\" pulumi-lang-go=\"`writableEnvironmentCategories`\" pulumi-lang-python=\"`writable_environment_categories`\" pulumi-lang-yaml=\"`writableEnvironmentCategories`\" pulumi-lang-java=\"`writableEnvironmentCategories`\"\u003e`writable_environment_categories`\u003c/span\u003e.\n\n## Use Case Guidelines\n\nChoose the right resource for your use case:\n\n| Resource | Group Creation | Permission Management | Use When |\n|----------|---------------|----------------------|----------|\n| \u003cspan pulumi-lang-nodejs=\"`dbtcloud.Group`\" pulumi-lang-dotnet=\"`dbtcloud.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`dbtcloud.Group`\" pulumi-lang-java=\"`dbtcloud.Group`\"\u003e`dbtcloud.Group`\u003c/span\u003e | ✅ Terraform creates | Full (replaces all) | Single Pulumi Stack manages everything |\n| \u003cspan pulumi-lang-nodejs=\"`dbtcloud.GroupPartialPermissions`\" pulumi-lang-dotnet=\"`dbtcloud.GroupPartialPermissions`\" pulumi-lang-go=\"`GroupPartialPermissions`\" pulumi-lang-python=\"`GroupPartialPermissions`\" pulumi-lang-yaml=\"`dbtcloud.GroupPartialPermissions`\" pulumi-lang-java=\"`dbtcloud.GroupPartialPermissions`\"\u003e`dbtcloud.GroupPartialPermissions`\u003c/span\u003e | ✅ Terraform creates | Partial (adds/removes) | Multiple workspaces manage same Terraform-created group |\n| \u003cspan pulumi-lang-nodejs=\"`dbtcloud.ScimGroupPermissions`\" pulumi-lang-dotnet=\"`dbtcloud.ScimGroupPermissions`\" pulumi-lang-go=\"`ScimGroupPermissions`\" pulumi-lang-python=\"`ScimGroupPermissions`\" pulumi-lang-yaml=\"`dbtcloud.ScimGroupPermissions`\" pulumi-lang-java=\"`dbtcloud.ScimGroupPermissions`\"\u003e`dbtcloud.ScimGroupPermissions`\u003c/span\u003e | ❌ External (SCIM) | Full (replaces all) | External group, single workspace manages all permissions |\n| \u003cspan pulumi-lang-nodejs=\"`dbtcloud.ScimGroupPartialPermissions`\" pulumi-lang-dotnet=\"`dbtcloud.ScimGroupPartialPermissions`\" pulumi-lang-go=\"`ScimGroupPartialPermissions`\" pulumi-lang-python=\"`ScimGroupPartialPermissions`\" pulumi-lang-yaml=\"`dbtcloud.ScimGroupPartialPermissions`\" pulumi-lang-java=\"`dbtcloud.ScimGroupPartialPermissions`\"\u003e`dbtcloud.ScimGroupPartialPermissions`\u003c/span\u003e | ❌ External (SCIM) | Partial (adds/removes) | External group, multiple workspaces manage different permissions |\n\n### Duplicate Permissions Across States\n\n**The Problem:** If multiple Terraform states define identical permissions, they will reference the same permission object in dbt Cloud's API. There is no reference counting or ownership tracking.\n\n**What Happens:**\n1. State A creates a permission (e.g., developer on project 100)\n2. State B defines the same permission and references the existing one\n3. State A destroys its resource → permission is deleted from dbt Cloud\n4. State B still expects the permission to exist → **drift and conflicts**\n\n**Example of Conflict (❌ Avoid):**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Terraform State 1 (Platform Team)\nconst platform = new dbtcloud.ScimGroupPartialPermissions(\"platform\", {\n    groupId: 12345,\n    permissions: [{\n        permissionSet: \"developer\",\n        projectId: 100,\n        allProjects: false,\n        writableEnvironmentCategories: [\"development\"],\n    }],\n});\n// Terraform State 2 (Another Team) - IDENTICAL permission!\nconst otherTeam = new dbtcloud.ScimGroupPartialPermissions(\"other_team\", {\n    groupId: 12345,\n    permissions: [{\n        permissionSet: \"developer\",\n        projectId: 100,\n        allProjects: false,\n        writableEnvironmentCategories: [\"development\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Terraform State 1 (Platform Team)\nplatform = dbtcloud.ScimGroupPartialPermissions(\"platform\",\n    group_id=12345,\n    permissions=[{\n        \"permission_set\": \"developer\",\n        \"project_id\": 100,\n        \"all_projects\": False,\n        \"writable_environment_categories\": [\"development\"],\n    }])\n# Terraform State 2 (Another Team) - IDENTICAL permission!\nother_team = dbtcloud.ScimGroupPartialPermissions(\"other_team\",\n    group_id=12345,\n    permissions=[{\n        \"permission_set\": \"developer\",\n        \"project_id\": 100,\n        \"all_projects\": False,\n        \"writable_environment_categories\": [\"development\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Terraform State 1 (Platform Team)\n    var platform = new DbtCloud.ScimGroupPartialPermissions(\"platform\", new()\n    {\n        GroupId = 12345,\n        Permissions = new[]\n        {\n            new DbtCloud.Inputs.ScimGroupPartialPermissionsPermissionArgs\n            {\n                PermissionSet = \"developer\",\n                ProjectId = 100,\n                AllProjects = false,\n                WritableEnvironmentCategories = new[]\n                {\n                    \"development\",\n                },\n            },\n        },\n    });\n\n    // Terraform State 2 (Another Team) - IDENTICAL permission!\n    var otherTeam = new DbtCloud.ScimGroupPartialPermissions(\"other_team\", new()\n    {\n        GroupId = 12345,\n        Permissions = new[]\n        {\n            new DbtCloud.Inputs.ScimGroupPartialPermissionsPermissionArgs\n            {\n                PermissionSet = \"developer\",\n                ProjectId = 100,\n                AllProjects = false,\n                WritableEnvironmentCategories = new[]\n                {\n                    \"development\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Terraform State 1 (Platform Team)\n\t\t_, err := dbtcloud.NewScimGroupPartialPermissions(ctx, \"platform\", \u0026dbtcloud.ScimGroupPartialPermissionsArgs{\n\t\t\tGroupId: pulumi.Int(12345),\n\t\t\tPermissions: dbtcloud.ScimGroupPartialPermissionsPermissionArray{\n\t\t\t\t\u0026dbtcloud.ScimGroupPartialPermissionsPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"developer\"),\n\t\t\t\t\tProjectId:     pulumi.Int(100),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t\tWritableEnvironmentCategories: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"development\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Terraform State 2 (Another Team) - IDENTICAL permission!\n\t\t_, err = dbtcloud.NewScimGroupPartialPermissions(ctx, \"other_team\", \u0026dbtcloud.ScimGroupPartialPermissionsArgs{\n\t\t\tGroupId: pulumi.Int(12345),\n\t\t\tPermissions: dbtcloud.ScimGroupPartialPermissionsPermissionArray{\n\t\t\t\t\u0026dbtcloud.ScimGroupPartialPermissionsPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"developer\"),\n\t\t\t\t\tProjectId:     pulumi.Int(100),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t\tWritableEnvironmentCategories: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"development\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.ScimGroupPartialPermissions;\nimport com.pulumi.dbtcloud.ScimGroupPartialPermissionsArgs;\nimport com.pulumi.dbtcloud.inputs.ScimGroupPartialPermissionsPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Terraform State 1 (Platform Team)\n        var platform = new ScimGroupPartialPermissions(\"platform\", ScimGroupPartialPermissionsArgs.builder()\n            .groupId(12345)\n            .permissions(ScimGroupPartialPermissionsPermissionArgs.builder()\n                .permissionSet(\"developer\")\n                .projectId(100)\n                .allProjects(false)\n                .writableEnvironmentCategories(\"development\")\n                .build())\n            .build());\n\n        // Terraform State 2 (Another Team) - IDENTICAL permission!\n        var otherTeam = new ScimGroupPartialPermissions(\"otherTeam\", ScimGroupPartialPermissionsArgs.builder()\n            .groupId(12345)\n            .permissions(ScimGroupPartialPermissionsPermissionArgs.builder()\n                .permissionSet(\"developer\")\n                .projectId(100)\n                .allProjects(false)\n                .writableEnvironmentCategories(\"development\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Terraform State 1 (Platform Team)\n  platform:\n    type: dbtcloud:ScimGroupPartialPermissions\n    properties:\n      groupId: 12345\n      permissions:\n        - permissionSet: developer\n          projectId: 100\n          allProjects: false\n          writableEnvironmentCategories:\n            - development\n  # Terraform State 2 (Another Team) - IDENTICAL permission!\n  otherTeam:\n    type: dbtcloud:ScimGroupPartialPermissions\n    name: other_team\n    properties:\n      groupId: 12345\n      permissions:\n        - permissionSet: developer\n          projectId: 100\n          allProjects: false\n          writableEnvironmentCategories:\n            - development\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**Example of Safe Usage (✅ Recommended):**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Terraform State 1 (Platform Team) - Development environments\nconst platformDev = new dbtcloud.ScimGroupPartialPermissions(\"platform_dev\", {\n    groupId: 12345,\n    permissions: [{\n        permissionSet: \"developer\",\n        projectId: 100,\n        allProjects: false,\n        writableEnvironmentCategories: [\"development\"],\n    }],\n});\n// Terraform State 2 (SRE Team) - Production environments\nconst sreProd = new dbtcloud.ScimGroupPartialPermissions(\"sre_prod\", {\n    groupId: 12345,\n    permissions: [{\n        permissionSet: \"developer\",\n        projectId: 100,\n        allProjects: false,\n        writableEnvironmentCategories: [\n            \"staging\",\n            \"production\",\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Terraform State 1 (Platform Team) - Development environments\nplatform_dev = dbtcloud.ScimGroupPartialPermissions(\"platform_dev\",\n    group_id=12345,\n    permissions=[{\n        \"permission_set\": \"developer\",\n        \"project_id\": 100,\n        \"all_projects\": False,\n        \"writable_environment_categories\": [\"development\"],\n    }])\n# Terraform State 2 (SRE Team) - Production environments\nsre_prod = dbtcloud.ScimGroupPartialPermissions(\"sre_prod\",\n    group_id=12345,\n    permissions=[{\n        \"permission_set\": \"developer\",\n        \"project_id\": 100,\n        \"all_projects\": False,\n        \"writable_environment_categories\": [\n            \"staging\",\n            \"production\",\n        ],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Terraform State 1 (Platform Team) - Development environments\n    var platformDev = new DbtCloud.ScimGroupPartialPermissions(\"platform_dev\", new()\n    {\n        GroupId = 12345,\n        Permissions = new[]\n        {\n            new DbtCloud.Inputs.ScimGroupPartialPermissionsPermissionArgs\n            {\n                PermissionSet = \"developer\",\n                ProjectId = 100,\n                AllProjects = false,\n                WritableEnvironmentCategories = new[]\n                {\n                    \"development\",\n                },\n            },\n        },\n    });\n\n    // Terraform State 2 (SRE Team) - Production environments\n    var sreProd = new DbtCloud.ScimGroupPartialPermissions(\"sre_prod\", new()\n    {\n        GroupId = 12345,\n        Permissions = new[]\n        {\n            new DbtCloud.Inputs.ScimGroupPartialPermissionsPermissionArgs\n            {\n                PermissionSet = \"developer\",\n                ProjectId = 100,\n                AllProjects = false,\n                WritableEnvironmentCategories = new[]\n                {\n                    \"staging\",\n                    \"production\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Terraform State 1 (Platform Team) - Development environments\n\t\t_, err := dbtcloud.NewScimGroupPartialPermissions(ctx, \"platform_dev\", \u0026dbtcloud.ScimGroupPartialPermissionsArgs{\n\t\t\tGroupId: pulumi.Int(12345),\n\t\t\tPermissions: dbtcloud.ScimGroupPartialPermissionsPermissionArray{\n\t\t\t\t\u0026dbtcloud.ScimGroupPartialPermissionsPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"developer\"),\n\t\t\t\t\tProjectId:     pulumi.Int(100),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t\tWritableEnvironmentCategories: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"development\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Terraform State 2 (SRE Team) - Production environments\n\t\t_, err = dbtcloud.NewScimGroupPartialPermissions(ctx, \"sre_prod\", \u0026dbtcloud.ScimGroupPartialPermissionsArgs{\n\t\t\tGroupId: pulumi.Int(12345),\n\t\t\tPermissions: dbtcloud.ScimGroupPartialPermissionsPermissionArray{\n\t\t\t\t\u0026dbtcloud.ScimGroupPartialPermissionsPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"developer\"),\n\t\t\t\t\tProjectId:     pulumi.Int(100),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t\tWritableEnvironmentCategories: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"staging\"),\n\t\t\t\t\t\tpulumi.String(\"production\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.ScimGroupPartialPermissions;\nimport com.pulumi.dbtcloud.ScimGroupPartialPermissionsArgs;\nimport com.pulumi.dbtcloud.inputs.ScimGroupPartialPermissionsPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Terraform State 1 (Platform Team) - Development environments\n        var platformDev = new ScimGroupPartialPermissions(\"platformDev\", ScimGroupPartialPermissionsArgs.builder()\n            .groupId(12345)\n            .permissions(ScimGroupPartialPermissionsPermissionArgs.builder()\n                .permissionSet(\"developer\")\n                .projectId(100)\n                .allProjects(false)\n                .writableEnvironmentCategories(\"development\")\n                .build())\n            .build());\n\n        // Terraform State 2 (SRE Team) - Production environments\n        var sreProd = new ScimGroupPartialPermissions(\"sreProd\", ScimGroupPartialPermissionsArgs.builder()\n            .groupId(12345)\n            .permissions(ScimGroupPartialPermissionsPermissionArgs.builder()\n                .permissionSet(\"developer\")\n                .projectId(100)\n                .allProjects(false)\n                .writableEnvironmentCategories(                \n                    \"staging\",\n                    \"production\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Terraform State 1 (Platform Team) - Development environments\n  platformDev:\n    type: dbtcloud:ScimGroupPartialPermissions\n    name: platform_dev\n    properties:\n      groupId: 12345\n      permissions:\n        - permissionSet: developer\n          projectId: 100\n          allProjects: false\n          writableEnvironmentCategories:\n            - development\n  # Terraform State 2 (SRE Team) - Production environments\n  sreProd:\n    type: dbtcloud:ScimGroupPartialPermissions\n    name: sre_prod\n    properties:\n      groupId: 12345\n      permissions:\n        - permissionSet: developer\n          projectId: 100\n          allProjects: false\n          writableEnvironmentCategories:\n            - staging\n            - production\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**Coordination Strategies:**\n\n1. **Differentiate by writable environments** - Most common and recommended\n2. **Assign permission ownership** - Document which team manages which permission\n3. **Use single state for identical permissions** - If needed, manage from one place\n4. **Consider full permissions resource** - Use \u003cspan pulumi-lang-nodejs=\"`dbtcloud.ScimGroupPermissions`\" pulumi-lang-dotnet=\"`dbtcloud.ScimGroupPermissions`\" pulumi-lang-go=\"`ScimGroupPermissions`\" pulumi-lang-python=\"`ScimGroupPermissions`\" pulumi-lang-yaml=\"`dbtcloud.ScimGroupPermissions`\" pulumi-lang-java=\"`dbtcloud.ScimGroupPermissions`\"\u003e`dbtcloud.ScimGroupPermissions`\u003c/span\u003e if one state should own all permissions\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Retrieve the SCIM-managed group\nconst engineering = dbtcloud.getGroups({\n    name: \"Engineering Team\",\n});\n// Get the project to apply permissions to\nconst myProject = dbtcloud.getProject({\n    name: \"My Analytics Project\",\n});\n// Platform team can manage base account permissions\nconst baseAccess = new dbtcloud.ScimGroupPartialPermissions(\"base_access\", {\n    groupId: engineering.then(engineering =\u003e engineering.groups?.[0]?.id),\n    permissions: [{\n        permissionSet: \"member\",\n        allProjects: true,\n    }],\n});\n// Project team can manage project-specific permissions independently\nconst projectAccess = new dbtcloud.ScimGroupPartialPermissions(\"project_access\", {\n    groupId: engineering.then(engineering =\u003e engineering.groups?.[0]?.id),\n    permissions: [\n        {\n            permissionSet: \"developer\",\n            projectId: myProject.then(myProject =\u003e myProject.id),\n            allProjects: false,\n            writableEnvironmentCategories: [\n                \"development\",\n                \"staging\",\n            ],\n        },\n        {\n            permissionSet: \"job_admin\",\n            projectId: myProject.then(myProject =\u003e myProject.id),\n            allProjects: false,\n        },\n    ],\n});\n// Example: Multiple projects managed by different teams\nconst analytics = dbtcloud.getProject({\n    name: \"Analytics\",\n});\nconst dataScience = dbtcloud.getProject({\n    name: \"Data Science\",\n});\n// Analytics team manages their own project permissions\nconst analyticsScimGroupPartialPermissions = new dbtcloud.ScimGroupPartialPermissions(\"analytics\", {\n    groupId: engineering.then(engineering =\u003e engineering.groups?.[0]?.id),\n    permissions: [{\n        permissionSet: \"developer\",\n        projectId: analytics.then(analytics =\u003e analytics.id),\n        allProjects: false,\n        writableEnvironmentCategories: [\"development\"],\n    }],\n});\n// Data Science team manages their own project permissions\nconst dataScienceScimGroupPartialPermissions = new dbtcloud.ScimGroupPartialPermissions(\"data_science\", {\n    groupId: engineering.then(engineering =\u003e engineering.groups?.[0]?.id),\n    permissions: [{\n        permissionSet: \"analyst\",\n        projectId: dataScience.then(dataScience =\u003e dataScience.id),\n        allProjects: false,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Retrieve the SCIM-managed group\nengineering = dbtcloud.get_groups(name=\"Engineering Team\")\n# Get the project to apply permissions to\nmy_project = dbtcloud.get_project(name=\"My Analytics Project\")\n# Platform team can manage base account permissions\nbase_access = dbtcloud.ScimGroupPartialPermissions(\"base_access\",\n    group_id=engineering.groups[0].id,\n    permissions=[{\n        \"permission_set\": \"member\",\n        \"all_projects\": True,\n    }])\n# Project team can manage project-specific permissions independently\nproject_access = dbtcloud.ScimGroupPartialPermissions(\"project_access\",\n    group_id=engineering.groups[0].id,\n    permissions=[\n        {\n            \"permission_set\": \"developer\",\n            \"project_id\": my_project.id,\n            \"all_projects\": False,\n            \"writable_environment_categories\": [\n                \"development\",\n                \"staging\",\n            ],\n        },\n        {\n            \"permission_set\": \"job_admin\",\n            \"project_id\": my_project.id,\n            \"all_projects\": False,\n        },\n    ])\n# Example: Multiple projects managed by different teams\nanalytics = dbtcloud.get_project(name=\"Analytics\")\ndata_science = dbtcloud.get_project(name=\"Data Science\")\n# Analytics team manages their own project permissions\nanalytics_scim_group_partial_permissions = dbtcloud.ScimGroupPartialPermissions(\"analytics\",\n    group_id=engineering.groups[0].id,\n    permissions=[{\n        \"permission_set\": \"developer\",\n        \"project_id\": analytics.id,\n        \"all_projects\": False,\n        \"writable_environment_categories\": [\"development\"],\n    }])\n# Data Science team manages their own project permissions\ndata_science_scim_group_partial_permissions = dbtcloud.ScimGroupPartialPermissions(\"data_science\",\n    group_id=engineering.groups[0].id,\n    permissions=[{\n        \"permission_set\": \"analyst\",\n        \"project_id\": data_science.id,\n        \"all_projects\": False,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve the SCIM-managed group\n    var engineering = DbtCloud.GetGroups.Invoke(new()\n    {\n        Name = \"Engineering Team\",\n    });\n\n    // Get the project to apply permissions to\n    var myProject = DbtCloud.GetProject.Invoke(new()\n    {\n        Name = \"My Analytics Project\",\n    });\n\n    // Platform team can manage base account permissions\n    var baseAccess = new DbtCloud.ScimGroupPartialPermissions(\"base_access\", new()\n    {\n        GroupId = engineering.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.Id),\n        Permissions = new[]\n        {\n            new DbtCloud.Inputs.ScimGroupPartialPermissionsPermissionArgs\n            {\n                PermissionSet = \"member\",\n                AllProjects = true,\n            },\n        },\n    });\n\n    // Project team can manage project-specific permissions independently\n    var projectAccess = new DbtCloud.ScimGroupPartialPermissions(\"project_access\", new()\n    {\n        GroupId = engineering.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.Id),\n        Permissions = new[]\n        {\n            new DbtCloud.Inputs.ScimGroupPartialPermissionsPermissionArgs\n            {\n                PermissionSet = \"developer\",\n                ProjectId = myProject.Apply(getProjectResult =\u003e getProjectResult.Id),\n                AllProjects = false,\n                WritableEnvironmentCategories = new[]\n                {\n                    \"development\",\n                    \"staging\",\n                },\n            },\n            new DbtCloud.Inputs.ScimGroupPartialPermissionsPermissionArgs\n            {\n                PermissionSet = \"job_admin\",\n                ProjectId = myProject.Apply(getProjectResult =\u003e getProjectResult.Id),\n                AllProjects = false,\n            },\n        },\n    });\n\n    // Example: Multiple projects managed by different teams\n    var analytics = DbtCloud.GetProject.Invoke(new()\n    {\n        Name = \"Analytics\",\n    });\n\n    var dataScience = DbtCloud.GetProject.Invoke(new()\n    {\n        Name = \"Data Science\",\n    });\n\n    // Analytics team manages their own project permissions\n    var analyticsScimGroupPartialPermissions = new DbtCloud.ScimGroupPartialPermissions(\"analytics\", new()\n    {\n        GroupId = engineering.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.Id),\n        Permissions = new[]\n        {\n            new DbtCloud.Inputs.ScimGroupPartialPermissionsPermissionArgs\n            {\n                PermissionSet = \"developer\",\n                ProjectId = analytics.Apply(getProjectResult =\u003e getProjectResult.Id),\n                AllProjects = false,\n                WritableEnvironmentCategories = new[]\n                {\n                    \"development\",\n                },\n            },\n        },\n    });\n\n    // Data Science team manages their own project permissions\n    var dataScienceScimGroupPartialPermissions = new DbtCloud.ScimGroupPartialPermissions(\"data_science\", new()\n    {\n        GroupId = engineering.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.Id),\n        Permissions = new[]\n        {\n            new DbtCloud.Inputs.ScimGroupPartialPermissionsPermissionArgs\n            {\n                PermissionSet = \"analyst\",\n                ProjectId = dataScience.Apply(getProjectResult =\u003e getProjectResult.Id),\n                AllProjects = false,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve the SCIM-managed group\n\t\tengineering, err := dbtcloud.GetGroups(ctx, \u0026dbtcloud.GetGroupsArgs{\n\t\t\tName: pulumi.StringRef(\"Engineering Team\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get the project to apply permissions to\n\t\tmyProject, err := dbtcloud.LookupProject(ctx, \u0026dbtcloud.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"My Analytics Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Platform team can manage base account permissions\n\t\t_, err = dbtcloud.NewScimGroupPartialPermissions(ctx, \"base_access\", \u0026dbtcloud.ScimGroupPartialPermissionsArgs{\n\t\t\tGroupId: pulumi.Int(engineering.Groups[0].Id),\n\t\t\tPermissions: dbtcloud.ScimGroupPartialPermissionsPermissionArray{\n\t\t\t\t\u0026dbtcloud.ScimGroupPartialPermissionsPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"member\"),\n\t\t\t\t\tAllProjects:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Project team can manage project-specific permissions independently\n\t\t_, err = dbtcloud.NewScimGroupPartialPermissions(ctx, \"project_access\", \u0026dbtcloud.ScimGroupPartialPermissionsArgs{\n\t\t\tGroupId: pulumi.Int(engineering.Groups[0].Id),\n\t\t\tPermissions: dbtcloud.ScimGroupPartialPermissionsPermissionArray{\n\t\t\t\t\u0026dbtcloud.ScimGroupPartialPermissionsPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"developer\"),\n\t\t\t\t\tProjectId:     pulumi.Int(myProject.Id),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t\tWritableEnvironmentCategories: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"development\"),\n\t\t\t\t\t\tpulumi.String(\"staging\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dbtcloud.ScimGroupPartialPermissionsPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"job_admin\"),\n\t\t\t\t\tProjectId:     pulumi.Int(myProject.Id),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example: Multiple projects managed by different teams\n\t\tanalytics, err := dbtcloud.LookupProject(ctx, \u0026dbtcloud.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Analytics\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdataScience, err := dbtcloud.LookupProject(ctx, \u0026dbtcloud.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Data Science\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Analytics team manages their own project permissions\n\t\t_, err = dbtcloud.NewScimGroupPartialPermissions(ctx, \"analytics\", \u0026dbtcloud.ScimGroupPartialPermissionsArgs{\n\t\t\tGroupId: pulumi.Int(engineering.Groups[0].Id),\n\t\t\tPermissions: dbtcloud.ScimGroupPartialPermissionsPermissionArray{\n\t\t\t\t\u0026dbtcloud.ScimGroupPartialPermissionsPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"developer\"),\n\t\t\t\t\tProjectId:     pulumi.Int(analytics.Id),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t\tWritableEnvironmentCategories: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"development\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Data Science team manages their own project permissions\n\t\t_, err = dbtcloud.NewScimGroupPartialPermissions(ctx, \"data_science\", \u0026dbtcloud.ScimGroupPartialPermissionsArgs{\n\t\t\tGroupId: pulumi.Int(engineering.Groups[0].Id),\n\t\t\tPermissions: dbtcloud.ScimGroupPartialPermissionsPermissionArray{\n\t\t\t\t\u0026dbtcloud.ScimGroupPartialPermissionsPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"analyst\"),\n\t\t\t\t\tProjectId:     pulumi.Int(dataScience.Id),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetGroupsArgs;\nimport com.pulumi.dbtcloud.inputs.GetProjectArgs;\nimport com.pulumi.dbtcloud.ScimGroupPartialPermissions;\nimport com.pulumi.dbtcloud.ScimGroupPartialPermissionsArgs;\nimport com.pulumi.dbtcloud.inputs.ScimGroupPartialPermissionsPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Retrieve the SCIM-managed group\n        final var engineering = DbtcloudFunctions.getGroups(GetGroupsArgs.builder()\n            .name(\"Engineering Team\")\n            .build());\n\n        // Get the project to apply permissions to\n        final var myProject = DbtcloudFunctions.getProject(GetProjectArgs.builder()\n            .name(\"My Analytics Project\")\n            .build());\n\n        // Platform team can manage base account permissions\n        var baseAccess = new ScimGroupPartialPermissions(\"baseAccess\", ScimGroupPartialPermissionsArgs.builder()\n            .groupId(engineering.groups()[0].id())\n            .permissions(ScimGroupPartialPermissionsPermissionArgs.builder()\n                .permissionSet(\"member\")\n                .allProjects(true)\n                .build())\n            .build());\n\n        // Project team can manage project-specific permissions independently\n        var projectAccess = new ScimGroupPartialPermissions(\"projectAccess\", ScimGroupPartialPermissionsArgs.builder()\n            .groupId(engineering.groups()[0].id())\n            .permissions(            \n                ScimGroupPartialPermissionsPermissionArgs.builder()\n                    .permissionSet(\"developer\")\n                    .projectId(myProject.id())\n                    .allProjects(false)\n                    .writableEnvironmentCategories(                    \n                        \"development\",\n                        \"staging\")\n                    .build(),\n                ScimGroupPartialPermissionsPermissionArgs.builder()\n                    .permissionSet(\"job_admin\")\n                    .projectId(myProject.id())\n                    .allProjects(false)\n                    .build())\n            .build());\n\n        // Example: Multiple projects managed by different teams\n        final var analytics = DbtcloudFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Analytics\")\n            .build());\n\n        final var dataScience = DbtcloudFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Data Science\")\n            .build());\n\n        // Analytics team manages their own project permissions\n        var analyticsScimGroupPartialPermissions = new ScimGroupPartialPermissions(\"analyticsScimGroupPartialPermissions\", ScimGroupPartialPermissionsArgs.builder()\n            .groupId(engineering.groups()[0].id())\n            .permissions(ScimGroupPartialPermissionsPermissionArgs.builder()\n                .permissionSet(\"developer\")\n                .projectId(analytics.id())\n                .allProjects(false)\n                .writableEnvironmentCategories(\"development\")\n                .build())\n            .build());\n\n        // Data Science team manages their own project permissions\n        var dataScienceScimGroupPartialPermissions = new ScimGroupPartialPermissions(\"dataScienceScimGroupPartialPermissions\", ScimGroupPartialPermissionsArgs.builder()\n            .groupId(engineering.groups()[0].id())\n            .permissions(ScimGroupPartialPermissionsPermissionArgs.builder()\n                .permissionSet(\"analyst\")\n                .projectId(dataScience.id())\n                .allProjects(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Platform team can manage base account permissions\n  baseAccess:\n    type: dbtcloud:ScimGroupPartialPermissions\n    name: base_access\n    properties:\n      groupId: ${engineering.groups[0].id}\n      permissions:\n        - permissionSet: member\n          allProjects: true\n  # Project team can manage project-specific permissions independently\n  projectAccess:\n    type: dbtcloud:ScimGroupPartialPermissions\n    name: project_access\n    properties:\n      groupId: ${engineering.groups[0].id}\n      permissions:\n        - permissionSet: developer\n          projectId: ${myProject.id}\n          allProjects: false\n          writableEnvironmentCategories:\n            - development\n            - staging\n        - permissionSet: job_admin\n          projectId: ${myProject.id}\n          allProjects: false\n  # Analytics team manages their own project permissions\n  analyticsScimGroupPartialPermissions:\n    type: dbtcloud:ScimGroupPartialPermissions\n    name: analytics\n    properties:\n      groupId: ${engineering.groups[0].id}\n      permissions:\n        - permissionSet: developer\n          projectId: ${analytics.id}\n          allProjects: false\n          writableEnvironmentCategories:\n            - development\n  # Data Science team manages their own project permissions\n  dataScienceScimGroupPartialPermissions:\n    type: dbtcloud:ScimGroupPartialPermissions\n    name: data_science\n    properties:\n      groupId: ${engineering.groups[0].id}\n      permissions:\n        - permissionSet: analyst\n          projectId: ${dataScience.id}\n          allProjects: false\nvariables:\n  # Retrieve the SCIM-managed group\n  engineering:\n    fn::invoke:\n      function: dbtcloud:getGroups\n      arguments:\n        name: Engineering Team\n  # Get the project to apply permissions to\n  myProject:\n    fn::invoke:\n      function: dbtcloud:getProject\n      arguments:\n        name: My Analytics Project\n  # Example: Multiple projects managed by different teams\n  analytics:\n    fn::invoke:\n      function: dbtcloud:getProject\n      arguments:\n        name: Analytics\n  dataScience:\n    fn::invoke:\n      function: dbtcloud:getProject\n      arguments:\n        name: Data Science\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n\u003e **Import Not Supported:** This resource does not support `pulumi import` because it manages only a partial subset of permissions. \nThere is no way for Terraform to know which specific permissions this resource instance should manage versus permissions \nmanaged by other resources or applied outside of Terraform. You must define the resource in your configuration from the start.\n\n","properties":{"groupId":{"type":"integer","description":"The ID of the existing group to manage partial permissions for. This group must already exist and is typically from an external identity provider synced via SCIM.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/ScimGroupPartialPermissionsPermission:ScimGroupPartialPermissionsPermission"},"description":"Partial set of permissions to apply to the group. These permissions will be added to any existing permissions. Other permissions on the group will not be affected.\n"}},"required":["groupId"],"inputProperties":{"groupId":{"type":"integer","description":"The ID of the existing group to manage partial permissions for. This group must already exist and is typically from an external identity provider synced via SCIM.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/ScimGroupPartialPermissionsPermission:ScimGroupPartialPermissionsPermission"},"description":"Partial set of permissions to apply to the group. These permissions will be added to any existing permissions. Other permissions on the group will not be affected.\n"}},"requiredInputs":["groupId"],"stateInputs":{"description":"Input properties used for looking up and filtering ScimGroupPartialPermissions resources.\n","properties":{"groupId":{"type":"integer","description":"The ID of the existing group to manage partial permissions for. This group must already exist and is typically from an external identity provider synced via SCIM.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/ScimGroupPartialPermissionsPermission:ScimGroupPartialPermissionsPermission"},"description":"Partial set of permissions to apply to the group. These permissions will be added to any existing permissions. Other permissions on the group will not be affected.\n"}},"type":"object"}},"dbtcloud:index/scimGroupPermissions:ScimGroupPermissions":{"description":"Manage permissions for groups that are externally managed (e.g., SCIM, manually created). \nThis resource ONLY manages permissions and never creates or deletes groups.\n\n⚠️  Do not use this resource alongside \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroup`\" pulumi-lang-dotnet=\"`DbtCloudGroup`\" pulumi-lang-go=\"`dbtCloudGroup`\" pulumi-lang-python=\"`dbt_cloud_group`\" pulumi-lang-yaml=\"`dbtCloudGroup`\" pulumi-lang-java=\"`dbtCloudGroup`\"\u003e`dbt_cloud_group`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudGroupPartialPermissions`\"\u003e`dbt_cloud_group_partial_permissions`\u003c/span\u003e \nfor the same group to avoid permission conflicts.\n\nThis resource is ideal for SCIM-managed environments where groups exist in your identity \nprovider and are synced to dbt Cloud, but you want to manage permissions via Terraform.\n\n**Use Case Guidelines:**\n- Use \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroup`\" pulumi-lang-dotnet=\"`DbtCloudGroup`\" pulumi-lang-go=\"`dbtCloudGroup`\" pulumi-lang-python=\"`dbt_cloud_group`\" pulumi-lang-yaml=\"`dbtCloudGroup`\" pulumi-lang-java=\"`dbtCloudGroup`\"\u003e`dbt_cloud_group`\u003c/span\u003e when Terraform creates and fully manages the group\n- Use \u003cspan pulumi-lang-nodejs=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-dotnet=\"`DbtCloudGroupPartialPermissions`\" pulumi-lang-go=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-python=\"`dbt_cloud_group_partial_permissions`\" pulumi-lang-yaml=\"`dbtCloudGroupPartialPermissions`\" pulumi-lang-java=\"`dbtCloudGroupPartialPermissions`\"\u003e`dbt_cloud_group_partial_permissions`\u003c/span\u003e when multiple Pulumi Stacks manage the same Terraform-created group  \n- Use \u003cspan pulumi-lang-nodejs=\"`dbtCloudScimGroupPermissions`\" pulumi-lang-dotnet=\"`DbtCloudScimGroupPermissions`\" pulumi-lang-go=\"`dbtCloudScimGroupPermissions`\" pulumi-lang-python=\"`dbt_cloud_scim_group_permissions`\" pulumi-lang-yaml=\"`dbtCloudScimGroupPermissions`\" pulumi-lang-java=\"`dbtCloudScimGroupPermissions`\"\u003e`dbt_cloud_scim_group_permissions`\u003c/span\u003e when the group is externally managed (e.g., SCIM, manual creation) and you only want to manage permissions\n\nThe resource currently requires a Service Token with Account Admin access.\n","properties":{"groupId":{"type":"integer","description":"The ID of the existing group to manage permissions for. This group must already exist.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/ScimGroupPermissionsPermission:ScimGroupPermissionsPermission"},"description":"Set of permissions to apply to the group. This will replace all existing permissions for the group.\n"}},"required":["groupId"],"inputProperties":{"groupId":{"type":"integer","description":"The ID of the existing group to manage permissions for. This group must already exist.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/ScimGroupPermissionsPermission:ScimGroupPermissionsPermission"},"description":"Set of permissions to apply to the group. This will replace all existing permissions for the group.\n"}},"requiredInputs":["groupId"],"stateInputs":{"description":"Input properties used for looking up and filtering ScimGroupPermissions resources.\n","properties":{"groupId":{"type":"integer","description":"The ID of the existing group to manage permissions for. This group must already exist.\n"},"permissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/ScimGroupPermissionsPermission:ScimGroupPermissionsPermission"},"description":"Set of permissions to apply to the group. This will replace all existing permissions for the group.\n"}},"type":"object"}},"dbtcloud:index/semanticLayerConfiguration:SemanticLayerConfiguration":{"description":"The resource allows basic configuration of the Semantic Layer for a specific project. For the feature to be completely functional, a Semantic Layer Credential is also required.\nSee the documentationh ttps://docs.getdbt.com/docs/use-dbt-semantic-layer/dbt-sl for more information on the Semantic Layer.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst example = new dbtcloud.SemanticLayerConfiguration(\"example\", {\n    projectId: projectId,\n    environmentId: environmentId,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nexample = dbtcloud.SemanticLayerConfiguration(\"example\",\n    project_id=project_id,\n    environment_id=environment_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new DbtCloud.SemanticLayerConfiguration(\"example\", new()\n    {\n        ProjectId = projectId,\n        EnvironmentId = environmentId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewSemanticLayerConfiguration(ctx, \"example\", \u0026dbtcloud.SemanticLayerConfigurationArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tEnvironmentId: pulumi.Any(environmentId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.SemanticLayerConfiguration;\nimport com.pulumi.dbtcloud.SemanticLayerConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new SemanticLayerConfiguration(\"example\", SemanticLayerConfigurationArgs.builder()\n            .projectId(projectId)\n            .environmentId(environmentId)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: dbtcloud:SemanticLayerConfiguration\n    properties:\n      projectId: ${projectId}\n      environmentId: ${environmentId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_semantic_layer_configuration.example\nid = \"project_id:id\"\n}\n\nimport {\nto = dbtcloud_semantic_layer_configuration.example\nid = \"12345:5678\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/semanticLayerConfiguration:SemanticLayerConfiguration example \"project_id:id\"\n$ pulumi import dbtcloud:index/semanticLayerConfiguration:SemanticLayerConfiguration example 12345:5678\n```\n\n","properties":{"environmentId":{"type":"integer","description":"The ID of the environment\n"},"projectId":{"type":"integer","description":"The ID of the project\n"}},"required":["environmentId","projectId"],"inputProperties":{"environmentId":{"type":"integer","description":"The ID of the environment\n"},"projectId":{"type":"integer","description":"The ID of the project\n"}},"requiredInputs":["environmentId","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering SemanticLayerConfiguration resources.\n","properties":{"environmentId":{"type":"integer","description":"The ID of the environment\n"},"projectId":{"type":"integer","description":"The ID of the project\n"}},"type":"object"}},"dbtcloud:index/semanticLayerCredentialServiceTokenMapping:SemanticLayerCredentialServiceTokenMapping":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst testMapping = new dbtcloud.SemanticLayerCredentialServiceTokenMapping(\"test_mapping\", {\n    semanticLayerCredentialId: test.id,\n    serviceTokenId: testServiceToken.id,\n    projectId: testProject.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ntest_mapping = dbtcloud.SemanticLayerCredentialServiceTokenMapping(\"test_mapping\",\n    semantic_layer_credential_id=test[\"id\"],\n    service_token_id=test_service_token[\"id\"],\n    project_id=test_project[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testMapping = new DbtCloud.SemanticLayerCredentialServiceTokenMapping(\"test_mapping\", new()\n    {\n        SemanticLayerCredentialId = test.Id,\n        ServiceTokenId = testServiceToken.Id,\n        ProjectId = testProject.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewSemanticLayerCredentialServiceTokenMapping(ctx, \"test_mapping\", \u0026dbtcloud.SemanticLayerCredentialServiceTokenMappingArgs{\n\t\t\tSemanticLayerCredentialId: pulumi.Any(test.Id),\n\t\t\tServiceTokenId:            pulumi.Any(testServiceToken.Id),\n\t\t\tProjectId:                 pulumi.Any(testProject.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.SemanticLayerCredentialServiceTokenMapping;\nimport com.pulumi.dbtcloud.SemanticLayerCredentialServiceTokenMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testMapping = new SemanticLayerCredentialServiceTokenMapping(\"testMapping\", SemanticLayerCredentialServiceTokenMappingArgs.builder()\n            .semanticLayerCredentialId(test.id())\n            .serviceTokenId(testServiceToken.id())\n            .projectId(testProject.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testMapping:\n    type: dbtcloud:SemanticLayerCredentialServiceTokenMapping\n    name: test_mapping\n    properties:\n      semanticLayerCredentialId: ${test.id}\n      serviceTokenId: ${testServiceToken.id}\n      projectId: ${testProject.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_semantic_layer_credential_service_token_mapping.example\nid = \"id\"\n}\n\nimport {\nto = dbtcloud_semantic_layer_credential_service_token_mapping.example\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/semanticLayerCredentialServiceTokenMapping:SemanticLayerCredentialServiceTokenMapping example \"id\"\n$ pulumi import dbtcloud:index/semanticLayerCredentialServiceTokenMapping:SemanticLayerCredentialServiceTokenMapping example 12345\n```\n\n","properties":{"projectId":{"type":"integer","description":"The ID of the project to which the semantic layer credential is associated.\n"},"semanticLayerCredentialId":{"type":"integer","description":"The ID of the semantic layer credential to map.\n"},"serviceTokenId":{"type":"integer","description":"The ID of the service token to map to the semantic layer credential.\n"}},"required":["projectId","semanticLayerCredentialId","serviceTokenId"],"inputProperties":{"projectId":{"type":"integer","description":"The ID of the project to which the semantic layer credential is associated.\n"},"semanticLayerCredentialId":{"type":"integer","description":"The ID of the semantic layer credential to map.\n"},"serviceTokenId":{"type":"integer","description":"The ID of the service token to map to the semantic layer credential.\n"}},"requiredInputs":["projectId","semanticLayerCredentialId","serviceTokenId"],"stateInputs":{"description":"Input properties used for looking up and filtering SemanticLayerCredentialServiceTokenMapping resources.\n","properties":{"projectId":{"type":"integer","description":"The ID of the project to which the semantic layer credential is associated.\n"},"semanticLayerCredentialId":{"type":"integer","description":"The ID of the semantic layer credential to map.\n"},"serviceTokenId":{"type":"integer","description":"The ID of the service token to map to the semantic layer credential.\n"}},"type":"object"}},"dbtcloud:index/serviceToken:ServiceToken":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst testServiceToken = new dbtcloud.ServiceToken(\"test_service_token\", {\n    name: \"Test Service Token\",\n    serviceTokenPermissions: [\n        {\n            permissionSet: \"git_admin\",\n            allProjects: true,\n        },\n        {\n            permissionSet: \"job_admin\",\n            allProjects: false,\n            projectId: dbtProject.id,\n        },\n        {\n            permissionSet: \"developer\",\n            allProjects: true,\n            writableEnvironmentCategories: [\n                \"development\",\n                \"staging\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ntest_service_token = dbtcloud.ServiceToken(\"test_service_token\",\n    name=\"Test Service Token\",\n    service_token_permissions=[\n        {\n            \"permission_set\": \"git_admin\",\n            \"all_projects\": True,\n        },\n        {\n            \"permission_set\": \"job_admin\",\n            \"all_projects\": False,\n            \"project_id\": dbt_project[\"id\"],\n        },\n        {\n            \"permission_set\": \"developer\",\n            \"all_projects\": True,\n            \"writable_environment_categories\": [\n                \"development\",\n                \"staging\",\n            ],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testServiceToken = new DbtCloud.ServiceToken(\"test_service_token\", new()\n    {\n        Name = \"Test Service Token\",\n        ServiceTokenPermissions = new[]\n        {\n            new DbtCloud.Inputs.ServiceTokenServiceTokenPermissionArgs\n            {\n                PermissionSet = \"git_admin\",\n                AllProjects = true,\n            },\n            new DbtCloud.Inputs.ServiceTokenServiceTokenPermissionArgs\n            {\n                PermissionSet = \"job_admin\",\n                AllProjects = false,\n                ProjectId = dbtProject.Id,\n            },\n            new DbtCloud.Inputs.ServiceTokenServiceTokenPermissionArgs\n            {\n                PermissionSet = \"developer\",\n                AllProjects = true,\n                WritableEnvironmentCategories = new[]\n                {\n                    \"development\",\n                    \"staging\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewServiceToken(ctx, \"test_service_token\", \u0026dbtcloud.ServiceTokenArgs{\n\t\t\tName: pulumi.String(\"Test Service Token\"),\n\t\t\tServiceTokenPermissions: dbtcloud.ServiceTokenServiceTokenPermissionArray{\n\t\t\t\t\u0026dbtcloud.ServiceTokenServiceTokenPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"git_admin\"),\n\t\t\t\t\tAllProjects:   pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026dbtcloud.ServiceTokenServiceTokenPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"job_admin\"),\n\t\t\t\t\tAllProjects:   pulumi.Bool(false),\n\t\t\t\t\tProjectId:     pulumi.Any(dbtProject.Id),\n\t\t\t\t},\n\t\t\t\t\u0026dbtcloud.ServiceTokenServiceTokenPermissionArgs{\n\t\t\t\t\tPermissionSet: pulumi.String(\"developer\"),\n\t\t\t\t\tAllProjects:   pulumi.Bool(true),\n\t\t\t\t\tWritableEnvironmentCategories: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"development\"),\n\t\t\t\t\t\tpulumi.String(\"staging\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.ServiceToken;\nimport com.pulumi.dbtcloud.ServiceTokenArgs;\nimport com.pulumi.dbtcloud.inputs.ServiceTokenServiceTokenPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testServiceToken = new ServiceToken(\"testServiceToken\", ServiceTokenArgs.builder()\n            .name(\"Test Service Token\")\n            .serviceTokenPermissions(            \n                ServiceTokenServiceTokenPermissionArgs.builder()\n                    .permissionSet(\"git_admin\")\n                    .allProjects(true)\n                    .build(),\n                ServiceTokenServiceTokenPermissionArgs.builder()\n                    .permissionSet(\"job_admin\")\n                    .allProjects(false)\n                    .projectId(dbtProject.id())\n                    .build(),\n                ServiceTokenServiceTokenPermissionArgs.builder()\n                    .permissionSet(\"developer\")\n                    .allProjects(true)\n                    .writableEnvironmentCategories(                    \n                        \"development\",\n                        \"staging\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testServiceToken:\n    type: dbtcloud:ServiceToken\n    name: test_service_token\n    properties:\n      name: Test Service Token\n      serviceTokenPermissions:\n        - permissionSet: git_admin\n          allProjects: true\n        - permissionSet: job_admin\n          allProjects: false\n          projectId: ${dbtProject.id}\n        - permissionSet: developer\n          allProjects: true\n          writableEnvironmentCategories:\n            - development\n            - staging\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_service_token.my_service_token\nid = \u003cspan pulumi-lang-nodejs=\"\"serviceTokenId\"\" pulumi-lang-dotnet=\"\"ServiceTokenId\"\" pulumi-lang-go=\"\"serviceTokenId\"\" pulumi-lang-python=\"\"service_token_id\"\" pulumi-lang-yaml=\"\"serviceTokenId\"\" pulumi-lang-java=\"\"serviceTokenId\"\"\u003e\"service_token_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_service_token.my_service_token\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/serviceToken:ServiceToken my_service_token \"service_token_id\"\n$ pulumi import dbtcloud:index/serviceToken:ServiceToken my_service_token 12345\n```\n\n","properties":{"name":{"type":"string","description":"Service token name\n"},"serviceTokenPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/ServiceTokenServiceTokenPermission:ServiceTokenServiceTokenPermission"},"description":"Permissions set for the service token\n"},"state":{"type":"integer","description":"Service token state (1 is active, 2 is inactive)\n"},"tokenString":{"type":"string","description":"Service token secret value (only accessible on creation))\n","secret":true},"uid":{"type":"string","description":"Service token UID (part of the token)\n"}},"required":["name","state","tokenString","uid"],"inputProperties":{"name":{"type":"string","description":"Service token name\n"},"serviceTokenPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/ServiceTokenServiceTokenPermission:ServiceTokenServiceTokenPermission"},"description":"Permissions set for the service token\n"},"state":{"type":"integer","description":"Service token state (1 is active, 2 is inactive)\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ServiceToken resources.\n","properties":{"name":{"type":"string","description":"Service token name\n"},"serviceTokenPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/ServiceTokenServiceTokenPermission:ServiceTokenServiceTokenPermission"},"description":"Permissions set for the service token\n"},"state":{"type":"integer","description":"Service token state (1 is active, 2 is inactive)\n"},"tokenString":{"type":"string","description":"Service token secret value (only accessible on creation))\n","secret":true},"uid":{"type":"string","description":"Service token UID (part of the token)\n"}},"type":"object"}},"dbtcloud:index/snowflakeCredential:SnowflakeCredential":{"description":"Snowflake credential resource. This resource is used both as a stand-alone credential, but also as part of the Semantic Layer credential definition for Snowflake.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst prodCredential = new dbtcloud.SnowflakeCredential(\"prod_credential\", {\n    projectId: dbtProject.id,\n    authType: \"password\",\n    numThreads: 16,\n    schema: \"SCHEMA\",\n    user: \"user\",\n    password: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nprod_credential = dbtcloud.SnowflakeCredential(\"prod_credential\",\n    project_id=dbt_project[\"id\"],\n    auth_type=\"password\",\n    num_threads=16,\n    schema=\"SCHEMA\",\n    user=\"user\",\n    password=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var prodCredential = new DbtCloud.SnowflakeCredential(\"prod_credential\", new()\n    {\n        ProjectId = dbtProject.Id,\n        AuthType = \"password\",\n        NumThreads = 16,\n        Schema = \"SCHEMA\",\n        User = \"user\",\n        Password = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewSnowflakeCredential(ctx, \"prod_credential\", \u0026dbtcloud.SnowflakeCredentialArgs{\n\t\t\tProjectId:  pulumi.Any(dbtProject.Id),\n\t\t\tAuthType:   pulumi.String(\"password\"),\n\t\t\tNumThreads: pulumi.Int(16),\n\t\t\tSchema:     pulumi.String(\"SCHEMA\"),\n\t\t\tUser:       pulumi.String(\"user\"),\n\t\t\tPassword:   pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.SnowflakeCredential;\nimport com.pulumi.dbtcloud.SnowflakeCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var prodCredential = new SnowflakeCredential(\"prodCredential\", SnowflakeCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .authType(\"password\")\n            .numThreads(16)\n            .schema(\"SCHEMA\")\n            .user(\"user\")\n            .password(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  prodCredential:\n    type: dbtcloud:SnowflakeCredential\n    name: prod_credential\n    properties:\n      projectId: ${dbtProject.id}\n      authType: password\n      numThreads: 16\n      schema: SCHEMA\n      user: user\n      password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_snowflake_credential.prod_snowflake_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_snowflake_credential.prod_snowflake_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/snowflakeCredential:SnowflakeCredential prod_snowflake_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/snowflakeCredential:SnowflakeCredential prod_snowflake_credential 12345:6789\n```\n\n","properties":{"authType":{"type":"string","description":"The type of Snowflake credential ('password' or 'keypair')\n"},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"database":{"type":"string","description":"The catalog to connect use\n"},"isActive":{"type":"boolean","description":"Whether the Snowflake credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"password":{"type":"string","description":"The password for the Snowflake account\n","secret":true},"privateKey":{"type":"string","description":"The private key for the Snowflake account\n","secret":true},"privateKeyPassphrase":{"type":"string","description":"The passphrase for the private key\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Snowflake credential in\n"},"role":{"type":"string","description":"The role to assume\n"},"schema":{"type":"string","description":"The schema where to create models. This is an optional field ONLY if the credential is used for Semantic Layer configuration, otherwise it is required.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Snowflake credential for the Semantic Layer.\n"},"user":{"type":"string","description":"The username for the Snowflake account. This is an optional field ONLY if the credential is used for Semantic Layer configuration, otherwise it is required.\n"},"warehouse":{"type":"string","description":"The warehouse to use\n"}},"required":["authType","credentialId","isActive","numThreads","password","privateKey","privateKeyPassphrase","projectId","schema","semanticLayerCredential","user"],"inputProperties":{"authType":{"type":"string","description":"The type of Snowflake credential ('password' or 'keypair')\n"},"database":{"type":"string","description":"The catalog to connect use\n"},"isActive":{"type":"boolean","description":"Whether the Snowflake credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"password":{"type":"string","description":"The password for the Snowflake account\n","secret":true},"privateKey":{"type":"string","description":"The private key for the Snowflake account\n","secret":true},"privateKeyPassphrase":{"type":"string","description":"The passphrase for the private key\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Snowflake credential in\n"},"role":{"type":"string","description":"The role to assume\n"},"schema":{"type":"string","description":"The schema where to create models. This is an optional field ONLY if the credential is used for Semantic Layer configuration, otherwise it is required.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Snowflake credential for the Semantic Layer.\n"},"user":{"type":"string","description":"The username for the Snowflake account. This is an optional field ONLY if the credential is used for Semantic Layer configuration, otherwise it is required.\n"},"warehouse":{"type":"string","description":"The warehouse to use\n"}},"requiredInputs":["authType","numThreads","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering SnowflakeCredential resources.\n","properties":{"authType":{"type":"string","description":"The type of Snowflake credential ('password' or 'keypair')\n"},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"database":{"type":"string","description":"The catalog to connect use\n"},"isActive":{"type":"boolean","description":"Whether the Snowflake credential is active\n"},"numThreads":{"type":"integer","description":"Number of threads to use\n"},"password":{"type":"string","description":"The password for the Snowflake account\n","secret":true},"privateKey":{"type":"string","description":"The private key for the Snowflake account\n","secret":true},"privateKeyPassphrase":{"type":"string","description":"The passphrase for the private key\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Snowflake credential in\n"},"role":{"type":"string","description":"The role to assume\n"},"schema":{"type":"string","description":"The schema where to create models. This is an optional field ONLY if the credential is used for Semantic Layer configuration, otherwise it is required.\n"},"semanticLayerCredential":{"type":"boolean","description":"This field indicates that the credential is used as part of the Semantic Layer configuration. It is used to create a Snowflake credential for the Semantic Layer.\n"},"user":{"type":"string","description":"The username for the Snowflake account. This is an optional field ONLY if the credential is used for Semantic Layer configuration, otherwise it is required.\n"},"warehouse":{"type":"string","description":"The warehouse to use\n"}},"type":"object"}},"dbtcloud:index/snowflakePlatformMetadataCredential:SnowflakePlatformMetadataCredential":{"description":"Manages Snowflake platform metadata credentials for external metadata ingestion in dbt Cloud.\n\nThis resource configures credentials that allow dbt Cloud to connect directly to your Snowflake warehouse \nto ingest metadata outside of normal dbt project runs. This enables features like:\n\n- **Catalog Ingestion**: Ingest metadata about tables/views not defined in dbt\n- **Cost Optimization**: Query warehouse cost and performance data\n- **Cost Insights**: Enhanced cost visibility and analysis\n\n\u003e **Note:** At least one of \u003cspan pulumi-lang-nodejs=\"`catalogIngestionEnabled`\" pulumi-lang-dotnet=\"`CatalogIngestionEnabled`\" pulumi-lang-go=\"`catalogIngestionEnabled`\" pulumi-lang-python=\"`catalog_ingestion_enabled`\" pulumi-lang-yaml=\"`catalogIngestionEnabled`\" pulumi-lang-java=\"`catalogIngestionEnabled`\"\u003e`catalog_ingestion_enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`costOptimizationEnabled`\" pulumi-lang-dotnet=\"`CostOptimizationEnabled`\" pulumi-lang-go=\"`costOptimizationEnabled`\" pulumi-lang-python=\"`cost_optimization_enabled`\" pulumi-lang-yaml=\"`costOptimizationEnabled`\" pulumi-lang-java=\"`costOptimizationEnabled`\"\u003e`cost_optimization_enabled`\u003c/span\u003e, or \n\u003cspan pulumi-lang-nodejs=\"`costInsightsEnabled`\" pulumi-lang-dotnet=\"`CostInsightsEnabled`\" pulumi-lang-go=\"`costInsightsEnabled`\" pulumi-lang-python=\"`cost_insights_enabled`\" pulumi-lang-yaml=\"`costInsightsEnabled`\" pulumi-lang-java=\"`costInsightsEnabled`\"\u003e`cost_insights_enabled`\u003c/span\u003e must be enabled for the credential to be usable.\n\n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e cannot be changed after creation. To use a different connection, \nyou must destroy and recreate the resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Example: Snowflake Platform Metadata Credential with password auth\nconst passwordAuth = new dbtcloud.SnowflakePlatformMetadataCredential(\"password_auth\", {\n    connectionId: snowflake.id,\n    catalogIngestionEnabled: true,\n    costOptimizationEnabled: true,\n    costInsightsEnabled: false,\n    authType: \"password\",\n    user: \"METADATA_READER\",\n    password: snowflakePassword,\n    role: \"METADATA_READER_ROLE\",\n    warehouse: \"METADATA_WH\",\n});\n// Example: Snowflake Platform Metadata Credential with keypair auth\nconst keypairAuth = new dbtcloud.SnowflakePlatformMetadataCredential(\"keypair_auth\", {\n    connectionId: snowflake.id,\n    catalogIngestionEnabled: true,\n    costOptimizationEnabled: false,\n    costInsightsEnabled: false,\n    authType: \"keypair\",\n    user: \"METADATA_READER\",\n    privateKey: snowflakePrivateKey,\n    privateKeyPassphrase: snowflakePrivateKeyPassphrase,\n    role: \"METADATA_READER_ROLE\",\n    warehouse: \"METADATA_WH\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Example: Snowflake Platform Metadata Credential with password auth\npassword_auth = dbtcloud.SnowflakePlatformMetadataCredential(\"password_auth\",\n    connection_id=snowflake[\"id\"],\n    catalog_ingestion_enabled=True,\n    cost_optimization_enabled=True,\n    cost_insights_enabled=False,\n    auth_type=\"password\",\n    user=\"METADATA_READER\",\n    password=snowflake_password,\n    role=\"METADATA_READER_ROLE\",\n    warehouse=\"METADATA_WH\")\n# Example: Snowflake Platform Metadata Credential with keypair auth\nkeypair_auth = dbtcloud.SnowflakePlatformMetadataCredential(\"keypair_auth\",\n    connection_id=snowflake[\"id\"],\n    catalog_ingestion_enabled=True,\n    cost_optimization_enabled=False,\n    cost_insights_enabled=False,\n    auth_type=\"keypair\",\n    user=\"METADATA_READER\",\n    private_key=snowflake_private_key,\n    private_key_passphrase=snowflake_private_key_passphrase,\n    role=\"METADATA_READER_ROLE\",\n    warehouse=\"METADATA_WH\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example: Snowflake Platform Metadata Credential with password auth\n    var passwordAuth = new DbtCloud.SnowflakePlatformMetadataCredential(\"password_auth\", new()\n    {\n        ConnectionId = snowflake.Id,\n        CatalogIngestionEnabled = true,\n        CostOptimizationEnabled = true,\n        CostInsightsEnabled = false,\n        AuthType = \"password\",\n        User = \"METADATA_READER\",\n        Password = snowflakePassword,\n        Role = \"METADATA_READER_ROLE\",\n        Warehouse = \"METADATA_WH\",\n    });\n\n    // Example: Snowflake Platform Metadata Credential with keypair auth\n    var keypairAuth = new DbtCloud.SnowflakePlatformMetadataCredential(\"keypair_auth\", new()\n    {\n        ConnectionId = snowflake.Id,\n        CatalogIngestionEnabled = true,\n        CostOptimizationEnabled = false,\n        CostInsightsEnabled = false,\n        AuthType = \"keypair\",\n        User = \"METADATA_READER\",\n        PrivateKey = snowflakePrivateKey,\n        PrivateKeyPassphrase = snowflakePrivateKeyPassphrase,\n        Role = \"METADATA_READER_ROLE\",\n        Warehouse = \"METADATA_WH\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example: Snowflake Platform Metadata Credential with password auth\n\t\t_, err := dbtcloud.NewSnowflakePlatformMetadataCredential(ctx, \"password_auth\", \u0026dbtcloud.SnowflakePlatformMetadataCredentialArgs{\n\t\t\tConnectionId:            pulumi.Any(snowflake.Id),\n\t\t\tCatalogIngestionEnabled: pulumi.Bool(true),\n\t\t\tCostOptimizationEnabled: pulumi.Bool(true),\n\t\t\tCostInsightsEnabled:     pulumi.Bool(false),\n\t\t\tAuthType:                pulumi.String(\"password\"),\n\t\t\tUser:                    pulumi.String(\"METADATA_READER\"),\n\t\t\tPassword:                pulumi.Any(snowflakePassword),\n\t\t\tRole:                    pulumi.String(\"METADATA_READER_ROLE\"),\n\t\t\tWarehouse:               pulumi.String(\"METADATA_WH\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example: Snowflake Platform Metadata Credential with keypair auth\n\t\t_, err = dbtcloud.NewSnowflakePlatformMetadataCredential(ctx, \"keypair_auth\", \u0026dbtcloud.SnowflakePlatformMetadataCredentialArgs{\n\t\t\tConnectionId:            pulumi.Any(snowflake.Id),\n\t\t\tCatalogIngestionEnabled: pulumi.Bool(true),\n\t\t\tCostOptimizationEnabled: pulumi.Bool(false),\n\t\t\tCostInsightsEnabled:     pulumi.Bool(false),\n\t\t\tAuthType:                pulumi.String(\"keypair\"),\n\t\t\tUser:                    pulumi.String(\"METADATA_READER\"),\n\t\t\tPrivateKey:              pulumi.Any(snowflakePrivateKey),\n\t\t\tPrivateKeyPassphrase:    pulumi.Any(snowflakePrivateKeyPassphrase),\n\t\t\tRole:                    pulumi.String(\"METADATA_READER_ROLE\"),\n\t\t\tWarehouse:               pulumi.String(\"METADATA_WH\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.SnowflakePlatformMetadataCredential;\nimport com.pulumi.dbtcloud.SnowflakePlatformMetadataCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Example: Snowflake Platform Metadata Credential with password auth\n        var passwordAuth = new SnowflakePlatformMetadataCredential(\"passwordAuth\", SnowflakePlatformMetadataCredentialArgs.builder()\n            .connectionId(snowflake.id())\n            .catalogIngestionEnabled(true)\n            .costOptimizationEnabled(true)\n            .costInsightsEnabled(false)\n            .authType(\"password\")\n            .user(\"METADATA_READER\")\n            .password(snowflakePassword)\n            .role(\"METADATA_READER_ROLE\")\n            .warehouse(\"METADATA_WH\")\n            .build());\n\n        // Example: Snowflake Platform Metadata Credential with keypair auth\n        var keypairAuth = new SnowflakePlatformMetadataCredential(\"keypairAuth\", SnowflakePlatformMetadataCredentialArgs.builder()\n            .connectionId(snowflake.id())\n            .catalogIngestionEnabled(true)\n            .costOptimizationEnabled(false)\n            .costInsightsEnabled(false)\n            .authType(\"keypair\")\n            .user(\"METADATA_READER\")\n            .privateKey(snowflakePrivateKey)\n            .privateKeyPassphrase(snowflakePrivateKeyPassphrase)\n            .role(\"METADATA_READER_ROLE\")\n            .warehouse(\"METADATA_WH\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Example: Snowflake Platform Metadata Credential with password auth\n  passwordAuth:\n    type: dbtcloud:SnowflakePlatformMetadataCredential\n    name: password_auth\n    properties:\n      connectionId: ${snowflake.id}\n      catalogIngestionEnabled: true\n      costOptimizationEnabled: true\n      costInsightsEnabled: false\n      authType: password\n      user: METADATA_READER\n      password: ${snowflakePassword}\n      role: METADATA_READER_ROLE\n      warehouse: METADATA_WH\n  # Example: Snowflake Platform Metadata Credential with keypair auth\n  keypairAuth:\n    type: dbtcloud:SnowflakePlatformMetadataCredential\n    name: keypair_auth\n    properties:\n      connectionId: ${snowflake.id}\n      catalogIngestionEnabled: true\n      costOptimizationEnabled: false\n      costInsightsEnabled: false\n      authType: keypair\n      user: METADATA_READER\n      privateKey: ${snowflakePrivateKey}\n      privateKeyPassphrase: ${snowflakePrivateKeyPassphrase}\n      role: METADATA_READER_ROLE\n      warehouse: METADATA_WH\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"adapterVersion":{"type":"string","description":"The adapter version derived from the connection (e.g., 'snowflake*v0', 'databricks*v0'). This is read-only and determined by the connection.\n"},"authType":{"type":"string","description":"The authentication type. Must be 'password' or 'keypair'.\n"},"catalogIngestionEnabled":{"type":"boolean","description":"Whether catalog ingestion is enabled for this credential. When enabled, dbt Cloud will ingest metadata about tables, views, and other objects from your data warehouse.\n"},"connectionId":{"type":"integer","description":"The ID of the global connection this credential is associated with. Cannot be changed after creation.\n"},"costInsightsEnabled":{"type":"boolean","description":"Whether cost insights is enabled for this credential.\n"},"costOptimizationEnabled":{"type":"boolean","description":"Whether cost optimization data collection is enabled for this credential.\n"},"credentialId":{"type":"integer","description":"The ID of the platform metadata credential.\n"},"password":{"type":"string","description":"The password for password authentication. Required when auth*type is 'password'. Cannot be used with private*key or private*key*passphrase.\n","secret":true},"privateKey":{"type":"string","description":"The private key for keypair authentication. Required when\u003cspan pulumi-lang-nodejs=\" authType \" pulumi-lang-dotnet=\" AuthType \" pulumi-lang-go=\" authType \" pulumi-lang-python=\" auth_type \" pulumi-lang-yaml=\" authType \" pulumi-lang-java=\" authType \"\u003e auth_type \u003c/span\u003eis 'keypair'. Cannot be used with password.\n","secret":true},"privateKeyPassphrase":{"type":"string","description":"The passphrase for the private key, if encrypted. Optional when\u003cspan pulumi-lang-nodejs=\" authType \" pulumi-lang-dotnet=\" AuthType \" pulumi-lang-go=\" authType \" pulumi-lang-python=\" auth_type \" pulumi-lang-yaml=\" authType \" pulumi-lang-java=\" authType \"\u003e auth_type \u003c/span\u003eis 'keypair'. Cannot be used with password.\n","secret":true},"role":{"type":"string","description":"The Snowflake role to use.\n"},"user":{"type":"string","description":"The Snowflake user name.\n"},"warehouse":{"type":"string","description":"The Snowflake warehouse to use.\n"}},"required":["adapterVersion","authType","catalogIngestionEnabled","connectionId","costInsightsEnabled","costOptimizationEnabled","credentialId","role","user","warehouse"],"inputProperties":{"authType":{"type":"string","description":"The authentication type. Must be 'password' or 'keypair'.\n"},"catalogIngestionEnabled":{"type":"boolean","description":"Whether catalog ingestion is enabled for this credential. When enabled, dbt Cloud will ingest metadata about tables, views, and other objects from your data warehouse.\n"},"connectionId":{"type":"integer","description":"The ID of the global connection this credential is associated with. Cannot be changed after creation.\n"},"costInsightsEnabled":{"type":"boolean","description":"Whether cost insights is enabled for this credential.\n"},"costOptimizationEnabled":{"type":"boolean","description":"Whether cost optimization data collection is enabled for this credential.\n"},"password":{"type":"string","description":"The password for password authentication. Required when auth*type is 'password'. Cannot be used with private*key or private*key*passphrase.\n","secret":true},"privateKey":{"type":"string","description":"The private key for keypair authentication. Required when\u003cspan pulumi-lang-nodejs=\" authType \" pulumi-lang-dotnet=\" AuthType \" pulumi-lang-go=\" authType \" pulumi-lang-python=\" auth_type \" pulumi-lang-yaml=\" authType \" pulumi-lang-java=\" authType \"\u003e auth_type \u003c/span\u003eis 'keypair'. Cannot be used with password.\n","secret":true},"privateKeyPassphrase":{"type":"string","description":"The passphrase for the private key, if encrypted. Optional when\u003cspan pulumi-lang-nodejs=\" authType \" pulumi-lang-dotnet=\" AuthType \" pulumi-lang-go=\" authType \" pulumi-lang-python=\" auth_type \" pulumi-lang-yaml=\" authType \" pulumi-lang-java=\" authType \"\u003e auth_type \u003c/span\u003eis 'keypair'. Cannot be used with password.\n","secret":true},"role":{"type":"string","description":"The Snowflake role to use.\n"},"user":{"type":"string","description":"The Snowflake user name.\n"},"warehouse":{"type":"string","description":"The Snowflake warehouse to use.\n"}},"requiredInputs":["authType","connectionId","role","user","warehouse"],"stateInputs":{"description":"Input properties used for looking up and filtering SnowflakePlatformMetadataCredential resources.\n","properties":{"adapterVersion":{"type":"string","description":"The adapter version derived from the connection (e.g., 'snowflake*v0', 'databricks*v0'). This is read-only and determined by the connection.\n"},"authType":{"type":"string","description":"The authentication type. Must be 'password' or 'keypair'.\n"},"catalogIngestionEnabled":{"type":"boolean","description":"Whether catalog ingestion is enabled for this credential. When enabled, dbt Cloud will ingest metadata about tables, views, and other objects from your data warehouse.\n"},"connectionId":{"type":"integer","description":"The ID of the global connection this credential is associated with. Cannot be changed after creation.\n"},"costInsightsEnabled":{"type":"boolean","description":"Whether cost insights is enabled for this credential.\n"},"costOptimizationEnabled":{"type":"boolean","description":"Whether cost optimization data collection is enabled for this credential.\n"},"credentialId":{"type":"integer","description":"The ID of the platform metadata credential.\n"},"password":{"type":"string","description":"The password for password authentication. Required when auth*type is 'password'. Cannot be used with private*key or private*key*passphrase.\n","secret":true},"privateKey":{"type":"string","description":"The private key for keypair authentication. Required when\u003cspan pulumi-lang-nodejs=\" authType \" pulumi-lang-dotnet=\" AuthType \" pulumi-lang-go=\" authType \" pulumi-lang-python=\" auth_type \" pulumi-lang-yaml=\" authType \" pulumi-lang-java=\" authType \"\u003e auth_type \u003c/span\u003eis 'keypair'. Cannot be used with password.\n","secret":true},"privateKeyPassphrase":{"type":"string","description":"The passphrase for the private key, if encrypted. Optional when\u003cspan pulumi-lang-nodejs=\" authType \" pulumi-lang-dotnet=\" AuthType \" pulumi-lang-go=\" authType \" pulumi-lang-python=\" auth_type \" pulumi-lang-yaml=\" authType \" pulumi-lang-java=\" authType \"\u003e auth_type \u003c/span\u003eis 'keypair'. Cannot be used with password.\n","secret":true},"role":{"type":"string","description":"The Snowflake role to use.\n"},"user":{"type":"string","description":"The Snowflake user name.\n"},"warehouse":{"type":"string","description":"The Snowflake warehouse to use.\n"}},"type":"object"}},"dbtcloud:index/snowflakeSemanticLayerCredential:SnowflakeSemanticLayerCredential":{"description":"Snowflake credential resource. This resource is composed of a Snowflake credential and a Semantic Layer configuration. It is used to create a Snowflake credential for the Semantic Layer.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// Example of Snowflake Semantic Layer Credential with password authentication\nconst passwordAuth = new dbtcloud.SnowflakeSemanticLayerCredential(\"password_auth\", {\n    configuration: {\n        projectId: projectId,\n        name: \"Snowflake SL Credential - Password Auth\",\n        adapterVersion: \"snowflake_v0\",\n    },\n    credential: {\n        projectId: projectId,\n        isActive: true,\n        authType: \"password\",\n        database: database,\n        schema: schema,\n        warehouse: warehouse,\n        role: role,\n        user: user,\n        password: password,\n        numThreads: 4,\n        semanticLayerCredential: true,\n    },\n});\n// Example of Snowflake Semantic Layer Credential with key pair authentication\nconst keypairAuth = new dbtcloud.SnowflakeSemanticLayerCredential(\"keypair_auth\", {\n    configuration: {\n        projectId: projectId,\n        name: \"Snowflake SL Credential - Key Pair Auth\",\n        adapterVersion: \"snowflake_v0\",\n    },\n    credential: {\n        projectId: projectId,\n        isActive: true,\n        authType: \"keypair\",\n        database: database,\n        schema: schema,\n        warehouse: warehouse,\n        role: role,\n        privateKey: privateKey,\n        privateKeyPassphrase: privateKeyPassphrase,\n        numThreads: 4,\n        semanticLayerCredential: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# Example of Snowflake Semantic Layer Credential with password authentication\npassword_auth = dbtcloud.SnowflakeSemanticLayerCredential(\"password_auth\",\n    configuration={\n        \"project_id\": project_id,\n        \"name\": \"Snowflake SL Credential - Password Auth\",\n        \"adapter_version\": \"snowflake_v0\",\n    },\n    credential={\n        \"project_id\": project_id,\n        \"is_active\": True,\n        \"auth_type\": \"password\",\n        \"database\": database,\n        \"schema\": schema,\n        \"warehouse\": warehouse,\n        \"role\": role,\n        \"user\": user,\n        \"password\": password,\n        \"num_threads\": 4,\n        \"semantic_layer_credential\": True,\n    })\n# Example of Snowflake Semantic Layer Credential with key pair authentication\nkeypair_auth = dbtcloud.SnowflakeSemanticLayerCredential(\"keypair_auth\",\n    configuration={\n        \"project_id\": project_id,\n        \"name\": \"Snowflake SL Credential - Key Pair Auth\",\n        \"adapter_version\": \"snowflake_v0\",\n    },\n    credential={\n        \"project_id\": project_id,\n        \"is_active\": True,\n        \"auth_type\": \"keypair\",\n        \"database\": database,\n        \"schema\": schema,\n        \"warehouse\": warehouse,\n        \"role\": role,\n        \"private_key\": private_key,\n        \"private_key_passphrase\": private_key_passphrase,\n        \"num_threads\": 4,\n        \"semantic_layer_credential\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example of Snowflake Semantic Layer Credential with password authentication\n    var passwordAuth = new DbtCloud.SnowflakeSemanticLayerCredential(\"password_auth\", new()\n    {\n        Configuration = new DbtCloud.Inputs.SnowflakeSemanticLayerCredentialConfigurationArgs\n        {\n            ProjectId = projectId,\n            Name = \"Snowflake SL Credential - Password Auth\",\n            AdapterVersion = \"snowflake_v0\",\n        },\n        Credential = new DbtCloud.Inputs.SnowflakeSemanticLayerCredentialCredentialArgs\n        {\n            ProjectId = projectId,\n            IsActive = true,\n            AuthType = \"password\",\n            Database = database,\n            Schema = schema,\n            Warehouse = warehouse,\n            Role = role,\n            User = user,\n            Password = password,\n            NumThreads = 4,\n            SemanticLayerCredential = true,\n        },\n    });\n\n    // Example of Snowflake Semantic Layer Credential with key pair authentication\n    var keypairAuth = new DbtCloud.SnowflakeSemanticLayerCredential(\"keypair_auth\", new()\n    {\n        Configuration = new DbtCloud.Inputs.SnowflakeSemanticLayerCredentialConfigurationArgs\n        {\n            ProjectId = projectId,\n            Name = \"Snowflake SL Credential - Key Pair Auth\",\n            AdapterVersion = \"snowflake_v0\",\n        },\n        Credential = new DbtCloud.Inputs.SnowflakeSemanticLayerCredentialCredentialArgs\n        {\n            ProjectId = projectId,\n            IsActive = true,\n            AuthType = \"keypair\",\n            Database = database,\n            Schema = schema,\n            Warehouse = warehouse,\n            Role = role,\n            PrivateKey = privateKey,\n            PrivateKeyPassphrase = privateKeyPassphrase,\n            NumThreads = 4,\n            SemanticLayerCredential = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example of Snowflake Semantic Layer Credential with password authentication\n\t\t_, err := dbtcloud.NewSnowflakeSemanticLayerCredential(ctx, \"password_auth\", \u0026dbtcloud.SnowflakeSemanticLayerCredentialArgs{\n\t\t\tConfiguration: \u0026dbtcloud.SnowflakeSemanticLayerCredentialConfigurationArgs{\n\t\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\t\tName:           pulumi.String(\"Snowflake SL Credential - Password Auth\"),\n\t\t\t\tAdapterVersion: pulumi.String(\"snowflake_v0\"),\n\t\t\t},\n\t\t\tCredential: \u0026dbtcloud.SnowflakeSemanticLayerCredentialCredentialArgs{\n\t\t\t\tProjectId:               pulumi.Any(projectId),\n\t\t\t\tIsActive:                pulumi.Bool(true),\n\t\t\t\tAuthType:                pulumi.String(\"password\"),\n\t\t\t\tDatabase:                pulumi.Any(database),\n\t\t\t\tSchema:                  pulumi.Any(schema),\n\t\t\t\tWarehouse:               pulumi.Any(warehouse),\n\t\t\t\tRole:                    pulumi.Any(role),\n\t\t\t\tUser:                    pulumi.Any(user),\n\t\t\t\tPassword:                pulumi.Any(password),\n\t\t\t\tNumThreads:              pulumi.Int(4),\n\t\t\t\tSemanticLayerCredential: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example of Snowflake Semantic Layer Credential with key pair authentication\n\t\t_, err = dbtcloud.NewSnowflakeSemanticLayerCredential(ctx, \"keypair_auth\", \u0026dbtcloud.SnowflakeSemanticLayerCredentialArgs{\n\t\t\tConfiguration: \u0026dbtcloud.SnowflakeSemanticLayerCredentialConfigurationArgs{\n\t\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\t\tName:           pulumi.String(\"Snowflake SL Credential - Key Pair Auth\"),\n\t\t\t\tAdapterVersion: pulumi.String(\"snowflake_v0\"),\n\t\t\t},\n\t\t\tCredential: \u0026dbtcloud.SnowflakeSemanticLayerCredentialCredentialArgs{\n\t\t\t\tProjectId:               pulumi.Any(projectId),\n\t\t\t\tIsActive:                pulumi.Bool(true),\n\t\t\t\tAuthType:                pulumi.String(\"keypair\"),\n\t\t\t\tDatabase:                pulumi.Any(database),\n\t\t\t\tSchema:                  pulumi.Any(schema),\n\t\t\t\tWarehouse:               pulumi.Any(warehouse),\n\t\t\t\tRole:                    pulumi.Any(role),\n\t\t\t\tPrivateKey:              pulumi.Any(privateKey),\n\t\t\t\tPrivateKeyPassphrase:    pulumi.Any(privateKeyPassphrase),\n\t\t\t\tNumThreads:              pulumi.Int(4),\n\t\t\t\tSemanticLayerCredential: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.SnowflakeSemanticLayerCredential;\nimport com.pulumi.dbtcloud.SnowflakeSemanticLayerCredentialArgs;\nimport com.pulumi.dbtcloud.inputs.SnowflakeSemanticLayerCredentialConfigurationArgs;\nimport com.pulumi.dbtcloud.inputs.SnowflakeSemanticLayerCredentialCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Example of Snowflake Semantic Layer Credential with password authentication\n        var passwordAuth = new SnowflakeSemanticLayerCredential(\"passwordAuth\", SnowflakeSemanticLayerCredentialArgs.builder()\n            .configuration(SnowflakeSemanticLayerCredentialConfigurationArgs.builder()\n                .projectId(projectId)\n                .name(\"Snowflake SL Credential - Password Auth\")\n                .adapterVersion(\"snowflake_v0\")\n                .build())\n            .credential(SnowflakeSemanticLayerCredentialCredentialArgs.builder()\n                .projectId(projectId)\n                .isActive(true)\n                .authType(\"password\")\n                .database(database)\n                .schema(schema)\n                .warehouse(warehouse)\n                .role(role)\n                .user(user)\n                .password(password)\n                .numThreads(4)\n                .semanticLayerCredential(true)\n                .build())\n            .build());\n\n        // Example of Snowflake Semantic Layer Credential with key pair authentication\n        var keypairAuth = new SnowflakeSemanticLayerCredential(\"keypairAuth\", SnowflakeSemanticLayerCredentialArgs.builder()\n            .configuration(SnowflakeSemanticLayerCredentialConfigurationArgs.builder()\n                .projectId(projectId)\n                .name(\"Snowflake SL Credential - Key Pair Auth\")\n                .adapterVersion(\"snowflake_v0\")\n                .build())\n            .credential(SnowflakeSemanticLayerCredentialCredentialArgs.builder()\n                .projectId(projectId)\n                .isActive(true)\n                .authType(\"keypair\")\n                .database(database)\n                .schema(schema)\n                .warehouse(warehouse)\n                .role(role)\n                .privateKey(privateKey)\n                .privateKeyPassphrase(privateKeyPassphrase)\n                .numThreads(4)\n                .semanticLayerCredential(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Example of Snowflake Semantic Layer Credential with password authentication\n  passwordAuth:\n    type: dbtcloud:SnowflakeSemanticLayerCredential\n    name: password_auth\n    properties:\n      configuration:\n        projectId: ${projectId}\n        name: Snowflake SL Credential - Password Auth\n        adapterVersion: snowflake_v0\n      credential:\n        projectId: ${projectId}\n        isActive: true\n        authType: password\n        database: ${database}\n        schema: ${schema}\n        warehouse: ${warehouse}\n        role: ${role}\n        user: ${user}\n        password: ${password}\n        numThreads: 4\n        semanticLayerCredential: true\n  # Example of Snowflake Semantic Layer Credential with key pair authentication\n  keypairAuth:\n    type: dbtcloud:SnowflakeSemanticLayerCredential\n    name: keypair_auth\n    properties:\n      configuration:\n        projectId: ${projectId}\n        name: Snowflake SL Credential - Key Pair Auth\n        adapterVersion: snowflake_v0\n      credential:\n        projectId: ${projectId}\n        isActive: true\n        authType: keypair\n        database: ${database}\n        schema: ${schema}\n        warehouse: ${warehouse}\n        role: ${role}\n        privateKey: ${privateKey}\n        privateKeyPassphrase: ${privateKeyPassphrase}\n        numThreads: 4\n        semanticLayerCredential: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_snowflake_semantic_layer_credential.example\nid = \u003cspan pulumi-lang-nodejs=\"\"credentialId\"\" pulumi-lang-dotnet=\"\"CredentialId\"\" pulumi-lang-go=\"\"credentialId\"\" pulumi-lang-python=\"\"credential_id\"\" pulumi-lang-yaml=\"\"credentialId\"\" pulumi-lang-java=\"\"credentialId\"\"\u003e\"credential_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_snowflake_semantic_layer_credential.example\nid = \"12345\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/snowflakeSemanticLayerCredential:SnowflakeSemanticLayerCredential example \"credential_id\"\n$ pulumi import dbtcloud:index/snowflakeSemanticLayerCredential:SnowflakeSemanticLayerCredential example 12345\n```\n\n","properties":{"configuration":{"$ref":"#/types/dbtcloud:index/SnowflakeSemanticLayerCredentialConfiguration:SnowflakeSemanticLayerCredentialConfiguration","description":"Semantic Layer credenttial configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/SnowflakeSemanticLayerCredentialCredential:SnowflakeSemanticLayerCredentialCredential","description":"Snowflake credential details, but used in the context of the Semantic Layer.\n"}},"required":["configuration","credential"],"inputProperties":{"configuration":{"$ref":"#/types/dbtcloud:index/SnowflakeSemanticLayerCredentialConfiguration:SnowflakeSemanticLayerCredentialConfiguration","description":"Semantic Layer credenttial configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/SnowflakeSemanticLayerCredentialCredential:SnowflakeSemanticLayerCredentialCredential","description":"Snowflake credential details, but used in the context of the Semantic Layer.\n"}},"requiredInputs":["configuration","credential"],"stateInputs":{"description":"Input properties used for looking up and filtering SnowflakeSemanticLayerCredential resources.\n","properties":{"configuration":{"$ref":"#/types/dbtcloud:index/SnowflakeSemanticLayerCredentialConfiguration:SnowflakeSemanticLayerCredentialConfiguration","description":"Semantic Layer credenttial configuration details.\n"},"credential":{"$ref":"#/types/dbtcloud:index/SnowflakeSemanticLayerCredentialCredential:SnowflakeSemanticLayerCredentialCredential","description":"Snowflake credential details, but used in the context of the Semantic Layer.\n"}},"type":"object"}},"dbtcloud:index/sparkCredential:SparkCredential":{"description":"Apache Spark credential resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst mySparkCred = new dbtcloud.SparkCredential(\"my_spark_cred\", {\n    projectId: dbtProject.id,\n    token: \"abcdefgh\",\n    schema: \"my_schema\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_spark_cred = dbtcloud.SparkCredential(\"my_spark_cred\",\n    project_id=dbt_project[\"id\"],\n    token=\"abcdefgh\",\n    schema=\"my_schema\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mySparkCred = new DbtCloud.SparkCredential(\"my_spark_cred\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Token = \"abcdefgh\",\n        Schema = \"my_schema\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewSparkCredential(ctx, \"my_spark_cred\", \u0026dbtcloud.SparkCredentialArgs{\n\t\t\tProjectId: pulumi.Any(dbtProject.Id),\n\t\t\tToken:     pulumi.String(\"abcdefgh\"),\n\t\t\tSchema:    pulumi.String(\"my_schema\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.SparkCredential;\nimport com.pulumi.dbtcloud.SparkCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mySparkCred = new SparkCredential(\"mySparkCred\", SparkCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .token(\"abcdefgh\")\n            .schema(\"my_schema\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mySparkCred:\n    type: dbtcloud:SparkCredential\n    name: my_spark_cred\n    properties:\n      projectId: ${dbtProject.id}\n      token: abcdefgh\n      schema: my_schema\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_spark_credential.my_spark_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_spark_credential.my_spark_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/sparkCredential:SparkCredential my_spark_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/sparkCredential:SparkCredential my_spark_credential 12345:6789\n```\n\n","properties":{"credentialId":{"type":"integer","description":"The system Apache Spark credential ID\n"},"projectId":{"type":"integer","description":"Project ID to create the Apache Spark credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"},"targetName":{"type":"string","description":"Target name\n","deprecationMessage":"This field is deprecated at the environment level (it was never possible to set it in the UI) and will be removed in a future release. Please remove it and set the target name at the job level or leverage environment variables."},"token":{"type":"string","description":"Token for Apache Spark user\n","secret":true}},"required":["credentialId","projectId","schema","targetName","token"],"inputProperties":{"projectId":{"type":"integer","description":"Project ID to create the Apache Spark credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"},"targetName":{"type":"string","description":"Target name\n","deprecationMessage":"This field is deprecated at the environment level (it was never possible to set it in the UI) and will be removed in a future release. Please remove it and set the target name at the job level or leverage environment variables."},"token":{"type":"string","description":"Token for Apache Spark user\n","secret":true}},"requiredInputs":["projectId","schema","token"],"stateInputs":{"description":"Input properties used for looking up and filtering SparkCredential resources.\n","properties":{"credentialId":{"type":"integer","description":"The system Apache Spark credential ID\n"},"projectId":{"type":"integer","description":"Project ID to create the Apache Spark credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"},"targetName":{"type":"string","description":"Target name\n","deprecationMessage":"This field is deprecated at the environment level (it was never possible to set it in the UI) and will be removed in a future release. Please remove it and set the target name at the job level or leverage environment variables."},"token":{"type":"string","description":"Token for Apache Spark user\n","secret":true}},"type":"object"}},"dbtcloud:index/starburstCredential:StarburstCredential":{"description":"Starburst/Trino credential resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst example = new dbtcloud.StarburstCredential(\"example\", {\n    projectId: exampleDbtcloudProject.id,\n    database: \"your_catalog\",\n    schema: \"your_schema\",\n    user: \"your_user\",\n    password: \"your_password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nexample = dbtcloud.StarburstCredential(\"example\",\n    project_id=example_dbtcloud_project[\"id\"],\n    database=\"your_catalog\",\n    schema=\"your_schema\",\n    user=\"your_user\",\n    password=\"your_password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new DbtCloud.StarburstCredential(\"example\", new()\n    {\n        ProjectId = exampleDbtcloudProject.Id,\n        Database = \"your_catalog\",\n        Schema = \"your_schema\",\n        User = \"your_user\",\n        Password = \"your_password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewStarburstCredential(ctx, \"example\", \u0026dbtcloud.StarburstCredentialArgs{\n\t\t\tProjectId: pulumi.Any(exampleDbtcloudProject.Id),\n\t\t\tDatabase:  pulumi.String(\"your_catalog\"),\n\t\t\tSchema:    pulumi.String(\"your_schema\"),\n\t\t\tUser:      pulumi.String(\"your_user\"),\n\t\t\tPassword:  pulumi.String(\"your_password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.StarburstCredential;\nimport com.pulumi.dbtcloud.StarburstCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new StarburstCredential(\"example\", StarburstCredentialArgs.builder()\n            .projectId(exampleDbtcloudProject.id())\n            .database(\"your_catalog\")\n            .schema(\"your_schema\")\n            .user(\"your_user\")\n            .password(\"your_password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: dbtcloud:StarburstCredential\n    properties:\n      projectId: ${exampleDbtcloudProject.id}\n      database: your_catalog\n      schema: your_schema\n      user: your_user\n      password: your_password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_starburst_credential.my_starburst_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_starburst_credential.my_starburst_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/starburstCredential:StarburstCredential my_starburst_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/starburstCredential:StarburstCredential my_starburst_credential 12345:6789\n```\n\n","properties":{"credentialId":{"type":"integer","description":"The internal credential ID\n"},"database":{"type":"string","description":"The catalog to connect use\n"},"password":{"type":"string","description":"The password for the Starburst/Trino account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Starburst/Trino credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"},"user":{"type":"string","description":"The username for the Starburst/Trino account\n"}},"required":["credentialId","database","password","projectId","schema","user"],"inputProperties":{"database":{"type":"string","description":"The catalog to connect use\n"},"password":{"type":"string","description":"The password for the Starburst/Trino account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Starburst/Trino credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"},"user":{"type":"string","description":"The username for the Starburst/Trino account\n"}},"requiredInputs":["database","password","projectId","schema","user"],"stateInputs":{"description":"Input properties used for looking up and filtering StarburstCredential resources.\n","properties":{"credentialId":{"type":"integer","description":"The internal credential ID\n"},"database":{"type":"string","description":"The catalog to connect use\n"},"password":{"type":"string","description":"The password for the Starburst/Trino account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Starburst/Trino credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"},"user":{"type":"string","description":"The username for the Starburst/Trino account\n"}},"type":"object"}},"dbtcloud:index/synapseCredential:SynapseCredential":{"description":"Synapse credential resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// when using sql authentication\nconst mySynapseCredSql = new dbtcloud.SynapseCredential(\"my_synapse_cred_sql\", {\n    projectId: dbtProject.id,\n    authentication: \"sql\",\n    schema: \"my_schema\",\n    user: \"my_user\",\n    password: \"my_password\",\n    schemaAuthorization: \"abcd\",\n});\n// when using AD authentication\nconst mySynapseCredAd = new dbtcloud.SynapseCredential(\"my_synapse_cred_ad\", {\n    projectId: dbtProject.id,\n    authentication: \"ActiveDirectoryPassword\",\n    schema: \"my_schema\",\n    user: \"my_user\",\n    password: \"my_password\",\n    schemaAuthorization: \"abcd\",\n});\n// when using service principal authentication\nconst mySynapseCredServPrinc = new dbtcloud.SynapseCredential(\"my_synapse_cred_serv_princ\", {\n    projectId: dbtProject.id,\n    authentication: \"ServicePrincipal\",\n    schema: \"my_schema\",\n    clientId: \"my_client_id\",\n    tenantId: \"my_tenant_id\",\n    clientSecret: \"my_secret\",\n    schemaAuthorization: \"abcd\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# when using sql authentication\nmy_synapse_cred_sql = dbtcloud.SynapseCredential(\"my_synapse_cred_sql\",\n    project_id=dbt_project[\"id\"],\n    authentication=\"sql\",\n    schema=\"my_schema\",\n    user=\"my_user\",\n    password=\"my_password\",\n    schema_authorization=\"abcd\")\n# when using AD authentication\nmy_synapse_cred_ad = dbtcloud.SynapseCredential(\"my_synapse_cred_ad\",\n    project_id=dbt_project[\"id\"],\n    authentication=\"ActiveDirectoryPassword\",\n    schema=\"my_schema\",\n    user=\"my_user\",\n    password=\"my_password\",\n    schema_authorization=\"abcd\")\n# when using service principal authentication\nmy_synapse_cred_serv_princ = dbtcloud.SynapseCredential(\"my_synapse_cred_serv_princ\",\n    project_id=dbt_project[\"id\"],\n    authentication=\"ServicePrincipal\",\n    schema=\"my_schema\",\n    client_id=\"my_client_id\",\n    tenant_id=\"my_tenant_id\",\n    client_secret=\"my_secret\",\n    schema_authorization=\"abcd\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // when using sql authentication\n    var mySynapseCredSql = new DbtCloud.SynapseCredential(\"my_synapse_cred_sql\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Authentication = \"sql\",\n        Schema = \"my_schema\",\n        User = \"my_user\",\n        Password = \"my_password\",\n        SchemaAuthorization = \"abcd\",\n    });\n\n    // when using AD authentication\n    var mySynapseCredAd = new DbtCloud.SynapseCredential(\"my_synapse_cred_ad\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Authentication = \"ActiveDirectoryPassword\",\n        Schema = \"my_schema\",\n        User = \"my_user\",\n        Password = \"my_password\",\n        SchemaAuthorization = \"abcd\",\n    });\n\n    // when using service principal authentication\n    var mySynapseCredServPrinc = new DbtCloud.SynapseCredential(\"my_synapse_cred_serv_princ\", new()\n    {\n        ProjectId = dbtProject.Id,\n        Authentication = \"ServicePrincipal\",\n        Schema = \"my_schema\",\n        ClientId = \"my_client_id\",\n        TenantId = \"my_tenant_id\",\n        ClientSecret = \"my_secret\",\n        SchemaAuthorization = \"abcd\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// when using sql authentication\n\t\t_, err := dbtcloud.NewSynapseCredential(ctx, \"my_synapse_cred_sql\", \u0026dbtcloud.SynapseCredentialArgs{\n\t\t\tProjectId:           pulumi.Any(dbtProject.Id),\n\t\t\tAuthentication:      pulumi.String(\"sql\"),\n\t\t\tSchema:              pulumi.String(\"my_schema\"),\n\t\t\tUser:                pulumi.String(\"my_user\"),\n\t\t\tPassword:            pulumi.String(\"my_password\"),\n\t\t\tSchemaAuthorization: pulumi.String(\"abcd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// when using AD authentication\n\t\t_, err = dbtcloud.NewSynapseCredential(ctx, \"my_synapse_cred_ad\", \u0026dbtcloud.SynapseCredentialArgs{\n\t\t\tProjectId:           pulumi.Any(dbtProject.Id),\n\t\t\tAuthentication:      pulumi.String(\"ActiveDirectoryPassword\"),\n\t\t\tSchema:              pulumi.String(\"my_schema\"),\n\t\t\tUser:                pulumi.String(\"my_user\"),\n\t\t\tPassword:            pulumi.String(\"my_password\"),\n\t\t\tSchemaAuthorization: pulumi.String(\"abcd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// when using service principal authentication\n\t\t_, err = dbtcloud.NewSynapseCredential(ctx, \"my_synapse_cred_serv_princ\", \u0026dbtcloud.SynapseCredentialArgs{\n\t\t\tProjectId:           pulumi.Any(dbtProject.Id),\n\t\t\tAuthentication:      pulumi.String(\"ServicePrincipal\"),\n\t\t\tSchema:              pulumi.String(\"my_schema\"),\n\t\t\tClientId:            pulumi.String(\"my_client_id\"),\n\t\t\tTenantId:            pulumi.String(\"my_tenant_id\"),\n\t\t\tClientSecret:        pulumi.String(\"my_secret\"),\n\t\t\tSchemaAuthorization: pulumi.String(\"abcd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.SynapseCredential;\nimport com.pulumi.dbtcloud.SynapseCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // when using sql authentication\n        var mySynapseCredSql = new SynapseCredential(\"mySynapseCredSql\", SynapseCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .authentication(\"sql\")\n            .schema(\"my_schema\")\n            .user(\"my_user\")\n            .password(\"my_password\")\n            .schemaAuthorization(\"abcd\")\n            .build());\n\n        // when using AD authentication\n        var mySynapseCredAd = new SynapseCredential(\"mySynapseCredAd\", SynapseCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .authentication(\"ActiveDirectoryPassword\")\n            .schema(\"my_schema\")\n            .user(\"my_user\")\n            .password(\"my_password\")\n            .schemaAuthorization(\"abcd\")\n            .build());\n\n        // when using service principal authentication\n        var mySynapseCredServPrinc = new SynapseCredential(\"mySynapseCredServPrinc\", SynapseCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .authentication(\"ServicePrincipal\")\n            .schema(\"my_schema\")\n            .clientId(\"my_client_id\")\n            .tenantId(\"my_tenant_id\")\n            .clientSecret(\"my_secret\")\n            .schemaAuthorization(\"abcd\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # when using sql authentication\n  mySynapseCredSql:\n    type: dbtcloud:SynapseCredential\n    name: my_synapse_cred_sql\n    properties:\n      projectId: ${dbtProject.id}\n      authentication: sql\n      schema: my_schema\n      user: my_user\n      password: my_password\n      schemaAuthorization: abcd\n  # when using AD authentication\n  mySynapseCredAd:\n    type: dbtcloud:SynapseCredential\n    name: my_synapse_cred_ad\n    properties:\n      projectId: ${dbtProject.id}\n      authentication: ActiveDirectoryPassword\n      schema: my_schema\n      user: my_user\n      password: my_password\n      schemaAuthorization: abcd\n  # when using service principal authentication\n  mySynapseCredServPrinc:\n    type: dbtcloud:SynapseCredential\n    name: my_synapse_cred_serv_princ\n    properties:\n      projectId: ${dbtProject.id}\n      authentication: ServicePrincipal\n      schema: my_schema\n      clientId: my_client_id\n      tenantId: my_tenant_id\n      clientSecret: my_secret\n      schemaAuthorization: abcd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_synapse_credential.my_synapse_credential\nid = \"project_id:credential_id\"\n}\n\nimport {\nto = dbtcloud_synapse_credential.my_synapse_credential\nid = \"12345:6789\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/synapseCredential:SynapseCredential my_synapse_credential \"project_id:credential_id\"\n$ pulumi import dbtcloud:index/synapseCredential:SynapseCredential my_synapse_credential 12345:6789\n```\n\n","properties":{"adapterType":{"type":"string","description":"The type of the adapter (synapse)\n"},"authentication":{"type":"string","description":"Authentication type (SQL, ActiveDirectoryPassword, ServicePrincipal)\n"},"clientId":{"type":"string","description":"The client ID of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n"},"clientSecret":{"type":"string","description":"The client secret of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n","secret":true},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"password":{"type":"string","description":"The password for the account to connect to. Only used when connection with AD user/pass\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Synapse credential in\n"},"schema":{"type":"string","description":"The schema where to create the dbt models\n"},"schemaAuthorization":{"type":"string","description":"Optionally set this to the principal who should own the schemas created by dbt\n"},"tenantId":{"type":"string","description":"The tenant ID of the Azure Active Directory instance. This is only used when connecting to Azure SQL with a service principal.\n"},"user":{"type":"string","description":"The username of the Synapse account to connect to. Only used when connection with AD user/pass\n"}},"required":["adapterType","authentication","clientId","clientSecret","credentialId","password","projectId","schema","schemaAuthorization","tenantId","user"],"inputProperties":{"adapterType":{"type":"string","description":"The type of the adapter (synapse)\n"},"authentication":{"type":"string","description":"Authentication type (SQL, ActiveDirectoryPassword, ServicePrincipal)\n"},"clientId":{"type":"string","description":"The client ID of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n"},"clientSecret":{"type":"string","description":"The client secret of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n","secret":true},"password":{"type":"string","description":"The password for the account to connect to. Only used when connection with AD user/pass\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Synapse credential in\n"},"schema":{"type":"string","description":"The schema where to create the dbt models\n"},"schemaAuthorization":{"type":"string","description":"Optionally set this to the principal who should own the schemas created by dbt\n"},"tenantId":{"type":"string","description":"The tenant ID of the Azure Active Directory instance. This is only used when connecting to Azure SQL with a service principal.\n"},"user":{"type":"string","description":"The username of the Synapse account to connect to. Only used when connection with AD user/pass\n"}},"requiredInputs":["adapterType","authentication","projectId","schema"],"stateInputs":{"description":"Input properties used for looking up and filtering SynapseCredential resources.\n","properties":{"adapterType":{"type":"string","description":"The type of the adapter (synapse)\n"},"authentication":{"type":"string","description":"Authentication type (SQL, ActiveDirectoryPassword, ServicePrincipal)\n"},"clientId":{"type":"string","description":"The client ID of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n"},"clientSecret":{"type":"string","description":"The client secret of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n","secret":true},"credentialId":{"type":"integer","description":"The internal credential ID\n"},"password":{"type":"string","description":"The password for the account to connect to. Only used when connection with AD user/pass\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Synapse credential in\n"},"schema":{"type":"string","description":"The schema where to create the dbt models\n"},"schemaAuthorization":{"type":"string","description":"Optionally set this to the principal who should own the schemas created by dbt\n"},"tenantId":{"type":"string","description":"The tenant ID of the Azure Active Directory instance. This is only used when connecting to Azure SQL with a service principal.\n"},"user":{"type":"string","description":"The username of the Synapse account to connect to. Only used when connection with AD user/pass\n"}},"type":"object"}},"dbtcloud:index/teradataCredential:TeradataCredential":{"description":"Teradata credential resource\n","properties":{"credentialId":{"type":"integer","description":"The internal credential ID\n"},"password":{"type":"string","description":"The password for the Teradata account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Teradata/Trino credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"},"threads":{"type":"integer","description":"The number of threads to use. Default is 1\n"},"user":{"type":"string","description":"The username for the Teradata account\n"}},"required":["credentialId","password","projectId","schema","threads","user"],"inputProperties":{"password":{"type":"string","description":"The password for the Teradata account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Teradata/Trino credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"},"threads":{"type":"integer","description":"The number of threads to use. Default is 1\n"},"user":{"type":"string","description":"The username for the Teradata account\n"}},"requiredInputs":["password","projectId","schema","user"],"stateInputs":{"description":"Input properties used for looking up and filtering TeradataCredential resources.\n","properties":{"credentialId":{"type":"integer","description":"The internal credential ID\n"},"password":{"type":"string","description":"The password for the Teradata account\n","secret":true},"projectId":{"type":"integer","description":"Project ID to create the Teradata/Trino credential in\n"},"schema":{"type":"string","description":"The schema where to create models\n"},"threads":{"type":"integer","description":"The number of threads to use. Default is 1\n"},"user":{"type":"string","description":"The username for the Teradata account\n"}},"type":"object"}},"dbtcloud:index/userGroups:UserGroups":{"description":"Assigns a set of dbt Cloud groups to a given User ID. \n\n\u003e If additional groups were assigned manually in dbt Cloud, they will be removed. The full list of groups need to be provided as config.\n\u003e This resource does not currently support deletion (e.g. a deleted resource will stay as-is in dbt Cloud).\nThis is intentional in order to prevent accidental deletion of all users groups assigned to a user.\nIf you would like a different behavior, please open an issue on GitHub. To remove all groups for a user, set \u003cspan pulumi-lang-nodejs=\"\"groupIds\"\" pulumi-lang-dotnet=\"\"GroupIds\"\" pulumi-lang-go=\"\"groupIds\"\" pulumi-lang-python=\"\"group_ids\"\" pulumi-lang-yaml=\"\"groupIds\"\" pulumi-lang-java=\"\"groupIds\"\"\u003e\"group_ids\"\u003c/span\u003e to the empty set \"[]\".\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// we can assign groups to users\nconst myUserGroups = new dbtcloud.UserGroups(\"my_user_groups\", {\n    userId: myUser.id,\n    groupIds: [\n        1234,\n        myGroup.id,\n        myGroupId,\n    ],\n});\n// as Delete is not handled currently, by design, removing all groups from a user can be done with\nconst myOtherUserGroups = new dbtcloud.UserGroups(\"my_other_user_groups\", {\n    userId: 123456,\n    groupIds: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# we can assign groups to users\nmy_user_groups = dbtcloud.UserGroups(\"my_user_groups\",\n    user_id=my_user[\"id\"],\n    group_ids=[\n        1234,\n        my_group[\"id\"],\n        my_group_id,\n    ])\n# as Delete is not handled currently, by design, removing all groups from a user can be done with\nmy_other_user_groups = dbtcloud.UserGroups(\"my_other_user_groups\",\n    user_id=123456,\n    group_ids=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // we can assign groups to users\n    var myUserGroups = new DbtCloud.UserGroups(\"my_user_groups\", new()\n    {\n        UserId = myUser.Id,\n        GroupIds = new[]\n        {\n            1234,\n            myGroup.Id,\n            myGroupId,\n        },\n    });\n\n    // as Delete is not handled currently, by design, removing all groups from a user can be done with\n    var myOtherUserGroups = new DbtCloud.UserGroups(\"my_other_user_groups\", new()\n    {\n        UserId = 123456,\n        GroupIds = new[] {},\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// we can assign groups to users\n\t\t_, err := dbtcloud.NewUserGroups(ctx, \"my_user_groups\", \u0026dbtcloud.UserGroupsArgs{\n\t\t\tUserId: pulumi.Any(myUser.Id),\n\t\t\tGroupIds: pulumi.IntArray{\n\t\t\t\tpulumi.Int(1234),\n\t\t\t\tmyGroup.Id,\n\t\t\t\tmyGroupId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// as Delete is not handled currently, by design, removing all groups from a user can be done with\n\t\t_, err = dbtcloud.NewUserGroups(ctx, \"my_other_user_groups\", \u0026dbtcloud.UserGroupsArgs{\n\t\t\tUserId:   pulumi.Int(123456),\n\t\t\tGroupIds: pulumi.IntArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.UserGroups;\nimport com.pulumi.dbtcloud.UserGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // we can assign groups to users\n        var myUserGroups = new UserGroups(\"myUserGroups\", UserGroupsArgs.builder()\n            .userId(myUser.id())\n            .groupIds(            \n                1234,\n                myGroup.id(),\n                myGroupId)\n            .build());\n\n        // as Delete is not handled currently, by design, removing all groups from a user can be done with\n        var myOtherUserGroups = new UserGroups(\"myOtherUserGroups\", UserGroupsArgs.builder()\n            .userId(123456)\n            .groupIds()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # we can assign groups to users\n  myUserGroups:\n    type: dbtcloud:UserGroups\n    name: my_user_groups\n    properties:\n      userId: ${myUser.id}\n      groupIds:\n        - 1234\n        - ${myGroup.id}\n        - ${myGroupId}\n  # as Delete is not handled currently, by design, removing all groups from a user can be done with\n  myOtherUserGroups:\n    type: dbtcloud:UserGroups\n    name: my_other_user_groups\n    properties:\n      userId: 123456\n      groupIds: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImport using the User ID\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_user_groups.my_user_groups\nid = \u003cspan pulumi-lang-nodejs=\"\"userId\"\" pulumi-lang-dotnet=\"\"UserId\"\" pulumi-lang-go=\"\"userId\"\" pulumi-lang-python=\"\"user_id\"\" pulumi-lang-yaml=\"\"userId\"\" pulumi-lang-java=\"\"userId\"\"\u003e\"user_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_user_groups.my_user_groups\nid = \"123456\"\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/userGroups:UserGroups my_user_groups \"user_id\"\n$ pulumi import dbtcloud:index/userGroups:UserGroups my_user_groups 123456\n```\n\n","properties":{"groupIds":{"type":"array","items":{"type":"integer"},"description":"IDs of the groups to assign to the user. If additional groups were assigned manually in dbt Cloud, they will be removed.\n"},"userId":{"type":"integer","description":"The internal ID of a dbt Cloud user.\n"}},"required":["groupIds","userId"],"inputProperties":{"groupIds":{"type":"array","items":{"type":"integer"},"description":"IDs of the groups to assign to the user. If additional groups were assigned manually in dbt Cloud, they will be removed.\n"},"userId":{"type":"integer","description":"The internal ID of a dbt Cloud user.\n"}},"requiredInputs":["groupIds","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering UserGroups resources.\n","properties":{"groupIds":{"type":"array","items":{"type":"integer"},"description":"IDs of the groups to assign to the user. If additional groups were assigned manually in dbt Cloud, they will be removed.\n"},"userId":{"type":"integer","description":"The internal ID of a dbt Cloud user.\n"}},"type":"object"}},"dbtcloud:index/webhook:Webhook":{"description":"Webhook details\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst testWebhook = new dbtcloud.Webhook(\"test_webhook\", {\n    name: \"test-webhook\",\n    description: \"Test webhook\",\n    clientUrl: \"http://localhost/nothing\",\n    eventTypes: [\n        \"job.run.started\",\n        \"job.run.completed\",\n    ],\n    jobIds: [\n        1234,\n        5678,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ntest_webhook = dbtcloud.Webhook(\"test_webhook\",\n    name=\"test-webhook\",\n    description=\"Test webhook\",\n    client_url=\"http://localhost/nothing\",\n    event_types=[\n        \"job.run.started\",\n        \"job.run.completed\",\n    ],\n    job_ids=[\n        1234,\n        5678,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testWebhook = new DbtCloud.Webhook(\"test_webhook\", new()\n    {\n        Name = \"test-webhook\",\n        Description = \"Test webhook\",\n        ClientUrl = \"http://localhost/nothing\",\n        EventTypes = new[]\n        {\n            \"job.run.started\",\n            \"job.run.completed\",\n        },\n        JobIds = new[]\n        {\n            1234,\n            5678,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.NewWebhook(ctx, \"test_webhook\", \u0026dbtcloud.WebhookArgs{\n\t\t\tName:        pulumi.String(\"test-webhook\"),\n\t\t\tDescription: pulumi.String(\"Test webhook\"),\n\t\t\tClientUrl:   pulumi.String(\"http://localhost/nothing\"),\n\t\t\tEventTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"job.run.started\"),\n\t\t\t\tpulumi.String(\"job.run.completed\"),\n\t\t\t},\n\t\t\tJobIds: pulumi.IntArray{\n\t\t\t\tpulumi.Int(1234),\n\t\t\t\tpulumi.Int(5678),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.Webhook;\nimport com.pulumi.dbtcloud.WebhookArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testWebhook = new Webhook(\"testWebhook\", WebhookArgs.builder()\n            .name(\"test-webhook\")\n            .description(\"Test webhook\")\n            .clientUrl(\"http://localhost/nothing\")\n            .eventTypes(            \n                \"job.run.started\",\n                \"job.run.completed\")\n            .jobIds(            \n                1234,\n                5678)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testWebhook:\n    type: dbtcloud:Webhook\n    name: test_webhook\n    properties:\n      name: test-webhook\n      description: Test webhook\n      clientUrl: http://localhost/nothing\n      eventTypes:\n        - job.run.started\n        - job.run.completed\n      jobIds:\n        - 1234\n        - 5678\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nusing  import blocks (requires Terraform \u003e= 1.5)\nimport {\nto = dbtcloud_webhook.my_webhook\nid = \u003cspan pulumi-lang-nodejs=\"\"webhookId\"\" pulumi-lang-dotnet=\"\"WebhookId\"\" pulumi-lang-go=\"\"webhookId\"\" pulumi-lang-python=\"\"webhook_id\"\" pulumi-lang-yaml=\"\"webhookId\"\" pulumi-lang-java=\"\"webhookId\"\"\u003e\"webhook_id\"\u003c/span\u003e\n}\n\nimport {\nto = dbtcloud_webhook.my_webhook\nid = \u003cspan pulumi-lang-nodejs=\"\"wsuAbcdefg\"\" pulumi-lang-dotnet=\"\"WsuAbcdefg\"\" pulumi-lang-go=\"\"wsuAbcdefg\"\" pulumi-lang-python=\"\"wsu_abcdefg\"\" pulumi-lang-yaml=\"\"wsuAbcdefg\"\" pulumi-lang-java=\"\"wsuAbcdefg\"\"\u003e\"wsu_abcdefg\"\u003c/span\u003e\n}\n\nusing the older import command\n\n```sh\n$ pulumi import dbtcloud:index/webhook:Webhook my_webhook \"webhook_id\"\n$ pulumi import dbtcloud:index/webhook:Webhook my_webhook wsu_abcdefg\n```\n\n","properties":{"accountIdentifier":{"type":"string","description":"Webhooks Account Identifier\n"},"active":{"type":"boolean","description":"Webhooks active flag\n"},"clientUrl":{"type":"string","description":"Webhooks Client URL\n"},"description":{"type":"string","description":"Webhooks Description\n"},"eventTypes":{"type":"array","items":{"type":"string"},"description":"Webhooks Event Types\n"},"hmacSecret":{"type":"string","description":"Secret key for the webhook. Can be used to validate the authenticity of the webhook.\n","secret":true},"httpStatusCode":{"type":"string","description":"Latest HTTP status of the webhook\n"},"jobIds":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook. When null or empty, the webhook will trigger on all jobs\n"},"name":{"type":"string","description":"Webhooks Name\n"},"webhookId":{"type":"string","description":"Webhook's ID\n","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e instead"}},"required":["accountIdentifier","active","clientUrl","description","eventTypes","hmacSecret","httpStatusCode","name","webhookId"],"inputProperties":{"active":{"type":"boolean","description":"Webhooks active flag\n"},"clientUrl":{"type":"string","description":"Webhooks Client URL\n"},"description":{"type":"string","description":"Webhooks Description\n"},"eventTypes":{"type":"array","items":{"type":"string"},"description":"Webhooks Event Types\n"},"jobIds":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook. When null or empty, the webhook will trigger on all jobs\n"},"name":{"type":"string","description":"Webhooks Name\n"}},"requiredInputs":["clientUrl","eventTypes"],"stateInputs":{"description":"Input properties used for looking up and filtering Webhook resources.\n","properties":{"accountIdentifier":{"type":"string","description":"Webhooks Account Identifier\n"},"active":{"type":"boolean","description":"Webhooks active flag\n"},"clientUrl":{"type":"string","description":"Webhooks Client URL\n"},"description":{"type":"string","description":"Webhooks Description\n"},"eventTypes":{"type":"array","items":{"type":"string"},"description":"Webhooks Event Types\n"},"hmacSecret":{"type":"string","description":"Secret key for the webhook. Can be used to validate the authenticity of the webhook.\n","secret":true},"httpStatusCode":{"type":"string","description":"Latest HTTP status of the webhook\n"},"jobIds":{"type":"array","items":{"type":"integer"},"description":"List of job IDs to trigger the webhook. When null or empty, the webhook will trigger on all jobs\n"},"name":{"type":"string","description":"Webhooks Name\n"},"webhookId":{"type":"string","description":"Webhook's ID\n","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e instead"}},"type":"object"}}},"functions":{"dbtcloud:index/getAthenaCredential:getAthenaCredential":{"description":"Athena credential data source\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst example = dbtcloud.getAthenaCredential({\n    projectId: 123,\n    credentialId: 456,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nexample = dbtcloud.get_athena_credential(project_id=123,\n    credential_id=456)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = DbtCloud.GetAthenaCredential.Invoke(new()\n    {\n        ProjectId = 123,\n        CredentialId = 456,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupAthenaCredential(ctx, \u0026dbtcloud.LookupAthenaCredentialArgs{\n\t\t\tProjectId:    123,\n\t\t\tCredentialId: 456,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetAthenaCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = DbtcloudFunctions.getAthenaCredential(GetAthenaCredentialArgs.builder()\n            .projectId(123)\n            .credentialId(456)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: dbtcloud:getAthenaCredential\n      arguments:\n        projectId: 123\n        credentialId: 456\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAthenaCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getAthenaCredential.\n","properties":{"credentialId":{"description":"Credential ID\n","type":"integer"},"id":{"description":"The ID of this resource. Contains the project ID and the credential ID.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"integer"},"schema":{"description":"The schema where to create models\n","type":"string"}},"required":["credentialId","id","projectId","schema"],"type":"object"}},"dbtcloud:index/getAzureDevOpsProject:getAzureDevOpsProject":{"description":"Use this data source to retrieve the ID of an Azure Dev Ops project \nbased on its name.\n\t\t\nThis data source requires connecting with a user token and doesn't work with a service token.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myAdoProject = dbtcloud.getAzureDevOpsProject({\n    name: \"my-project-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_ado_project = dbtcloud.get_azure_dev_ops_project(name=\"my-project-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAdoProject = DbtCloud.GetAzureDevOpsProject.Invoke(new()\n    {\n        Name = \"my-project-name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.GetAzureDevOpsProject(ctx, \u0026dbtcloud.GetAzureDevOpsProjectArgs{\n\t\t\tName: \"my-project-name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetAzureDevOpsProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAdoProject = DbtcloudFunctions.getAzureDevOpsProject(GetAzureDevOpsProjectArgs.builder()\n            .name(\"my-project-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myAdoProject:\n    fn::invoke:\n      function: dbtcloud:getAzureDevOpsProject\n      arguments:\n        name: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAzureDevOpsProject.\n","properties":{"name":{"type":"string","description":"The name of the ADO project\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getAzureDevOpsProject.\n","properties":{"id":{"description":"The internal Azure Dev Ops ID of the ADO Project\n","type":"string"},"name":{"description":"The name of the ADO project\n","type":"string"},"url":{"description":"The URL of the ADO project\n","type":"string"}},"required":["id","name","url"],"type":"object"}},"dbtcloud:index/getAzureDevOpsRepository:getAzureDevOpsRepository":{"description":"Use this data source to retrieve the ID and details of an Azure Dev Ops repository \nbased on its name and the ID of the Azure Dev Ops project it belongs to.\n\t\t\nThis data source requires connecting with a user token and doesn't work with a service token.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myAdoRepository = dbtcloud.getAzureDevOpsRepository({\n    name: \"my-repo-name\",\n    azureDevOpsProjectId: myAdoProject.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_ado_repository = dbtcloud.get_azure_dev_ops_repository(name=\"my-repo-name\",\n    azure_dev_ops_project_id=my_ado_project[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myAdoRepository = DbtCloud.GetAzureDevOpsRepository.Invoke(new()\n    {\n        Name = \"my-repo-name\",\n        AzureDevOpsProjectId = myAdoProject.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.GetAzureDevOpsRepository(ctx, \u0026dbtcloud.GetAzureDevOpsRepositoryArgs{\n\t\t\tName:                 \"my-repo-name\",\n\t\t\tAzureDevOpsProjectId: myAdoProject.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetAzureDevOpsRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myAdoRepository = DbtcloudFunctions.getAzureDevOpsRepository(GetAzureDevOpsRepositoryArgs.builder()\n            .name(\"my-repo-name\")\n            .azureDevOpsProjectId(myAdoProject.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myAdoRepository:\n    fn::invoke:\n      function: dbtcloud:getAzureDevOpsRepository\n      arguments:\n        name: my-repo-name\n        azureDevOpsProjectId: ${myAdoProject.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAzureDevOpsRepository.\n","properties":{"azureDevOpsProjectId":{"type":"string","description":"The internal Azure Dev Ops ID of the ADO Project. Can be retrieved using the data source dbtcloud*azure*dev*ops*project and the project name\n"},"name":{"type":"string","description":"The name of the ADO repository\n"}},"type":"object","required":["azureDevOpsProjectId","name"]},"outputs":{"description":"A collection of values returned by getAzureDevOpsRepository.\n","properties":{"azureDevOpsProjectId":{"description":"The internal Azure Dev Ops ID of the ADO Project. Can be retrieved using the data source dbtcloud*azure*dev*ops*project and the project name\n","type":"string"},"defaultBranch":{"description":"The default branch of the ADO repository\n","type":"string"},"detailsUrl":{"description":"The URL of the ADO repository showing details about the repository and its attributes\n","type":"string"},"id":{"description":"The internal Azure Dev Ops ID of the ADO Repository\n","type":"string"},"name":{"description":"The name of the ADO repository\n","type":"string"},"remoteUrl":{"description":"The HTTP URL of the ADO repository used to connect to dbt Cloud\n","type":"string"},"webUrl":{"description":"The URL of the ADO repository accessible in the browser\n","type":"string"}},"required":["azureDevOpsProjectId","defaultBranch","detailsUrl","id","name","remoteUrl","webUrl"],"type":"object"}},"dbtcloud:index/getBigQueryCredential:getBigQueryCredential":{"description":"Bigquery credential data source\n","inputs":{"description":"A collection of arguments for invoking getBigQueryCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getBigQueryCredential.\n","properties":{"credentialId":{"description":"Credential ID\n","type":"integer"},"dataset":{"description":"Default dataset name\n","type":"string"},"id":{"description":"The ID of this data source. Contains the project ID and the credential ID.\n","type":"string"},"isActive":{"description":"Whether the BigQuery credential is active\n","type":"boolean"},"numThreads":{"description":"Number of threads to use\n","type":"integer"},"projectId":{"description":"Project ID\n","type":"integer"}},"required":["credentialId","dataset","id","isActive","numThreads","projectId"],"type":"object"}},"dbtcloud:index/getDatabricksCredential:getDatabricksCredential":{"description":"Databricks credential data source\n","inputs":{"description":"A collection of arguments for invoking getDatabricksCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getDatabricksCredential.\n","properties":{"adapterType":{"description":"The type of the adapter (databricks or spark)\n","type":"string"},"catalog":{"description":"The catalog where to create models\n","type":"string"},"credentialId":{"description":"Credential ID\n","type":"integer"},"id":{"description":"The ID of this resource. Contains the project ID and the credential ID.\n","type":"string"},"numThreads":{"description":"The number of threads to use\n","type":"integer"},"projectId":{"description":"Project ID\n","type":"integer"},"schema":{"description":"The schema where to create models\n","type":"string"},"targetName":{"description":"Target name\n","type":"string"}},"required":["adapterType","catalog","credentialId","id","numThreads","projectId","schema","targetName"],"type":"object"}},"dbtcloud:index/getEnvironment:getEnvironment":{"description":"Retrieve data for a single environment\n","inputs":{"description":"A collection of arguments for invoking getEnvironment.\n","properties":{"environmentId":{"type":"integer","description":"The ID of the environment\n"},"projectId":{"type":"integer","description":"The project ID to which the environment belongs\n"}},"type":"object","required":["environmentId","projectId"]},"outputs":{"description":"A collection of values returned by getEnvironment.\n","properties":{"connectionId":{"description":"The ID of the connection to use (can be the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e of a \u003cspan pulumi-lang-nodejs=\"`dbtcloud.GlobalConnection`\" pulumi-lang-dotnet=\"`dbtcloud.GlobalConnection`\" pulumi-lang-go=\"`GlobalConnection`\" pulumi-lang-python=\"`GlobalConnection`\" pulumi-lang-yaml=\"`dbtcloud.GlobalConnection`\" pulumi-lang-java=\"`dbtcloud.GlobalConnection`\"\u003e`dbtcloud.GlobalConnection`\u003c/span\u003e or the \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e of a legacy connection). At the moment, it is optional and the environment will use the connection set in \u003cspan pulumi-lang-nodejs=\"`dbtcloudProjectConnection`\" pulumi-lang-dotnet=\"`DbtcloudProjectConnection`\" pulumi-lang-go=\"`dbtcloudProjectConnection`\" pulumi-lang-python=\"`dbtcloud_project_connection`\" pulumi-lang-yaml=\"`dbtcloudProjectConnection`\" pulumi-lang-java=\"`dbtcloudProjectConnection`\"\u003e`dbtcloud_project_connection`\u003c/span\u003e if \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e is not set in this resource. In future versions this field will become required, so it is recommended to set it from now on. When configuring this field, it needs to be configured for all the environments of the project. To avoid Terraform state issues, when using this field, the \u003cspan pulumi-lang-nodejs=\"`dbtcloudProjectConnection`\" pulumi-lang-dotnet=\"`DbtcloudProjectConnection`\" pulumi-lang-go=\"`dbtcloudProjectConnection`\" pulumi-lang-python=\"`dbtcloud_project_connection`\" pulumi-lang-yaml=\"`dbtcloudProjectConnection`\" pulumi-lang-java=\"`dbtcloudProjectConnection`\"\u003e`dbtcloud_project_connection`\u003c/span\u003e resource should be removed from the project or you need to make sure that the \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e is the same in \u003cspan pulumi-lang-nodejs=\"`dbtcloudProjectConnection`\" pulumi-lang-dotnet=\"`DbtcloudProjectConnection`\" pulumi-lang-go=\"`dbtcloudProjectConnection`\" pulumi-lang-python=\"`dbtcloud_project_connection`\" pulumi-lang-yaml=\"`dbtcloudProjectConnection`\" pulumi-lang-java=\"`dbtcloudProjectConnection`\"\u003e`dbtcloud_project_connection`\u003c/span\u003e and in the \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e of the Development environment of the project\n","type":"integer"},"credentialsId":{"description":"Credential ID for this environment. A credential is not required for development environments, as dbt Cloud defaults to the user's credentials, but deployment environments will have this.\n","type":"integer"},"customBranch":{"description":"The custom branch name to use\n","type":"string"},"dbtVersion":{"description":"Version number of dbt to use in this environment.\n","type":"string"},"deploymentType":{"description":"The type of deployment environment (currently 'production', 'staging' or empty)\n","type":"string"},"enableModelQueryHistory":{"description":"Whether model query history is on\n","type":"boolean"},"environmentId":{"description":"The ID of the environment\n","type":"integer"},"extendedAttributesId":{"description":"The ID of the extended attributes applied\n","type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the environment\n","type":"string"},"primaryProfileId":{"description":"The ID of the primary profile for this environment\n","type":"integer"},"projectId":{"description":"The project ID to which the environment belongs\n","type":"integer"},"type":{"description":"The type of environment (must be either development or deployment)\n","type":"string"},"useCustomBranch":{"description":"Whether to use a custom git branch in this environment\n","type":"boolean"}},"required":["connectionId","credentialsId","customBranch","dbtVersion","deploymentType","enableModelQueryHistory","environmentId","extendedAttributesId","name","primaryProfileId","projectId","type","useCustomBranch","id"],"type":"object"}},"dbtcloud:index/getEnvironmentVariable:getEnvironmentVariable":{"description":"Environment variable credential data source\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myVar = dbtcloud.getEnvironmentVariable({\n    projectId: 70403103985068,\n    name: \"DBT_MY_PARTIAL_VAR\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_var = dbtcloud.get_environment_variable(project_id=70403103985068,\n    name=\"DBT_MY_PARTIAL_VAR\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myVar = DbtCloud.GetEnvironmentVariable.Invoke(new()\n    {\n        ProjectId = 70403103985068,\n        Name = \"DBT_MY_PARTIAL_VAR\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupEnvironmentVariable(ctx, \u0026dbtcloud.LookupEnvironmentVariableArgs{\n\t\t\tProjectId: 70403103985068,\n\t\t\tName:      \"DBT_MY_PARTIAL_VAR\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetEnvironmentVariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myVar = DbtcloudFunctions.getEnvironmentVariable(GetEnvironmentVariableArgs.builder()\n            .projectId(70403103985068)\n            .name(\"DBT_MY_PARTIAL_VAR\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myVar:\n    fn::invoke:\n      function: dbtcloud:getEnvironmentVariable\n      arguments:\n        projectId: '70403103985068'\n        name: DBT_MY_PARTIAL_VAR\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnvironmentVariable.\n","properties":{"name":{"type":"string","description":"Name for the variable, must be unique within a project, must be prefixed with 'DBT_'\n"},"projectId":{"type":"integer","description":"Project ID to create the environment variable in\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getEnvironmentVariable.\n","properties":{"environmentValues":{"additionalProperties":{"type":"string"},"description":"Map from environment names to respective variable value, a special key \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e should be set for the project default variable value. This field is not set as sensitive so take precautions when using secret environment variables.\n","type":"object"},"id":{"description":"The ID of this resource. Contains the project ID and the environment variable ID.\n","type":"string"},"name":{"description":"Name for the variable, must be unique within a project, must be prefixed with 'DBT_'\n","type":"string"},"projectId":{"description":"Project ID to create the environment variable in\n","type":"integer"}},"required":["environmentValues","id","name","projectId"],"type":"object"}},"dbtcloud:index/getEnvironments:getEnvironments":{"description":"Retrieve data for multiple environments\n","inputs":{"description":"A collection of arguments for invoking getEnvironments.\n","properties":{"projectId":{"type":"integer","description":"The project ID to filter the environments for [Optional]\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEnvironments.\n","properties":{"environments":{"description":"The list of environments\n","items":{"$ref":"#/types/dbtcloud:index/getEnvironmentsEnvironment:getEnvironmentsEnvironment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"The project ID to filter the environments for [Optional]\n","type":"integer"}},"required":["environments","id"],"type":"object"}},"dbtcloud:index/getExtendedAttributes:getExtendedAttributes":{"description":"Extended attributes data source\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myExtendedAttributes = dbtcloud.getExtendedAttributes({\n    extendedAttributesId: 12345,\n    projectId: 6789,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_extended_attributes = dbtcloud.get_extended_attributes(extended_attributes_id=12345,\n    project_id=6789)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myExtendedAttributes = DbtCloud.GetExtendedAttributes.Invoke(new()\n    {\n        ExtendedAttributesId = 12345,\n        ProjectId = 6789,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupExtendedAttributes(ctx, \u0026dbtcloud.LookupExtendedAttributesArgs{\n\t\t\tExtendedAttributesId: 12345,\n\t\t\tProjectId:            6789,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetExtendedAttributesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myExtendedAttributes = DbtcloudFunctions.getExtendedAttributes(GetExtendedAttributesArgs.builder()\n            .extendedAttributesId(12345)\n            .projectId(6789)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myExtendedAttributes:\n    fn::invoke:\n      function: dbtcloud:getExtendedAttributes\n      arguments:\n        extendedAttributesId: 12345\n        projectId: 6789\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getExtendedAttributes.\n","properties":{"extendedAttributesId":{"type":"integer","description":"Extended attributes ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["extendedAttributesId","projectId"]},"outputs":{"description":"A collection of values returned by getExtendedAttributes.\n","properties":{"extendedAttributes":{"description":"Extended attributes\n","type":"string"},"extendedAttributesId":{"description":"Extended attributes ID\n","type":"integer"},"id":{"description":"The ID of this resource. Contains the project ID and the credential ID.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"integer"},"state":{"description":"The state of the extended attributes (1 = active, 2 = inactive)\n","type":"integer"}},"required":["extendedAttributes","extendedAttributesId","id","projectId","state"],"type":"object"}},"dbtcloud:index/getGlobalConnection:getGlobalConnection":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myConnection = dbtcloud.getGlobalConnection({\n    id: 1234,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_connection = dbtcloud.get_global_connection(id=1234)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myConnection = DbtCloud.GetGlobalConnection.Invoke(new()\n    {\n        Id = 1234,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupGlobalConnection(ctx, \u0026dbtcloud.LookupGlobalConnectionArgs{\n\t\t\tId: 1234,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetGlobalConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myConnection = DbtcloudFunctions.getGlobalConnection(GetGlobalConnectionArgs.builder()\n            .id(1234)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myConnection:\n    fn::invoke:\n      function: dbtcloud:getGlobalConnection\n      arguments:\n        id: 1234\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGlobalConnection.\n","properties":{"id":{"type":"integer","description":"Connection Identifier\n"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getGlobalConnection.\n","properties":{"adapterVersion":{"description":"Version of the adapter\n","type":"string"},"apacheSpark":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionApacheSpark:getGlobalConnectionApacheSpark","description":"Apache Spark connection configuration.\n"},"athena":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionAthena:getGlobalConnectionAthena","description":"Athena connection configuration.\n"},"bigquery":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionBigquery:getGlobalConnectionBigquery"},"databricks":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionDatabricks:getGlobalConnectionDatabricks","description":"Databricks connection configuration\n"},"fabric":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionFabric:getGlobalConnectionFabric","description":"Microsoft Fabric connection configuration.\n"},"id":{"description":"Connection Identifier\n","type":"integer"},"isSshTunnelEnabled":{"description":"Whether the connection can use an SSH tunnel\n","type":"boolean"},"name":{"description":"Connection name\n","type":"string"},"oauthConfigurationId":{"type":"integer"},"postgres":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionPostgres:getGlobalConnectionPostgres","description":"PostgreSQL connection configuration.\n"},"privateLinkEndpointId":{"description":"Private Link Endpoint ID. This ID can be found using the \u003cspan pulumi-lang-nodejs=\"`privatelinkEndpoint`\" pulumi-lang-dotnet=\"`PrivatelinkEndpoint`\" pulumi-lang-go=\"`privatelinkEndpoint`\" pulumi-lang-python=\"`privatelink_endpoint`\" pulumi-lang-yaml=\"`privatelinkEndpoint`\" pulumi-lang-java=\"`privatelinkEndpoint`\"\u003e`privatelink_endpoint`\u003c/span\u003e data source\n","type":"string"},"redshift":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionRedshift:getGlobalConnectionRedshift","description":"Redshift connection configuration\n"},"salesforce":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionSalesforce:getGlobalConnectionSalesforce","description":"Salesforce connection configuration.\n"},"snowflake":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionSnowflake:getGlobalConnectionSnowflake","description":"Snowflake connection configuration\n"},"starburst":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionStarburst:getGlobalConnectionStarburst","description":"Starburst/Trino connection configuration.\n"},"synapse":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionSynapse:getGlobalConnectionSynapse","description":"Azure Synapse Analytics connection configuration.\n"},"teradata":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionTeradata:getGlobalConnectionTeradata","description":"Teradata connection configuration.\n"}},"required":["adapterVersion","apacheSpark","athena","bigquery","databricks","fabric","id","isSshTunnelEnabled","name","oauthConfigurationId","postgres","privateLinkEndpointId","redshift","salesforce","snowflake","starburst","synapse","teradata"],"type":"object"}},"dbtcloud:index/getGlobalConnections:getGlobalConnections":{"description":"All the connections created on the account with some summary information, like their name, type, when they were created/updated and the number of environments using them.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myConnections = dbtcloud.getGlobalConnections({});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_connections = dbtcloud.get_global_connections()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myConnections = DbtCloud.GetGlobalConnections.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.GetGlobalConnections(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myConnections = DbtcloudFunctions.getGlobalConnections(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  myConnections:\n    fn::invoke:\n      function: dbtcloud:getGlobalConnections\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getGlobalConnections.\n","properties":{"connections":{"description":"A list of all the connections\n","items":{"$ref":"#/types/dbtcloud:index/getGlobalConnectionsConnection:getGlobalConnectionsConnection"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"}},"required":["connections","id"],"type":"object"}},"dbtcloud:index/getGroup:getGroup":{"description":"Retrieve group details\n","inputs":{"description":"A collection of arguments for invoking getGroup.\n","properties":{"groupId":{"type":"integer","description":"The ID of the group\n"}},"type":"object","required":["groupId"]},"outputs":{"description":"A collection of values returned by getGroup.\n","properties":{"assignByDefault":{"description":"Whether the group will be assigned by default to users. The value needs to be the same for all partial permissions for the same group.\n","type":"boolean"},"groupId":{"description":"The ID of the group\n","type":"integer"},"groupPermissions":{"description":"Partial permissions for the group. Those permissions will be added/removed when config is added/removed.\n","items":{"$ref":"#/types/dbtcloud:index/getGroupGroupPermission:getGroupGroupPermission"},"type":"array"},"id":{"description":"The ID of this resource\n","type":"integer"},"name":{"description":"Group name\n","type":"string"},"ssoMappingGroups":{"description":"SSO mapping group names for this group\n","items":{"type":"string"},"type":"array"}},"required":["assignByDefault","groupId","groupPermissions","id","name","ssoMappingGroups"],"type":"object"}},"dbtcloud:index/getGroupUsers:getGroupUsers":{"description":"Databricks credential data source\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myGroupUsers = dbtcloud.getGroupUsers({\n    groupId: 1234,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_group_users = dbtcloud.get_group_users(group_id=1234)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myGroupUsers = DbtCloud.GetGroupUsers.Invoke(new()\n    {\n        GroupId = 1234,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.GetGroupUsers(ctx, \u0026dbtcloud.GetGroupUsersArgs{\n\t\t\tGroupId: 1234,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetGroupUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myGroupUsers = DbtcloudFunctions.getGroupUsers(GetGroupUsersArgs.builder()\n            .groupId(1234)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myGroupUsers:\n    fn::invoke:\n      function: dbtcloud:getGroupUsers\n      arguments:\n        groupId: 1234\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroupUsers.\n","properties":{"groupId":{"type":"integer","description":"ID of the group\n"}},"type":"object","required":["groupId"]},"outputs":{"description":"A collection of values returned by getGroupUsers.\n","properties":{"groupId":{"description":"ID of the group\n","type":"integer"},"id":{"description":"The ID of this resource. Contains the project ID and the credential ID.\n","type":"string"},"users":{"description":"List of users (map of ID and email) in the group\n","items":{"$ref":"#/types/dbtcloud:index/getGroupUsersUser:getGroupUsersUser"},"type":"array"}},"required":["groupId","id","users"],"type":"object"}},"dbtcloud:index/getGroups:getGroups":{"description":"Retrieve all groups in the account with optional filtering\n","inputs":{"description":"A collection of arguments for invoking getGroups.\n","properties":{"name":{"type":"string","description":"Filter groups by exact name match\n"},"nameContains":{"type":"string","description":"Filter groups by partial name match (case insensitive)\n"},"state":{"type":"string","description":"Filter groups by state. Accepts both string and integer formats: 'active'/'1' for active resources, 'deleted'/'2' for deleted resources, 'all' for all resources. Defaults to active groups only if not specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"groups":{"description":"Set of groups in the account\n","items":{"$ref":"#/types/dbtcloud:index/getGroupsGroup:getGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"Filter groups by exact name match\n","type":"string"},"nameContains":{"description":"Filter groups by partial name match (case insensitive)\n","type":"string"},"state":{"description":"Filter groups by state. Accepts both string and integer formats: 'active'/'1' for active resources, 'deleted'/'2' for deleted resources, 'all' for all resources. Defaults to active groups only if not specified.\n","type":"string"}},"required":["groups","id"],"type":"object"}},"dbtcloud:index/getJob:getJob":{"description":"Get detailed information for a specific dbt Cloud job.\n","inputs":{"description":"A collection of arguments for invoking getJob.\n","properties":{"jobCompletionTriggerConditions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/getJobJobCompletionTriggerCondition:getJobJobCompletionTriggerCondition"},"description":"Which other job should trigger this job when it finishes, and on which conditions. Format for the property will change in the next release to match the one from the one from dbtcloud*jobs.\n","language":{"csharp":{"name":"CompletionTriggerCondition"}}},"jobId":{"type":"integer","description":"The ID of the job\n"}},"type":"object","required":["jobId"]},"outputs":{"description":"A collection of values returned by getJob.\n","properties":{"dbtVersion":{"description":"The version of dbt used for the job. If not set, the environment version will be used.\n","type":"string"},"deferringEnvironmentId":{"description":"The ID of the environment this job defers to\n","type":"integer"},"deferringJobId":{"deprecationMessage":"Deferral is now set at the environment level","description":"[Deprectated - Deferral is now set at the environment level] The ID of the job definition this job defers to\n","type":"integer"},"description":{"description":"The description of the job\n","type":"string"},"environment":{"$ref":"#/types/dbtcloud:index/getJobEnvironment:getJobEnvironment","description":"Details of the environment the job is running in\n"},"environmentId":{"description":"The ID of environment\n","type":"integer"},"executeSteps":{"description":"The list of steps to run in the job\n","items":{"type":"string"},"type":"array"},"execution":{"$ref":"#/types/dbtcloud:index/getJobExecution:getJobExecution"},"forceNodeSelection":{"description":"Whether force node selection (SAO) is enabled for this job\n","type":"boolean"},"generateDocs":{"description":"Whether the job generate docs\n","type":"boolean"},"id":{"description":"The ID of the job\n","type":"integer"},"jobCompletionTriggerConditions":{"description":"Which other job should trigger this job when it finishes, and on which conditions. Format for the property will change in the next release to match the one from the one from dbtcloud*jobs.\n","items":{"$ref":"#/types/dbtcloud:index/getJobJobCompletionTriggerCondition:getJobJobCompletionTriggerCondition"},"language":{"csharp":{"name":"CompletionTriggerCondition"}},"type":"array"},"jobId":{"description":"The ID of the job\n","type":"integer"},"jobType":{"description":"The type of job (e.g. CI, scheduled)\n","type":"string"},"name":{"description":"The name of the job\n","type":"string"},"projectId":{"description":"The ID of the project\n","type":"integer"},"runCompareChanges":{"description":"Whether the job should compare data changes introduced by the code change in the PR\n","type":"boolean"},"runGenerateSources":{"description":"Whether the job test source freshness\n","type":"boolean"},"schedule":{"$ref":"#/types/dbtcloud:index/getJobSchedule:getJobSchedule"},"selfDeferring":{"description":"Whether this job defers on a previous run of itself (overrides value in deferring*job*id)\n","type":"boolean"},"settings":{"$ref":"#/types/dbtcloud:index/getJobSettings:getJobSettings"},"timeoutSeconds":{"deprecationMessage":"Moved to execution.timeout_seconds","description":"[Deprectated - Moved to execution.timeout_seconds] Number of seconds before the job times out\n","type":"integer"},"triggers":{"$ref":"#/types/dbtcloud:index/getJobTriggers:getJobTriggers"},"triggersOnDraftPr":{"description":"Whether the CI job should be automatically triggered on draft PRs\n","type":"boolean"}},"required":["dbtVersion","deferringEnvironmentId","deferringJobId","description","environment","environmentId","executeSteps","execution","forceNodeSelection","generateDocs","id","jobCompletionTriggerConditions","jobId","jobType","name","projectId","runCompareChanges","runGenerateSources","schedule","selfDeferring","settings","timeoutSeconds","triggers","triggersOnDraftPr"],"type":"object"}},"dbtcloud:index/getJobs:getJobs":{"description":"Retrieve all the jobs for a given dbt Cloud project or environment along with the environment details for the jobs. This will return both the jobs created from Terraform but also the jobs created in the dbt Cloud UI.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// we can search all jobs by project\nconst testAllJobsInProject = dbtcloud.getJobs({\n    projectId: 1234,\n});\n// or by environment\nconst testAllJobsInEnvironment = dbtcloud.getJobs({\n    environmentId: 1234,\n});\nconst myJobsProd = testAllJobsInProject.then(testAllJobsInProject =\u003e .filter(job =\u003e job.environment?.deploymentType == \"production\").map(job =\u003e (job)));\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# we can search all jobs by project\ntest_all_jobs_in_project = dbtcloud.get_jobs(project_id=1234)\n# or by environment\ntest_all_jobs_in_environment = dbtcloud.get_jobs(environment_id=1234)\nmy_jobs_prod = [job for job in test_all_jobs_in_project.jobs if job.environment.deployment_type == \"production\"]\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // we can search all jobs by project\n    var testAllJobsInProject = DbtCloud.GetJobs.Invoke(new()\n    {\n        ProjectId = 1234,\n    });\n\n    // or by environment\n    var testAllJobsInEnvironment = DbtCloud.GetJobs.Invoke(new()\n    {\n        EnvironmentId = 1234,\n    });\n\n    var myJobsProd = .Where(job =\u003e job.Environment?.DeploymentType == \"production\").Select(job =\u003e \n    {\n        return job;\n    }).ToList();\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getJobs.\n","properties":{"environmentId":{"type":"integer","description":"The ID of the environment for which we want to retrieve the jobs (one of \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`environmentId`\" pulumi-lang-dotnet=\"`EnvironmentId`\" pulumi-lang-go=\"`environmentId`\" pulumi-lang-python=\"`environment_id`\" pulumi-lang-yaml=\"`environmentId`\" pulumi-lang-java=\"`environmentId`\"\u003e`environment_id`\u003c/span\u003e must be set)\n"},"projectId":{"type":"integer","description":"The ID of the project for which we want to retrieve the jobs (one of \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`environmentId`\" pulumi-lang-dotnet=\"`EnvironmentId`\" pulumi-lang-go=\"`environmentId`\" pulumi-lang-python=\"`environment_id`\" pulumi-lang-yaml=\"`environmentId`\" pulumi-lang-java=\"`environmentId`\"\u003e`environment_id`\u003c/span\u003e must be set)\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getJobs.\n","properties":{"environmentId":{"description":"The ID of the environment for which we want to retrieve the jobs (one of \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`environmentId`\" pulumi-lang-dotnet=\"`EnvironmentId`\" pulumi-lang-go=\"`environmentId`\" pulumi-lang-python=\"`environment_id`\" pulumi-lang-yaml=\"`environmentId`\" pulumi-lang-java=\"`environmentId`\"\u003e`environment_id`\u003c/span\u003e must be set)\n","type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"jobs":{"description":"Set of jobs with their details\n","items":{"$ref":"#/types/dbtcloud:index/getJobsJob:getJobsJob"},"type":"array"},"projectId":{"description":"The ID of the project for which we want to retrieve the jobs (one of \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`environmentId`\" pulumi-lang-dotnet=\"`EnvironmentId`\" pulumi-lang-go=\"`environmentId`\" pulumi-lang-python=\"`environment_id`\" pulumi-lang-yaml=\"`environmentId`\" pulumi-lang-java=\"`environmentId`\"\u003e`environment_id`\u003c/span\u003e must be set)\n","type":"integer"}},"required":["jobs","id"],"type":"object"}},"dbtcloud:index/getModelNotifications:getModelNotifications":{"description":"Get model notifications configuration for a dbt Cloud environment\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst prodModelNotifications = dbtcloud.getModelNotifications({\n    environmentId: prodEnvironment.environmentId,\n});\nconst qaModelNotifications = dbtcloud.getModelNotifications({\n    environmentId: \"12345\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nprod_model_notifications = dbtcloud.get_model_notifications(environment_id=prod_environment[\"environmentId\"])\nqa_model_notifications = dbtcloud.get_model_notifications(environment_id=\"12345\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var prodModelNotifications = DbtCloud.GetModelNotifications.Invoke(new()\n    {\n        EnvironmentId = prodEnvironment.EnvironmentId,\n    });\n\n    var qaModelNotifications = DbtCloud.GetModelNotifications.Invoke(new()\n    {\n        EnvironmentId = \"12345\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupModelNotifications(ctx, \u0026dbtcloud.LookupModelNotificationsArgs{\n\t\t\tEnvironmentId: prodEnvironment.EnvironmentId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.LookupModelNotifications(ctx, \u0026dbtcloud.LookupModelNotificationsArgs{\n\t\t\tEnvironmentId: \"12345\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetModelNotificationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var prodModelNotifications = DbtcloudFunctions.getModelNotifications(GetModelNotificationsArgs.builder()\n            .environmentId(prodEnvironment.environmentId())\n            .build());\n\n        final var qaModelNotifications = DbtcloudFunctions.getModelNotifications(GetModelNotificationsArgs.builder()\n            .environmentId(\"12345\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  prodModelNotifications:\n    fn::invoke:\n      function: dbtcloud:getModelNotifications\n      arguments:\n        environmentId: ${prodEnvironment.environmentId}\n  qaModelNotifications:\n    fn::invoke:\n      function: dbtcloud:getModelNotifications\n      arguments:\n        environmentId: 12345\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getModelNotifications.\n","properties":{"environmentId":{"type":"string","description":"The ID of the dbt Cloud environment\n"}},"type":"object","required":["environmentId"]},"outputs":{"description":"A collection of values returned by getModelNotifications.\n","properties":{"enabled":{"description":"Whether model notifications are enabled for this environment\n","type":"boolean"},"environmentId":{"description":"The ID of the dbt Cloud environment\n","type":"string"},"id":{"description":"The internal ID of the model notifications configuration\n","type":"integer"},"onFailure":{"description":"Whether to send notifications for failed model runs\n","type":"boolean"},"onSkipped":{"description":"Whether to send notifications for skipped model runs\n","type":"boolean"},"onSuccess":{"description":"Whether to send notifications for successful model runs\n","type":"boolean"},"onWarning":{"description":"Whether to send notifications for model runs with warnings\n","type":"boolean"}},"required":["enabled","environmentId","id","onFailure","onSkipped","onSuccess","onWarning"],"type":"object"}},"dbtcloud:index/getNotification:getNotification":{"description":"Retrieve notification details\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myNotification = dbtcloud.getNotification({\n    notificationId: 12345,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_notification = dbtcloud.get_notification(notification_id=12345)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myNotification = DbtCloud.GetNotification.Invoke(new()\n    {\n        NotificationId = 12345,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupNotification(ctx, \u0026dbtcloud.LookupNotificationArgs{\n\t\t\tNotificationId: 12345,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetNotificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myNotification = DbtcloudFunctions.getNotification(GetNotificationArgs.builder()\n            .notificationId(12345)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myNotification:\n    fn::invoke:\n      function: dbtcloud:getNotification\n      arguments:\n        notificationId: 12345\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNotification.\n","properties":{"notificationId":{"type":"integer","description":"The ID of the notification\n"}},"type":"object","required":["notificationId"]},"outputs":{"description":"A collection of values returned by getNotification.\n","properties":{"externalEmail":{"description":"The external email to receive the notification\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"notificationId":{"description":"The ID of the notification\n","type":"integer"},"notificationType":{"description":"Type of notification (1 = dbt Cloud user email (default): does not require an\u003cspan pulumi-lang-nodejs=\" externalEmail \" pulumi-lang-dotnet=\" ExternalEmail \" pulumi-lang-go=\" externalEmail \" pulumi-lang-python=\" external_email \" pulumi-lang-yaml=\" externalEmail \" pulumi-lang-java=\" externalEmail \"\u003e external_email \u003c/span\u003e; 2 = Slack channel: requires \u003cspan pulumi-lang-nodejs=\"`slackChannelId`\" pulumi-lang-dotnet=\"`SlackChannelId`\" pulumi-lang-go=\"`slackChannelId`\" pulumi-lang-python=\"`slack_channel_id`\" pulumi-lang-yaml=\"`slackChannelId`\" pulumi-lang-java=\"`slackChannelId`\"\u003e`slack_channel_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slackChannelName`\" pulumi-lang-dotnet=\"`SlackChannelName`\" pulumi-lang-go=\"`slackChannelName`\" pulumi-lang-python=\"`slack_channel_name`\" pulumi-lang-yaml=\"`slackChannelName`\" pulumi-lang-java=\"`slackChannelName`\"\u003e`slack_channel_name`\u003c/span\u003e ; 4 = external email: requires setting an \u003cspan pulumi-lang-nodejs=\"`externalEmail`\" pulumi-lang-dotnet=\"`ExternalEmail`\" pulumi-lang-go=\"`externalEmail`\" pulumi-lang-python=\"`external_email`\" pulumi-lang-yaml=\"`externalEmail`\" pulumi-lang-java=\"`externalEmail`\"\u003e`external_email`\u003c/span\u003e)\n","type":"integer"},"onCancels":{"description":"List of job IDs to trigger the webhook on cancel\n","items":{"type":"integer"},"type":"array"},"onFailures":{"description":"List of job IDs to trigger the webhook on failure\n","items":{"type":"integer"},"type":"array"},"onSuccesses":{"description":"List of job IDs to trigger the webhook on success\n","items":{"type":"integer"},"type":"array"},"onWarnings":{"description":"List of job IDs to trigger the webhook on warning\n","items":{"type":"integer"},"type":"array"},"slackChannelId":{"description":"The ID of the Slack channel to receive the notification. It can be found at the bottom of the Slack channel settings\n","type":"string"},"slackChannelName":{"description":"The name of the slack channel\n","type":"string"},"state":{"description":"State of the notification (1 = active (default), 2 = inactive)\n","type":"integer"},"userId":{"description":"Internal dbt Cloud User ID. Must be the\u003cspan pulumi-lang-nodejs=\" userId \" pulumi-lang-dotnet=\" UserId \" pulumi-lang-go=\" userId \" pulumi-lang-python=\" user_id \" pulumi-lang-yaml=\" userId \" pulumi-lang-java=\" userId \"\u003e user_id \u003c/span\u003efor an existing user even if the notification is an external one\n","type":"integer"}},"required":["externalEmail","notificationId","notificationType","onCancels","onFailures","onSuccesses","onWarnings","slackChannelId","slackChannelName","state","userId","id"],"type":"object"}},"dbtcloud:index/getPostgresCredential:getPostgresCredential":{"description":"Postgres credential data source.\n","inputs":{"description":"A collection of arguments for invoking getPostgresCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getPostgresCredential.\n","properties":{"credentialId":{"description":"Credential ID\n","type":"integer"},"defaultSchema":{"description":"Default schema name\n","type":"string"},"id":{"description":"The ID of this data source. Contains the project ID and the credential ID.\n","type":"string"},"isActive":{"description":"Whether the Postgres credential is active\n","type":"boolean"},"numThreads":{"description":"Number of threads to use\n","type":"integer"},"projectId":{"description":"Project ID\n","type":"integer"},"username":{"description":"Username for Postgres\n","type":"string"}},"required":["credentialId","defaultSchema","id","isActive","numThreads","projectId","username"],"type":"object"}},"dbtcloud:index/getPrivatelinkEndpoint:getPrivatelinkEndpoint":{"description":"Privatelink endpoint data source.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst testWithName = dbtcloud.getPrivatelinkEndpoint({\n    name: \"My Endpoint Name\",\n});\nconst testWithUrl = dbtcloud.getPrivatelinkEndpoint({\n    privateLinkEndpointUrl: \"abc.privatelink.def.com\",\n});\n// in case multiple endpoints have the same name or URL\nconst testWithNameAndUrl = dbtcloud.getPrivatelinkEndpoint({\n    name: \"My Endpoint Name\",\n    privateLinkEndpointUrl: \"abc.privatelink.def.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\ntest_with_name = dbtcloud.get_privatelink_endpoint(name=\"My Endpoint Name\")\ntest_with_url = dbtcloud.get_privatelink_endpoint(private_link_endpoint_url=\"abc.privatelink.def.com\")\n# in case multiple endpoints have the same name or URL\ntest_with_name_and_url = dbtcloud.get_privatelink_endpoint(name=\"My Endpoint Name\",\n    private_link_endpoint_url=\"abc.privatelink.def.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testWithName = DbtCloud.GetPrivatelinkEndpoint.Invoke(new()\n    {\n        Name = \"My Endpoint Name\",\n    });\n\n    var testWithUrl = DbtCloud.GetPrivatelinkEndpoint.Invoke(new()\n    {\n        PrivateLinkEndpointUrl = \"abc.privatelink.def.com\",\n    });\n\n    // in case multiple endpoints have the same name or URL\n    var testWithNameAndUrl = DbtCloud.GetPrivatelinkEndpoint.Invoke(new()\n    {\n        Name = \"My Endpoint Name\",\n        PrivateLinkEndpointUrl = \"abc.privatelink.def.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.GetPrivatelinkEndpoint(ctx, \u0026dbtcloud.GetPrivatelinkEndpointArgs{\n\t\t\tName: pulumi.StringRef(\"My Endpoint Name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbtcloud.GetPrivatelinkEndpoint(ctx, \u0026dbtcloud.GetPrivatelinkEndpointArgs{\n\t\t\tPrivateLinkEndpointUrl: pulumi.StringRef(\"abc.privatelink.def.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// in case multiple endpoints have the same name or URL\n\t\t_, err = dbtcloud.GetPrivatelinkEndpoint(ctx, \u0026dbtcloud.GetPrivatelinkEndpointArgs{\n\t\t\tName:                   pulumi.StringRef(\"My Endpoint Name\"),\n\t\t\tPrivateLinkEndpointUrl: pulumi.StringRef(\"abc.privatelink.def.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetPrivatelinkEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var testWithName = DbtcloudFunctions.getPrivatelinkEndpoint(GetPrivatelinkEndpointArgs.builder()\n            .name(\"My Endpoint Name\")\n            .build());\n\n        final var testWithUrl = DbtcloudFunctions.getPrivatelinkEndpoint(GetPrivatelinkEndpointArgs.builder()\n            .privateLinkEndpointUrl(\"abc.privatelink.def.com\")\n            .build());\n\n        // in case multiple endpoints have the same name or URL\n        final var testWithNameAndUrl = DbtcloudFunctions.getPrivatelinkEndpoint(GetPrivatelinkEndpointArgs.builder()\n            .name(\"My Endpoint Name\")\n            .privateLinkEndpointUrl(\"abc.privatelink.def.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  testWithName:\n    fn::invoke:\n      function: dbtcloud:getPrivatelinkEndpoint\n      arguments:\n        name: My Endpoint Name\n  testWithUrl:\n    fn::invoke:\n      function: dbtcloud:getPrivatelinkEndpoint\n      arguments:\n        privateLinkEndpointUrl: abc.privatelink.def.com\n  # in case multiple endpoints have the same name or URL\n  testWithNameAndUrl:\n    fn::invoke:\n      function: dbtcloud:getPrivatelinkEndpoint\n      arguments:\n        name: My Endpoint Name\n        privateLinkEndpointUrl: abc.privatelink.def.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivatelinkEndpoint.\n","properties":{"name":{"type":"string","description":"Given descriptive name for the PrivateLink Endpoint (name and/or private*link*endpoint_url need to be provided to return data for the datasource)\n"},"privateLinkEndpointUrl":{"type":"string","description":"URL of the PrivateLink Endpoint (name and/or private*link*endpoint_url need to be provided to return data for the datasource)\n"},"type":{"type":"string","description":"Type of the PrivateLink Endpoint\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPrivatelinkEndpoint.\n","properties":{"cidrRange":{"description":"CIDR range of the PrivateLink Endpoint\n","type":"string"},"id":{"description":"The internal ID of the PrivateLink Endpoint\n","type":"string"},"name":{"description":"Given descriptive name for the PrivateLink Endpoint (name and/or private*link*endpoint_url need to be provided to return data for the datasource)\n","type":"string"},"privateLinkEndpointUrl":{"description":"URL of the PrivateLink Endpoint (name and/or private*link*endpoint_url need to be provided to return data for the datasource)\n","type":"string"},"type":{"description":"Type of the PrivateLink Endpoint\n","type":"string"}},"required":["cidrRange","id","type"],"type":"object"}},"dbtcloud:index/getPrivatelinkEndpoints:getPrivatelinkEndpoints":{"description":"Retrieve information about all PrivateLink endpoints in the dbt Cloud account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nexport = async () =\u003e {\n    const all = await dbtcloud.getPrivatelinkEndpoints({});\n    const snowflakeEndpoint = .filter(endpoint =\u003e endpoint.name == \"Snowflake Production Endpoint\").map(endpoint =\u003e (endpoint))[0];\n    // Use the endpoint in a global connection\n    const snowflake = new dbtcloud.GlobalConnection(\"snowflake\", {\n        name: \"Snowflake via PrivateLink\",\n        privateLinkEndpointId: snowflakeEndpoint.id,\n        snowflake: {\n            account: \"my-snowflake-account\",\n            database: \"ANALYTICS\",\n            warehouse: \"COMPUTE_WH\",\n        },\n    });\n    const snowflakeEndpoints = .filter(endpoint =\u003e endpoint.type == \"snowflake\").map(endpoint =\u003e (endpoint));\n    // Create connections for all Snowflake endpoints\n    const snowflakeConnections: dbtcloud.GlobalConnection[] = [];\n    for (const range of Object.entries(.reduce((__obj, ep) =\u003e ({ ...__obj, [ep.id]: ep }))).map(([k, v]) =\u003e ({key: k, value: v}))) {\n        snowflakeConnections.push(new dbtcloud.GlobalConnection(`snowflake_connections-${range.key}`, {\n            name: `Connection for ${range.value.name}`,\n            privateLinkEndpointId: range.value.id,\n            snowflake: {\n                account: \"my-account\",\n                database: \"ANALYTICS\",\n                warehouse: \"COMPUTE_WH\",\n            },\n        }));\n    }\n}\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nall = dbtcloud.get_privatelink_endpoints()\nsnowflake_endpoint = [endpoint for endpoint in all.endpoints if endpoint.name == \"Snowflake Production Endpoint\"][0]\n# Use the endpoint in a global connection\nsnowflake = dbtcloud.GlobalConnection(\"snowflake\",\n    name=\"Snowflake via PrivateLink\",\n    private_link_endpoint_id=snowflake_endpoint.id,\n    snowflake={\n        \"account\": \"my-snowflake-account\",\n        \"database\": \"ANALYTICS\",\n        \"warehouse\": \"COMPUTE_WH\",\n    })\nsnowflake_endpoints = [endpoint for endpoint in all.endpoints if endpoint.type == \"snowflake\"]\n# Create connections for all Snowflake endpoints\nsnowflake_connections = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate({ep.id: ep for ep in snowflake_endpoints})]:\n    snowflake_connections.append(dbtcloud.GlobalConnection(f\"snowflake_connections-{range['key']}\",\n        name=f\"Connection for {range['value'].name}\",\n        private_link_endpoint_id=range[\"value\"].id,\n        snowflake={\n            \"account\": \"my-account\",\n            \"database\": \"ANALYTICS\",\n            \"warehouse\": \"COMPUTE_WH\",\n        }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(async() =\u003e \n{\n    var all = await DbtCloud.GetPrivatelinkEndpoints.InvokeAsync();\n\n    var snowflakeEndpoint = [0];\n\n    // Use the endpoint in a global connection\n    var snowflake = new DbtCloud.GlobalConnection(\"snowflake\", new()\n    {\n        Name = \"Snowflake via PrivateLink\",\n        PrivateLinkEndpointId = snowflakeEndpoint.Id,\n        Snowflake = new DbtCloud.Inputs.GlobalConnectionSnowflakeArgs\n        {\n            Account = \"my-snowflake-account\",\n            Database = \"ANALYTICS\",\n            Warehouse = \"COMPUTE_WH\",\n        },\n    });\n\n    var snowflakeEndpoints = ;\n\n    // Create connections for all Snowflake endpoints\n    var snowflakeConnections = new List\u003cDbtCloud.GlobalConnection\u003e();\n    foreach (var range in .Select(pair =\u003e new { pair.Key, pair.Value }))\n    {\n        snowflakeConnections.Add(new DbtCloud.GlobalConnection($\"snowflake_connections-{range.Key}\", new()\n        {\n            Name = $\"Connection for {range.Value.Name}\",\n            PrivateLinkEndpointId = range.Value.Id,\n            Snowflake = new DbtCloud.Inputs.GlobalConnectionSnowflakeArgs\n            {\n                Account = \"my-account\",\n                Database = \"ANALYTICS\",\n                Warehouse = \"COMPUTE_WH\",\n            },\n        }));\n    }\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getPrivatelinkEndpoints.\n","properties":{"endpoints":{"description":"A list of all PrivateLink endpoints in the account\n","items":{"$ref":"#/types/dbtcloud:index/getPrivatelinkEndpointsEndpoint:getPrivatelinkEndpointsEndpoint"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"}},"required":["endpoints","id"],"type":"object"}},"dbtcloud:index/getProfile:getProfile":{"description":"Retrieve data for a single profile\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myProfile = dbtcloud.getProfile({\n    profileId: 12345,\n    projectId: 6789,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_profile = dbtcloud.get_profile(profile_id=12345,\n    project_id=6789)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myProfile = DbtCloud.GetProfile.Invoke(new()\n    {\n        ProfileId = 12345,\n        ProjectId = 6789,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupProfile(ctx, \u0026dbtcloud.LookupProfileArgs{\n\t\t\tProfileId: 12345,\n\t\t\tProjectId: 6789,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetProfileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myProfile = DbtcloudFunctions.getProfile(GetProfileArgs.builder()\n            .profileId(12345)\n            .projectId(6789)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myProfile:\n    fn::invoke:\n      function: dbtcloud:getProfile\n      arguments:\n        profileId: 12345\n        projectId: 6789\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProfile.\n","properties":{"profileId":{"type":"integer","description":"The ID of the profile\n"},"projectId":{"type":"integer","description":"The project ID to which the profile belongs\n"}},"type":"object","required":["profileId","projectId"]},"outputs":{"description":"A collection of values returned by getProfile.\n","properties":{"connectionId":{"description":"The ID of the connection used by this profile\n","type":"integer"},"credentialsId":{"description":"The ID of the credentials used by this profile\n","type":"integer"},"extendedAttributesId":{"description":"The ID of the extended attributes for this profile\n","type":"integer"},"id":{"description":"The ID of this resource. Contains the project ID and the profile ID.\n","type":"string"},"key":{"description":"Unique identifier for the profile\n","type":"string"},"profileId":{"description":"The ID of the profile\n","type":"integer"},"projectId":{"description":"The project ID to which the profile belongs\n","type":"integer"}},"required":["connectionId","credentialsId","extendedAttributesId","id","key","profileId","projectId"],"type":"object"}},"dbtcloud:index/getProfiles:getProfiles":{"description":"Retrieve data for multiple profiles\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst all = dbtcloud.getProfiles({\n    projectId: 6789,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nall = dbtcloud.get_profiles(project_id=6789)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var all = DbtCloud.GetProfiles.Invoke(new()\n    {\n        ProjectId = 6789,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.GetProfiles(ctx, \u0026dbtcloud.GetProfilesArgs{\n\t\t\tProjectId: 6789,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetProfilesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = DbtcloudFunctions.getProfiles(GetProfilesArgs.builder()\n            .projectId(6789)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: dbtcloud:getProfiles\n      arguments:\n        projectId: 6789\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProfiles.\n","properties":{"projectId":{"type":"integer","description":"The project ID to filter profiles for\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getProfiles.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"profiles":{"description":"The list of profiles\n","items":{"$ref":"#/types/dbtcloud:index/getProfilesProfile:getProfilesProfile"},"type":"array"},"projectId":{"description":"The project ID to filter profiles for\n","type":"integer"}},"required":["profiles","projectId","id"],"type":"object"}},"dbtcloud:index/getProject:getProject":{"description":"Retrieve a specific project from dbt Cloud.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nexport = async () =\u003e {\n    // projects data sources can use the project_id parameter (preferred uniqueness is ensured)\n    const projectById = await dbtcloud.getProject({\n        id: 0,\n    });\n    // or they can use project names\n    // the provider will raise an error if more than one project is found with the same name\n    const projectByName = await dbtcloud.getProject({\n        name: \"Project name\",\n    });\n    const filteredProjects = await dbtcloud.getProjects({\n        nameContains: \"Project\",\n    });\n    const allProjects = await dbtcloud.getProjects({});\n    return {\n        projectIdDetails: projectById,\n        projectNameDetails: projectByName,\n        filteredProjectsCount: filteredProjects.projects.length,\n        filteredProjects: filteredProjects.projects,\n        projectNames: .map(project =\u003e (project.name)),\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# projects data sources can use the project_id parameter (preferred uniqueness is ensured)\nproject_by_id = dbtcloud.get_project(id=0)\n# or they can use project names\n# the provider will raise an error if more than one project is found with the same name\nproject_by_name = dbtcloud.get_project(name=\"Project name\")\nfiltered_projects = dbtcloud.get_projects(name_contains=\"Project\")\nall_projects = dbtcloud.get_projects()\npulumi.export(\"projectIdDetails\", project_by_id)\npulumi.export(\"projectNameDetails\", project_by_name)\npulumi.export(\"filteredProjectsCount\", len(filtered_projects.projects))\npulumi.export(\"filteredProjects\", filtered_projects.projects)\npulumi.export(\"projectNames\", [project.name for project in filtered_projects.projects])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // projects data sources can use the project_id parameter (preferred uniqueness is ensured)\n    var projectById = DbtCloud.GetProject.Invoke(new()\n    {\n        Id = 0,\n    });\n\n    // or they can use project names\n    // the provider will raise an error if more than one project is found with the same name\n    var projectByName = DbtCloud.GetProject.Invoke(new()\n    {\n        Name = \"Project name\",\n    });\n\n    var filteredProjects = DbtCloud.GetProjects.Invoke(new()\n    {\n        NameContains = \"Project\",\n    });\n\n    var allProjects = DbtCloud.GetProjects.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"projectIdDetails\"] = projectById,\n        [\"projectNameDetails\"] = projectByName,\n        [\"filteredProjectsCount\"] = filteredProjects.Apply(getProjectsResult =\u003e getProjectsResult.Projects).Length,\n        [\"filteredProjects\"] = filteredProjects.Apply(getProjectsResult =\u003e getProjectsResult.Projects),\n        [\"projectNames\"] = .Select(project =\u003e \n        {\n            return project.Name;\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProject.\n","properties":{"id":{"type":"integer","description":"Project ID\n"},"name":{"type":"string","description":"Project name\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProject.\n","properties":{"createdAt":{"description":"When the project was created\n","type":"string"},"dbtProjectSubdirectory":{"description":"Subdirectory for the dbt project inside the git repo\n","type":"string"},"description":{"description":"Project description\n","type":"string"},"docsJobId":{"description":"ID of Job for the documentation\n","type":"integer"},"freshnessJobId":{"description":"ID of Job for source freshness\n","type":"integer"},"id":{"description":"Project ID\n","type":"integer"},"name":{"description":"Project name\n","type":"string"},"projectConnection":{"$ref":"#/types/dbtcloud:index/getProjectProjectConnection:getProjectProjectConnection","description":"Details for the connection linked to the project\n"},"repository":{"$ref":"#/types/dbtcloud:index/getProjectRepository:getProjectRepository","description":"Details for the repository linked to the project\n"},"semanticLayerConfigId":{"description":"Semantic layer config ID\n","type":"integer"},"state":{"description":"Project state should be 1 = active, as 2 = deleted\n","type":"integer"},"type":{"description":"The type of dbt project (default or hybrid)\n","type":"integer"},"updatedAt":{"description":"When the project was last updated\n","type":"string"}},"required":["createdAt","dbtProjectSubdirectory","description","docsJobId","freshnessJobId","name","projectConnection","repository","semanticLayerConfigId","state","type","updatedAt"],"type":"object"}},"dbtcloud:index/getProjects:getProjects":{"description":"Retrieve all the projects created in dbt Cloud with an optional filter on parts of the project name.\n\n","inputs":{"description":"A collection of arguments for invoking getProjects.\n","properties":{"nameContains":{"type":"string","description":"Used to filter projects by name, Optional\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProjects.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nameContains":{"description":"Used to filter projects by name, Optional\n","type":"string"},"projects":{"description":"Set of projects with their details\n","items":{"$ref":"#/types/dbtcloud:index/getProjectsProject:getProjectsProject"},"type":"array"}},"required":["nameContains","projects","id"],"type":"object"}},"dbtcloud:index/getRedshiftCredential:getRedshiftCredential":{"description":"Redshift credential data source\n","inputs":{"description":"A collection of arguments for invoking getRedshiftCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"defaultSchema":{"type":"string","description":"Default schema name\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","defaultSchema","projectId"]},"outputs":{"description":"A collection of values returned by getRedshiftCredential.\n","properties":{"credentialId":{"description":"Credential ID\n","type":"integer"},"defaultSchema":{"description":"Default schema name\n","type":"string"},"id":{"description":"The ID of this data source. Contains the project ID and the credential ID.\n","type":"string"},"isActive":{"description":"Whether the Redshift credential is active\n","type":"boolean"},"numThreads":{"description":"Number of threads to use\n","type":"integer"},"projectId":{"description":"Project ID\n","type":"integer"}},"required":["credentialId","defaultSchema","id","isActive","numThreads","projectId"],"type":"object"}},"dbtcloud:index/getRepository:getRepository":{"description":"Retrieve data for a single repository\n","inputs":{"description":"A collection of arguments for invoking getRepository.\n","properties":{"fetchDeployKey":{"type":"boolean","description":"Whether we should return the public deploy key\n","deprecationMessage":"This field is deprecated and will be removed in a future version of the provider. The key is always fetched when the clone strategy is \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e"},"projectId":{"type":"integer","description":"Project ID to create the repository in\n"},"repositoryId":{"type":"integer","description":"ID for the repository\n"}},"type":"object","required":["projectId","repositoryId"]},"outputs":{"description":"A collection of values returned by getRepository.\n","properties":{"azureActiveDirectoryProjectId":{"description":"The Azure Dev Ops project ID\n","type":"string"},"azureActiveDirectoryRepositoryId":{"description":"The Azure Dev Ops repository ID\n","type":"string"},"azureBypassWebhookRegistrationFailure":{"description":"If set to False (the default), the connection will fail if the service user doesn't have access to set webhooks\n","type":"boolean"},"deployKey":{"description":"Public key generated by dbt when using \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e clone strategy\n","type":"string"},"fetchDeployKey":{"deprecationMessage":"This field is deprecated and will be removed in a future version of the provider. The key is always fetched when the clone strategy is \u003cspan pulumi-lang-nodejs=\"`deployKey`\" pulumi-lang-dotnet=\"`DeployKey`\" pulumi-lang-go=\"`deployKey`\" pulumi-lang-python=\"`deploy_key`\" pulumi-lang-yaml=\"`deployKey`\" pulumi-lang-java=\"`deployKey`\"\u003e`deploy_key`\u003c/span\u003e","description":"Whether we should return the public deploy key\n","type":"boolean"},"gitCloneStrategy":{"description":"Git clone strategy for the repository\n","type":"string"},"githubInstallationId":{"description":"Identifier for the GitHub installation\n","type":"integer"},"gitlabProjectId":{"description":"Identifier for the Gitlab project\n","type":"integer"},"id":{"description":"The ID of this resource\n","type":"string"},"isActive":{"description":"Whether the repository is active\n","type":"boolean"},"privateLinkEndpointId":{"description":"Identifier for the PrivateLink endpoint.\n","type":"string"},"projectId":{"description":"Project ID to create the repository in\n","type":"integer"},"pullRequestUrlTemplate":{"description":"The pull request URL template to be used when opening a pull request from within dbt Cloud's IDE\n","type":"string"},"remoteUrl":{"description":"Git URL for the repository or \u003cGroup\u003e/\u003cProject\u003e for Gitlab\n","type":"string"},"repositoryCredentialsId":{"description":"Credentials ID for the repository (From the repository side not the dbt Cloud ID)\n","type":"integer"},"repositoryId":{"description":"ID for the repository\n","type":"integer"}},"required":["azureActiveDirectoryProjectId","azureActiveDirectoryRepositoryId","azureBypassWebhookRegistrationFailure","deployKey","fetchDeployKey","gitCloneStrategy","githubInstallationId","gitlabProjectId","id","isActive","privateLinkEndpointId","projectId","pullRequestUrlTemplate","remoteUrl","repositoryCredentialsId","repositoryId"],"type":"object"}},"dbtcloud:index/getRuns:getRuns":{"description":"Retrieve all runs\n","inputs":{"description":"A collection of arguments for invoking getRuns.\n","properties":{"filter":{"$ref":"#/types/dbtcloud:index/getRunsFilter:getRunsFilter","description":"Filter to apply to the runs\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRuns.\n","properties":{"filter":{"$ref":"#/types/dbtcloud:index/getRunsFilter:getRunsFilter","description":"Filter to apply to the runs\n"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"runs":{"description":"Set of users with their internal ID end email\n","items":{"$ref":"#/types/dbtcloud:index/getRunsRun:getRunsRun"},"type":"array"}},"required":["runs","id"],"type":"object"}},"dbtcloud:index/getSalesforceCredential:getSalesforceCredential":{"description":"Salesforce credential data source\n","inputs":{"description":"A collection of arguments for invoking getSalesforceCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getSalesforceCredential.\n","properties":{"credentialId":{"description":"Credential ID\n","type":"integer"},"id":{"description":"The ID of this resource. Contains the project ID and the credential ID.\n","type":"string"},"numThreads":{"description":"The number of threads to use for dbt operations\n","type":"integer"},"projectId":{"description":"Project ID\n","type":"integer"},"targetName":{"description":"Target name\n","type":"string"},"username":{"description":"The Salesforce username for OAuth JWT bearer flow authentication\n","type":"string"}},"required":["credentialId","id","numThreads","projectId","targetName","username"],"type":"object"}},"dbtcloud:index/getServiceToken:getServiceToken":{"inputs":{"description":"A collection of arguments for invoking getServiceToken.\n","properties":{"serviceTokenId":{"type":"integer","description":"The ID of the service token\n"},"serviceTokenPermissions":{"type":"array","items":{"$ref":"#/types/dbtcloud:index/getServiceTokenServiceTokenPermission:getServiceTokenServiceTokenPermission"},"description":"Permissions set for the service token\n"}},"type":"object","required":["serviceTokenId"]},"outputs":{"description":"A collection of values returned by getServiceToken.\n","properties":{"id":{"description":"The ID of the service token\n","type":"string"},"name":{"description":"Service token name\n","type":"string"},"serviceTokenId":{"description":"The ID of the service token\n","type":"integer"},"serviceTokenPermissions":{"description":"Permissions set for the service token\n","items":{"$ref":"#/types/dbtcloud:index/getServiceTokenServiceTokenPermission:getServiceTokenServiceTokenPermission"},"type":"array"},"uid":{"description":"Service token UID (part of the token)\n","type":"string"}},"required":["id","name","serviceTokenId","uid"],"type":"object"}},"dbtcloud:index/getSnowflakeCredential:getSnowflakeCredential":{"description":"Snowflake credential data source\n","inputs":{"description":"A collection of arguments for invoking getSnowflakeCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getSnowflakeCredential.\n","properties":{"authType":{"description":"The type of Snowflake credential ('password' or 'keypair')\n","type":"string"},"credentialId":{"description":"Credential ID\n","type":"integer"},"id":{"description":"The ID of this resource. Contains the project ID and the credential ID.\n","type":"string"},"isActive":{"description":"Whether the Snowflake credential is active\n","type":"boolean"},"numThreads":{"description":"Number of threads to use\n","type":"integer"},"projectId":{"description":"Project ID\n","type":"integer"},"schema":{"description":"The schema where to create models\n","type":"string"},"user":{"description":"Username for Snowflake\n","type":"string"}},"required":["authType","credentialId","id","isActive","numThreads","projectId","schema","user"],"type":"object"}},"dbtcloud:index/getSparkCredential:getSparkCredential":{"description":"Apache Spark credential data source\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst mySparkCred = dbtcloud.getSparkCredential({\n    projectId: dbtProject.id,\n    credentialId: 12345,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_spark_cred = dbtcloud.get_spark_credential(project_id=dbt_project[\"id\"],\n    credential_id=12345)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mySparkCred = DbtCloud.GetSparkCredential.Invoke(new()\n    {\n        ProjectId = dbtProject.Id,\n        CredentialId = 12345,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupSparkCredential(ctx, \u0026dbtcloud.LookupSparkCredentialArgs{\n\t\t\tProjectId:    dbtProject.Id,\n\t\t\tCredentialId: 12345,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetSparkCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var mySparkCred = DbtcloudFunctions.getSparkCredential(GetSparkCredentialArgs.builder()\n            .projectId(dbtProject.id())\n            .credentialId(12345)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  mySparkCred:\n    fn::invoke:\n      function: dbtcloud:getSparkCredential\n      arguments:\n        projectId: ${dbtProject.id}\n        credentialId: 12345\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSparkCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getSparkCredential.\n","properties":{"credentialId":{"description":"Credential ID\n","type":"integer"},"id":{"description":"The ID of this resource. Contains the project ID and the credential ID.\n","type":"string"},"numThreads":{"description":"The number of threads to use\n","type":"integer"},"projectId":{"description":"Project ID\n","type":"integer"},"schema":{"description":"The schema where to create models\n","type":"string"},"targetName":{"description":"Target name\n","type":"string"}},"required":["credentialId","id","numThreads","projectId","schema","targetName"],"type":"object"}},"dbtcloud:index/getStarburstCredential:getStarburstCredential":{"description":"Starburst/Trino credential data source\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst example = dbtcloud.getStarburstCredential({\n    projectId: 123,\n    credentialId: 456,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nexample = dbtcloud.get_starburst_credential(project_id=123,\n    credential_id=456)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = DbtCloud.GetStarburstCredential.Invoke(new()\n    {\n        ProjectId = 123,\n        CredentialId = 456,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupStarburstCredential(ctx, \u0026dbtcloud.LookupStarburstCredentialArgs{\n\t\t\tProjectId:    123,\n\t\t\tCredentialId: 456,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetStarburstCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = DbtcloudFunctions.getStarburstCredential(GetStarburstCredentialArgs.builder()\n            .projectId(123)\n            .credentialId(456)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: dbtcloud:getStarburstCredential\n      arguments:\n        projectId: 123\n        credentialId: 456\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStarburstCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getStarburstCredential.\n","properties":{"credentialId":{"description":"Credential ID\n","type":"integer"},"database":{"description":"The catalog to connect to\n","type":"string"},"id":{"description":"The ID of this resource. Contains the project ID and the credential ID.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"integer"},"schema":{"description":"The schema where to create models\n","type":"string"}},"required":["credentialId","database","id","projectId","schema"],"type":"object"}},"dbtcloud:index/getSynapseCredential:getSynapseCredential":{"description":"Synapse credential data source.\n","inputs":{"description":"A collection of arguments for invoking getSynapseCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getSynapseCredential.\n","properties":{"adapterType":{"description":"The type of the adapter (synapse)\n","type":"string"},"authentication":{"description":"Authentication type (SQL, ActiveDirectoryPassword, ServicePrincipal)\n","type":"string"},"clientId":{"description":"The client ID of the Azure Active Directory service principal. This is only used when connecting to Azure SQL with an AAD service principal.\n","type":"string"},"credentialId":{"description":"Credential ID\n","type":"integer"},"id":{"description":"The ID of this data source. Contains the project ID and the credential ID.\n","type":"string"},"projectId":{"description":"Project ID\n","type":"integer"},"schema":{"description":"The schema where to create the dbt models\n","type":"string"},"schemaAuthorization":{"description":"Optionally set this to the principal who should own the schemas created by dbt\n","type":"string"},"tenantId":{"description":"The tenant ID of the Azure Active Directory instance. This is only used when connecting to Azure SQL with a service principal.\n","type":"string"},"user":{"description":"The username of the Synapse account to connect to. Only used when connection with AD user/pass\n","type":"string"}},"required":["adapterType","authentication","clientId","credentialId","id","projectId","schema","schemaAuthorization","tenantId","user"],"type":"object"}},"dbtcloud:index/getTeradataCredential:getTeradataCredential":{"description":"Teradata credential data source\n","inputs":{"description":"A collection of arguments for invoking getTeradataCredential.\n","properties":{"credentialId":{"type":"integer","description":"Credential ID\n"},"projectId":{"type":"integer","description":"Project ID\n"}},"type":"object","required":["credentialId","projectId"]},"outputs":{"description":"A collection of values returned by getTeradataCredential.\n","properties":{"credentialId":{"description":"Credential ID\n","type":"integer"},"id":{"description":"The ID of this resource. Contains the project ID and the credential ID.\n","type":"string"},"password":{"description":"The password for the Teradata account\n","secret":true,"type":"string"},"projectId":{"description":"Project ID\n","type":"integer"},"schema":{"description":"The schema where to create models\n","type":"string"},"threads":{"description":"The number of threads to use. Default is 1\n","type":"integer"},"user":{"description":"The username for the Teradata account\n","type":"string"}},"required":["credentialId","id","password","projectId","schema","threads","user"],"type":"object"}},"dbtcloud:index/getUser:getUser":{"description":"Retrieve user details\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myUser = dbtcloud.getUser({\n    email: \"my_user@email.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_user = dbtcloud.get_user(email=\"my_user@email.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myUser = DbtCloud.GetUser.Invoke(new()\n    {\n        Email = \"my_user@email.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.GetUser(ctx, \u0026dbtcloud.GetUserArgs{\n\t\t\tEmail: \"my_user@email.com\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myUser = DbtcloudFunctions.getUser(GetUserArgs.builder()\n            .email(\"my_user@email.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myUser:\n    fn::invoke:\n      function: dbtcloud:getUser\n      arguments:\n        email: my_user@email.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUser.\n","properties":{"email":{"type":"string","description":"Email for the user\n"}},"type":"object","required":["email"]},"outputs":{"description":"A collection of values returned by getUser.\n","properties":{"email":{"description":"Email for the user\n","type":"string"},"id":{"description":"ID of the user\n","type":"integer"}},"required":["email","id"],"type":"object"}},"dbtcloud:index/getUserGroups:getUserGroups":{"description":"Gets information about a specific dbt Cloud user's groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\nconst myUserGroups = dbtcloud.getUserGroups({\n    userId: 12345,\n});\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\nmy_user_groups = dbtcloud.get_user_groups(user_id=12345)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myUserGroups = DbtCloud.GetUserGroups.Invoke(new()\n    {\n        UserId = 12345,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-dbtcloud/sdk/go/dbtcloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dbtcloud.LookupUserGroups(ctx, \u0026dbtcloud.LookupUserGroupsArgs{\n\t\t\tUserId: 12345,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.dbtcloud.DbtcloudFunctions;\nimport com.pulumi.dbtcloud.inputs.GetUserGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myUserGroups = DbtcloudFunctions.getUserGroups(GetUserGroupsArgs.builder()\n            .userId(12345)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myUserGroups:\n    fn::invoke:\n      function: dbtcloud:getUserGroups\n      arguments:\n        userId: 12345\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUserGroups.\n","properties":{"userId":{"type":"integer","description":"The internal ID of a dbt Cloud user.\n"}},"type":"object","required":["userId"]},"outputs":{"description":"A collection of values returned by getUserGroups.\n","properties":{"groupIds":{"description":"IDs of the groups assigned to the user.\n","items":{"type":"integer"},"type":"array"},"id":{"description":"The ID of this resource. It is the same as the user_id.\n","type":"string"},"userId":{"description":"The internal ID of a dbt Cloud user.\n","type":"integer"}},"required":["groupIds","id","userId"],"type":"object"}},"dbtcloud:index/getUsers:getUsers":{"description":"Retrieve all users\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as dbtcloud from \"@pulumi/dbtcloud\";\n\n// return all users in the dbt Cloud account\nconst all = dbtcloud.getUsers({});\nconst userDetails = all.then(all =\u003e .filter(user =\u003e user.email == \"example@amail.com\").map(user =\u003e (user)));\nconst userExist = userDetails.length.apply(length =\u003e length == 1);\n```\n```python\nimport pulumi\nimport pulumi_dbtcloud as dbtcloud\n\n# return all users in the dbt Cloud account\nall = dbtcloud.get_users()\nuser_details = [user for user in all.users if user.email == \"example@amail.com\"]\nuser_exist = len(user_details).apply(lambda length: length == 1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DbtCloud = Pulumi.DbtCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // return all users in the dbt Cloud account\n    var all = DbtCloud.GetUsers.Invoke();\n\n    var userDetails = .Where(user =\u003e user.Email == \"example@amail.com\").Select(user =\u003e \n    {\n        return user;\n    }).ToList();\n\n    var userExist = userDetails.Length.Apply(length =\u003e length == 1);\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"users":{"description":"Set of users with their internal ID end email\n","items":{"$ref":"#/types/dbtcloud:index/getUsersUser:getUsersUser"},"type":"array"}},"required":["users","id"],"type":"object"}},"dbtcloud:index/getWebhook:getWebhook":{"description":"Retrieve webhook details\n","inputs":{"description":"A collection of arguments for invoking getWebhook.\n","properties":{"webhookId":{"type":"string","description":"Webhook's ID\n","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e instead"}},"type":"object","required":["webhookId"]},"outputs":{"description":"A collection of values returned by getWebhook.\n","properties":{"accountIdentifier":{"description":"Webhooks Account Identifier\n","type":"string"},"active":{"description":"Webhooks active flag\n","type":"boolean"},"clientUrl":{"description":"Webhooks Client URL\n","type":"string"},"description":{"description":"Webhooks Description\n","type":"string"},"eventTypes":{"description":"Webhooks Event Types\n","items":{"type":"string"},"type":"array"},"httpStatusCode":{"description":"Webhooks HTTP Status Code\n","type":"string"},"id":{"description":"Webhook's ID\n","type":"string"},"jobIds":{"description":"List of job IDs to trigger the webhook\n","items":{"type":"integer"},"type":"array"},"name":{"description":"Webhooks Name\n","type":"string"},"webhookId":{"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e instead","description":"Webhook's ID\n","type":"string"}},"required":["accountIdentifier","active","clientUrl","description","eventTypes","httpStatusCode","id","jobIds","name","webhookId"],"type":"object"}},"pulumi:providers:dbtcloud/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"type":"ref","$ref":"#/provider"}},"type":"pulumi:providers:dbtcloud/terraformConfig","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}}}