# snowflake Dialect

See which types this Dialect interprets and which architectural facts its Rules can establish.

<!-- Generated by scripts/generate-provider-coverage.ts from official Dialect sources. -->

<details>
<summary>Version and compatibility</summary>

**Version:** `0.1.0`.

**Provider bindings and declared compatibility**

- `snowflakedb/snowflake`: `= 2.20.0`.

[All official Dialects](https://docs.rootform.dev/reference/provider-coverage/)

</details>

## Interpreted types

Each row identifies a type and instance kind. Conditional Rules retain their individual conditions in the details below.

| Terraform type | Kind | Classification | Rules |
| --- | --- | --- | --- |
| `snowflake_account` | `resource` | [`account`](#snowflake-concept-account) | [`account`](#rule-account) |
| `snowflake_alert` | `resource` | [`alert`](#snowflake-concept-alert) | [`alert`](#rule-alert) |
| `snowflake_api_authentication_integration_with_authorization_code_grant` | `resource` | [`identity-integration`](#snowflake-concept-identity-integration) | [`authorization-code-api-authentication`](#rule-authorization-code-api-authentication) |
| `snowflake_api_authentication_integration_with_client_credentials` | `resource` | [`identity-integration`](#snowflake-concept-identity-integration) | [`client-credentials-api-authentication`](#rule-client-credentials-api-authentication) |
| `snowflake_api_authentication_integration_with_jwt_bearer` | `resource` | [`identity-integration`](#snowflake-concept-identity-integration) | [`jwt-bearer-api-authentication`](#rule-jwt-bearer-api-authentication) |
| `snowflake_api_integration_amazon_api_gateway` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`amazon-api-gateway-integration`](#rule-amazon-api-gateway-integration) |
| `snowflake_api_integration_azure_api_management` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`azure-api-management-integration`](#rule-azure-api-management-integration) |
| `snowflake_api_integration_external_mcp_dynamic_client` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`external-mcp-dynamic-client-integration`](#rule-external-mcp-dynamic-client-integration) |
| `snowflake_api_integration_external_mcp_oauth2` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`external-mcp-oauth2-integration`](#rule-external-mcp-oauth2-integration) |
| `snowflake_api_integration_git_repository_github_app` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`github-app-repository-integration`](#rule-github-app-repository-integration) |
| `snowflake_api_integration_git_repository_oauth2` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`oauth2-repository-integration`](#rule-oauth2-repository-integration) |
| `snowflake_api_integration_git_repository_private_link` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`private-link-repository-integration`](#rule-private-link-repository-integration) |
| `snowflake_api_integration_git_repository_token` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`token-repository-integration`](#rule-token-repository-integration) |
| `snowflake_api_integration_google_cloud_api_gateway` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`google-cloud-api-gateway-integration`](#rule-google-cloud-api-gateway-integration) |
| `snowflake_api_integration` | `resource` | [`api-integration`](#snowflake-concept-api-integration) | [`api-integration`](#rule-api-integration) |
| `snowflake_catalog_integration_aws_glue` | `resource` | [`catalog-integration`](#snowflake-concept-catalog-integration) | [`aws-glue-catalog-integration`](#rule-aws-glue-catalog-integration) |
| `snowflake_catalog_integration_iceberg_rest` | `resource` | [`catalog-integration`](#snowflake-concept-catalog-integration) | [`iceberg-rest-catalog-integration`](#rule-iceberg-rest-catalog-integration) |
| `snowflake_catalog_integration_object_storage` | `resource` | [`catalog-integration`](#snowflake-concept-catalog-integration) | [`object-storage-catalog-integration`](#rule-object-storage-catalog-integration) |
| `snowflake_catalog_integration_open_catalog` | `resource` | [`catalog-integration`](#snowflake-concept-catalog-integration) | [`open-catalog-integration`](#rule-open-catalog-integration) |
| `snowflake_compute_pool` | `resource` | [`compute-pool`](#snowflake-concept-compute-pool) | [`compute-pool`](#rule-compute-pool) |
| `snowflake_cortex_agent` | `resource` | [`cortex-agent`](#snowflake-concept-cortex-agent) | [`cortex-agent`](#rule-cortex-agent) |
| `snowflake_cortex_search_service` | `resource` | [`cortex-search-service`](#snowflake-concept-cortex-search-service) | [`cortex-search-service`](#rule-cortex-search-service) |
| `snowflake_current_account` | `resource` | [`account-configuration`](#snowflake-concept-account-configuration) | [`current-account`](#rule-current-account) |
| `snowflake_current_organization_account` | `resource` | [`account-configuration`](#snowflake-concept-account-configuration) | [`current-organization-account`](#rule-current-organization-account) |
| `snowflake_database_role` | `resource` | [`security-configuration`](#snowflake-concept-security-configuration) | [`database-role`](#rule-database-role) |
| `snowflake_database` | `resource` | [`database`](#snowflake-concept-database) | [`database`](#rule-database) |
| `snowflake_dynamic_table` | `resource` | [`dynamic-table`](#snowflake-concept-dynamic-table) | [`dynamic-table`](#rule-dynamic-table) |
| `snowflake_email_notification_integration` | `resource` | [`notification-integration`](#snowflake-concept-notification-integration) | [`email-notification-integration`](#rule-email-notification-integration) |
| `snowflake_external_access_integration` | `resource` | [`external-access-integration`](#snowflake-concept-external-access-integration) | [`external-access-integration`](#rule-external-access-integration) |
| `snowflake_external_function` | `resource` | [`external-function`](#snowflake-concept-external-function) | [`external-function`](#rule-external-function) |
| `snowflake_external_oauth_integration` | `resource` | [`identity-integration`](#snowflake-concept-identity-integration) | [`external-oauth-integration`](#rule-external-oauth-integration) |
| `snowflake_external_table` | `resource` | [`data-object-configuration`](#snowflake-concept-data-object-configuration) | [`external-table`](#rule-external-table) |
| `snowflake_external_volume` | `resource` | [`external-volume`](#snowflake-concept-external-volume) | [`external-volume`](#rule-external-volume) |
| `snowflake_failover_group` | `resource` | [`failover-group`](#snowflake-concept-failover-group) | [`failover-group`](#rule-failover-group) |
| `snowflake_git_repository` | `resource` | [`git-repository`](#snowflake-concept-git-repository) | [`git-repository`](#rule-git-repository) |
| `snowflake_hybrid_table` | `resource` | [`data-object-configuration`](#snowflake-concept-data-object-configuration) | [`hybrid-table`](#rule-hybrid-table) |
| `snowflake_iceberg_table_from_aws_glue` | `resource` | [`data-object-configuration`](#snowflake-concept-data-object-configuration) | [`iceberg-table-from-aws-glue`](#rule-iceberg-table-from-aws-glue) |
| `snowflake_iceberg_table_from_delta_files` | `resource` | [`data-object-configuration`](#snowflake-concept-data-object-configuration) | [`iceberg-table-from-delta-files`](#rule-iceberg-table-from-delta-files) |
| `snowflake_iceberg_table_from_files` | `resource` | [`data-object-configuration`](#snowflake-concept-data-object-configuration) | [`iceberg-table-from-files`](#rule-iceberg-table-from-files) |
| `snowflake_iceberg_table_from_rest` | `resource` | [`data-object-configuration`](#snowflake-concept-data-object-configuration) | [`iceberg-table-from-rest`](#rule-iceberg-table-from-rest) |
| `snowflake_iceberg_table` | `resource` | [`data-object-configuration`](#snowflake-concept-data-object-configuration) | [`iceberg-table`](#rule-iceberg-table) |
| `snowflake_image_repository` | `resource` | [`image-repository`](#snowflake-concept-image-repository) | [`image-repository`](#rule-image-repository) |
| `snowflake_job_service` | `resource` | [`container-service`](#snowflake-concept-container-service) | [`job-service`](#rule-job-service) |
| `snowflake_legacy_service_user` | `resource` | [`service-identity`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-service-identity) | [`legacy-service-user`](#rule-legacy-service-user) |
| `snowflake_listing` | `resource` | [`listing`](#snowflake-concept-listing) | [`listing`](#rule-listing) |
| `snowflake_managed_account` | `resource` | [`account`](#snowflake-concept-account) | [`managed-account`](#rule-managed-account) |
| `snowflake_mcp_server` | `resource` | [`mcp-server`](#snowflake-concept-mcp-server) | [`mcp-server`](#rule-mcp-server) |
| `snowflake_network_policy` | `resource` | [`network-policy`](#snowflake-concept-network-policy) | [`network-policy`](#rule-network-policy) |
| `snowflake_network_rule` | `resource` | [`security-configuration`](#snowflake-concept-security-configuration) | [`network-rule`](#rule-network-rule) |
| `snowflake_notebook` | `resource` | [`application`](#snowflake-concept-application) | [`notebook`](#rule-notebook) |
| `snowflake_notification_integration` | `resource` | [`notification-integration`](#snowflake-concept-notification-integration) | [`notification-integration`](#rule-notification-integration) |
| `snowflake_oauth_integration_for_custom_clients` | `resource` | [`identity-integration`](#snowflake-concept-identity-integration) | [`custom-client-oauth-integration`](#rule-custom-client-oauth-integration) |
| `snowflake_oauth_integration_for_partner_applications` | `resource` | [`identity-integration`](#snowflake-concept-identity-integration) | [`partner-application-oauth-integration`](#rule-partner-application-oauth-integration) |
| `snowflake_pipe` | `resource` | [`data-pipe`](#snowflake-concept-data-pipe) | [`pipe`](#rule-pipe) |
| `snowflake_postgres_instance` | `resource` | [`managed-database`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-managed-database) | [`postgres-instance`](#rule-postgres-instance) |
| `snowflake_primary_connection` | `resource` | [`account-connection`](#snowflake-concept-account-connection) | [`primary-connection`](#rule-primary-connection) |
| `snowflake_saml2_integration` | `resource` | [`identity-integration`](#snowflake-concept-identity-integration) | [`saml2-integration`](#rule-saml2-integration) |
| `snowflake_schema` | `resource` | [`schema`](#snowflake-concept-schema) | [`schema`](#rule-schema) |
| `snowflake_scim_integration` | `resource` | [`identity-integration`](#snowflake-concept-identity-integration) | [`scim-integration`](#rule-scim-integration) |
| `snowflake_secondary_connection` | `resource` | [`account-connection`](#snowflake-concept-account-connection) | [`secondary-connection`](#rule-secondary-connection) |
| `snowflake_secondary_database` | `resource` | [`database`](#snowflake-concept-database) | [`secondary-database`](#rule-secondary-database) |
| `snowflake_semantic_view` | `resource` | [`data-object-configuration`](#snowflake-concept-data-object-configuration) | [`semantic-view`](#rule-semantic-view) |
| `snowflake_service_user` | `resource` | [`service-identity`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-service-identity) | [`service-user`](#rule-service-user) |
| `snowflake_service` | `resource` | [`container-service`](#snowflake-concept-container-service) | [`service`](#rule-service) |
| `snowflake_share` | `resource` | [`data-share`](#snowflake-concept-data-share) | [`share`](#rule-share) |
| `snowflake_shared_database` | `resource` | [`database`](#snowflake-concept-database) | [`shared-database`](#rule-shared-database) |
| `snowflake_stage_external_azure` | `resource` | [`stage`](#snowflake-concept-stage) | [`external-azure-stage`](#rule-external-azure-stage) |
| `snowflake_stage_external_gcs` | `resource` | [`stage`](#snowflake-concept-stage) | [`external-gcs-stage`](#rule-external-gcs-stage) |
| `snowflake_stage_external_s3_compatible` | `resource` | [`stage`](#snowflake-concept-stage) | [`external-s3-compatible-stage`](#rule-external-s3-compatible-stage) |
| `snowflake_stage_external_s3` | `resource` | [`stage`](#snowflake-concept-stage) | [`external-s3-stage`](#rule-external-s3-stage) |
| `snowflake_stage_internal` | `resource` | [`stage`](#snowflake-concept-stage) | [`internal-stage`](#rule-internal-stage) |
| `snowflake_stage` | `resource` | [`stage`](#snowflake-concept-stage) | [`stage`](#rule-stage) |
| `snowflake_storage_integration_aws` | `resource` | [`storage-integration`](#snowflake-concept-storage-integration) | [`aws-storage-integration`](#rule-aws-storage-integration) |
| `snowflake_storage_integration_azure` | `resource` | [`storage-integration`](#snowflake-concept-storage-integration) | [`azure-storage-integration`](#rule-azure-storage-integration) |
| `snowflake_storage_integration_gcs` | `resource` | [`storage-integration`](#snowflake-concept-storage-integration) | [`gcs-storage-integration`](#rule-gcs-storage-integration) |
| `snowflake_storage_integration` | `resource` | [`storage-integration`](#snowflake-concept-storage-integration) | [`storage-integration`](#rule-storage-integration) |
| `snowflake_stream_on_directory_table` | `resource` | [`stream-configuration`](#snowflake-concept-stream-configuration) | [`stream-on-directory-table`](#rule-stream-on-directory-table) |
| `snowflake_stream_on_external_table` | `resource` | [`stream-configuration`](#snowflake-concept-stream-configuration) | [`stream-on-external-table`](#rule-stream-on-external-table) |
| `snowflake_stream_on_table` | `resource` | [`stream-configuration`](#snowflake-concept-stream-configuration) | [`stream-on-table`](#rule-stream-on-table) |
| `snowflake_stream_on_view` | `resource` | [`stream-configuration`](#snowflake-concept-stream-configuration) | [`stream-on-view`](#rule-stream-on-view) |
| `snowflake_streamlit` | `resource` | [`application`](#snowflake-concept-application) | [`streamlit`](#rule-streamlit) |
| `snowflake_task` | `resource` | [`workflow`](#snowflake-concept-workflow) | [`task`](#rule-task) |
| `snowflake_warehouse_adaptive` | `resource` | [`virtual-warehouse`](#snowflake-concept-virtual-warehouse) | [`adaptive-warehouse`](#rule-adaptive-warehouse) |
| `snowflake_warehouse_interactive` | `resource` | [`virtual-warehouse`](#snowflake-concept-virtual-warehouse) | [`interactive-warehouse`](#rule-interactive-warehouse) |
| `snowflake_warehouse` | `resource` | [`virtual-warehouse`](#snowflake-concept-virtual-warehouse) | [`warehouse`](#rule-warehouse) |

## Local vocabulary

### Concepts

<dl>

<div>
<dt id="snowflake-concept-account"><code>snowflake.concept.account</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/governance/accounts.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake account providing an administrative and regional service boundary.

</dd>
<dd>


<details>
<summary>Used by 5 Rules</summary>

- [`account`](#rule-account)
- [`failover-group`](#rule-failover-group)
- [`managed-account`](#rule-managed-account)
- [`primary-connection`](#rule-primary-connection)
- [`share`](#rule-share)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-account-configuration"><code>snowflake.concept.account-configuration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/governance/accounts.rf.hcl#L5-L7">Source</a></dt>
<dd>

Configuration applied to a Snowflake account without creating independent service topology.

</dd>
<dd>

Used by [`current-account`](#rule-current-account), [`current-organization-account`](#rule-current-organization-account).

</dd>
</div>

<div>
<dt id="snowflake-concept-account-connection"><code>snowflake.concept.account-connection</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L13-L15">Source</a></dt>
<dd>

A Snowflake client connection replicated across accounts for failover.

</dd>
<dd>

Used by [`primary-connection`](#rule-primary-connection), [`secondary-connection`](#rule-secondary-connection).

</dd>
</div>

<div>
<dt id="snowflake-concept-alert"><code>snowflake.concept.alert</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/observability/monitoring.rf.hcl#L2-L4">Source</a></dt>
<dd>

A Snowflake alert evaluating a condition and running an action.

</dd>
<dd>

Used by [`alert`](#rule-alert).

</dd>
</div>

<div>
<dt id="snowflake-concept-api-integration"><code>snowflake.concept.api-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake API integration authorizing access to an external API proxy or repository.

</dd>
<dd>


<details>
<summary>Used by 12 Rules</summary>

- [`amazon-api-gateway-integration`](#rule-amazon-api-gateway-integration)
- [`api-integration`](#rule-api-integration)
- [`azure-api-management-integration`](#rule-azure-api-management-integration)
- [`external-function`](#rule-external-function)
- [`external-mcp-dynamic-client-integration`](#rule-external-mcp-dynamic-client-integration)
- [`external-mcp-oauth2-integration`](#rule-external-mcp-oauth2-integration)
- [`git-repository`](#rule-git-repository)
- [`github-app-repository-integration`](#rule-github-app-repository-integration)
- [`google-cloud-api-gateway-integration`](#rule-google-cloud-api-gateway-integration)
- [`oauth2-repository-integration`](#rule-oauth2-repository-integration)
- [`private-link-repository-integration`](#rule-private-link-repository-integration)
- [`token-repository-integration`](#rule-token-repository-integration)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-application"><code>snowflake.concept.application</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/applications/applications.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake-hosted interactive data application or notebook.

</dd>
<dd>

Used by [`notebook`](#rule-notebook), [`streamlit`](#rule-streamlit).

</dd>
</div>

<div>
<dt id="snowflake-concept-catalog-integration"><code>snowflake.concept.catalog-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L9-L11">Source</a></dt>
<dd>

A Snowflake catalog integration connecting Iceberg metadata to an external catalog.

</dd>
<dd>


<details>
<summary>Used by 4 Rules</summary>

- [`aws-glue-catalog-integration`](#rule-aws-glue-catalog-integration)
- [`iceberg-rest-catalog-integration`](#rule-iceberg-rest-catalog-integration)
- [`object-storage-catalog-integration`](#rule-object-storage-catalog-integration)
- [`open-catalog-integration`](#rule-open-catalog-integration)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-compute-pool"><code>snowflake.concept.compute-pool</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/snowpark/container-services.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowpark Container Services compute pool containing managed compute nodes.

</dd>
<dd>

Used by [`compute-pool`](#rule-compute-pool), [`job-service`](#rule-job-service), [`service`](#rule-service).

</dd>
</div>

<div>
<dt id="snowflake-concept-container-service"><code>snowflake.concept.container-service</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/snowpark/container-services.rf.hcl#L9-L11">Source</a></dt>
<dd>

A Snowpark Container Services workload running on a compute pool.

</dd>
<dd>

Used by [`job-service`](#rule-job-service), [`service`](#rule-service).

</dd>
</div>

<div>
<dt id="snowflake-concept-cortex-agent"><code>snowflake.concept.cortex-agent</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/ai-ml/cortex.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Cortex Agent orchestrating tools across governed structured and unstructured data.

</dd>
<dd>

Used by [`cortex-agent`](#rule-cortex-agent).

</dd>
</div>

<div>
<dt id="snowflake-concept-cortex-search-service"><code>snowflake.concept.cortex-search-service</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/ai-ml/cortex.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Cortex Search service exposing low-latency retrieval over Snowflake data.

</dd>
<dd>

Used by [`cortex-search-service`](#rule-cortex-search-service).

</dd>
</div>

<div>
<dt id="snowflake-concept-data-object-configuration"><code>snowflake.concept.data-object-configuration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake table, stream, view, or governed data-object definition supporting a schema.

</dd>
<dd>


<details>
<summary>Used by 8 Rules</summary>

- [`external-table`](#rule-external-table)
- [`hybrid-table`](#rule-hybrid-table)
- [`iceberg-table`](#rule-iceberg-table)
- [`iceberg-table-from-aws-glue`](#rule-iceberg-table-from-aws-glue)
- [`iceberg-table-from-delta-files`](#rule-iceberg-table-from-delta-files)
- [`iceberg-table-from-files`](#rule-iceberg-table-from-files)
- [`iceberg-table-from-rest`](#rule-iceberg-table-from-rest)
- [`semantic-view`](#rule-semantic-view)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-data-pipe"><code>snowflake.concept.data-pipe</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Snowpipe pipe continuously loading staged data into Snowflake.

</dd>
<dd>

Used by [`pipe`](#rule-pipe).

</dd>
</div>

<div>
<dt id="snowflake-concept-data-share"><code>snowflake.concept.data-share</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake secure data share exposed to other accounts.

</dd>
<dd>


<details>
<summary>Used by 4 Rules</summary>

- [`failover-group`](#rule-failover-group)
- [`listing`](#rule-listing)
- [`share`](#rule-share)
- [`shared-database`](#rule-shared-database)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-database"><code>snowflake.concept.database</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake database containing schemas and governed data objects.

</dd>
<dd>


<details>
<summary>Used by 6 Rules</summary>

- [`database`](#rule-database)
- [`database-role`](#rule-database-role)
- [`failover-group`](#rule-failover-group)
- [`schema`](#rule-schema)
- [`secondary-database`](#rule-secondary-database)
- [`shared-database`](#rule-shared-database)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-dynamic-table"><code>snowflake.concept.dynamic-table</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Snowflake dynamic table refreshed as a declarative data pipeline workload.

</dd>
<dd>

Used by [`dynamic-table`](#rule-dynamic-table).

</dd>
</div>

<div>
<dt id="snowflake-concept-external-access-integration"><code>snowflake.concept.external-access-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Snowflake external access integration governing outbound access from handler code or services.

</dd>
<dd>


<details>
<summary>Used by 4 Rules</summary>

- [`external-access-integration`](#rule-external-access-integration)
- [`job-service`](#rule-job-service)
- [`service`](#rule-service)
- [`streamlit`](#rule-streamlit)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-external-function"><code>snowflake.concept.external-function</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L9-L11">Source</a></dt>
<dd>

A Snowflake external function relaying execution through an HTTPS proxy service.

</dd>
<dd>

Used by [`external-function`](#rule-external-function).

</dd>
</div>

<div>
<dt id="snowflake-concept-external-volume"><code>snowflake.concept.external-volume</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Snowflake external volume containing one or more cloud storage locations.

</dd>
<dd>


<details>
<summary>Used by 5 Rules</summary>

- [`database`](#rule-database)
- [`external-volume`](#rule-external-volume)
- [`schema`](#rule-schema)
- [`secondary-database`](#rule-secondary-database)
- [`shared-database`](#rule-shared-database)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-failover-group"><code>snowflake.concept.failover-group</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L9-L11">Source</a></dt>
<dd>

A Snowflake failover group replicating selected account objects.

</dd>
<dd>

Used by [`failover-group`](#rule-failover-group).

</dd>
</div>

<div>
<dt id="snowflake-concept-git-repository"><code>snowflake.concept.git-repository</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L13-L15">Source</a></dt>
<dd>

A Snowflake Git repository clone connected through an API integration.

</dd>
<dd>

Used by [`git-repository`](#rule-git-repository).

</dd>
</div>

<div>
<dt id="snowflake-concept-identity-integration"><code>snowflake.concept.identity-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake identity or authentication integration with an external identity system.

</dd>
<dd>


<details>
<summary>Used by 9 Rules</summary>

- [`authorization-code-api-authentication`](#rule-authorization-code-api-authentication)
- [`client-credentials-api-authentication`](#rule-client-credentials-api-authentication)
- [`custom-client-oauth-integration`](#rule-custom-client-oauth-integration)
- [`external-access-integration`](#rule-external-access-integration)
- [`external-oauth-integration`](#rule-external-oauth-integration)
- [`jwt-bearer-api-authentication`](#rule-jwt-bearer-api-authentication)
- [`partner-application-oauth-integration`](#rule-partner-application-oauth-integration)
- [`saml2-integration`](#rule-saml2-integration)
- [`scim-integration`](#rule-scim-integration)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-image-repository"><code>snowflake.concept.image-repository</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/snowpark/container-services.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Snowpark Container Services OCI image repository.

</dd>
<dd>

Used by [`image-repository`](#rule-image-repository).

</dd>
</div>

<div>
<dt id="snowflake-concept-listing"><code>snowflake.concept.listing</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Snowflake listing distributing a share or application package.

</dd>
<dd>

Used by [`listing`](#rule-listing).

</dd>
</div>

<div>
<dt id="snowflake-concept-mcp-server"><code>snowflake.concept.mcp-server</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/ai-ml/cortex.rf.hcl#L9-L11">Source</a></dt>
<dd>

A Snowflake-managed Model Context Protocol server exposing governed tools.

</dd>
<dd>

Used by [`mcp-server`](#rule-mcp-server).

</dd>
</div>

<div>
<dt id="snowflake-concept-network-policy"><code>snowflake.concept.network-policy</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L6-L8">Source</a></dt>
<dd>

A Snowflake network policy controlling inbound account access.

</dd>
<dd>


<details>
<summary>Used by 6 Rules</summary>

- [`custom-client-oauth-integration`](#rule-custom-client-oauth-integration)
- [`legacy-service-user`](#rule-legacy-service-user)
- [`network-policy`](#rule-network-policy)
- [`postgres-instance`](#rule-postgres-instance)
- [`scim-integration`](#rule-scim-integration)
- [`service-user`](#rule-service-user)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-notification-integration"><code>snowflake.concept.notification-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake notification integration connecting cloud messaging or email delivery.

</dd>
<dd>


<details>
<summary>Used by 6 Rules</summary>

- [`email-notification-integration`](#rule-email-notification-integration)
- [`external-azure-stage`](#rule-external-azure-stage)
- [`external-gcs-stage`](#rule-external-gcs-stage)
- [`notification-integration`](#rule-notification-integration)
- [`pipe`](#rule-pipe)
- [`task`](#rule-task)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-schema"><code>snowflake.concept.schema</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Snowflake schema containing named data-platform objects.

</dd>
<dd>


<details>
<summary>Used by 34 Rules</summary>

- [`alert`](#rule-alert)
- [`cortex-agent`](#rule-cortex-agent)
- [`cortex-search-service`](#rule-cortex-search-service)
- [`dynamic-table`](#rule-dynamic-table)
- [`external-azure-stage`](#rule-external-azure-stage)
- [`external-function`](#rule-external-function)
- [`external-gcs-stage`](#rule-external-gcs-stage)
- [`external-s3-compatible-stage`](#rule-external-s3-compatible-stage)
- [`external-s3-stage`](#rule-external-s3-stage)
- [`external-table`](#rule-external-table)
- [`git-repository`](#rule-git-repository)
- [`hybrid-table`](#rule-hybrid-table)
- [`iceberg-table`](#rule-iceberg-table)
- [`iceberg-table-from-aws-glue`](#rule-iceberg-table-from-aws-glue)
- [`iceberg-table-from-delta-files`](#rule-iceberg-table-from-delta-files)
- [`iceberg-table-from-files`](#rule-iceberg-table-from-files)
- [`iceberg-table-from-rest`](#rule-iceberg-table-from-rest)
- [`image-repository`](#rule-image-repository)
- [`internal-stage`](#rule-internal-stage)
- [`job-service`](#rule-job-service)
- [`mcp-server`](#rule-mcp-server)
- [`network-rule`](#rule-network-rule)
- [`notebook`](#rule-notebook)
- [`pipe`](#rule-pipe)
- [`schema`](#rule-schema)
- [`semantic-view`](#rule-semantic-view)
- [`service`](#rule-service)
- [`stage`](#rule-stage)
- [`stream-on-directory-table`](#rule-stream-on-directory-table)
- [`stream-on-external-table`](#rule-stream-on-external-table)
- [`stream-on-table`](#rule-stream-on-table)
- [`stream-on-view`](#rule-stream-on-view)
- [`streamlit`](#rule-streamlit)
- [`task`](#rule-task)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-security-configuration"><code>snowflake.concept.security-configuration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L10-L12">Source</a></dt>
<dd>

A Snowflake security rule or database role supporting an access boundary.

</dd>
<dd>

Used by [`database-role`](#rule-database-role), [`network-rule`](#rule-network-rule).

</dd>
</div>

<div>
<dt id="snowflake-concept-stage"><code>snowflake.concept.stage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/stages.rf.hcl#L1-L3">Source</a></dt>
<dd>

A named Snowflake stage for loading, unloading, or serving files.

</dd>
<dd>


<details>
<summary>Used by 10 Rules</summary>

- [`external-azure-stage`](#rule-external-azure-stage)
- [`external-gcs-stage`](#rule-external-gcs-stage)
- [`external-s3-compatible-stage`](#rule-external-s3-compatible-stage)
- [`external-s3-stage`](#rule-external-s3-stage)
- [`internal-stage`](#rule-internal-stage)
- [`job-service`](#rule-job-service)
- [`notebook`](#rule-notebook)
- [`service`](#rule-service)
- [`stage`](#rule-stage)
- [`streamlit`](#rule-streamlit)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-storage-integration"><code>snowflake.concept.storage-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake storage integration delegating access to external cloud object storage.

</dd>
<dd>


<details>
<summary>Used by 9 Rules</summary>

- [`aws-storage-integration`](#rule-aws-storage-integration)
- [`azure-storage-integration`](#rule-azure-storage-integration)
- [`external-azure-stage`](#rule-external-azure-stage)
- [`external-gcs-stage`](#rule-external-gcs-stage)
- [`external-s3-stage`](#rule-external-s3-stage)
- [`gcs-storage-integration`](#rule-gcs-storage-integration)
- [`postgres-instance`](#rule-postgres-instance)
- [`stage`](#rule-stage)
- [`storage-integration`](#rule-storage-integration)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-stream-configuration"><code>snowflake.concept.stream-configuration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L9-L11">Source</a></dt>
<dd>

A Snowflake stream tracking change data for a schema object.

</dd>
<dd>


<details>
<summary>Used by 4 Rules</summary>

- [`stream-on-directory-table`](#rule-stream-on-directory-table)
- [`stream-on-external-table`](#rule-stream-on-external-table)
- [`stream-on-table`](#rule-stream-on-table)
- [`stream-on-view`](#rule-stream-on-view)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-virtual-warehouse"><code>snowflake.concept.virtual-warehouse</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/compute/virtual-warehouses.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Snowflake virtual warehouse providing an independent compute cluster.

</dd>
<dd>


<details>
<summary>Used by 13 Rules</summary>

- [`adaptive-warehouse`](#rule-adaptive-warehouse)
- [`alert`](#rule-alert)
- [`cortex-search-service`](#rule-cortex-search-service)
- [`dynamic-table`](#rule-dynamic-table)
- [`interactive-warehouse`](#rule-interactive-warehouse)
- [`job-service`](#rule-job-service)
- [`legacy-service-user`](#rule-legacy-service-user)
- [`notebook`](#rule-notebook)
- [`service`](#rule-service)
- [`service-user`](#rule-service-user)
- [`streamlit`](#rule-streamlit)
- [`task`](#rule-task)
- [`warehouse`](#rule-warehouse)

</details>

</dd>
</div>

<div>
<dt id="snowflake-concept-workflow"><code>snowflake.concept.workflow</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/vocabulary.rf.hcl#L1-L3">Source</a></dt>
<dd>

A managed workflow coordinating steps and service calls.

</dd>
<dd>

Used by [`task`](#rule-task).

</dd>
</div>

</dl>

### Contexts

<dl>

<div>
<dt id="snowflake-context-ownership"><code>snowflake.context.ownership</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/vocabulary.rf.hcl#L5-L7">Source</a></dt>
<dd>

Administrative or lifecycle ownership.

</dd>
<dd>


<details>
<summary>Used by 21 Rules</summary>

- [`alert`](#rule-alert)
- [`cortex-agent`](#rule-cortex-agent)
- [`cortex-search-service`](#rule-cortex-search-service)
- [`dynamic-table`](#rule-dynamic-table)
- [`external-azure-stage`](#rule-external-azure-stage)
- [`external-function`](#rule-external-function)
- [`external-gcs-stage`](#rule-external-gcs-stage)
- [`external-s3-compatible-stage`](#rule-external-s3-compatible-stage)
- [`external-s3-stage`](#rule-external-s3-stage)
- [`git-repository`](#rule-git-repository)
- [`image-repository`](#rule-image-repository)
- [`internal-stage`](#rule-internal-stage)
- [`job-service`](#rule-job-service)
- [`mcp-server`](#rule-mcp-server)
- [`notebook`](#rule-notebook)
- [`pipe`](#rule-pipe)
- [`schema`](#rule-schema)
- [`service`](#rule-service)
- [`stage`](#rule-stage)
- [`streamlit`](#rule-streamlit)
- [`task`](#rule-task)

</details>

</dd>
</div>

</dl>

### Relations

<dl>

<div>
<dt id="snowflake-relation-accesses-object-storage"><code>snowflake.relation.accesses-object-storage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/stages.rf.hcl#L46-L51">Source</a></dt>
<dd>

Introduced by a labeled emission.

<details>
<summary>Used by 5 Rules</summary>

- [`external-azure-stage`](#rule-external-azure-stage)
- [`external-gcs-stage`](#rule-external-gcs-stage)
- [`external-s3-compatible-stage`](#rule-external-s3-compatible-stage)
- [`external-s3-stage`](#rule-external-s3-stage)
- [`stage`](#rule-stage)

</details>

</dd>
</div>

<div>
<dt id="snowflake-relation-authorizes-object-storage"><code>snowflake.relation.authorizes-object-storage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L29-L34">Source</a></dt>
<dd>

Introduced by a labeled emission.

<details>
<summary>Used by 4 Rules</summary>

- [`aws-storage-integration`](#rule-aws-storage-integration)
- [`azure-storage-integration`](#rule-azure-storage-integration)
- [`gcs-storage-integration`](#rule-gcs-storage-integration)
- [`storage-integration`](#rule-storage-integration)

</details>

</dd>
</div>

<div>
<dt id="snowflake-relation-fails-over-to-account"><code>snowflake.relation.fails-over-to-account</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L133-L146">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`primary-connection`](#rule-primary-connection).

</dd>
</div>

<div>
<dt id="snowflake-relation-falls-back-to-warehouse"><code>snowflake.relation.falls-back-to-warehouse</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/compute/virtual-warehouses.rf.hcl#L55-L65">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`interactive-warehouse`](#rule-interactive-warehouse).

</dd>
</div>

<div>
<dt id="snowflake-relation-finalizes-task"><code>snowflake.relation.finalizes-task</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L160-L170">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`task`](#rule-task).

</dd>
</div>

<div>
<dt id="snowflake-relation-imports-share"><code>snowflake.relation.imports-share</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L95-L105">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`shared-database`](#rule-shared-database).

</dd>
</div>

<div>
<dt id="snowflake-relation-loads-code-from-stage"><code>snowflake.relation.loads-code-from-stage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/applications/applications.rf.hcl#L38-L48">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`notebook`](#rule-notebook), [`streamlit`](#rule-streamlit).

</dd>
</div>

<div>
<dt id="snowflake-relation-loads-specification-from-stage"><code>snowflake.relation.loads-specification-from-stage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/snowpark/container-services.rf.hcl#L108-L118">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`job-service`](#rule-job-service), [`service`](#rule-service).

</dd>
</div>

<div>
<dt id="snowflake-relation-publishes-share"><code>snowflake.relation.publishes-share</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L56-L66">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`listing`](#rule-listing).

</dd>
</div>

<div>
<dt id="snowflake-relation-queries-on-warehouse"><code>snowflake.relation.queries-on-warehouse</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/snowpark/container-services.rf.hcl#L84-L94">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`job-service`](#rule-job-service), [`service`](#rule-service).

</dd>
</div>

<div>
<dt id="snowflake-relation-replicates-connection"><code>snowflake.relation.replicates-connection</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L165-L175">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`secondary-connection`](#rule-secondary-connection).

</dd>
</div>

<div>
<dt id="snowflake-relation-replicates-database"><code>snowflake.relation.replicates-database</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L54-L64">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`failover-group`](#rule-failover-group), [`secondary-database`](#rule-secondary-database).

</dd>
</div>

<div>
<dt id="snowflake-relation-replicates-share"><code>snowflake.relation.replicates-share</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L104-L114">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`failover-group`](#rule-failover-group).

</dd>
</div>

<div>
<dt id="snowflake-relation-replicates-to-account"><code>snowflake.relation.replicates-to-account</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L77-L90">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`failover-group`](#rule-failover-group).

</dd>
</div>

<div>
<dt id="snowflake-relation-reports-to-notification-integration"><code>snowflake.relation.reports-to-notification-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L80-L90">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`pipe`](#rule-pipe), [`task`](#rule-task).

</dd>
</div>

<div>
<dt id="snowflake-relation-runs-after-task"><code>snowflake.relation.runs-after-task</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L136-L146">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`task`](#rule-task).

</dd>
</div>

<div>
<dt id="snowflake-relation-shared-with-account"><code>snowflake.relation.shared-with-account</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L33-L46">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`share`](#rule-share).

</dd>
</div>

<div>
<dt id="snowflake-relation-uses-api-authentication-integration"><code>snowflake.relation.uses-api-authentication-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L207-L217">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`external-access-integration`](#rule-external-access-integration).

</dd>
</div>

<div>
<dt id="snowflake-relation-uses-api-integration"><code>snowflake.relation.uses-api-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L240-L250">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`external-function`](#rule-external-function), [`git-repository`](#rule-git-repository).

</dd>
</div>

<div>
<dt id="snowflake-relation-uses-default-warehouse"><code>snowflake.relation.uses-default-warehouse</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L33-L43">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`legacy-service-user`](#rule-legacy-service-user), [`service-user`](#rule-service-user).

</dd>
</div>

<div>
<dt id="snowflake-relation-uses-external-access"><code>snowflake.relation.uses-external-access</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/applications/applications.rf.hcl#L50-L60">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`job-service`](#rule-job-service), [`service`](#rule-service), [`streamlit`](#rule-streamlit).

</dd>
</div>

<div>
<dt id="snowflake-relation-uses-external-volume"><code>snowflake.relation.uses-external-volume</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L25-L35">Source</a></dt>
<dd>

Introduced by a labeled emission.

<details>
<summary>Used by 4 Rules</summary>

- [`database`](#rule-database)
- [`schema`](#rule-schema)
- [`secondary-database`](#rule-secondary-database)
- [`shared-database`](#rule-shared-database)

</details>

</dd>
</div>

<div>
<dt id="snowflake-relation-uses-network-policy"><code>snowflake.relation.uses-network-policy</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L181-L191">Source</a></dt>
<dd>

Introduced by a labeled emission.

<details>
<summary>Used by 5 Rules</summary>

- [`custom-client-oauth-integration`](#rule-custom-client-oauth-integration)
- [`legacy-service-user`](#rule-legacy-service-user)
- [`postgres-instance`](#rule-postgres-instance)
- [`scim-integration`](#rule-scim-integration)
- [`service-user`](#rule-service-user)

</details>

</dd>
</div>

<div>
<dt id="snowflake-relation-uses-notification-integration"><code>snowflake.relation.uses-notification-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L68-L78">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`external-azure-stage`](#rule-external-azure-stage), [`external-gcs-stage`](#rule-external-gcs-stage), [`pipe`](#rule-pipe).

</dd>
</div>

<div>
<dt id="snowflake-relation-uses-object-storage"><code>snowflake.relation.uses-object-storage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L155-L160">Source</a></dt>
<dd>

Introduced by a labeled emission.
Used by [`external-volume`](#rule-external-volume).

</dd>
</div>

<div>
<dt id="snowflake-relation-uses-storage-integration"><code>snowflake.relation.uses-storage-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L169-L179">Source</a></dt>
<dd>

Introduced by a labeled emission.

<details>
<summary>Used by 5 Rules</summary>

- [`external-azure-stage`](#rule-external-azure-stage)
- [`external-gcs-stage`](#rule-external-gcs-stage)
- [`external-s3-stage`](#rule-external-s3-stage)
- [`postgres-instance`](#rule-postgres-instance)
- [`stage`](#rule-stage)

</details>

</dd>
</div>

</dl>

## RF Vocabulary used

- [`rf.concept.managed-database`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-managed-database)
- [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container)
- [`rf.concept.service-identity`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-service-identity)
- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime)

## Rule details

Open a Rule for its declared behavior and source. [Matching](https://docs.rootform.dev/language/reference/rules/#eligibility-pipeline), [emission resolution](https://docs.rootform.dev/language/reference/emissions/) and [composition](https://docs.rootform.dev/language/reference/composition/) define how evidence can establish it.

<details>
<summary><code>snowflake.rule.account</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/governance/accounts.rf.hcl#L9-L24">Source</a></summary>

<div id="rule-account"></div>

Matches `resource` instances of `snowflake_account`.

**Classification:** [`snowflake.concept.account`](#snowflake-concept-account).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.alert</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/observability/monitoring.rf.hcl#L6-L38">Source</a></summary>

<div id="rule-alert"></div>

Matches `resource` instances of `snowflake_alert`.

**Classification:** [`snowflake.concept.alert`](#snowflake-concept-alert).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.
- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.warehouse`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Context through `source.warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.authorization-code-api-authentication</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L246-L261">Source</a></summary>

<div id="rule-authorization-code-api-authentication"></div>

Matches `resource` instances of `snowflake_api_authentication_integration_with_authorization_code_grant`.

**Classification:** [`snowflake.concept.identity-integration`](#snowflake-concept-identity-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.client-credentials-api-authentication</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L263-L278">Source</a></summary>

<div id="rule-client-credentials-api-authentication"></div>

Matches `resource` instances of `snowflake_api_authentication_integration_with_client_credentials`.

**Classification:** [`snowflake.concept.identity-integration`](#snowflake-concept-identity-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.jwt-bearer-api-authentication</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L280-L295">Source</a></summary>

<div id="rule-jwt-bearer-api-authentication"></div>

Matches `resource` instances of `snowflake_api_authentication_integration_with_jwt_bearer`.

**Classification:** [`snowflake.concept.identity-integration`](#snowflake-concept-identity-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.amazon-api-gateway-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L35-L51">Source</a></summary>

<div id="rule-amazon-api-gateway-integration"></div>

Matches `resource` instances of `snowflake_api_integration_amazon_api_gateway`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.azure-api-management-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L53-L69">Source</a></summary>

<div id="rule-azure-api-management-integration"></div>

Matches `resource` instances of `snowflake_api_integration_azure_api_management`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-mcp-dynamic-client-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L89-L104">Source</a></summary>

<div id="rule-external-mcp-dynamic-client-integration"></div>

Matches `resource` instances of `snowflake_api_integration_external_mcp_dynamic_client`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-mcp-oauth2-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L106-L121">Source</a></summary>

<div id="rule-external-mcp-oauth2-integration"></div>

Matches `resource` instances of `snowflake_api_integration_external_mcp_oauth2`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.github-app-repository-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L123-L138">Source</a></summary>

<div id="rule-github-app-repository-integration"></div>

Matches `resource` instances of `snowflake_api_integration_git_repository_github_app`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.oauth2-repository-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L140-L155">Source</a></summary>

<div id="rule-oauth2-repository-integration"></div>

Matches `resource` instances of `snowflake_api_integration_git_repository_oauth2`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.private-link-repository-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L157-L172">Source</a></summary>

<div id="rule-private-link-repository-integration"></div>

Matches `resource` instances of `snowflake_api_integration_git_repository_private_link`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.token-repository-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L174-L189">Source</a></summary>

<div id="rule-token-repository-integration"></div>

Matches `resource` instances of `snowflake_api_integration_git_repository_token`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.google-cloud-api-gateway-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L71-L87">Source</a></summary>

<div id="rule-google-cloud-api-gateway-integration"></div>

Matches `resource` instances of `snowflake_api_integration_google_cloud_api_gateway`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.api-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L17-L33">Source</a></summary>

<div id="rule-api-integration"></div>

Matches `resource` instances of `snowflake_api_integration`.

**Classification:** [`snowflake.concept.api-integration`](#snowflake-concept-api-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.aws-glue-catalog-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L171-L178">Source</a></summary>

<div id="rule-aws-glue-catalog-integration"></div>

Matches `resource` instances of `snowflake_catalog_integration_aws_glue`.

**Classification:** [`snowflake.concept.catalog-integration`](#snowflake-concept-catalog-integration).

</details>

<details>
<summary><code>snowflake.rule.iceberg-rest-catalog-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L180-L187">Source</a></summary>

<div id="rule-iceberg-rest-catalog-integration"></div>

Matches `resource` instances of `snowflake_catalog_integration_iceberg_rest`.

**Classification:** [`snowflake.concept.catalog-integration`](#snowflake-concept-catalog-integration).

</details>

<details>
<summary><code>snowflake.rule.object-storage-catalog-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L189-L195">Source</a></summary>

<div id="rule-object-storage-catalog-integration"></div>

Matches `resource` instances of `snowflake_catalog_integration_object_storage`.

**Classification:** [`snowflake.concept.catalog-integration`](#snowflake-concept-catalog-integration).

</details>

<details>
<summary><code>snowflake.rule.open-catalog-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L197-L203">Source</a></summary>

<div id="rule-open-catalog-integration"></div>

Matches `resource` instances of `snowflake_catalog_integration_open_catalog`.

**Classification:** [`snowflake.concept.catalog-integration`](#snowflake-concept-catalog-integration).

</details>

<details>
<summary><code>snowflake.rule.compute-pool</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/snowpark/container-services.rf.hcl#L13-L28">Source</a></summary>

<div id="rule-compute-pool"></div>

Matches `resource` instances of `snowflake_compute_pool`.

**Classification:** [`snowflake.concept.compute-pool`](#snowflake-concept-compute-pool).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.cortex-agent</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/ai-ml/cortex.rf.hcl#L13-L32">Source</a></summary>

<div id="rule-cortex-agent"></div>

Matches `resource` instances of `snowflake_cortex_agent`.

**Classification:** [`snowflake.concept.cortex-agent`](#snowflake-concept-cortex-agent).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.cortex-search-service</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/ai-ml/cortex.rf.hcl#L34-L66">Source</a></summary>

<div id="rule-cortex-search-service"></div>

Matches `resource` instances of `snowflake_cortex_search_service`.

**Classification:** [`snowflake.concept.cortex-search-service`](#snowflake-concept-cortex-search-service).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.
- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.warehouse`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Context through `source.warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.current-account</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/governance/accounts.rf.hcl#L43-L49">Source</a></summary>

<div id="rule-current-account"></div>

Matches `resource` instances of `snowflake_current_account`.

**Classification:** [`snowflake.concept.account-configuration`](#snowflake-concept-account-configuration).

</details>

<details>
<summary><code>snowflake.rule.current-organization-account</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/governance/accounts.rf.hcl#L51-L57">Source</a></summary>

<div id="rule-current-organization-account"></div>

Matches `resource` instances of `snowflake_current_organization_account`.

**Classification:** [`snowflake.concept.account-configuration`](#snowflake-concept-account-configuration).

</details>

<details>
<summary><code>snowflake.rule.database-role</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L79-L97">Source</a></summary>

<div id="rule-database-role"></div>

Matches `resource` instances of `snowflake_database_role`.

**Classification:** [`snowflake.concept.security-configuration`](#snowflake-concept-security-configuration).

**Contributions**

- targets [`snowflake.concept.database`](#snowflake-concept-database) through `source.database`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.database`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.database</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L9-L36">Source</a></summary>

<div id="rule-database"></div>

Matches `resource` instances of `snowflake_database`.

**Classification:** [`snowflake.concept.database`](#snowflake-concept-database).

**Relations**

- [`snowflake.relation.uses-external-volume`](#snowflake-relation-uses-external-volume): targets [`snowflake.concept.external-volume`](#snowflake-concept-external-volume) through `source.external_volume`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.external_volume`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.dynamic-table</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L9-L41">Source</a></summary>

<div id="rule-dynamic-table"></div>

Matches `resource` instances of `snowflake_dynamic_table`.

**Classification:** [`snowflake.concept.dynamic-table`](#snowflake-concept-dynamic-table).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.
- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.warehouse`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Context through `source.warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.email-notification-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L31-L46">Source</a></summary>

<div id="rule-email-notification-integration"></div>

Matches `resource` instances of `snowflake_email_notification_integration`.

**Classification:** [`snowflake.concept.notification-integration`](#snowflake-concept-notification-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-access-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L191-L218">Source</a></summary>

<div id="rule-external-access-integration"></div>

Matches `resource` instances of `snowflake_external_access_integration`.

**Classification:** [`snowflake.concept.external-access-integration`](#snowflake-concept-external-access-integration).

**Relations**

- [`snowflake.relation.uses-api-authentication-integration`](#snowflake-relation-uses-api-authentication-integration): targets [`snowflake.concept.identity-integration`](#snowflake-concept-identity-integration) through `source.allowed_api_authentication_integrations[0].integrations[0]`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.allowed_api_authentication_integrations[0].integrations[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-function</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L220-L251">Source</a></summary>

<div id="rule-external-function"></div>

Matches `resource` instances of `snowflake_external_function`.

**Classification:** [`snowflake.concept.external-function`](#snowflake-concept-external-function).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

**Relations**

- [`snowflake.relation.uses-api-integration`](#snowflake-relation-uses-api-integration): targets [`snowflake.concept.api-integration`](#snowflake-concept-api-integration) through `source.api_integration`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.api_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-oauth-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L183-L198">Source</a></summary>

<div id="rule-external-oauth-integration"></div>

Matches `resource` instances of `snowflake_external_oauth_integration`.

**Classification:** [`snowflake.concept.identity-integration`](#snowflake-concept-identity-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-table</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L43-L62">Source</a></summary>

<div id="rule-external-table"></div>

Matches `resource` instances of `snowflake_external_table`.

**Classification:** [`snowflake.concept.data-object-configuration`](#snowflake-concept-data-object-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-volume</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L139-L169">Source</a></summary>

<div id="rule-external-volume"></div>

Matches `resource` instances of `snowflake_external_volume`.

**Classification:** [`snowflake.concept.external-volume`](#snowflake-concept-external-volume).

**Relations**

- [`snowflake.relation.uses-object-storage`](#snowflake-relation-uses-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_location[0].storage_base_url`.
- [`snowflake.relation.uses-object-storage`](#snowflake-relation-uses-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_location[1].storage_base_url`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.storage_location[0].storage_base_url`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

**Relation through `source.storage_location[1].storage_base_url`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

</details>

</details>

<details>
<summary><code>snowflake.rule.failover-group</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L70-L115">Source</a></summary>

<div id="rule-failover-group"></div>

Matches `resource` instances of `snowflake_failover_group`.

**Classification:** [`snowflake.concept.failover-group`](#snowflake-concept-failover-group).

**Relations**

- [`snowflake.relation.replicates-to-account`](#snowflake-relation-replicates-to-account): targets [`snowflake.concept.account`](#snowflake-concept-account) through `source.allowed_accounts[0]`.
- [`snowflake.relation.replicates-database`](#snowflake-relation-replicates-database): targets [`snowflake.concept.database`](#snowflake-concept-database) through `source.allowed_databases[0]`.
- [`snowflake.relation.replicates-share`](#snowflake-relation-replicates-share): targets [`snowflake.concept.data-share`](#snowflake-concept-data-share) through `source.allowed_shares[0]`.

<details>
<summary>Conditions, identity and resolution</summary>

**Relation through `source.allowed_accounts[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `external`: `"allow"`
- `match.by`: `target.id`
- `match.strategy`: `"exact"`

**Relation through `source.allowed_databases[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.allowed_shares[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.git-repository</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/api-integration/integrations.rf.hcl#L253-L284">Source</a></summary>

<div id="rule-git-repository"></div>

Matches `resource` instances of `snowflake_git_repository`.

**Classification:** [`snowflake.concept.git-repository`](#snowflake-concept-git-repository).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

**Relations**

- [`snowflake.relation.uses-api-integration`](#snowflake-relation-uses-api-integration): targets [`snowflake.concept.api-integration`](#snowflake-concept-api-integration) through `source.api_integration`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.api_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.hybrid-table</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L64-L82">Source</a></summary>

<div id="rule-hybrid-table"></div>

Matches `resource` instances of `snowflake_hybrid_table`.

**Classification:** [`snowflake.concept.data-object-configuration`](#snowflake-concept-data-object-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.iceberg-table-from-aws-glue</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L105-L124">Source</a></summary>

<div id="rule-iceberg-table-from-aws-glue"></div>

Matches `resource` instances of `snowflake_iceberg_table_from_aws_glue`.

**Classification:** [`snowflake.concept.data-object-configuration`](#snowflake-concept-data-object-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.iceberg-table-from-delta-files</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L126-L145">Source</a></summary>

<div id="rule-iceberg-table-from-delta-files"></div>

Matches `resource` instances of `snowflake_iceberg_table_from_delta_files`.

**Classification:** [`snowflake.concept.data-object-configuration`](#snowflake-concept-data-object-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.iceberg-table-from-files</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L147-L166">Source</a></summary>

<div id="rule-iceberg-table-from-files"></div>

Matches `resource` instances of `snowflake_iceberg_table_from_files`.

**Classification:** [`snowflake.concept.data-object-configuration`](#snowflake-concept-data-object-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.iceberg-table-from-rest</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L168-L187">Source</a></summary>

<div id="rule-iceberg-table-from-rest"></div>

Matches `resource` instances of `snowflake_iceberg_table_from_rest`.

**Classification:** [`snowflake.concept.data-object-configuration`](#snowflake-concept-data-object-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.iceberg-table</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L84-L103">Source</a></summary>

<div id="rule-iceberg-table"></div>

Matches `resource` instances of `snowflake_iceberg_table`.

**Classification:** [`snowflake.concept.data-object-configuration`](#snowflake-concept-data-object-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.image-repository</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/snowpark/container-services.rf.hcl#L30-L49">Source</a></summary>

<div id="rule-image-repository"></div>

Matches `resource` instances of `snowflake_image_repository`.

**Classification:** [`snowflake.concept.image-repository`](#snowflake-concept-image-repository).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.job-service</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/snowpark/container-services.rf.hcl#L121-L189">Source</a></summary>

<div id="rule-job-service"></div>

Matches `resource` instances of `snowflake_job_service`.

**Classification:** [`snowflake.concept.container-service`](#snowflake-concept-container-service).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.
- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime): targets [`snowflake.concept.compute-pool`](#snowflake-concept-compute-pool) through `source.compute_pool`.

**Relations**

- [`snowflake.relation.queries-on-warehouse`](#snowflake-relation-queries-on-warehouse): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.query_warehouse`.
- [`snowflake.relation.uses-external-access`](#snowflake-relation-uses-external-access): targets [`snowflake.concept.external-access-integration`](#snowflake-concept-external-access-integration) through `source.external_access_integrations[0]`.
- [`snowflake.relation.loads-specification-from-stage`](#snowflake-relation-loads-specification-from-stage): targets [`snowflake.concept.stage`](#snowflake-concept-stage) through `source.from_specification[0].stage`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Context through `source.compute_pool`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.query_warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.external_access_integrations[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.from_specification[0].stage`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.legacy-service-user</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L46-L76">Source</a></summary>

<div id="rule-legacy-service-user"></div>

Matches `resource` instances of `snowflake_legacy_service_user`.

**Classification:** [`rf.concept.service-identity`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-service-identity).

**Relations**

- [`snowflake.relation.uses-network-policy`](#snowflake-relation-uses-network-policy): targets [`snowflake.concept.network-policy`](#snowflake-concept-network-policy) through `source.network_policy`.
- [`snowflake.relation.uses-default-warehouse`](#snowflake-relation-uses-default-warehouse): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.default_warehouse`.

<details>
<summary>Conditions, identity and resolution</summary>

**Relation through `source.network_policy`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.default_warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.listing</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L49-L68">Source</a></summary>

<div id="rule-listing"></div>

Matches `resource` instances of `snowflake_listing`.

**Classification:** [`snowflake.concept.listing`](#snowflake-concept-listing).

**Relations**

- [`snowflake.relation.publishes-share`](#snowflake-relation-publishes-share): targets [`snowflake.concept.data-share`](#snowflake-concept-data-share) through `source.share`.

<details>
<summary>Conditions, identity and resolution</summary>

**Relation through `source.share`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.managed-account</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/governance/accounts.rf.hcl#L26-L41">Source</a></summary>

<div id="rule-managed-account"></div>

Matches `resource` instances of `snowflake_managed_account`.

**Classification:** [`snowflake.concept.account`](#snowflake-concept-account).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.mcp-server</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/ai-ml/cortex.rf.hcl#L68-L87">Source</a></summary>

<div id="rule-mcp-server"></div>

Matches `resource` instances of `snowflake_mcp_server`.

**Classification:** [`snowflake.concept.mcp-server`](#snowflake-concept-mcp-server).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.network-policy</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L99-L115">Source</a></summary>

<div id="rule-network-policy"></div>

Matches `resource` instances of `snowflake_network_policy`.

**Classification:** [`snowflake.concept.network-policy`](#snowflake-concept-network-policy).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.network-rule</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L117-L135">Source</a></summary>

<div id="rule-network-rule"></div>

Matches `resource` instances of `snowflake_network_rule`.

**Classification:** [`snowflake.concept.security-configuration`](#snowflake-concept-security-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.notebook</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/applications/applications.rf.hcl#L63-L107">Source</a></summary>

<div id="rule-notebook"></div>

Matches `resource` instances of `snowflake_notebook`.

**Classification:** [`snowflake.concept.application`](#snowflake-concept-application).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.
- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.query_warehouse`.

**Relations**

- [`snowflake.relation.loads-code-from-stage`](#snowflake-relation-loads-code-from-stage): targets [`snowflake.concept.stage`](#snowflake-concept-stage) through `source.from[0].stage`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Context through `source.query_warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.from[0].stage`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.notification-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L13-L29">Source</a></summary>

<div id="rule-notification-integration"></div>

Matches `resource` instances of `snowflake_notification_integration`.

**Classification:** [`snowflake.concept.notification-integration`](#snowflake-concept-notification-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.custom-client-oauth-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L200-L227">Source</a></summary>

<div id="rule-custom-client-oauth-integration"></div>

Matches `resource` instances of `snowflake_oauth_integration_for_custom_clients`.

**Classification:** [`snowflake.concept.identity-integration`](#snowflake-concept-identity-integration).

**Relations**

- [`snowflake.relation.uses-network-policy`](#snowflake-relation-uses-network-policy): targets [`snowflake.concept.network-policy`](#snowflake-concept-network-policy) through `source.network_policy`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.network_policy`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.partner-application-oauth-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L229-L244">Source</a></summary>

<div id="rule-partner-application-oauth-integration"></div>

Matches `resource` instances of `snowflake_oauth_integration_for_partner_applications`.

**Classification:** [`snowflake.concept.identity-integration`](#snowflake-concept-identity-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.pipe</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L48-L92">Source</a></summary>

<div id="rule-pipe"></div>

Matches `resource` instances of `snowflake_pipe`.

**Classification:** [`snowflake.concept.data-pipe`](#snowflake-concept-data-pipe).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

**Relations**

- [`snowflake.relation.uses-notification-integration`](#snowflake-relation-uses-notification-integration): targets [`snowflake.concept.notification-integration`](#snowflake-concept-notification-integration) through `source.integration`.
- [`snowflake.relation.reports-to-notification-integration`](#snowflake-relation-reports-to-notification-integration): targets [`snowflake.concept.notification-integration`](#snowflake-concept-notification-integration) through `source.error_integration`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.error_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.postgres-instance</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L162-L192">Source</a></summary>

<div id="rule-postgres-instance"></div>

Matches `resource` instances of `snowflake_postgres_instance`.

**Classification:** [`rf.concept.managed-database`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-managed-database).

**Relations**

- [`snowflake.relation.uses-storage-integration`](#snowflake-relation-uses-storage-integration): targets [`snowflake.concept.storage-integration`](#snowflake-concept-storage-integration) through `source.storage_integration`.
- [`snowflake.relation.uses-network-policy`](#snowflake-relation-uses-network-policy): targets [`snowflake.concept.network-policy`](#snowflake-concept-network-policy) through `source.network_policy`.

<details>
<summary>Conditions, identity and resolution</summary>

**Relation through `source.storage_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.network_policy`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.primary-connection</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L117-L147">Source</a></summary>

<div id="rule-primary-connection"></div>

Matches `resource` instances of `snowflake_primary_connection`.

**Classification:** [`snowflake.concept.account-connection`](#snowflake-concept-account-connection).

**Relations**

- [`snowflake.relation.fails-over-to-account`](#snowflake-relation-fails-over-to-account): targets [`snowflake.concept.account`](#snowflake-concept-account) through `source.enable_failover_to_accounts[0]`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id"]`

**Relation through `source.enable_failover_to_accounts[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `external`: `"allow"`
- `match.by`: `target.id`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.saml2-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L137-L152">Source</a></summary>

<div id="rule-saml2-integration"></div>

Matches `resource` instances of `snowflake_saml2_integration`.

**Classification:** [`snowflake.concept.identity-integration`](#snowflake-concept-identity-integration).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.schema</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L120-L160">Source</a></summary>

<div id="rule-schema"></div>

Matches `resource` instances of `snowflake_schema`.

**Classification:** [`snowflake.concept.schema`](#snowflake-concept-schema).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.database`](#snowflake-concept-database) through `source.database`.

**Relations**

- [`snowflake.relation.uses-external-volume`](#snowflake-relation-uses-external-volume): targets [`snowflake.concept.external-volume`](#snowflake-concept-external-volume) through `source.external_volume`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Context through `source.database`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.external_volume`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.scim-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L154-L181">Source</a></summary>

<div id="rule-scim-integration"></div>

Matches `resource` instances of `snowflake_scim_integration`.

**Classification:** [`snowflake.concept.identity-integration`](#snowflake-concept-identity-integration).

**Relations**

- [`snowflake.relation.uses-network-policy`](#snowflake-relation-uses-network-policy): targets [`snowflake.concept.network-policy`](#snowflake-concept-network-policy) through `source.network_policy`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.network_policy`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.secondary-connection</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L149-L176">Source</a></summary>

<div id="rule-secondary-connection"></div>

Matches `resource` instances of `snowflake_secondary_connection`.

**Classification:** [`snowflake.concept.account-connection`](#snowflake-concept-account-connection).

**Relations**

- [`snowflake.relation.replicates-connection`](#snowflake-relation-replicates-connection): targets [`snowflake.concept.account-connection`](#snowflake-concept-account-connection) through `source.as_replica_of`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id"]`

**Relation through `source.as_replica_of`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `target.id`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.secondary-database</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L38-L77">Source</a></summary>

<div id="rule-secondary-database"></div>

Matches `resource` instances of `snowflake_secondary_database`.

**Classification:** [`snowflake.concept.database`](#snowflake-concept-database).

**Relations**

- [`snowflake.relation.replicates-database`](#snowflake-relation-replicates-database): targets [`snowflake.concept.database`](#snowflake-concept-database) through `source.as_replica_of`.
- [`snowflake.relation.uses-external-volume`](#snowflake-relation-uses-external-volume): targets [`snowflake.concept.external-volume`](#snowflake-concept-external-volume) through `source.external_volume`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.as_replica_of`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `target.id`
- `match.strategy`: `"exact"`

**Relation through `source.external_volume`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.semantic-view</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/data-objects.rf.hcl#L189-L207">Source</a></summary>

<div id="rule-semantic-view"></div>

Matches `resource` instances of `snowflake_semantic_view`.

**Classification:** [`snowflake.concept.data-object-configuration`](#snowflake-concept-data-object-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.service-user</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/security/identity-network.rf.hcl#L14-L44">Source</a></summary>

<div id="rule-service-user"></div>

Matches `resource` instances of `snowflake_service_user`.

**Classification:** [`rf.concept.service-identity`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-service-identity).

**Relations**

- [`snowflake.relation.uses-network-policy`](#snowflake-relation-uses-network-policy): targets [`snowflake.concept.network-policy`](#snowflake-concept-network-policy) through `source.network_policy`.
- [`snowflake.relation.uses-default-warehouse`](#snowflake-relation-uses-default-warehouse): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.default_warehouse`.

<details>
<summary>Conditions, identity and resolution</summary>

**Relation through `source.network_policy`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.default_warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.service</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/snowpark/container-services.rf.hcl#L51-L119">Source</a></summary>

<div id="rule-service"></div>

Matches `resource` instances of `snowflake_service`.

**Classification:** [`snowflake.concept.container-service`](#snowflake-concept-container-service).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.
- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime): targets [`snowflake.concept.compute-pool`](#snowflake-concept-compute-pool) through `source.compute_pool`.

**Relations**

- [`snowflake.relation.queries-on-warehouse`](#snowflake-relation-queries-on-warehouse): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.query_warehouse`.
- [`snowflake.relation.uses-external-access`](#snowflake-relation-uses-external-access): targets [`snowflake.concept.external-access-integration`](#snowflake-concept-external-access-integration) through `source.external_access_integrations[0]`.
- [`snowflake.relation.loads-specification-from-stage`](#snowflake-relation-loads-specification-from-stage): targets [`snowflake.concept.stage`](#snowflake-concept-stage) through `source.from_specification[0].stage`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Context through `source.compute_pool`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.query_warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.external_access_integrations[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.from_specification[0].stage`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.share</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/sharing-continuity/sharing.rf.hcl#L17-L47">Source</a></summary>

<div id="rule-share"></div>

Matches `resource` instances of `snowflake_share`.

**Classification:** [`snowflake.concept.data-share`](#snowflake-concept-data-share).

**Relations**

- [`snowflake.relation.shared-with-account`](#snowflake-relation-shared-with-account): targets [`snowflake.concept.account`](#snowflake-concept-account) through `source.accounts[0]`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.accounts[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `external`: `"allow"`
- `match.by`: `target.id`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.shared-database</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-platform/databases.rf.hcl#L79-L118">Source</a></summary>

<div id="rule-shared-database"></div>

Matches `resource` instances of `snowflake_shared_database`.

**Classification:** [`snowflake.concept.database`](#snowflake-concept-database).

**Relations**

- [`snowflake.relation.imports-share`](#snowflake-relation-imports-share): targets [`snowflake.concept.data-share`](#snowflake-concept-data-share) through `source.from_share`.
- [`snowflake.relation.uses-external-volume`](#snowflake-relation-uses-external-volume): targets [`snowflake.concept.external-volume`](#snowflake-concept-external-volume) through `source.external_volume`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.from_share`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `target.id`
- `match.strategy`: `"exact"`

**Relation through `source.external_volume`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-azure-stage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/stages.rf.hcl#L54-L113">Source</a></summary>

<div id="rule-external-azure-stage"></div>

Matches `resource` instances of `snowflake_stage_external_azure`.

**Classification:** [`snowflake.concept.stage`](#snowflake-concept-stage).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

**Relations**

- [`snowflake.relation.uses-storage-integration`](#snowflake-relation-uses-storage-integration): targets [`snowflake.concept.storage-integration`](#snowflake-concept-storage-integration) through `source.storage_integration`.
- [`snowflake.relation.accesses-object-storage`](#snowflake-relation-accesses-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.url`.
- [`snowflake.relation.uses-notification-integration`](#snowflake-relation-uses-notification-integration): targets [`snowflake.concept.notification-integration`](#snowflake-concept-notification-integration) through `source.directory[0].notification_integration`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.storage_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.url`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

**Relation through `source.directory[0].notification_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-gcs-stage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/stages.rf.hcl#L115-L175">Source</a></summary>

<div id="rule-external-gcs-stage"></div>

Matches `resource` instances of `snowflake_stage_external_gcs`.

**Classification:** [`snowflake.concept.stage`](#snowflake-concept-stage).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

**Relations**

- [`snowflake.relation.uses-storage-integration`](#snowflake-relation-uses-storage-integration): targets [`snowflake.concept.storage-integration`](#snowflake-concept-storage-integration) through `source.storage_integration`.
- [`snowflake.relation.accesses-object-storage`](#snowflake-relation-accesses-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.url`.
- [`snowflake.relation.uses-notification-integration`](#snowflake-relation-uses-notification-integration): targets [`snowflake.concept.notification-integration`](#snowflake-concept-notification-integration) through `source.directory[0].notification_integration`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.storage_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.url`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

**Relation through `source.directory[0].notification_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-s3-compatible-stage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/stages.rf.hcl#L227-L262">Source</a></summary>

<div id="rule-external-s3-compatible-stage"></div>

Matches `resource` instances of `snowflake_stage_external_s3_compatible`.

**Classification:** [`snowflake.concept.stage`](#snowflake-concept-stage).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

**Relations**

- [`snowflake.relation.accesses-object-storage`](#snowflake-relation-accesses-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.url`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.url`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

</details>

</details>

<details>
<summary><code>snowflake.rule.external-s3-stage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/stages.rf.hcl#L177-L225">Source</a></summary>

<div id="rule-external-s3-stage"></div>

Matches `resource` instances of `snowflake_stage_external_s3`.

**Classification:** [`snowflake.concept.stage`](#snowflake-concept-stage).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

**Relations**

- [`snowflake.relation.uses-storage-integration`](#snowflake-relation-uses-storage-integration): targets [`snowflake.concept.storage-integration`](#snowflake-concept-storage-integration) through `source.storage_integration`.
- [`snowflake.relation.accesses-object-storage`](#snowflake-relation-accesses-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.url`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.storage_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.url`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

</details>

</details>

<details>
<summary><code>snowflake.rule.internal-stage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/stages.rf.hcl#L264-L292">Source</a></summary>

<div id="rule-internal-stage"></div>

Matches `resource` instances of `snowflake_stage_internal`.

**Classification:** [`snowflake.concept.stage`](#snowflake-concept-stage).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.stage</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/stages.rf.hcl#L5-L52">Source</a></summary>

<div id="rule-stage"></div>

Matches `resource` instances of `snowflake_stage`.

**Classification:** [`snowflake.concept.stage`](#snowflake-concept-stage).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

**Relations**

- [`snowflake.relation.uses-storage-integration`](#snowflake-relation-uses-storage-integration): targets [`snowflake.concept.storage-integration`](#snowflake-concept-storage-integration) through `source.storage_integration`.
- [`snowflake.relation.accesses-object-storage`](#snowflake-relation-accesses-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.url`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.storage_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.url`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

</details>

</details>

<details>
<summary><code>snowflake.rule.aws-storage-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L45-L75">Source</a></summary>

<div id="rule-aws-storage-integration"></div>

Matches `resource` instances of `snowflake_storage_integration_aws`.

**Classification:** [`snowflake.concept.storage-integration`](#snowflake-concept-storage-integration).

**Relations**

- [`snowflake.relation.authorizes-object-storage`](#snowflake-relation-authorizes-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_allowed_locations[0]`.
- [`snowflake.relation.authorizes-object-storage`](#snowflake-relation-authorizes-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_allowed_locations[1]`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.storage_allowed_locations[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

**Relation through `source.storage_allowed_locations[1]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

</details>

</details>

<details>
<summary><code>snowflake.rule.azure-storage-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L77-L106">Source</a></summary>

<div id="rule-azure-storage-integration"></div>

Matches `resource` instances of `snowflake_storage_integration_azure`.

**Classification:** [`snowflake.concept.storage-integration`](#snowflake-concept-storage-integration).

**Relations**

- [`snowflake.relation.authorizes-object-storage`](#snowflake-relation-authorizes-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_allowed_locations[0]`.
- [`snowflake.relation.authorizes-object-storage`](#snowflake-relation-authorizes-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_allowed_locations[1]`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.storage_allowed_locations[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

**Relation through `source.storage_allowed_locations[1]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

</details>

</details>

<details>
<summary><code>snowflake.rule.gcs-storage-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L108-L137">Source</a></summary>

<div id="rule-gcs-storage-integration"></div>

Matches `resource` instances of `snowflake_storage_integration_gcs`.

**Classification:** [`snowflake.concept.storage-integration`](#snowflake-concept-storage-integration).

**Relations**

- [`snowflake.relation.authorizes-object-storage`](#snowflake-relation-authorizes-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_allowed_locations[0]`.
- [`snowflake.relation.authorizes-object-storage`](#snowflake-relation-authorizes-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_allowed_locations[1]`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.storage_allowed_locations[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

**Relation through `source.storage_allowed_locations[1]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

</details>

</details>

<details>
<summary><code>snowflake.rule.storage-integration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/storage/integrations.rf.hcl#L13-L43">Source</a></summary>

<div id="rule-storage-integration"></div>

Matches `resource` instances of `snowflake_storage_integration`.

**Classification:** [`snowflake.concept.storage-integration`](#snowflake-concept-storage-integration).

**Relations**

- [`snowflake.relation.authorizes-object-storage`](#snowflake-relation-authorizes-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_allowed_locations[0]`.
- [`snowflake.relation.authorizes-object-storage`](#snowflake-relation-authorizes-object-storage): targets [`rf.concept.object-storage-container`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-concept-object-storage-container) through `source.storage_allowed_locations[1]`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.storage_allowed_locations[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

**Relation through `source.storage_allowed_locations[1]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`

</details>

</details>

<details>
<summary><code>snowflake.rule.stream-on-directory-table</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L245-L264">Source</a></summary>

<div id="rule-stream-on-directory-table"></div>

Matches `resource` instances of `snowflake_stream_on_directory_table`.

**Classification:** [`snowflake.concept.stream-configuration`](#snowflake-concept-stream-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.stream-on-external-table</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L225-L243">Source</a></summary>

<div id="rule-stream-on-external-table"></div>

Matches `resource` instances of `snowflake_stream_on_external_table`.

**Classification:** [`snowflake.concept.stream-configuration`](#snowflake-concept-stream-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.stream-on-table</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L185-L203">Source</a></summary>

<div id="rule-stream-on-table"></div>

Matches `resource` instances of `snowflake_stream_on_table`.

**Classification:** [`snowflake.concept.stream-configuration`](#snowflake-concept-stream-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.stream-on-view</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L205-L223">Source</a></summary>

<div id="rule-stream-on-view"></div>

Matches `resource` instances of `snowflake_stream_on_view`.

**Classification:** [`snowflake.concept.stream-configuration`](#snowflake-concept-stream-configuration).

**Contributions**

- targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.

<details>
<summary>Conditions, identity and resolution</summary>

**Contribution through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.streamlit</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/applications/applications.rf.hcl#L5-L61">Source</a></summary>

<div id="rule-streamlit"></div>

Matches `resource` instances of `snowflake_streamlit`.

**Classification:** [`snowflake.concept.application`](#snowflake-concept-application).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.
- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.query_warehouse`.

**Relations**

- [`snowflake.relation.loads-code-from-stage`](#snowflake-relation-loads-code-from-stage): targets [`snowflake.concept.stage`](#snowflake-concept-stage) through `source.stage`.
- [`snowflake.relation.uses-external-access`](#snowflake-relation-uses-external-access): targets [`snowflake.concept.external-access-integration`](#snowflake-concept-external-access-integration) through `source.external_access_integrations[0]`.

<details>
<summary>Conditions, identity and resolution</summary>

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Context through `source.query_warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.stage`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.external_access_integrations[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.task</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/data-pipelines/pipes-tasks.rf.hcl#L94-L183">Source</a></summary>

<div id="rule-task"></div>

Matches `resource` instances of `snowflake_task`.

**Classification:** [`snowflake.concept.workflow`](#snowflake-concept-workflow).

**Contexts**

- [`snowflake.context.ownership`](#snowflake-context-ownership): targets [`snowflake.concept.schema`](#snowflake-concept-schema) through `source.schema`.
- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.warehouse`.

**Relations**

- [`snowflake.relation.runs-after-task`](#snowflake-relation-runs-after-task): targets [`snowflake.concept.workflow`](#snowflake-concept-workflow) through `source.after[0]`.
- [`snowflake.relation.runs-after-task`](#snowflake-relation-runs-after-task): targets [`snowflake.concept.workflow`](#snowflake-concept-workflow) through `source.after[1]`.
- [`snowflake.relation.finalizes-task`](#snowflake-relation-finalizes-task): targets [`snowflake.concept.workflow`](#snowflake-concept-workflow) through `source.finalize`.
- [`snowflake.relation.reports-to-notification-integration`](#snowflake-relation-reports-to-notification-integration): targets [`snowflake.concept.notification-integration`](#snowflake-concept-notification-integration) through `source.error_integration`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Context through `source.schema`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Context through `source.warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.after[0]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.after[1]`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.finalize`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

**Relation through `source.error_integration`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.adaptive-warehouse</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/compute/virtual-warehouses.rf.hcl#L22-L37">Source</a></summary>

<div id="rule-adaptive-warehouse"></div>

Matches `resource` instances of `snowflake_warehouse_adaptive`.

**Classification:** [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>

<details>
<summary><code>snowflake.rule.interactive-warehouse</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/compute/virtual-warehouses.rf.hcl#L39-L66">Source</a></summary>

<div id="rule-interactive-warehouse"></div>

Matches `resource` instances of `snowflake_warehouse_interactive`.

**Classification:** [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse).

**Relations**

- [`snowflake.relation.falls-back-to-warehouse`](#snowflake-relation-falls-back-to-warehouse): targets [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse) through `source.fallback_warehouse`.

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

**Relation through `source.fallback_warehouse`**

- `on_null`: `"absent"`
- `on_empty`: `"absent"`
- `match.by`: `[target.name, target.fully_qualified_name]`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>snowflake.rule.warehouse</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/snowflake/compute/virtual-warehouses.rf.hcl#L5-L20">Source</a></summary>

<div id="rule-warehouse"></div>

Matches `resource` instances of `snowflake_warehouse`.

**Classification:** [`snowflake.concept.virtual-warehouse`](#snowflake-concept-virtual-warehouse).

<details>
<summary>Conditions, identity and resolution</summary>

**Identity**

- `attributes`: `["id", "name", "fully_qualified_name"]`
- `scope`: `"provider"`

**Endpoint**

- `attributes`: `["id", "name", "fully_qualified_name"]`

</details>

</details>
