### equinix_network_device_software Data Source Example
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/network_device_software.md
Example of how to use the equinix_network_device_software data source to retrieve details for a CSR1000V device software with a specific version regex and package.
```APIDOC
## equinix_network_device_software
### Description
Use this data source to get Equinix Network Edge device software details for a given device type.
### Argument Reference
* `device_type` - (Required) Code of a device type.
* `version_regex` - (Optional) A regex string to apply on returned versions and filter search results.
* `stable` - (Optional) Boolean value to limit query results to stable versions only.
* `packages` - (Optional) Limits returned versions to those that are supported by given software package codes.
* `most_recent` - (Optional) Boolean value to indicate that most recent version should be used *(in case when more than one result is returned)*.
### Attributes Reference
* `version` - Version number.
* `image_name` - Software image name.
* `date` - Version release date.
* `status` - Version status.
* `release_notes_link` - Link to version release notes.
### Example Usage
```terraform
# Retrieve details for CSR1000V device software with latest path of 16.09 version
# that supports IPBASE package
data "equinix_network_device_software" "csrLatest1609" {
device_type = "CSR1000V"
version_regex = "^16.09.+"
packages = ["IPBASE"]
most_recent = true
}
```
```
--------------------------------
### equinix_fabric_service_profiles Data Source Example
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/fabric_service_profiles.md
Example of how to use the equinix_fabric_service_profiles data source to fetch service profiles with specific filters, pagination, and sorting.
```APIDOC
## equinix_fabric_service_profiles Data Source
Fabric V4 API compatible data resource that allow user to fetch Service Profile by name filter criteria
### Example Usage
```terraform
data "equinix_fabric_service_profiles" "test" {
and_filters = true
filter {
property = "/type"
operator = "="
values = ["L2_PROFILE"]
}
filter {
property = "/name"
operator = "="
values = ["SP_ResourceCreation_PFCR"]
}
pagination {
offset = 0
limit = 5
}
sort {
direction = "ASC"
property = "/name"
}
}
output "number_of_returned_service_profiles" {
value = length(data.equinix_fabric_service_profiles.test.data)
}
output "first_service_profile_name" {
value = data.equinix_fabric_service_profiles.test.data.0.name
}
output "first_service_profile_uuid" {
value = data.equinix_fabric_service_profiles.test.data.0.uuid
}
output "first_service_profile_description" {
value = data.equinix_fabric_service_profiles.test.data.0.description
}
output "first_service_profile_state" {
value = data.equinix_fabric_service_profiles.test.data.0.state
}
output "first_service_profile_visibility" {
value = data.equinix_fabric_service_profiles.test.data.0.visibility
}
output "first_service_profile_metros_code" {
value = data.equinix_fabric_service_profiles.test.data.0.metros.0.code
}
output "first_service_profile_metros_name" {
value = data.equinix_fabric_service_profiles.test.data.0.metros.0.name
}
output "first_service_profile_metros_display_name" {
value = data.equinix_fabric_service_profiles.test.data.0.metros.0.display_name
}
output "first_service_profile_type" {
value = data.equinix_fabric_service_profiles.test.data.0.type
}
```
### Schema
### Required
- `filter` (Block List, Min: 1, Max: 10) Filters for the Data Source Search Request (If and_filters is not set to true you cannot provide more than one filter block) (see [below for nested schema](#nestedblock--filter))
### Optional
- `and_filters` (Boolean) Optional boolean flag to indicate if the filters will be AND'd together. Defaults to false
- `pagination` (Block Set, Max: 1) Pagination details for the Data Source Search Request (see [below for nested schema](#nestedblock--pagination))
- `sort` (Block List) Filters for the Data Source Search Request (see [below for nested schema](#nestedblock--sort))
- `view_point` (String) flips view between buyer and seller representation. Available values : aSide, zSide. Default value : aSide
### Read-Only
- `data` (List of Object) List of Service Profiles (see [below for nested schema](#nestedatt--data))
- `id` (String) The ID of this resource.
### Nested Schema for `filter`
Required:
- `operator` (String) Operators to use on your filtered field with the values given. One of [=]
- `property` (String) Property to apply operator and values to. One of [/name /uuid /state /metros/code /visibility /type /project/projectId]
- `values` (List of String) The values that you want to apply the property+operator combination to in order to filter your data search
### Nested Schema for `pagination`
Optional:
- `limit` (Number) Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
- `offset` (Number) The page offset for the pagination request. Index of the first element. Default is 0.
### Nested Schema for `sort`
Optional:
- `direction` (String) The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
- `property` (String) The property name to use in sorting. One of [/name /uuid /state /location/metroCode /location/metroName /package/code /changeLog/createdDateTime /changeLog/updatedDateTime]. Defaults to /changeLog/updatedDateTime
```
--------------------------------
### equinix_network_device_type Data Source Example
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/network_device_type.md
Example of how to retrieve device type details for a Cisco router available in specific metros.
```APIDOC
## equinix_network_device_type (Data Source)
Use this data source to get Equinix Network Edge device type details. For further details, check supported [Network Edge Vendors and Devices](https://docs.equinix.com/network-edge/create-devices/ne-vendor-device-index/).
### Example Usage
```terraform
# Retrieve device type details of a Cisco router
# Device type has to be available in DC and SV metros
data "equinix_network_device_type" "ciscoRouter" {
category = "Router"
vendor = "Cisco"
metro_codes = ["DC", "SV"]
}
```
## Argument Reference
The following arguments are supported:
* `name` - (Optional) Device type name.
* `vendor` - (Optional) Device type vendor i.e. `Cisco`, `Juniper Networks`, `VERSA Networks`.
* `category` - (Optional) Device type category. One of: `Router`, `Firewall`, `SDWAN`.
* `metro_codes` - (Optional) List of metro codes where device type has to be available
## Attributes Reference
In addition to all arguments above, the following attributes are exported:
* `code` - Device type short code, unique identifier of a network device type
* `description` - Device type textual description
```
--------------------------------
### equinix_fabric_network Data Source Example
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/fabric_network.md
Example usage of the equinix_fabric_network data source to retrieve network details and output specific attributes.
```APIDOC
## equinix_fabric_network Data Source
Fabric V4 API compatible data resource that allow user to fetch Fabric Network for a given UUID
### Example Usage
```terraform
data "equinix_fabric_network" "network_data_name" {
uuid = ""
}
output "id" {
value = data.equinix_fabric_network.network_data_name.id
}
output "name" {
value = data.equinix_fabric_network.network_data_name.name
}
output "scope" {
value = data.equinix_fabric_network.network_data_name.scope
}
output "type" {
value = data.equinix_fabric_network.network_data_name.type
}
output "region" {
value = [for location in data.equinix_fabric_network.network_data_name.location: location.region]
}
```
## Schema
### Required
- `uuid` (String) Equinix-assigned network identifier
### Read-Only
- `change` (Set of Object) Information on asset change operation (see [below for nested schema](#nestedatt--change))
- `change_log` (Set of Object) A permanent record of asset creation, modification, or deletion (see [below for nested schema](#nestedatt--change_log))
- `connections_count` (Number) Number of connections associated with this network
- `href` (String) Fabric Network URI information
- `id` (String) The ID of this resource.
- `location` (Set of Object) Fabric Network location (see [below for nested schema](#nestedatt--location))
- `name` (String) Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores
- `notifications` (List of Object) Preferences for notifications on Fabric Network configuration or status changes (see [below for nested schema](#nestedatt--notifications))
- `operation` (Set of Object) Network operation information that is associated with this Fabric Network (see [below for nested schema](#nestedatt--operation))
- `project` (Set of Object) Fabric Network project (see [below for nested schema](#nestedatt--project))
- `scope` (String) Fabric Network scope. Valid values: [REGIONAL GLOBAL LOCAL]. Note: When scope is REGIONAL, the location.region field is required.
- `state` (String) Fabric Network overall state
- `type` (String) Supported Network types - EVPLAN, EPLAN, IPWAN, EVPTREE, EPTREE
### Nested Schema for `change`
Read-Only:
- `href` (String)
- `type` (String)
- `uuid` (String)
### Nested Schema for `change_log`
Read-Only:
- `created_by` (String)
- `created_by_email` (String)
- `created_by_full_name` (String)
- `created_date_time` (String)
- `deleted_by` (String)
- `deleted_by_email` (String)
- `deleted_by_full_name` (String)
- `deleted_date_time` (String)
- `updated_by` (String)
- `updated_by_email` (String)
- `updated_by_full_name` (String)
- `updated_date_time` (String)
### Nested Schema for `location`
Read-Only:
- `ibx` (String)
- `metro_code` (String)
- `metro_name` (String)
- `region` (String)
### Nested Schema for `notifications`
Read-Only:
- `emails` (List of String)
- `send_interval` (String)
- `type` (String)
### Nested Schema for `operation`
Read-Only:
- `equinix_status` (String)
### Nested Schema for `project`
Read-Only:
- `project_id` (String)
```
--------------------------------
### Create plugin directory structure
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/DEVELOPMENT.md
Set up the required directory hierarchy for manual provider installation on Unix-like systems.
```sh
mkdir -p ~/.terraform.d/plugins/developer.equinix.com/terraform/equinix/9.0.0/darwin_amd64
```
--------------------------------
### Example Usage of equinix_fabric_routing_protocol Data Source
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/fabric_routing_protocol.md
This example demonstrates how to fetch routing protocol details using the `equinix_fabric_routing_protocol` data source and output various attributes like ID, name, type, and specific IP configurations for direct and BGP connections.
```terraform
data "equinix_fabric_routing_protocol" "routing_protocol_data_name" {
connection_uuid = ""
uuid = ""
}
output "id" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.id
}
output "name" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.name
}
output "type" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.type
}
output "direct_ipv4" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.direct_ipv4.0.equinix_iface_ip
}
output "direct_ipv6" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.direct_ipv6.0.equinix_iface_ip
}
output "bgp_ipv4_customer_peer_ip" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.bgp_ipv4.0.customer_peer_ip
}
output "bgp_ipv4_equinix_peer_ip" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.bgp_ipv4.0.equinix_peer_ip
}
output "bgp_ipv4_enabled" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.bgp_ipv4.0.enabled
}
output "bgp_ipv6_customer_peer_ip" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.bgp_ipv6.0.customer_peer_ip
}
output "bgp_ipv6_equinix_peer_ip" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.bgp_ipv6.0.equinix_peer_ip
}
output "bgp_ipv6_enabled" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.bgp_ipv6.0.enabled
}
output "customer_asn" {
value = data.equinix_fabric_routing_protocol.routing_protocol_data_name.customer_asn
}
```
--------------------------------
### Example Usage of equinix_fabric_service_profiles Data Source
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/fabric_service_profiles.md
This example demonstrates how to use the `equinix_fabric_service_profiles` data source to filter service profiles by type and name, apply pagination, and sort the results. It also shows how to output various attributes of the first returned service profile.
```terraform
data "equinix_fabric_service_profiles" "test" {
and_filters = true
filter {
property = "/type"
operator = "="
values = ["L2_PROFILE"]
}
filter {
property = "/name"
operator = "="
values = ["SP_ResourceCreation_PFCR"]
}
pagination {
offset = 0
limit = 5
}
sort {
direction = "ASC"
property = "/name"
}
}
output "number_of_returned_service_profiles" {
value = length(data.equinix_fabric_service_profiles.test.data)
}
output "first_service_profile_name" {
value = data.equinix_fabric_service_profiles.test.data.0.name
}
output "first_service_profile_uuid" {
value = data.equinix_fabric_service_profiles.test.data.0.uuid
}
output "first_service_profile_description" {
value = data.equinix_fabric_service_profiles.test.data.0.description
}
output "first_service_profile_state" {
value = data.equinix_fabric_service_profiles.test.data.0.state
}
output "first_service_profile_visibility" {
value = data.equinix_fabric_service_profiles.test.data.0.visibility
}
output "first_service_profile_metros_code" {
value = data.equinix_fabric_service_profiles.test.data.0.metros.0.code
}
output "first_service_profile_metros_name" {
value = data.equinix_fabric_service_profiles.test.data.0.metros.0.name
}
output "first_service_profile_metros_display_name" {
value = data.equinix_fabric_service_profiles.test.data.0.metros.0.display_name
}
output "first_service_profile_type" {
value = data.equinix_fabric_service_profiles.test.data.0.type
}
```
--------------------------------
### equinix_fabric_service_token Data Source Example
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/fabric_service_token.md
Example usage of the equinix_fabric_service_token data source to fetch service token details and output various attributes.
```APIDOC
## equinix_fabric_service_token (Data Source)
Fabric V4 API compatible data resource that allow user to fetch service token for a given UUID
### Example Usage
```terraform
data "equinix_fabric_service_token" "service-token" {
uuid = ""
}
output "id" {
value = data.equinix_fabric_service_token.service-token.id
}
output "type" {
value = data.equinix_fabric_service_token.service-token.type
}
output "expiration_date_time" {
value = data.equinix_fabric_service_token.service-token.expiration_date_time
}
output "supported_bandwidths" {
value = data.equinix_fabric_service_token.service-token.service_token_connection.0.supported_bandwidths
}
output "virtual_device_type" {
value = data.equinix_fabric_service_token.service-token.service_token_connection.0.z_side.0.access_point_selectors.0.virtual_device.0.type
}
output "virtual_device_uuid" {
value = data.equinix_fabric_service_token.service-token.service_token_connection.0.z_side.0.access_point_selectors.0.virtual_device.0.uuid
}
output "interface_type" {
value = data.equinix_fabric_service_token.service-token.service_token_connection.0.z_side.0.access_point_selectors.0.interface.0.type
}
output "interface_uuid" {
value = data.equinix_fabric_service_token.service-token.service_token_connection.0.z_side.0.access_point_selectors.0.interface.0.id
}
```
### Schema
#### Required
- `uuid` (String) Equinix-assigned service token identifier
#### Read-Only
- `account` (Set of Object) Customer account information that is associated with this service token (see [below for nested schema](#nestedatt--account))
- `change_log` (Set of Object) Captures connection lifecycle change information (see [below for nested schema](#nestedatt--change_log))
- `description` (String) Optional Description to the Service Token you will be creating
- `expiration_date_time` (String) Expiration date and time of the service token; 2020-11-06T07:00:00Z
- `href` (String) An absolute URL that is the subject of the link's context.
- `id` (String) The ID of this resource.
- `issuer_side` (String) Information about token side; ASIDE, ZSIDE
- `name` (String) Name of the Service Token
- `notifications` (Set of Object) Preferences for notifications on Service Token configuration or status changes (see [below for nested schema](#nestedatt--notifications))
- `project` (Set of Object) Project information (see [below for nested schema](#nestedatt--project))
- `service_token_connection` (Set of Object) Service Token Connection Type Information (see [below for nested schema](#nestedatt--service_token_connection))
- `state` (String) Service token state; ACTIVE, INACTIVE, EXPIRED, DELETED
- `type` (String) Service Token Type; VC_TOKEN,EPL_TOKEN
### Nested Schema for `account`
Read-Only:
- `account_name` (String)
- `account_number` (Number)
- `global_cust_id` (String)
- `global_org_id` (String)
- `global_organization_name` (String)
- `org_id` (Number)
- `organization_name` (String)
- `ucm_id` (String)
### Nested Schema for `change_log`
Read-Only:
- `created_by` (String)
- `created_by_email` (String)
- `created_by_full_name` (String)
- `created_date_time` (String)
- `deleted_by` (String)
- `deleted_by_email` (String)
- `deleted_by_full_name` (String)
- `deleted_date_time` (String)
- `updated_by` (String)
- `updated_by_email` (String)
- `updated_by_full_name` (String)
- `updated_date_time` (String)
### Nested Schema for `notifications`
Read-Only:
- `emails` (List of String)
- `send_interval` (String)
- `type` (String)
### Nested Schema for `project`
Read-Only:
- `href` (String)
- `project_id` (String)
### Nested Schema for `service_token_connection`
Read-Only:
- `a_side` (Set of Object) (see [below for nested schema](#nestedobjatt--service_token_connection--a_side))
- `allow_custom_bandwidth` (Boolean)
- `allow_remote_connection` (Boolean)
- `bandwidth_limit` (Number)
- `supported_bandwidths` (List of Number)
- `type` (String)
- `uuid` (String)
- `z_side` (Set of Object) (see [below for nested schema](#nestedobjatt--service_token_connection--z_side))
### Nested Schema for `service_token_connection.a_side`
Read-Only:
- `access_point_selectors` (List of Object) (see [below for nested schema](#nestedobjatt--service_token_connection--a_side--access_point_selectors))
```
--------------------------------
### equinix_network_ssh_key Resource Example
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/resources/network_ssh_key.md
Example usage of the `equinix_network_ssh_key` resource in Terraform to create an SSH key.
```APIDOC
## equinix_network_ssh_key (Resource)
Resource `equinix_network_ssh_key` allows creation and management of Equinix Network Edge SSH keys.
### Example Usage
```terraform
resource "equinix_network_ssh_key" "john" {
name = "johnKent"
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDpXGdxljAyPp9vH97436U171cX
2gRkfPnpL8ebrk7ZBeeIpdjtd8mYpXf6fOI0o91TQXZTYtjABzeRgg6/m9hsMOnTHjzWpFyuj/hiPu
iie1WtT4NffSH1ALQFX/azouBLmdNiYFMLfEVPZleergAqsYOHGCiQuR6Qh5j0yc5Wx+LKxiRZyjsS
qo+EB8V6xBXi2i5PDJXK+dYG8YU9vdNeQdB84HvTWcGEnLR5w7pgC74pBVwzs3oWLy+3jWS0TKKtfl
mryeFRufXq87gEkC1MOWX88uQgjyCsemuhPdN++2WS57gu7vcqCMwMDZa7dukRS3JANBtbs7qQhp9N
w2PB4q6tohqUnSDxNjCqcoGeMNg/0kHeZcoVuznsjOrIDt0HgUApflkbtw1DP7Epfc2MJ0anf5GizM
8UjMYiXEvv2U/qu8Vb7d5bxAshXM5nh67NSrgst9YzSSodjUCnFQkniz6KLrTkX6c2y2gJ5c9tWhg5
SPkAc8OqLrmIwf5jGoHGh6eUJy7AtMcwE3iUpbrLw8EEoZDoDXkzh+RbOtSNKXWV4EAXsIhjQusCOW
WQnuAHCy9N4Td0Sntzu/xhCZ8xN0oO67Cqlsk98xSRLXeg21PuuhOYJw0DLF6L68zU2OO0RzqoNq/F
jIsltSUJPAIfYKL0yEefeNWOXSrasI1ezw== John.Kent@company.com"
type = "RSA"
project_id = "a86d7112-d740-4758-9c9c-31e66373746b"
}
```
## Argument Reference
The following arguments are supported:
* `name` - (Required) The name of SSH key used for identification.
* `public_key` - (Required) The SSH public key. If this is a file, it can be read using the file interpolation function.
* `type` - (Optional) The type of SSH key: `RSA` (default) or `DSA`.
* `project_id` - (Optional) Unique Identifier for the project resource where the SSH key is scoped to.If you leave it out, the ssh key will be created under the default project id of your organization.
## Attributes Reference
In addition to all arguments above, the following attributes are exported:
* `uuid` - The unique identifier of the key
## Import
This resource can be imported using an existing ID:
```sh
terraform import equinix_network_ssh_key.example {existing_id}
```
```
--------------------------------
### Direct and BGP Routing Protocol with Dependency
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/resources/fabric_routing_protocol.md
Example demonstrating the creation of both DIRECT and BGP routing protocols, ensuring synchronization using `depends_on`.
```APIDOC
## equinix_fabric_routing_protocol direct and bgp
### Description
Creates both DIRECT and BGP routing protocols for an Equinix Fabric connection, using `depends_on` to manage the creation order and ensure the DIRECT protocol is established before the BGP protocol.
### Method
resource "equinix_fabric_routing_protocol" "direct"
resource "equinix_fabric_routing_protocol" "bgp"
### Parameters
#### Direct Protocol Parameters
- `connection_uuid` (String) - Connection URI associated with Routing Protocol
- `type` (String) - Defines the routing protocol type, must be "DIRECT"
- `name` (String) - Routing Protocol name.
- `direct_ipv4` (Block Set) - Routing Protocol Direct IPv4 configuration.
- `equinix_iface_ip` (String) - Required - Equinix interface IP address in CIDR notation.
- `direct_ipv6` (Block Set) - Routing Protocol Direct IPv6 configuration.
- `equinix_iface_ip` (String) - Required - Equinix interface IPv6 address in CIDR notation.
#### BGP Protocol Parameters
- `connection_uuid` (String) - Connection URI associated with Routing Protocol
- `customer_asn` (Number) - Customer-provided ASN
- `type` (String) - Defines the routing protocol type, must be "BGP"
- `name` (String) - Routing Protocol name.
- `bgp_ipv4` (Block Set) - Routing Protocol BGP IPv4 configuration.
- `customer_peer_ip` (String) - Required - Customer side peering IP address.
- `enabled` (Boolean) - Optional - Admin status for the BGP session.
- `bgp_ipv6` (Block Set) - Routing Protocol BGP IPv6 configuration.
- `customer_peer_ip` (String) - Required - Customer side peering IPv6 address.
- `enabled` (Boolean) - Optional - Admin status for the BGP session.
### Request Example
```terraform
resource "equinix_fabric_routing_protocol" "direct"{
connection_uuid =
type = "DIRECT"
name = "direct_rp"
direct_ipv4 {
equinix_iface_ip = "190.1.1.1/30"
}
direct_ipv6{
equinix_iface_ip = "190::1:1/126"
}
}
resource "equinix_fabric_routing_protocol" "bgp" {
depends_on = [
equinix_fabric_routing_protocol.direct
]
connection_uuid =
type = "BGP"
name = "bgp_rp"
bgp_ipv4 {
customer_peer_ip = "190.1.1.2"
enabled = true
}
bgp_ipv6 {
customer_peer_ip = "190::1:2"
enabled = true
}
customer_asn = 4532
}
```
```
--------------------------------
### equinix_fabric_stream_attachments
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/fabric_stream_attachments.md
Example of how to use the equinix_fabric_stream_attachments data source to fetch all stream attachments with pagination, filters, and sorting.
```APIDOC
## equinix_fabric_stream_attachments
### Description
Fabric V4 API compatible data resource that allow user to fetch Equinix Fabric Stream Attached Assets with filters and pagination details.
### Schema
#### Required
- `pagination` (Attributes) Pagination details for the returned streams list (see [below for nested schema](#nestedatt--pagination))
#### Optional
- `filters` (Attributes List) List of filters to apply to the stream attachment get request. Maximum of 8. All will be AND'd together with 1 of the 8 being a possible OR group of 3 (see [below for nested schema](#nestedatt--filters))
- `sort` (Attributes List) The list of sort criteria for the stream assets search request (see [below for nested schema](#nestedatt--sort))
#### Read-Only
- `data` (Attributes List) Returned list of stream objects (see [below for nested schema](#nestedatt--data))
- `id` (String) The unique identifier of the resource
### 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 streams available to the user making the request
### Nested Schema for `filters`
Required:
- `operator` (String) Operation applied to the values of the filter
- `property` (String) Property to apply the filter to
- `values` (List of String) List of values to apply the operation to for the specified property
Optional:
- `or` (Boolean) Boolean value to specify if this filter is a part of the OR group. Has a maximum of 3 and only counts for 1 of the 8 possible filters
### Nested Schema for `sort`
Required:
- `direction` (String) The sorting direction of the property chosen. ASC or DESC
- `property` (String) The field name the sorting is performed on
### Nested Schema for `data`
Read-Only:
- `attachment_status` (String) Value representing status for the stream attachment
- `href` (String) Equinix auto generated URI to the stream attachment in Equinix Portal
- `metrics_enabled` (Boolean) Boolean value indicating enablement of metrics for this asset stream attachment
- `type` (String) Equinix defined type for the asset stream attachment
- `uuid` (String) Equinix-assigned unique id for the stream attachment
### Example Usage
```terraform
data "equinix_fabric_stream_attachments" "all" {
pagination = {
limit = 100
offset = 0
}
filters = [{
property = ""
operator = "="
values = [""]
}]
sort = [{
direction = ""
property = "/uuid"
}]
}
```
```
--------------------------------
### Install provider binary for legacy Terraform
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/DEVELOPMENT.md
Copy the provider binary to the appropriate plugin directory for Terraform 0.12 and older.
```sh
cp terraform-provider-equinix_v1.0.0 ~/.terraform.d/plugins
```
```sh
cp terraform-provider-equinix_v1.0.0.exe $APPDATA/terraform.d/plugins/
```
--------------------------------
### Direct Routing Protocol
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/resources/fabric_routing_protocol.md
Example of creating a DIRECT routing protocol for an Equinix Fabric connection.
```APIDOC
## equinix_fabric_routing_protocol direct
### Description
Manages a DIRECT routing protocol for an Equinix Fabric connection.
### Method
resource "equinix_fabric_routing_protocol" "direct"
### Parameters
#### Required
- `connection_uuid` (String) - Connection URI associated with Routing Protocol
- `type` (String) - Defines the routing protocol type, must be "DIRECT"
#### Optional
- `name` (String) - Routing Protocol name. An alpha-numeric 24 characters string which can include only hyphens and underscores.
- `direct_ipv4` (Block Set) - Routing Protocol Direct IPv4 configuration.
- `equinix_iface_ip` (String) - Required - Equinix interface IP address in CIDR notation.
- `direct_ipv6` (Block Set) - Routing Protocol Direct IPv6 configuration.
- `equinix_iface_ip` (String) - Required - Equinix interface IPv6 address in CIDR notation.
### Request Example
```terraform
resource "equinix_fabric_routing_protocol" "direct"{
connection_uuid =
type = "DIRECT"
name = "direct_rp"
direct_ipv4 {
equinix_iface_ip = "190.1.1.1/30"
}
direct_ipv6{
equinix_iface_ip = "190::1:1/126"
}
}
```
```
--------------------------------
### Fetch Precision Time Services
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/fabric_precision_time_services.md
Example of how to use the `equinix_fabric_precision_time_services` data source to retrieve services with specific filters, pagination, and sorting.
```APIDOC
## equinix_fabric_precision_time_services (Data Source)
Fabric V4 API compatible data resource that allow user to fetch Equinix Fabric Precision Time Services with pagination details
Additional Documentation:
* API: https://docs.equinix.com/api-catalog/fabricv4/#tag/Precision-Time
### Example Usage
```terraform
data "equinix_fabric_precision_time_services" "all" {
pagination = {
limit = 2
offset = 1
}
filters = [{
property = "/type"
operator = "="
values = ["PTP"]
}]
sort = [{
direction = "DESC"
property = "/uuid"
}]
}
output "ept_service_id" {
value = data.equinix_fabric_precision_time_services.all.data.0.id
}
output "ept_service_name" {
value = data.equinix_fabric_precision_time_services.all.data.0.name
}
output "ept_service_state" {
value = data.equinix_fabric_precision_time_services.all.data.0.state
}
output "ept_service_type" {
value = data.equinix_fabric_precision_time_services.all.data.0.type
}
output "ept_service_ipv4" {
value = data.equinix_fabric_precision_time_services.all.data.0.ipv4
}
```
## Schema
### Optional
- `filters` (Attributes List) List of filters to apply to the stream attachment get request. Maximum of 8. All will be AND'd together with 1 of the 8 being a possible OR group of 3 (see [below for nested schema](#nestedatt--filters))
- `pagination` (Attributes) Pagination details for the returned route aggregations list (see [below for nested schema](#nestedatt--pagination))
- `sort` (Attributes List) Filters for the Data Source Search Request (see [below for nested schema](#nestedatt--sort))
### Read-Only
- `data` (Attributes List) Returned list of route aggregation objects (see [below for nested schema](#nestedatt--data))
- `id` (String) The unique identifier of the resource
### Nested Schema for `filters`
Required:
- `operator` (String) Operation applied to the values of the filter
- `property` (String) Property to apply the filter to
- `values` (List of String) List of values to apply the operation to for the specified property
Optional:
- `or` (Boolean) Boolean value to specify if this filter is a part of the OR group. Has a maximum of 3 and only counts for 1 of the 8 possible filters
### 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
### Nested Schema for `sort`
Optional:
- `direction` (String) The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
- `property` (String) The property name to use in sorting. One of [/name /uuid /state /type /package/code /changeLog/createdDateTime /changeLog/updatedDateTime] Defaults to /name
```
--------------------------------
### Aside Port Service Token
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/resources/fabric_service_token.md
Example of creating an Aside Port Service Token for a Virtual Circuit (VC).
```APIDOC
## equinix_fabric_service_token Aside Port Service Token
### Description
Creates an Equinix Fabric Service Token for an aside port connection.
### Method
`resource "equinix_fabric_service_token" "test"`
### Parameters
#### Required
- `expiration_date_time` (String) - Required - Expiration date and time of the service token in ISO 8601 format (e.g., "2025-01-18T06:43:49.981Z").
- `notifications` (Block Set, Min: 1) - Required - Preferences for notifications on Service Token configuration or status changes.
- `emails` (List of String) - Required - Array of contact emails.
- `type` (String) - Required - Notification Type (ALL, CONNECTION_APPROVAL, SALES_REP_NOTIFICATIONS, NOTIFICATIONS).
- `send_interval` (String) - Optional - Send interval for notifications.
- `service_token_connection` (Block Set, Min: 1) - Required - Service Token Connection Type Information.
- `type` (String) - Required - Connection type (e.g., "EVPL_VC").
- `bandwidth_limit` (Integer) - Optional - Bandwidth limit for the connection in Mbps.
- `a_side` (Block) - Required for aside connections - Defines the A-side access point.
- `access_point_selectors` (Block Set, Min: 1) - Required - Selectors for the access point.
- `type` (String) - Required - Type of access point (e.g., "COLO").
- `port` (Block) - Optional - Port details.
- `uuid` (String) - Required - UUID of the port.
- `link_protocol` (Block) - Optional - Link protocol details.
- `type` (String) - Required - Type of link protocol (e.g., "DOT1Q").
- `vlan_tag` (String) - Required - VLAN tag for the link protocol.
#### Optional
- `description` (String) - Optional - Description for the Service Token.
- `name` (String) - Optional - Name of the Service Token.
- `project` (Block Set, Max: 1) - Optional - Project information.
- `uuid` (String) - Required - UUID of the project.
- `timeouts` (Block) - Optional - Timeout configuration for the resource.
### Read-Only
- `account` (Set of Object) - Customer account information.
- `change_log` (Set of Object) - Connection lifecycle change information.
- `href` (String) - Absolute URL of the resource.
- `id` (String) - The ID of this resource.
- `issuer_side` (String) - Information about the token issuer side (ASIDE, ZSIDE).
- `state` (String) - Service token state (ACTIVE, INACTIVE, EXPIRED, DELETED).
- `uuid` (String) - Equinix-assigned service token identifier.
### Request Example
```terraform
resource "equinix_fabric_service_token" "test" {
type = "VC_TOKEN"
description = "Aside COLO Service Token"
expiration_date_time = "2025-01-18T06:43:49.981Z"
service_token_connection {
type = "EVPL_VC"
bandwidth_limit = 1000
a_side {
access_point_selectors{
type = "COLO"
port {
uuid = ""
}
link_protocol {
type = "DOT1Q"
vlan_tag = "2987"
}
}
}
}
notifications {
type = "ALL"
emails = ["example@equinix.com", "test1@equinix.com"]
}
}
```
```
--------------------------------
### equinix_fabric_stream_subscriptions Data Source
Source: https://github.com/equinix/terraform-provider-equinix/blob/main/docs/data-sources/fabric_stream_subscriptions.md
Example of how to use the equinix_fabric_stream_subscriptions data source to fetch all stream subscriptions for a given stream ID.
```APIDOC
## equinix_fabric_stream_subscriptions (Data Source)
Fabric V4 API compatible data source that allows user to fetch Equinix Fabric Stream Subscriptions with pagination
### Example Usage
```terraform
data "equinix_fabric_stream_subscriptions" "all" {
stream_id = ""
pagination = {
limit = 10
offset = 0
}
}
```
### Schema
#### Required
- `pagination` (Attributes) Pagination details for the returned streams list
- `stream_id` (String) The uuid of the stream that is the target of the stream subscription
#### Read-Only
- `data` (Attributes List) Returned list of stream objects
- `id` (String) The unique identifier of the resource
### 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 streams available to the user making the request
### Nested Schema for `data`
#### Read-Only
- `change_log` (Attributes) Details of the last change on the stream resource
- `description` (String) Customer-provided stream subscription description
- `enabled` (Boolean) Stream subscription enabled status
- `event_selector` (Attributes) Lists of events to be included/excluded on the stream subscription
- `href` (String) Equinix assigned URI of the stream subscription resource
- `metric_selector` (Attributes) Lists of metrics to be included/excluded on the stream subscription
- `name` (String) Customer-provided stream subscription name
- `sink` (Attributes) The details of the subscriber to the Equinix Stream
- `state` (String) Value representing provisioning status for the stream resource
- `type` (String) Type of the stream subscription request
- `uuid` (String) Equinix assigned unique identifier of the stream subscription resource
### 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
### Nested Schema for `data.event_selector`
#### Read-Only
- `except` (List of String) List of events to exclude
- `include` (List of String) List of events to include
### Nested Schema for `data.metric_selector`
#### Read-Only
- `except` (List of String) List of metrics to exclude
- `include` (List of String) List of metrics to include
### Nested Schema for `data.sink`
```