Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Adding Route Aggregation Rule and Connection Route Aggregation Data Sources and Resources #860

Merged
merged 6 commits into from
Feb 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions docs/data-sources/fabric_connection_route_aggregation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
subcategory: "Fabric"
---

# equinix_fabric_connection_route_aggregation (Data Source)

Fabric V4 API compatible data resource that allow user to fetch Equinix Fabric Connection Route Aggregation by UUID
Additional Documentation:
* API: https://developer.equinix.com/catalog/fabricv4#tag/Route-Aggregations

## Example Usage

```terraform
data "equinix_fabric_connection_route_aggregation" "attached_policy" {
route_aggregation_id = "<route_aggregation_id>"
connection_id = "<connection_id>"
}

output "connection_route_Aggregation_id" {
value = data.equinix_fabric_connection_route_aggregation.attached_policy.id
}

output "connection_route_aggregation_connection_id" {
value = data.equinix_fabric_connection_route_aggregation.attached_policy.connection_id
}

output "connection_route_aggregation_type" {
value = data.equinix_fabric_connection_route_aggregation.attached_policy.type
}

output "connection_route_aggregation_attachment_status" {
value = data.equinix_fabric_connection_route_aggregation.attached_policy.attachment_status
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `connection_id` (String) The uuid of the connection this data source should retrieve
- `route_aggregation_id` (String) The uuid of the route aggregation this data source should retrieve

### Read-Only

- `attachment_status` (String) Status of the Route Aggregation Policy attachment lifecycle
- `href` (String) URI to the attached Route Aggregation Policy on the Connection
- `id` (String) The unique identifier of the resource
- `type` (String) Route Aggregation Type. One of ["BGP_IPv4_PREFIX_AGGREGATION"]
- `uuid` (String) Equinix Assigned ID for Route Aggregation Policy
72 changes: 72 additions & 0 deletions docs/data-sources/fabric_connection_route_aggregations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
subcategory: "Fabric"
---

# equinix_fabric_connection_route_aggregations (Data Source)

Fabric V4 API compatible data resource that allow user to fetch Equinix Fabric Connection Route Aggregations with pagination details
Additional Documentation:
* API: https://developer.equinix.com/catalog/fabricv4#tag/Route-Aggregations

## Example Usage

```terraform
data "equinix_fabric_connection_route_aggregations" "attached_policies" {
connection_id = "connection_id"
}

output "connection_first_route_Aggregation_uuid" {
value = data.equinix_fabric_connection_route_aggregations.attached_policies.data.0.uuid
}

output "connection_first_route_aggregation_type" {
value = data.equinix_fabric_connection_route_aggregations.attached_policies.data.0.type
}

output "connection_first_route_aggregation_attachment_status" {
value = data.equinix_fabric_connection_route_aggregations.attached_policies.data.0.attachment_status
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `connection_id` (String) The uuid of the connection this data source should retrieve

### Optional

- `pagination` (Attributes) Pagination details for the returned connection route aggregations list (see [below for nested schema](#nestedatt--pagination))

### Read-Only

- `data` (Attributes List) Returned list of connection route aggregation objects (see [below for nested schema](#nestedatt--data))
- `id` (String) The unique identifier of the resource

<a id="nestedatt--pagination"></a>
### Nested Schema for `pagination`

Optional:

- `limit` (Number) Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
- `next` (String) The URL relative to the next item in the response
- `offset` (Number) Index of the first item returned in the response. The default is 0
- `previous` (String) The URL relative to the previous item in the response
- `total` (Number) The total number of connection route aggregations available to the user making the request


<a id="nestedatt--data"></a>
### Nested Schema for `data`

Required:

- `connection_id` (String) UUID of the Connection to attach this Route Aggregation to
- `route_aggregation_id` (String) UUID of the Route Aggregation to attach this Connection to

Read-Only:

- `attachment_status` (String) Status of the Route Aggregation Policy attachment lifecycle
- `href` (String) URI to the attached Route Aggregation Policy on the Connection
- `type` (String) Route Aggregation Type. One of ["BGP_IPv4_PREFIX_AGGREGATION"]
- `uuid` (String) Equinix Assigned ID for Route Aggregation Policy
93 changes: 93 additions & 0 deletions docs/data-sources/fabric_route_aggregation_rule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
subcategory: "Fabric"
---

# equinix_fabric_route_aggregation_rule (Data Source)

Fabric V4 API compatible data resource that allow user to fetch Equinix Fabric Route Aggregation Rule by UUID
Additional Documentation:
* API: https://developer.equinix.com/catalog/fabricv4#tag/Route-Aggregations

## Example Usage

```terraform
data "equinix_fabric_route_aggregation_rule" "ra_rule" {
route_aggregation_id = "<route_aggregation_id>"
route_aggregation_rule_id = "<route_aggregation_rule_id>"
}

output "route_aggregation_rule_name" {
value = data.equinix_fabric_route_aggregation_rule.ra_rule.name
}

output "route_aggregation_rule_description" {
value = data.equinix_fabric_route_aggregation_rule.ra_rule.description
}

output "route_aggregation_rule_type" {
value = data.equinix_fabric_route_aggregation_rule.ra_rule.type
}

output "route_aggregation_rule_prefix" {
value = data.equinix_fabric_route_aggregation_rule.ra_rule.prefix
}

output "route_aggregation_rule_state" {
value = data.equinix_fabric_route_aggregation_rule.ra_rule.state
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `route_aggregation_id` (String) The uuid of the route aggregation this data source should retrieve
- `route_aggregation_rule_id` (String) The uuid of the route aggregation rule this data source should retrieve

### Optional

- `description` (String) Customer-provided route aggregation rule description

### Read-Only

- `change` (Attributes) Current state of latest route aggregation rule change (see [below for nested schema](#nestedatt--change))
- `change_log` (Attributes) Details of the last change on the stream resource (see [below for nested schema](#nestedatt--change_log))
- `href` (String) Equinix auto generated URI to the route aggregation rule resource
- `id` (String) The unique identifier of the resource
- `name` (String) Customer provided name of the route aggregation rule
- `prefix` (String) Customer-provided route aggregation rule prefix
- `state` (String) Value representing provisioning status for the route aggregation rule resource
- `type` (String) Equinix defined Route Aggregation Type; BGP_IPv4_PREFIX_AGGREGATION, BGP_IPv6_PREFIX_AGGREGATION
- `uuid` (String) Equinix-assigned unique id for the route aggregation rule resource

<a id="nestedatt--change"></a>
### Nested Schema for `change`

Required:

- `type` (String) Equinix defined Route Aggregation Change Type
- `uuid` (String) Equinix-assigned unique id for a change

Read-Only:

- `href` (String) Equinix auto generated URI to the route aggregation change


<a id="nestedatt--change_log"></a>
### Nested Schema for `change_log`

Read-Only:

- `created_by` (String) User name of creator of the stream resource
- `created_by_email` (String) Email of creator of the stream resource
- `created_by_full_name` (String) Legal name of creator of the stream resource
- `created_date_time` (String) Creation time of the stream resource
- `deleted_by` (String) User name of deleter of the stream resource
- `deleted_by_email` (String) Email of deleter of the stream resource
- `deleted_by_full_name` (String) Legal name of deleter of the stream resource
- `deleted_date_time` (String) Deletion time of the stream resource
- `updated_by` (String) User name of last updater of the stream resource
- `updated_by_email` (String) Email of last updater of the stream resource
- `updated_by_full_name` (String) Legal name of last updater of the stream resource
- `updated_date_time` (String) Last update time of the stream resource
118 changes: 118 additions & 0 deletions docs/data-sources/fabric_route_aggregation_rules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
---
subcategory: "Fabric"
---

# equinix_fabric_route_aggregation_rules (Data Source)

Fabric V4 API compatible data resource that allow user to fetch Equinix Fabric Route Aggregation Rules with pagination details
Additional Documentation:
* API: https://developer.equinix.com/catalog/fabricv4#tag/Route-Aggregations

## Example Usage

```terraform
data "equinix_fabric_route_aggregation_rules" "ra_rules" {
route_aggregation_id = "<route_aggregation_id>"
pagination = {
limit = 2
offset = 1
}
}

output "route_aggregation_rule_name" {
value = data.equinix_fabric_route_aggregation_rules.ra_rules.data.0.name
}

output "route_aggregation_rule_description" {
value = data.equinix_fabric_route_aggregation_rules.ra_rules.data.0.description
}

output "route_aggregation_rule_prefix" {
value = data.equinix_fabric_route_aggregation_rules.ra_rules.data.0.prefix
}

output "route_aggregation_rule_state" {
value = data.equinix_fabric_route_aggregation_rules.ra_rules.data.0.state
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `route_aggregation_id` (String) The uuid of the route aggregation rule this data source should retrieve

### Optional

- `pagination` (Attributes) Pagination details for the returned route aggregation rules list (see [below for nested schema](#nestedatt--pagination))

### Read-Only

- `data` (Attributes List) Returned list of route aggregation rule objects (see [below for nested schema](#nestedatt--data))
- `id` (String) The unique identifier of the resource

<a id="nestedatt--pagination"></a>
### Nested Schema for `pagination`

Optional:

- `limit` (Number) Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
- `offset` (Number) Index of the first item returned in the response. The default is 0

Read-Only:

- `next` (String) The URL relative to the next item in the response
- `previous` (String) The URL relative to the previous item in the response
- `total` (Number) The total number of route agrgegation rules available to the user making the request


<a id="nestedatt--data"></a>
### Nested Schema for `data`

Optional:

- `description` (String) Customer-provided route aggregation rule description

Read-Only:

- `change` (Attributes) Current state of latest route aggregation rule change (see [below for nested schema](#nestedatt--data--change))
- `change_log` (Attributes) Details of the last change on the stream resource (see [below for nested schema](#nestedatt--data--change_log))
- `href` (String) Equinix auto generated URI to the route aggregation rule resource
- `name` (String) Customer provided name of the route aggregation rule
- `prefix` (String) Customer-provided route aggregation rule prefix
- `route_aggregation_id` (String) UUID of the Route Aggregation to apply this Rule to
- `state` (String) Value representing provisioning status for the route aggregation rule resource
- `type` (String) Equinix defined Route Aggregation Type; BGP_IPv4_PREFIX_AGGREGATION, BGP_IPv6_PREFIX_AGGREGATION
- `uuid` (String) Equinix-assigned unique id for the route aggregation rule resource

<a id="nestedatt--data--change"></a>
### Nested Schema for `data.change`

Required:

- `type` (String) Equinix defined Route Aggregation Change Type
- `uuid` (String) Equinix-assigned unique id for a change

Read-Only:

- `href` (String) Equinix auto generated URI to the route aggregation change


<a id="nestedatt--data--change_log"></a>
### Nested Schema for `data.change_log`

Read-Only:

- `created_by` (String) User name of creator of the stream resource
- `created_by_email` (String) Email of creator of the stream resource
- `created_by_full_name` (String) Legal name of creator of the stream resource
- `created_date_time` (String) Creation time of the stream resource
- `deleted_by` (String) User name of deleter of the stream resource
- `deleted_by_email` (String) Email of deleter of the stream resource
- `deleted_by_full_name` (String) Legal name of deleter of the stream resource
- `deleted_date_time` (String) Deletion time of the stream resource
- `updated_by` (String) User name of last updater of the stream resource
- `updated_by_email` (String) Email of last updater of the stream resource
- `updated_by_full_name` (String) Legal name of last updater of the stream resource
- `updated_date_time` (String) Last update time of the stream resource
62 changes: 62 additions & 0 deletions docs/resources/fabric_connection_route_aggregation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
subcategory: "Fabric"
---

# equinix_fabric_connection_route_aggregation (Resource)



## Example Usage

```terraform
resource "equinix_fabric_connection_route_aggregation" "policy_attachment" {
route_aggregation_id = "<route_aggregation_id>"
connection_id = "<connection_id>"
}

output "connection_route_Aggregation_id" {
value = equinix_fabric_connection_route_aggregation.policy_attachment.id
}

output "connection_route_aggregation_connection_id" {
value = equinix_fabric_connection_route_aggregation.policy_attachment.connection_id
}

output "connection_route_aggregation_type" {
value = equinix_fabric_connection_route_aggregation.policy_attachment.type
}

output "connection_route_aggregation_attachment_status" {
value = equinix_fabric_connection_route_aggregation.policy_attachment.attachment_status
}
```

<!-- schema generated by tfplugindocs -->
## Schema

### Required

- `connection_id` (String) Equinix Assigned UUID of the Equinix Connection to attach the Route Aggregation Policy to
- `route_aggregation_id` (String) UUID of the Route Aggregation to apply this Rule to

### Optional

- `timeouts` (Attributes) (see [below for nested schema](#nestedatt--timeouts))

### Read-Only

- `attachment_status` (String) Status of the Route Aggregation Policy attachment lifecycle
- `href` (String) URI to the attached Route Aggregation Policy on the Connection
- `id` (String) The unique identifier of the resource
- `type` (String) Route Aggregation Type. One of ["BGP_IPv4_PREFIX_AGGREGATION"]
- `uuid` (String) Equinix Assigned ID for Route Aggregation Policy

<a id="nestedatt--timeouts"></a>
### Nested Schema for `timeouts`

Optional:

- `create` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
- `delete` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
- `read` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.
- `update` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Loading
Loading