-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
update docs for data source
apstra_datacenter_routing_policy
- Loading branch information
1 parent
a1661ac
commit 2e79646
Showing
2 changed files
with
290 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
--- | ||
page_title: "apstra_datacenter_routing_policy Data Source - terraform-provider-apstra" | ||
subcategory: "" | ||
description: |- | ||
This resource returns details of a Datacenter Routing Policy. | ||
--- | ||
|
||
# apstra_datacenter_routing_policy (Data Source) | ||
|
||
This resource returns details of a Datacenter Routing Policy. | ||
|
||
## Example Usage | ||
|
||
```terraform | ||
# This example pulls a routing policy by name and makes it | ||
# avalilable via `output` | ||
data "apstra_datacenter_routing_policy" "test" { | ||
blueprint_id = "f30a5572-b899-408a-9195-e4d5bc1118cb" # required attribute | ||
# id = "CX05RiY6Zcp32h7nPE0" # optional attribute | ||
name = "test-label-d1f12" # optional attribute | ||
} | ||
output "test_policy" { value = data.apstra_datacenter_routing_policy.test } | ||
# the output looks like: | ||
# | ||
# test_policy = { | ||
# "aggregate_prefixes" = tolist([ | ||
# "1.0.0.0/8", | ||
# "2.0.0.0/7", | ||
# ]) | ||
# "blueprint_id" = "f30a5572-b899-408a-9195-e4d5bc1118cb" | ||
# "description" = "test-description-d1f12" | ||
# "expect_default_ipv4" = true | ||
# "expect_default_ipv6" = true | ||
# "export_policy" = { | ||
# "export_l2_edge_subnets" = true | ||
# "export_l3_edge_server_links" = true | ||
# "export_loopbacks" = true | ||
# "export_spine_leaf_links" = true | ||
# "export_spine_superspine_links" = true | ||
# "export_static_routes" = true | ||
# } | ||
# "extra_exports" = tolist([ | ||
# { | ||
# "action" = "permit" | ||
# "ge_mask" = 11 | ||
# "le_mask" = 13 | ||
# "prefix" = "200.0.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = 14 | ||
# "prefix" = "200.64.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = tonumber(null) | ||
# "prefix" = "200.128.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = tonumber(null) | ||
# "le_mask" = 14 | ||
# "prefix" = "200.192.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "permit" | ||
# "ge_mask" = 11 | ||
# "le_mask" = 13 | ||
# "prefix" = "210.0.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = 14 | ||
# "prefix" = "210.0.0.0/10" | ||
# }, | ||
# ]) | ||
# "extra_imports" = tolist([ | ||
# { | ||
# "action" = "permit" | ||
# "ge_mask" = 11 | ||
# "le_mask" = 13 | ||
# "prefix" = "100.0.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = 14 | ||
# "prefix" = "100.64.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 11 | ||
# "le_mask" = tonumber(null) | ||
# "prefix" = "100.128.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = tonumber(null) | ||
# "le_mask" = 11 | ||
# "prefix" = "100.192.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "permit" | ||
# "ge_mask" = 11 | ||
# "le_mask" = 13 | ||
# "prefix" = "110.0.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = 14 | ||
# "prefix" = "110.0.0.0/10" | ||
# }, | ||
# ]) | ||
# "id" = "CX05RiY6Zcp32h7nPE0" | ||
# "import_policy" = "default_only" | ||
# "name" = "test-label-d1f12" | ||
# } | ||
``` | ||
|
||
<!-- schema generated by tfplugindocs --> | ||
## Schema | ||
|
||
### Required | ||
|
||
- `blueprint_id` (String) Apstra Blueprint ID. | ||
|
||
### Optional | ||
|
||
- `id` (String) Apstra graph node ID. | ||
- `name` (String) Web UI 'name' field. | ||
|
||
### Read-Only | ||
|
||
- `aggregate_prefixes` (List of String) BGP Aggregate routes to be imported into a routing zone (VRF) on all border switches. This option can only be set on routing policies associated with routing zones, and cannot be set on per-connectivity point policies. The aggregated routes are sent to all external router peers in a SZ (VRF). | ||
- `description` (String) Web UI 'description' field. | ||
- `expect_default_ipv4` (Boolean) Default IPv4 route is expected to be imported via protocol session using this policy. Used for rendering route expectations. | ||
- `expect_default_ipv6` (Boolean) Default IPv6 route is expected to be imported via protocol session using this policy. Used for rendering route expectations. | ||
- `export_policy` (Attributes) The export policy controls export of various types of fabric prefixes. (see [below for nested schema](#nestedatt--export_policy)) | ||
- `extra_exports` (Attributes List) User defined export routes will be used in addition to any other routes specified in export policies. These policies are additive. To advertise only extra routes, disable all export types within 'export_policy', and only the extra prefixes specified here will be advertised. (see [below for nested schema](#nestedatt--extra_exports)) | ||
- `extra_imports` (Attributes List) User defined import routes will be used in addition to any routes generated by the import policies. Prefixes specified here are additive to the import policy, unless 'import_policy' is set to "extra_only", in which only these routes will be imported. (see [below for nested schema](#nestedatt--extra_imports)) | ||
- `import_policy` (String) One of '', 'default_only', 'all', 'extra_only' | ||
|
||
<a id="nestedatt--export_policy"></a> | ||
### Nested Schema for `export_policy` | ||
|
||
Read-Only: | ||
|
||
- `export_l2_edge_subnets` (Boolean) Exports all virtual networks (VLANs) that have L3 addresses within a routing zone (VRF). | ||
- `export_l3_edge_server_links` (Boolean) Exports all leaf to L3 server links within a routing zone (VRF). This will be an empty list on a layer2 based blueprint | ||
- `export_loopbacks` (Boolean) Exports all loopbacks within a routing zone (VRF) across spine, leaf, and L3 servers. | ||
- `export_spine_leaf_links` (Boolean) Exports all spine-supersine (fabric) links within the default routing zone (VRF) | ||
- `export_spine_superspine_links` (Boolean) Exports all spine-leaf (fabric) links within a VRF. EVPN routing zones do not have spine-leaf addressing, so this generated list may be empty. For routing zones of type Virtual L3 Fabric, subinterfaces between spine-leaf will be included. | ||
- `export_static_routes` (Boolean) Exports all subnets in a VRF associated with static routes from all fabric systems to external routers associated with this routing policy | ||
|
||
|
||
<a id="nestedatt--extra_exports"></a> | ||
### Nested Schema for `extra_exports` | ||
|
||
Read-Only: | ||
|
||
- `action` (String) If the action is "permit", match the route. If the action is "deny", do not match the route. For composing complex policies, all prefix-list items will be processed in the order specified, top-down. This allows the user to deny a subset of a route that may otherwise be permitted. | ||
- `ge_mask` (Number) Match less-specific prefixes from a parent prefix, up from `ge_mask` to the prefix length of the route. Range is 0-32 for IPv4, 0-128 for IPv6. If not specified, implies the prefix-list entry should be an exact match. The option can be optionally be used in combination with `le_mask`. `ge_mask` must be longer than the subnet prefix length. If `le_mask` and `ge_mask` are both specified, then `le_mask` must be greater than `ge_mask`. | ||
- `le_mask` (Number) Match more-specific prefixes from a parent prefix, up until `le_mask` prefix len. Range is 0-32 for IPv4, 0-128 for IPv6. If not specified, implies the prefix-list entry should be an exact match. The option can be optionally be used in combination with `ge_mask`. `le_mask` must be longer than the subnet prefix length. If `le_mask` and `ge_mask` are both specified, then `le_mask` must be greater than `ge_mask`. | ||
- `prefix` (String) IPv4 or IPv6 network address specified in the form of network/prefixlen. | ||
|
||
|
||
<a id="nestedatt--extra_imports"></a> | ||
### Nested Schema for `extra_imports` | ||
|
||
Read-Only: | ||
|
||
- `action` (String) If the action is "permit", match the route. If the action is "deny", do not match the route. For composing complex policies, all prefix-list items will be processed in the order specified, top-down. This allows the user to deny a subset of a route that may otherwise be permitted. | ||
- `ge_mask` (Number) Match less-specific prefixes from a parent prefix, up from `ge_mask` to the prefix length of the route. Range is 0-32 for IPv4, 0-128 for IPv6. If not specified, implies the prefix-list entry should be an exact match. The option can be optionally be used in combination with `le_mask`. `ge_mask` must be longer than the subnet prefix length. If `le_mask` and `ge_mask` are both specified, then `le_mask` must be greater than `ge_mask`. | ||
- `le_mask` (Number) Match more-specific prefixes from a parent prefix, up until `le_mask` prefix len. Range is 0-32 for IPv4, 0-128 for IPv6. If not specified, implies the prefix-list entry should be an exact match. The option can be optionally be used in combination with `ge_mask`. `le_mask` must be longer than the subnet prefix length. If `le_mask` and `ge_mask` are both specified, then `le_mask` must be greater than `ge_mask`. | ||
- `prefix` (String) IPv4 or IPv6 network address specified in the form of network/prefixlen. |
109 changes: 109 additions & 0 deletions
109
examples/data-sources/apstra_datacenter_routing_policy/example.tf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
# This example pulls a routing policy by name and makes it | ||
# avalilable via `output` | ||
data "apstra_datacenter_routing_policy" "test" { | ||
blueprint_id = "f30a5572-b899-408a-9195-e4d5bc1118cb" # required attribute | ||
# id = "CX05RiY6Zcp32h7nPE0" # optional attribute | ||
name = "test-label-d1f12" # optional attribute | ||
} | ||
|
||
output "test_policy" { value = data.apstra_datacenter_routing_policy.test } | ||
|
||
# the output looks like: | ||
# | ||
# test_policy = { | ||
# "aggregate_prefixes" = tolist([ | ||
# "1.0.0.0/8", | ||
# "2.0.0.0/7", | ||
# ]) | ||
# "blueprint_id" = "f30a5572-b899-408a-9195-e4d5bc1118cb" | ||
# "description" = "test-description-d1f12" | ||
# "expect_default_ipv4" = true | ||
# "expect_default_ipv6" = true | ||
# "export_policy" = { | ||
# "export_l2_edge_subnets" = true | ||
# "export_l3_edge_server_links" = true | ||
# "export_loopbacks" = true | ||
# "export_spine_leaf_links" = true | ||
# "export_spine_superspine_links" = true | ||
# "export_static_routes" = true | ||
# } | ||
# "extra_exports" = tolist([ | ||
# { | ||
# "action" = "permit" | ||
# "ge_mask" = 11 | ||
# "le_mask" = 13 | ||
# "prefix" = "200.0.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = 14 | ||
# "prefix" = "200.64.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = tonumber(null) | ||
# "prefix" = "200.128.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = tonumber(null) | ||
# "le_mask" = 14 | ||
# "prefix" = "200.192.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "permit" | ||
# "ge_mask" = 11 | ||
# "le_mask" = 13 | ||
# "prefix" = "210.0.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = 14 | ||
# "prefix" = "210.0.0.0/10" | ||
# }, | ||
# ]) | ||
# "extra_imports" = tolist([ | ||
# { | ||
# "action" = "permit" | ||
# "ge_mask" = 11 | ||
# "le_mask" = 13 | ||
# "prefix" = "100.0.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = 14 | ||
# "prefix" = "100.64.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 11 | ||
# "le_mask" = tonumber(null) | ||
# "prefix" = "100.128.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = tonumber(null) | ||
# "le_mask" = 11 | ||
# "prefix" = "100.192.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "permit" | ||
# "ge_mask" = 11 | ||
# "le_mask" = 13 | ||
# "prefix" = "110.0.0.0/10" | ||
# }, | ||
# { | ||
# "action" = "deny" | ||
# "ge_mask" = 12 | ||
# "le_mask" = 14 | ||
# "prefix" = "110.0.0.0/10" | ||
# }, | ||
# ]) | ||
# "id" = "CX05RiY6Zcp32h7nPE0" | ||
# "import_policy" = "default_only" | ||
# "name" = "test-label-d1f12" | ||
# } |