# consul 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**

- `hashicorp/consul`: `= 2.23.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 |
| --- | --- | --- | --- |
| `consul_acl_auth_method` | `data` | [`acl-auth-method`](#consul-concept-acl-auth-method) | [`acl-auth-method-lookup`](#rule-acl-auth-method-lookup) |
| `consul_acl_auth_method` | `resource` | [`acl-auth-method`](#consul-concept-acl-auth-method) | [`acl-auth-method`](#rule-acl-auth-method) |
| `consul_acl_binding_rule` | `resource` | [`access-control-configuration`](#consul-concept-access-control-configuration) | [`acl-binding-rule`](#rule-acl-binding-rule) |
| `consul_admin_partition` | `resource` | [`admin-partition`](#consul-concept-admin-partition) | [`admin-partition`](#rule-admin-partition) |
| `consul_agent_service` | `resource` | [`consul-service`](#consul-concept-consul-service) | [`agent-service`](#rule-agent-service) |
| `consul_autopilot_config` | `resource` | [`operations-configuration`](#consul-concept-operations-configuration) | [`autopilot-config`](#rule-autopilot-config) |
| `consul_catalog_service` | `data` | [`consul-service`](#consul-concept-consul-service) | [`catalog-service-lookup`](#rule-catalog-service-lookup) |
| `consul_config_entry_service_defaults` | `resource` | [`service-networking-configuration`](#consul-concept-service-networking-configuration) | [`config-entry-service-defaults`](#rule-config-entry-service-defaults) |
| `consul_config_entry_service_intentions` | `resource` | [`mesh-security-configuration`](#consul-concept-mesh-security-configuration) | [`config-entry-service-intentions`](#rule-config-entry-service-intentions) |
| `consul_config_entry_service_resolver` | `resource` | [`discovery-chain-configuration`](#consul-concept-discovery-chain-configuration) | [`config-entry-service-resolver`](#rule-config-entry-service-resolver) |
| `consul_config_entry_service_router` | `resource` | [`discovery-chain-configuration`](#consul-concept-discovery-chain-configuration) | [`config-entry-service-router`](#rule-config-entry-service-router) |
| `consul_config_entry_service_splitter` | `resource` | [`discovery-chain-configuration`](#consul-concept-discovery-chain-configuration) | [`config-entry-service-splitter`](#rule-config-entry-service-splitter) |
| `consul_config_entry_v2_exported_services` | `data` | [`service-export`](#consul-concept-service-export) | [`config-entry-v2-exported-services-lookup`](#rule-config-entry-v2-exported-services-lookup) |
| `consul_config_entry_v2_exported_services` | `resource` | [`service-export`](#consul-concept-service-export) | [`config-entry-v2-exported-services`](#rule-config-entry-v2-exported-services) |
| `consul_config_entry` | `data` | [`api-gateway`](#consul-concept-api-gateway)<br>[`operations-configuration`](#consul-concept-operations-configuration)<br>[`service-export`](#consul-concept-service-export)<br>[`gateway-configuration`](#consul-concept-gateway-configuration)<br>[`ingress-gateway`](#consul-concept-ingress-gateway)<br>[`jwt-provider`](#consul-concept-jwt-provider)<br>[`service-mesh`](#consul-concept-service-mesh)<br>[`service-networking-configuration`](#consul-concept-service-networking-configuration)<br>[`sameness-group`](#consul-concept-sameness-group)<br>[`mesh-security-configuration`](#consul-concept-mesh-security-configuration)<br>[`discovery-chain-configuration`](#consul-concept-discovery-chain-configuration)<br>[`terminating-gateway`](#consul-concept-terminating-gateway) | [`config-entry-api-gateway-json-lookup`](#rule-config-entry-api-gateway-json-lookup) (conditional)<br>[`config-entry-control-plane-request-limit-json-lookup`](#rule-config-entry-control-plane-request-limit-json-lookup) (conditional)<br>[`config-entry-exported-services-json-lookup`](#rule-config-entry-exported-services-json-lookup) (conditional)<br>[`config-entry-file-system-certificate-json-lookup`](#rule-config-entry-file-system-certificate-json-lookup) (conditional)<br>[`config-entry-http-route-json-lookup`](#rule-config-entry-http-route-json-lookup) (conditional)<br>[`config-entry-ingress-gateway-json-lookup`](#rule-config-entry-ingress-gateway-json-lookup) (conditional)<br>[`config-entry-inline-certificate-json-lookup`](#rule-config-entry-inline-certificate-json-lookup) (conditional)<br>[`config-entry-jwt-provider-json-lookup`](#rule-config-entry-jwt-provider-json-lookup) (conditional)<br>[`config-entry-mesh-json-lookup`](#rule-config-entry-mesh-json-lookup) (conditional)<br>[`config-entry-proxy-defaults-json-lookup`](#rule-config-entry-proxy-defaults-json-lookup) (conditional)<br>[`config-entry-sameness-group-json-lookup`](#rule-config-entry-sameness-group-json-lookup) (conditional)<br>[`config-entry-service-defaults-json-lookup`](#rule-config-entry-service-defaults-json-lookup) (conditional)<br>[`config-entry-service-intentions-json-lookup`](#rule-config-entry-service-intentions-json-lookup) (conditional)<br>[`config-entry-service-resolver-json-lookup`](#rule-config-entry-service-resolver-json-lookup) (conditional)<br>[`config-entry-service-router-json-lookup`](#rule-config-entry-service-router-json-lookup) (conditional)<br>[`config-entry-service-splitter-json-lookup`](#rule-config-entry-service-splitter-json-lookup) (conditional)<br>[`config-entry-tcp-route-json-lookup`](#rule-config-entry-tcp-route-json-lookup) (conditional)<br>[`config-entry-terminating-gateway-json-lookup`](#rule-config-entry-terminating-gateway-json-lookup) (conditional) |
| `consul_config_entry` | `resource` | [`api-gateway`](#consul-concept-api-gateway)<br>[`operations-configuration`](#consul-concept-operations-configuration)<br>[`service-export`](#consul-concept-service-export)<br>[`gateway-configuration`](#consul-concept-gateway-configuration)<br>[`ingress-gateway`](#consul-concept-ingress-gateway)<br>[`jwt-provider`](#consul-concept-jwt-provider)<br>[`service-mesh`](#consul-concept-service-mesh)<br>[`service-networking-configuration`](#consul-concept-service-networking-configuration)<br>[`sameness-group`](#consul-concept-sameness-group)<br>[`mesh-security-configuration`](#consul-concept-mesh-security-configuration)<br>[`discovery-chain-configuration`](#consul-concept-discovery-chain-configuration)<br>[`terminating-gateway`](#consul-concept-terminating-gateway) | [`config-entry-api-gateway-json`](#rule-config-entry-api-gateway-json) (conditional)<br>[`config-entry-control-plane-request-limit-json`](#rule-config-entry-control-plane-request-limit-json) (conditional)<br>[`config-entry-exported-services-json`](#rule-config-entry-exported-services-json) (conditional)<br>[`config-entry-file-system-certificate-json`](#rule-config-entry-file-system-certificate-json) (conditional)<br>[`config-entry-http-route-json`](#rule-config-entry-http-route-json) (conditional)<br>[`config-entry-ingress-gateway-json`](#rule-config-entry-ingress-gateway-json) (conditional)<br>[`config-entry-inline-certificate-json`](#rule-config-entry-inline-certificate-json) (conditional)<br>[`config-entry-jwt-provider-json`](#rule-config-entry-jwt-provider-json) (conditional)<br>[`config-entry-mesh-json`](#rule-config-entry-mesh-json) (conditional)<br>[`config-entry-proxy-defaults-json`](#rule-config-entry-proxy-defaults-json) (conditional)<br>[`config-entry-sameness-group-json`](#rule-config-entry-sameness-group-json) (conditional)<br>[`config-entry-service-defaults-json`](#rule-config-entry-service-defaults-json) (conditional)<br>[`config-entry-service-intentions-json`](#rule-config-entry-service-intentions-json) (conditional)<br>[`config-entry-service-resolver-json`](#rule-config-entry-service-resolver-json) (conditional)<br>[`config-entry-service-router-json`](#rule-config-entry-service-router-json) (conditional)<br>[`config-entry-service-splitter-json`](#rule-config-entry-service-splitter-json) (conditional)<br>[`config-entry-tcp-route-json`](#rule-config-entry-tcp-route-json) (conditional)<br>[`config-entry-terminating-gateway-json`](#rule-config-entry-terminating-gateway-json) (conditional) |
| `consul_intention` | `resource` | [`mesh-security-configuration`](#consul-concept-mesh-security-configuration) | [`intention`](#rule-intention) |
| `consul_namespace_policy_attachment` | `resource` | [`access-control-configuration`](#consul-concept-access-control-configuration) | [`namespace-policy-attachment`](#rule-namespace-policy-attachment) |
| `consul_namespace_role_attachment` | `resource` | [`access-control-configuration`](#consul-concept-access-control-configuration) | [`namespace-role-attachment`](#rule-namespace-role-attachment) |
| `consul_namespace` | `resource` | [`namespace`](#consul-concept-namespace) | [`namespace`](#rule-namespace) |
| `consul_node` | `resource` | [`consul-node`](#consul-concept-consul-node) | [`node`](#rule-node) |
| `consul_peering` | `data` | [`cluster-peering`](#consul-concept-cluster-peering) | [`peering-lookup`](#rule-peering-lookup) |
| `consul_peering` | `resource` | [`cluster-peering`](#consul-concept-cluster-peering) | [`peering`](#rule-peering) |
| `consul_prepared_query` | `resource` | [`discovery-chain-configuration`](#consul-concept-discovery-chain-configuration) | [`prepared-query`](#rule-prepared-query) |
| `consul_service_health` | `data` | [`operations-configuration`](#consul-concept-operations-configuration) | [`service-health-lookup`](#rule-service-health-lookup) |
| `consul_service` | `data` | [`consul-service`](#consul-concept-consul-service) | [`service-lookup`](#rule-service-lookup) |
| `consul_service` | `resource` | [`consul-service`](#consul-concept-consul-service) | [`service`](#rule-service) |

## Local vocabulary

### Concepts

<dl>

<div>
<dt id="consul-concept-access-control-configuration"><code>consul.concept.access-control-configuration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/identity-access/auth-methods.rf.hcl#L1-L3">Source</a></dt>
<dd>

A binding or attachment supporting a Consul identity boundary.

</dd>
<dd>

Used by [`acl-binding-rule`](#rule-acl-binding-rule), [`namespace-policy-attachment`](#rule-namespace-policy-attachment), [`namespace-role-attachment`](#rule-namespace-role-attachment).

</dd>
</div>

<div>
<dt id="consul-concept-acl-auth-method"><code>consul.concept.acl-auth-method</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/identity-access/auth-methods.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Consul authentication boundary that verifies an external workload identity.

</dd>
<dd>

Used by [`acl-auth-method`](#rule-acl-auth-method), [`acl-auth-method-lookup`](#rule-acl-auth-method-lookup), [`acl-binding-rule`](#rule-acl-binding-rule).

</dd>
</div>

<div>
<dt id="consul-concept-admin-partition"><code>consul.concept.admin-partition</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/multi-tenancy/partitions-namespaces.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Consul Enterprise administrative and communication boundary.

</dd>
<dd>

Used by [`admin-partition`](#rule-admin-partition), [`namespace`](#rule-namespace).

</dd>
</div>

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

A managed gateway that exposes and governs APIs.

</dd>
<dd>

Used by [`config-entry-api-gateway-json`](#rule-config-entry-api-gateway-json), [`config-entry-api-gateway-json-lookup`](#rule-config-entry-api-gateway-json-lookup).

</dd>
</div>

<div>
<dt id="consul-concept-cluster-peering"><code>consul.concept.cluster-peering</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L1-L3">Source</a></dt>
<dd>

A Consul cluster peering connection for exported service discovery and mesh traffic.

</dd>
<dd>


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

- [`config-entry-v2-exported-services`](#rule-config-entry-v2-exported-services)
- [`config-entry-v2-exported-services-lookup`](#rule-config-entry-v2-exported-services-lookup)
- [`peering`](#rule-peering)
- [`peering-lookup`](#rule-peering-lookup)

</details>

</dd>
</div>

<div>
<dt id="consul-concept-consul-node"><code>consul.concept.consul-node</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-catalog/nodes-services.rf.hcl#L2-L4">Source</a></dt>
<dd>

A node registered in the Consul service catalog.

</dd>
<dd>

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

</dd>
</div>

<div>
<dt id="consul-concept-consul-service"><code>consul.concept.consul-service</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-catalog/nodes-services.rf.hcl#L6-L8">Source</a></dt>
<dd>

A service registered or selected in the Consul catalog.

</dd>
<dd>


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

- [`agent-service`](#rule-agent-service)
- [`catalog-service-lookup`](#rule-catalog-service-lookup)
- [`config-entry-service-defaults`](#rule-config-entry-service-defaults)
- [`config-entry-service-intentions`](#rule-config-entry-service-intentions)
- [`config-entry-service-resolver`](#rule-config-entry-service-resolver)
- [`config-entry-service-router`](#rule-config-entry-service-router)
- [`config-entry-service-splitter`](#rule-config-entry-service-splitter)
- [`config-entry-v2-exported-services`](#rule-config-entry-v2-exported-services)
- [`config-entry-v2-exported-services-lookup`](#rule-config-entry-v2-exported-services-lookup)
- [`intention`](#rule-intention)
- [`prepared-query`](#rule-prepared-query)
- [`service`](#rule-service)
- [`service-health-lookup`](#rule-service-health-lookup)
- [`service-lookup`](#rule-service-lookup)

</details>

</dd>
</div>

<div>
<dt id="consul-concept-discovery-chain-configuration"><code>consul.concept.discovery-chain-configuration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L1-L3">Source</a></dt>
<dd>

A resolver, router, splitter, or prepared-query detail for service discovery.

</dd>
<dd>


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

- [`config-entry-service-resolver`](#rule-config-entry-service-resolver)
- [`config-entry-service-resolver-json`](#rule-config-entry-service-resolver-json)
- [`config-entry-service-resolver-json-lookup`](#rule-config-entry-service-resolver-json-lookup)
- [`config-entry-service-router`](#rule-config-entry-service-router)
- [`config-entry-service-router-json`](#rule-config-entry-service-router-json)
- [`config-entry-service-router-json-lookup`](#rule-config-entry-service-router-json-lookup)
- [`config-entry-service-splitter`](#rule-config-entry-service-splitter)
- [`config-entry-service-splitter-json`](#rule-config-entry-service-splitter-json)
- [`config-entry-service-splitter-json-lookup`](#rule-config-entry-service-splitter-json-lookup)
- [`prepared-query`](#rule-prepared-query)

</details>

</dd>
</div>

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

A route or certificate configuration supporting a Consul API gateway.

</dd>
<dd>


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

- [`config-entry-file-system-certificate-json`](#rule-config-entry-file-system-certificate-json)
- [`config-entry-file-system-certificate-json-lookup`](#rule-config-entry-file-system-certificate-json-lookup)
- [`config-entry-http-route-json`](#rule-config-entry-http-route-json)
- [`config-entry-http-route-json-lookup`](#rule-config-entry-http-route-json-lookup)
- [`config-entry-inline-certificate-json`](#rule-config-entry-inline-certificate-json)
- [`config-entry-inline-certificate-json-lookup`](#rule-config-entry-inline-certificate-json-lookup)
- [`config-entry-tcp-route-json`](#rule-config-entry-tcp-route-json)
- [`config-entry-tcp-route-json-lookup`](#rule-config-entry-tcp-route-json-lookup)

</details>

</dd>
</div>

<div>
<dt id="consul-concept-ingress-gateway"><code>consul.concept.ingress-gateway</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/mesh-gateways.rf.hcl#L1-L3">Source</a></dt>
<dd>

A deprecated Consul gateway admitting traffic into the service mesh.

</dd>
<dd>

Used by [`config-entry-ingress-gateway-json`](#rule-config-entry-ingress-gateway-json), [`config-entry-ingress-gateway-json-lookup`](#rule-config-entry-ingress-gateway-json-lookup).

</dd>
</div>

<div>
<dt id="consul-concept-jwt-provider"><code>consul.concept.jwt-provider</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L1-L3">Source</a></dt>
<dd>

A JWT validation boundary used by Consul service mesh intentions.

</dd>
<dd>

Used by [`config-entry-jwt-provider-json`](#rule-config-entry-jwt-provider-json), [`config-entry-jwt-provider-json-lookup`](#rule-config-entry-jwt-provider-json-lookup).

</dd>
</div>

<div>
<dt id="consul-concept-mesh-security-configuration"><code>consul.concept.mesh-security-configuration</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/intentions.rf.hcl#L1-L3">Source</a></dt>
<dd>

An authorization detail protecting service mesh traffic without proving traffic flow.

</dd>
<dd>


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

- [`config-entry-service-intentions`](#rule-config-entry-service-intentions)
- [`config-entry-service-intentions-json`](#rule-config-entry-service-intentions-json)
- [`config-entry-service-intentions-json-lookup`](#rule-config-entry-service-intentions-json-lookup)
- [`intention`](#rule-intention)

</details>

</dd>
</div>

<div>
<dt id="consul-concept-namespace"><code>consul.concept.namespace</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/multi-tenancy/partitions-namespaces.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Consul Enterprise tenant boundary within an admin partition.

</dd>
<dd>


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

- [`acl-auth-method`](#rule-acl-auth-method)
- [`acl-auth-method-lookup`](#rule-acl-auth-method-lookup)
- [`namespace`](#rule-namespace)
- [`namespace-policy-attachment`](#rule-namespace-policy-attachment)
- [`namespace-role-attachment`](#rule-namespace-role-attachment)
- [`service`](#rule-service)

</details>

</dd>
</div>

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

An operational or health setting that owns no independent topology.

</dd>
<dd>


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

- [`autopilot-config`](#rule-autopilot-config)
- [`config-entry-control-plane-request-limit-json`](#rule-config-entry-control-plane-request-limit-json)
- [`config-entry-control-plane-request-limit-json-lookup`](#rule-config-entry-control-plane-request-limit-json-lookup)
- [`service-health-lookup`](#rule-service-health-lookup)

</details>

</dd>
</div>

<div>
<dt id="consul-concept-sameness-group"><code>consul.concept.sameness-group</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L6-L8">Source</a></dt>
<dd>

A Consul group of partitions or peers with equivalent service instances.

</dd>
<dd>


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

- [`config-entry-sameness-group-json`](#rule-config-entry-sameness-group-json)
- [`config-entry-sameness-group-json-lookup`](#rule-config-entry-sameness-group-json-lookup)
- [`config-entry-v2-exported-services`](#rule-config-entry-v2-exported-services)
- [`config-entry-v2-exported-services-lookup`](#rule-config-entry-v2-exported-services-lookup)

</details>

</dd>
</div>

<div>
<dt id="consul-concept-service-export"><code>consul.concept.service-export</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L10-L12">Source</a></dt>
<dd>

A service export detail for peers, partitions, or sameness groups.

</dd>
<dd>


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

- [`config-entry-exported-services-json`](#rule-config-entry-exported-services-json)
- [`config-entry-exported-services-json-lookup`](#rule-config-entry-exported-services-json-lookup)
- [`config-entry-v2-exported-services`](#rule-config-entry-v2-exported-services)
- [`config-entry-v2-exported-services-lookup`](#rule-config-entry-v2-exported-services-lookup)

</details>

</dd>
</div>

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

A Consul service mesh traffic-control and identity boundary.

</dd>
<dd>

Used by [`config-entry-mesh-json`](#rule-config-entry-mesh-json), [`config-entry-mesh-json-lookup`](#rule-config-entry-mesh-json-lookup).

</dd>
</div>

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

A mesh-wide or service-specific proxy configuration.

</dd>
<dd>


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

- [`config-entry-proxy-defaults-json`](#rule-config-entry-proxy-defaults-json)
- [`config-entry-proxy-defaults-json-lookup`](#rule-config-entry-proxy-defaults-json-lookup)
- [`config-entry-service-defaults`](#rule-config-entry-service-defaults)
- [`config-entry-service-defaults-json`](#rule-config-entry-service-defaults-json)
- [`config-entry-service-defaults-json-lookup`](#rule-config-entry-service-defaults-json-lookup)

</details>

</dd>
</div>

<div>
<dt id="consul-concept-terminating-gateway"><code>consul.concept.terminating-gateway</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/mesh-gateways.rf.hcl#L5-L7">Source</a></dt>
<dd>

A Consul gateway connecting mesh services to services outside the mesh.

</dd>
<dd>

Used by [`config-entry-terminating-gateway-json`](#rule-config-entry-terminating-gateway-json), [`config-entry-terminating-gateway-json-lookup`](#rule-config-entry-terminating-gateway-json-lookup).

</dd>
</div>

</dl>

### Contexts

<dl>

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

Administrative or lifecycle ownership.

</dd>
<dd>


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

- [`acl-auth-method`](#rule-acl-auth-method)
- [`acl-auth-method-lookup`](#rule-acl-auth-method-lookup)
- [`namespace`](#rule-namespace)
- [`service`](#rule-service)

</details>

</dd>
</div>

</dl>

## RF Vocabulary used

- [`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>consul.rule.acl-auth-method-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/identity-access/auth-methods.rf.hcl#L42-L74">Source</a></summary>

<div id="rule-acl-auth-method-lookup"></div>

Matches `data` instances of `consul_acl_auth_method`.

**Classification:** [`consul.concept.acl-auth-method`](#consul-concept-acl-auth-method).

**Contexts**

- [`consul.context.ownership`](#consul-context-ownership): targets [`consul.concept.namespace`](#consul-concept-namespace) through `source.namespace`.

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

**Identity**

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

**Endpoint**

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

**Context through `source.namespace`**

- `on_null`: `"indeterminate"`
- `on_empty`: `"indeterminate"`
- `external`: `"allow"`
- `match.by`: `target.name`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>consul.rule.acl-auth-method</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/identity-access/auth-methods.rf.hcl#L9-L40">Source</a></summary>

<div id="rule-acl-auth-method"></div>

Matches `resource` instances of `consul_acl_auth_method`.

**Classification:** [`consul.concept.acl-auth-method`](#consul-concept-acl-auth-method).

**Contexts**

- [`consul.context.ownership`](#consul-context-ownership): targets [`consul.concept.namespace`](#consul-concept-namespace) through `source.namespace`.

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

**Identity**

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

**Endpoint**

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

**Context through `source.namespace`**

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

</details>

</details>

<details>
<summary><code>consul.rule.acl-binding-rule</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/identity-access/auth-methods.rf.hcl#L76-L94">Source</a></summary>

<div id="rule-acl-binding-rule"></div>

Matches `resource` instances of `consul_acl_binding_rule`.

**Classification:** [`consul.concept.access-control-configuration`](#consul-concept-access-control-configuration).

**Contributions**

- targets [`consul.concept.acl-auth-method`](#consul-concept-acl-auth-method) through `source.auth_method`.

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

**Contribution through `source.auth_method`**

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

</details>

</details>

<details>
<summary><code>consul.rule.admin-partition</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/multi-tenancy/partitions-namespaces.rf.hcl#L9-L24">Source</a></summary>

<div id="rule-admin-partition"></div>

Matches `resource` instances of `consul_admin_partition`.

**Classification:** [`consul.concept.admin-partition`](#consul-concept-admin-partition).

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

**Identity**

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

**Endpoint**

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

</details>

</details>

<details>
<summary><code>consul.rule.agent-service</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-catalog/nodes-services.rf.hcl#L10-L25">Source</a></summary>

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

Matches `resource` instances of `consul_agent_service`.

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

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

**Identity**

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

**Endpoint**

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

</details>

</details>

<details>
<summary><code>consul.rule.autopilot-config</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/platform/operations.rf.hcl#L5-L11">Source</a></summary>

<div id="rule-autopilot-config"></div>

Matches `resource` instances of `consul_autopilot_config`.

**Classification:** [`consul.concept.operations-configuration`](#consul-concept-operations-configuration).

</details>

<details>
<summary><code>consul.rule.catalog-service-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-catalog/nodes-services.rf.hcl#L28-L44">Source</a></summary>

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

Matches `data` instances of `consul_catalog_service`.

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

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

**Identity**

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

**Endpoint**

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

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-defaults</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L72-L90">Source</a></summary>

<div id="rule-config-entry-service-defaults"></div>

Matches `resource` instances of `consul_config_entry_service_defaults`.

**Classification:** [`consul.concept.service-networking-configuration`](#consul-concept-service-networking-configuration).

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.name`.

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

**Contribution through `source.name`**

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

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-intentions</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/intentions.rf.hcl#L5-L23">Source</a></summary>

<div id="rule-config-entry-service-intentions"></div>

Matches `resource` instances of `consul_config_entry_service_intentions`.

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

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.name`.

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

**Contribution through `source.name`**

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

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-resolver</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L5-L23">Source</a></summary>

<div id="rule-config-entry-service-resolver"></div>

Matches `resource` instances of `consul_config_entry_service_resolver`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.name`.

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

**Contribution through `source.name`**

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

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-router</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L44-L62">Source</a></summary>

<div id="rule-config-entry-service-router"></div>

Matches `resource` instances of `consul_config_entry_service_router`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.name`.

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

**Contribution through `source.name`**

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

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-splitter</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L83-L101">Source</a></summary>

<div id="rule-config-entry-service-splitter"></div>

Matches `resource` instances of `consul_config_entry_service_splitter`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.name`.

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

**Contribution through `source.name`**

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

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-v2-exported-services-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L114-L157">Source</a></summary>

<div id="rule-config-entry-v2-exported-services-lookup"></div>

Matches `data` instances of `consul_config_entry_v2_exported_services`.

**Classification:** [`consul.concept.service-export`](#consul-concept-service-export).

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.services`.
- targets [`consul.concept.cluster-peering`](#consul-concept-cluster-peering) through `source.peer_consumers`.
- targets [`consul.concept.sameness-group`](#consul-concept-sameness-group) through `source.sameness_group_consumers`.

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

**Contribution through `source.services`**

- `on_null`: `"indeterminate"`
- `on_empty`: `"indeterminate"`
- `match.by`: `target.name`
- `match.strategy`: `"exact"`

**Contribution through `source.peer_consumers`**

- `on_null`: `"indeterminate"`
- `on_empty`: `"indeterminate"`
- `match.by`: `target.peer_name`
- `match.strategy`: `"exact"`

**Contribution through `source.sameness_group_consumers`**

- `on_null`: `"indeterminate"`
- `on_empty`: `"indeterminate"`
- `match.by`: `target.name`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-v2-exported-services</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L70-L112">Source</a></summary>

<div id="rule-config-entry-v2-exported-services"></div>

Matches `resource` instances of `consul_config_entry_v2_exported_services`.

**Classification:** [`consul.concept.service-export`](#consul-concept-service-export).

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.services`.
- targets [`consul.concept.cluster-peering`](#consul-concept-cluster-peering) through `source.peer_consumers`.
- targets [`consul.concept.sameness-group`](#consul-concept-sameness-group) through `source.sameness_group_consumers`.

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

**Contribution through `source.services`**

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

**Contribution through `source.peer_consumers`**

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

**Contribution through `source.sameness_group_consumers`**

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

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-api-gateway-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L14-L22">Source</a></summary>

<div id="rule-config-entry-api-gateway-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.api-gateway`](#consul-concept-api-gateway).

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

**Condition**

```rf
source.kind == "api-gateway"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-control-plane-request-limit-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/platform/operations.rf.hcl#L22-L30">Source</a></summary>

<div id="rule-config-entry-control-plane-request-limit-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.operations-configuration`](#consul-concept-operations-configuration).

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

**Condition**

```rf
source.kind == "control-plane-request-limit"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-exported-services-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L23-L31">Source</a></summary>

<div id="rule-config-entry-exported-services-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.service-export`](#consul-concept-service-export).

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

**Condition**

```rf
source.kind == "exported-services"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-file-system-certificate-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L33-L41">Source</a></summary>

<div id="rule-config-entry-file-system-certificate-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.gateway-configuration`](#consul-concept-gateway-configuration).

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

**Condition**

```rf
source.kind == "file-system-certificate"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-http-route-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L52-L60">Source</a></summary>

<div id="rule-config-entry-http-route-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.gateway-configuration`](#consul-concept-gateway-configuration).

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

**Condition**

```rf
source.kind == "http-route"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-ingress-gateway-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/mesh-gateways.rf.hcl#L18-L26">Source</a></summary>

<div id="rule-config-entry-ingress-gateway-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.ingress-gateway`](#consul-concept-ingress-gateway).

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

**Condition**

```rf
source.kind == "ingress-gateway"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-inline-certificate-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L71-L79">Source</a></summary>

<div id="rule-config-entry-inline-certificate-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.gateway-configuration`](#consul-concept-gateway-configuration).

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

**Condition**

```rf
source.kind == "inline-certificate"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-jwt-provider-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L24-L32">Source</a></summary>

<div id="rule-config-entry-jwt-provider-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.jwt-provider`](#consul-concept-jwt-provider).

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

**Condition**

```rf
source.kind == "jwt-provider"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-mesh-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L43-L51">Source</a></summary>

<div id="rule-config-entry-mesh-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.service-mesh`](#consul-concept-service-mesh).

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

**Condition**

```rf
source.kind == "mesh"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-proxy-defaults-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L62-L70">Source</a></summary>

<div id="rule-config-entry-proxy-defaults-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.service-networking-configuration`](#consul-concept-service-networking-configuration).

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

**Condition**

```rf
source.kind == "proxy-defaults"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-sameness-group-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L51-L68">Source</a></summary>

<div id="rule-config-entry-sameness-group-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.sameness-group`](#consul-concept-sameness-group).

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

**Condition**

```rf
source.kind == "sameness-group"
```

**Identity**

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

**Endpoint**

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

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-defaults-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L101-L109">Source</a></summary>

<div id="rule-config-entry-service-defaults-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.service-networking-configuration`](#consul-concept-service-networking-configuration).

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

**Condition**

```rf
source.kind == "service-defaults"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-intentions-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/intentions.rf.hcl#L34-L42">Source</a></summary>

<div id="rule-config-entry-service-intentions-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

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

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

**Condition**

```rf
source.kind == "service-intentions"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-resolver-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L34-L42">Source</a></summary>

<div id="rule-config-entry-service-resolver-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

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

**Condition**

```rf
source.kind == "service-resolver"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-router-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L73-L81">Source</a></summary>

<div id="rule-config-entry-service-router-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

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

**Condition**

```rf
source.kind == "service-router"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-splitter-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L112-L120">Source</a></summary>

<div id="rule-config-entry-service-splitter-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

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

**Condition**

```rf
source.kind == "service-splitter"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-tcp-route-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L90-L98">Source</a></summary>

<div id="rule-config-entry-tcp-route-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.gateway-configuration`](#consul-concept-gateway-configuration).

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

**Condition**

```rf
source.kind == "tcp-route"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-terminating-gateway-json-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/mesh-gateways.rf.hcl#L37-L45">Source</a></summary>

<div id="rule-config-entry-terminating-gateway-json-lookup"></div>

Matches `data` instances of `consul_config_entry`.

**Classification:** [`consul.concept.terminating-gateway`](#consul-concept-terminating-gateway).

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

**Condition**

```rf
source.kind == "terminating-gateway"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-api-gateway-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L5-L12">Source</a></summary>

<div id="rule-config-entry-api-gateway-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.api-gateway`](#consul-concept-api-gateway).

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

**Condition**

```rf
source.kind == "api-gateway"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-control-plane-request-limit-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/platform/operations.rf.hcl#L13-L20">Source</a></summary>

<div id="rule-config-entry-control-plane-request-limit-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.operations-configuration`](#consul-concept-operations-configuration).

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

**Condition**

```rf
source.kind == "control-plane-request-limit"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-exported-services-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L14-L21">Source</a></summary>

<div id="rule-config-entry-exported-services-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.service-export`](#consul-concept-service-export).

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

**Condition**

```rf
source.kind == "exported-services"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-file-system-certificate-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L24-L31">Source</a></summary>

<div id="rule-config-entry-file-system-certificate-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.gateway-configuration`](#consul-concept-gateway-configuration).

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

**Condition**

```rf
source.kind == "file-system-certificate"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-http-route-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L43-L50">Source</a></summary>

<div id="rule-config-entry-http-route-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.gateway-configuration`](#consul-concept-gateway-configuration).

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

**Condition**

```rf
source.kind == "http-route"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-ingress-gateway-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/mesh-gateways.rf.hcl#L9-L16">Source</a></summary>

<div id="rule-config-entry-ingress-gateway-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.ingress-gateway`](#consul-concept-ingress-gateway).

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

**Condition**

```rf
source.kind == "ingress-gateway"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-inline-certificate-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L62-L69">Source</a></summary>

<div id="rule-config-entry-inline-certificate-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.gateway-configuration`](#consul-concept-gateway-configuration).

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

**Condition**

```rf
source.kind == "inline-certificate"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-jwt-provider-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L15-L22">Source</a></summary>

<div id="rule-config-entry-jwt-provider-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.jwt-provider`](#consul-concept-jwt-provider).

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

**Condition**

```rf
source.kind == "jwt-provider"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-mesh-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L34-L41">Source</a></summary>

<div id="rule-config-entry-mesh-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.service-mesh`](#consul-concept-service-mesh).

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

**Condition**

```rf
source.kind == "mesh"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-proxy-defaults-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L53-L60">Source</a></summary>

<div id="rule-config-entry-proxy-defaults-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.service-networking-configuration`](#consul-concept-service-networking-configuration).

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

**Condition**

```rf
source.kind == "proxy-defaults"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-sameness-group-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L33-L49">Source</a></summary>

<div id="rule-config-entry-sameness-group-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.sameness-group`](#consul-concept-sameness-group).

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

**Condition**

```rf
source.kind == "sameness-group"
```

**Identity**

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

**Endpoint**

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

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-defaults-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/mesh-security.rf.hcl#L92-L99">Source</a></summary>

<div id="rule-config-entry-service-defaults-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.service-networking-configuration`](#consul-concept-service-networking-configuration).

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

**Condition**

```rf
source.kind == "service-defaults"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-intentions-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/intentions.rf.hcl#L25-L32">Source</a></summary>

<div id="rule-config-entry-service-intentions-json"></div>

Matches `resource` instances of `consul_config_entry`.

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

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

**Condition**

```rf
source.kind == "service-intentions"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-resolver-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L25-L32">Source</a></summary>

<div id="rule-config-entry-service-resolver-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

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

**Condition**

```rf
source.kind == "service-resolver"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-router-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L64-L71">Source</a></summary>

<div id="rule-config-entry-service-router-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

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

**Condition**

```rf
source.kind == "service-router"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-service-splitter-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/traffic-management/discovery-chain.rf.hcl#L103-L110">Source</a></summary>

<div id="rule-config-entry-service-splitter-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

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

**Condition**

```rf
source.kind == "service-splitter"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-tcp-route-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/api-gateway.rf.hcl#L81-L88">Source</a></summary>

<div id="rule-config-entry-tcp-route-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.gateway-configuration`](#consul-concept-gateway-configuration).

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

**Condition**

```rf
source.kind == "tcp-route"
```

</details>

</details>

<details>
<summary><code>consul.rule.config-entry-terminating-gateway-json</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/gateways/mesh-gateways.rf.hcl#L28-L35">Source</a></summary>

<div id="rule-config-entry-terminating-gateway-json"></div>

Matches `resource` instances of `consul_config_entry`.

**Classification:** [`consul.concept.terminating-gateway`](#consul-concept-terminating-gateway).

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

**Condition**

```rf
source.kind == "terminating-gateway"
```

</details>

</details>

<details>
<summary><code>consul.rule.intention</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-mesh/intentions.rf.hcl#L44-L74">Source</a></summary>

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

Matches `resource` instances of `consul_intention`.

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

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.source_name`.
- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.destination_name`.

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

**Contribution through `source.source_name`**

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

**Contribution through `source.destination_name`**

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

</details>

</details>

<details>
<summary><code>consul.rule.namespace-policy-attachment</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/multi-tenancy/partitions-namespaces.rf.hcl#L56-L77">Source</a></summary>

<div id="rule-namespace-policy-attachment"></div>

Matches `resource` instances of `consul_namespace_policy_attachment`.

**Classification:** [`consul.concept.access-control-configuration`](#consul-concept-access-control-configuration).

**Contributions**

- targets [`consul.concept.namespace`](#consul-concept-namespace) through `source.namespace`.

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

**Contribution through `source.namespace`**

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

</details>

</details>

<details>
<summary><code>consul.rule.namespace-role-attachment</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/multi-tenancy/partitions-namespaces.rf.hcl#L79-L100">Source</a></summary>

<div id="rule-namespace-role-attachment"></div>

Matches `resource` instances of `consul_namespace_role_attachment`.

**Classification:** [`consul.concept.access-control-configuration`](#consul-concept-access-control-configuration).

**Contributions**

- targets [`consul.concept.namespace`](#consul-concept-namespace) through `source.namespace`.

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

**Contribution through `source.namespace`**

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

</details>

</details>

<details>
<summary><code>consul.rule.namespace</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/multi-tenancy/partitions-namespaces.rf.hcl#L26-L54">Source</a></summary>

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

Matches `resource` instances of `consul_namespace`.

**Classification:** [`consul.concept.namespace`](#consul-concept-namespace).

**Contexts**

- [`consul.context.ownership`](#consul-context-ownership): targets [`consul.concept.admin-partition`](#consul-concept-admin-partition) through `source.partition`.

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

**Identity**

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

**Endpoint**

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

**Context through `source.partition`**

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

</details>

</details>

<details>
<summary><code>consul.rule.node</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-catalog/nodes-services.rf.hcl#L46-L61">Source</a></summary>

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

Matches `resource` instances of `consul_node`.

**Classification:** [`consul.concept.consul-node`](#consul-concept-consul-node).

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

**Identity**

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

**Endpoint**

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

</details>

</details>

<details>
<summary><code>consul.rule.peering-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L177-L193">Source</a></summary>

<div id="rule-peering-lookup"></div>

Matches `data` instances of `consul_peering`.

**Classification:** [`consul.concept.cluster-peering`](#consul-concept-cluster-peering).

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

**Identity**

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

**Endpoint**

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

</details>

</details>

<details>
<summary><code>consul.rule.peering</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/connectivity/peering-federation.rf.hcl#L160-L175">Source</a></summary>

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

Matches `resource` instances of `consul_peering`.

**Classification:** [`consul.concept.cluster-peering`](#consul-concept-cluster-peering).

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

**Identity**

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

**Endpoint**

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

</details>

</details>

<details>
<summary><code>consul.rule.prepared-query</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-catalog/discovery-queries.rf.hcl#L1-L19">Source</a></summary>

<div id="rule-prepared-query"></div>

Matches `resource` instances of `consul_prepared_query`.

**Classification:** [`consul.concept.discovery-chain-configuration`](#consul-concept-discovery-chain-configuration).

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.service`.

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

**Contribution through `source.service`**

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

</details>

</details>

<details>
<summary><code>consul.rule.service-health-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-catalog/discovery-queries.rf.hcl#L21-L40">Source</a></summary>

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

Matches `data` instances of `consul_service_health`.

**Classification:** [`consul.concept.operations-configuration`](#consul-concept-operations-configuration).

**Contributions**

- targets [`consul.concept.consul-service`](#consul-concept-consul-service) through `source.name`.

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

**Contribution through `source.name`**

- `on_null`: `"indeterminate"`
- `on_empty`: `"indeterminate"`
- `match.by`: `target.name`
- `match.strategy`: `"exact"`

</details>

</details>

<details>
<summary><code>consul.rule.service-lookup</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-catalog/nodes-services.rf.hcl#L109-L125">Source</a></summary>

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

Matches `data` instances of `consul_service`.

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

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

**Identity**

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

**Endpoint**

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

</details>

</details>

<details>
<summary><code>consul.rule.service</code> <a href="https://github.com/rootform-dev/rootform/blob/dev/dialects/consul/service-catalog/nodes-services.rf.hcl#L63-L107">Source</a></summary>

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

Matches `resource` instances of `consul_service`.

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

**Contexts**

- [`rf.context.runtime`](https://docs.rootform.dev/language/reference/rf-vocabulary/#rf-context-runtime): targets [`consul.concept.consul-node`](#consul-concept-consul-node) through `source.node`.
- [`consul.context.ownership`](#consul-context-ownership): targets [`consul.concept.namespace`](#consul-concept-namespace) through `source.namespace`.

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

**Identity**

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

**Endpoint**

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

**Context through `source.node`**

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

**Context through `source.namespace`**

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

</details>

</details>
