diff --git a/docs/data-sources/equinix_ecx_l2_sellerprofile.md b/docs/data-sources/equinix_ecx_l2_sellerprofile.md index 2ebbb5e09..04ac316b3 100644 --- a/docs/data-sources/equinix_ecx_l2_sellerprofile.md +++ b/docs/data-sources/equinix_ecx_l2_sellerprofile.md @@ -2,12 +2,10 @@ subcategory: "Fabric" --- -# DEPRECATED RESOURCE - -End of Life will be June 30th, 2024. Use equinix_fabric_service_profile instead. - # equinix_ecx_l2_sellerprofile (Data Source) +!> **DEPRECATED** End of Life will be June 30th, 2024. Use `equinix_fabric_service_profile` instead. + Use this data source to get details of Equinix Fabric layer 2 seller profile with a given name and / or organization. diff --git a/docs/data-sources/equinix_ecx_l2_sellerprofiles.md b/docs/data-sources/equinix_ecx_l2_sellerprofiles.md index 57a183c1b..10c378072 100644 --- a/docs/data-sources/equinix_ecx_l2_sellerprofiles.md +++ b/docs/data-sources/equinix_ecx_l2_sellerprofiles.md @@ -2,12 +2,10 @@ subcategory: "Fabric" --- -# DEPRECATED RESOURCE - -End of Life will be June 30th, 2024. Use equinix_fabric_service_profiles instead. - # equinix_ecx_l2_sellerprofiles (Data Source) +!> **DEPRECATED** End of Life will be June 30th, 2024. Use `equinix_fabric_service_profiles` instead. + Use this data source to get details of available Equinix Fabric layer 2 seller profiles. It is possible to apply filtering criteria for returned list of profiles. diff --git a/docs/data-sources/equinix_ecx_port.md b/docs/data-sources/equinix_ecx_port.md index c17bfe874..e42783e96 100644 --- a/docs/data-sources/equinix_ecx_port.md +++ b/docs/data-sources/equinix_ecx_port.md @@ -2,12 +2,10 @@ subcategory: "Fabric" --- -# DEPRECATED RESOURCE - -End of Life will be June 30th, 2024. Use equinix_fabric_port and equinix_fabric_ports instead. - # equinix_ecx_port (Data Source) +!> **DEPRECATED** End of Life will be June 30th, 2024. Use `equinix_fabric_port` and `equinix_fabric_ports` instead. + Use this data source to get details of Equinix Fabric port with a given name. ## Example Usage diff --git a/docs/data-sources/equinix_fabric_cloud_router.md b/docs/data-sources/equinix_fabric_cloud_router.md index 35db0c8b1..9233e0b1f 100644 --- a/docs/data-sources/equinix_fabric_cloud_router.md +++ b/docs/data-sources/equinix_fabric_cloud_router.md @@ -4,17 +4,21 @@ page_title: "equinix_fabric_cloud_router Data Source - terraform-provider-equini subcategory: "Fabric" description: |- Fabric V4 API compatible data resource that allow user to fetch Fabric Cloud Router for a given UUID - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_clouder_router (Data Source) Fabric V4 API compatible data resource that allow user to fetch Fabric Cloud Router for a given UUID -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - API documentation can be found here - https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#fabric-cloud-routers +## Example Usage + +```hcl +data "equinix_fabric_cloud_router" "cloud_router_data_name" { + uuid = "" +} +``` ## Schema diff --git a/docs/data-sources/equinix_fabric_connection.md b/docs/data-sources/equinix_fabric_connection.md index f5286255f..1c518a789 100644 --- a/docs/data-sources/equinix_fabric_connection.md +++ b/docs/data-sources/equinix_fabric_connection.md @@ -4,16 +4,19 @@ page_title: "equinix_fabric_connection Data Source - terraform-provider-equinix" subcategory: "Fabric" description: |- Fabric V4 API compatible data resource that allow user to fetch connection for a given UUID - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_connection (Data Source) Fabric V4 API compatible data resource that allow user to fetch connection for a given UUID -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - +## Example Usage +```hcl +data "equinix_fabric_connection" "connection_data_name" { + uuid = "" +} +``` ## Schema diff --git a/docs/data-sources/equinix_fabric_port.md b/docs/data-sources/equinix_fabric_port.md index 407a7ad60..dc5409b76 100644 --- a/docs/data-sources/equinix_fabric_port.md +++ b/docs/data-sources/equinix_fabric_port.md @@ -4,16 +4,19 @@ page_title: "equinix_fabric_port Data Source - terraform-provider-equinix" subcategory: "Fabric" description: |- Fabric V4 API compatible data resource that allow user to fetch port by uuid - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_port (Data Source) Fabric V4 API compatible data resource that allow user to fetch port by uuid -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - +## Example Usage +```hcl +data "equinix_fabric_port" "port_data_name" { + uuid = "" +} +``` ## Schema diff --git a/docs/data-sources/equinix_fabric_ports.md b/docs/data-sources/equinix_fabric_ports.md index 941c3cbe8..b4342cd4c 100644 --- a/docs/data-sources/equinix_fabric_ports.md +++ b/docs/data-sources/equinix_fabric_ports.md @@ -4,16 +4,21 @@ page_title: "equinix_fabric_ports Data Source - terraform-provider-equinix" subcategory: "Fabric" description: |- Fabric V4 API compatible data resource that allow user to fetch port by name - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_ports (Data Source) Fabric V4 API compatible data resource that allow user to fetch port by name -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - +## Example Usage +```hcl +data "equinix_fabric_ports" "ports_data_name" { + filters { + name = "" + } +} +``` ## Schema diff --git a/docs/data-sources/equinix_fabric_routing_protocol.md b/docs/data-sources/equinix_fabric_routing_protocol.md index d32eb9bc4..0261f5375 100644 --- a/docs/data-sources/equinix_fabric_routing_protocol.md +++ b/docs/data-sources/equinix_fabric_routing_protocol.md @@ -4,17 +4,22 @@ page_title: "equinix_fabric_routing_protocol Data Source - terraform-provider-eq subcategory: "Fabric" description: |- Fabric V4 API compatible data resource that allow user to fetch routing protocol for a given UUID - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_routing_protocol (Data Source) Fabric V4 API compatible data resource that allow user to fetch routing protocol for a given UUID -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - API documentation can be found here - https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#routing-protocols +## Example Usage + +```hcl +data "equinix_fabric_routing_protocol" "routing_protocol_data_name" { + uuid = "" +} +``` + ## Schema diff --git a/docs/data-sources/equinix_fabric_service_profile.md b/docs/data-sources/equinix_fabric_service_profile.md index 24055c696..d6fbbc6f4 100644 --- a/docs/data-sources/equinix_fabric_service_profile.md +++ b/docs/data-sources/equinix_fabric_service_profile.md @@ -4,16 +4,19 @@ page_title: "equinix_fabric_service_profile Data Source - terraform-provider-equ subcategory: "Fabric" description: |- Fabric V4 API compatible data resource that allow user to fetch Service Profile by UUID filter criteria - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability --- # equinix_fabric_service_profile (Data Source) Fabric V4 API compatible data resource that allow user to fetch Service Profile by UUID filter criteria -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability - +## Example Usage +```hcl +data "equinix_fabric_service_profile" "service_profile_data_name" { + uuid = "" +} +``` ## Schema diff --git a/docs/data-sources/equinix_fabric_service_profiles.md b/docs/data-sources/equinix_fabric_service_profiles.md index a2f17cfa5..2c4457b1d 100644 --- a/docs/data-sources/equinix_fabric_service_profiles.md +++ b/docs/data-sources/equinix_fabric_service_profiles.md @@ -4,16 +4,23 @@ page_title: "equinix_fabric_service_profiles Data Source - terraform-provider-eq subcategory: "Fabric" description: |- Fabric V4 API compatible data resource that allow user to fetch Service Profile by name filter criteria - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_service_profiles (Data Source) Fabric V4 API compatible data resource that allow user to fetch Service Profile by name filter criteria -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - - +## Example Usage + +```hcl +data "equinix_fabric_service_profiles" "service_profiles_data_name" { + filter { + property = "/name" + operator = "=" + values = [""] + } +} +``` ## Schema diff --git a/docs/guides/migration_guide_fabricv3_to_fabricv4.md b/docs/guides/migration_guide_fabricv3_to_fabricv4.md new file mode 100644 index 000000000..f388b5212 --- /dev/null +++ b/docs/guides/migration_guide_fabricv3_to_fabricv4.md @@ -0,0 +1,288 @@ +--- +page_title: "Migrating from Fabric v3 (ecx) to Fabric v4 (fabric)" +--- + +# Migrating from Fabric v3 (ecx) to Fabric v4 (fabric) + +In December 2023, the Fabric v3 APIs were deprecated and they will reach +End of Life (EOL) in June 2024. The `ecx` Terraform Resources are built on those +APIs and will also reach EOL in June 2024. If you are using them this guide +will help you migrate to the `fabric` Terraform Resources that are built +with the Fabric v4 APIs. + +The Fabric v3 Resources are the following data sources and resources: + +Data Sources: +* `data "equinix_ecx_l2_sellerprofile"` +* `data "equinix_ecx_l2_sellerprofiles"` +* `data "equinix_ecx_port"` + +Resources: +* `resource "equinix_ecx_l2_connection"` +* `resource "equinix_ecx_l2_connection_accepter"` +* `resource "equinix_ecx_l2_service_profile"` + +They are being replaced by the family of resources with the +`equinix_fabric_` prefix. + +## Mapping ECX to Fabric + +All ECX resources are limited to Layer 2 Connections. This is due to +the limited amount of possibilities that existed at the time of Fabric v3. +The Fabric v4 APIs allow for Layer 2 and Layer 3 Connections. + +What this means is that the Fabric resources are more robust so there isn't +an exact one to one mapping, but rather that ECX connection types are now +a subset of a Fabric resource. + +### Data Source Mappings: + +* Use `data "equinix_fabric_service_profile"` instead of `data "equinix_ecx_sellerprofile"` +* Use `data "equinix_fabric_service_profiles"` instead of `data "equinix_ecx_sellerprofiles"` +* Use `data "equinix_fabric_port"` instead of `data "equinix_ecx_port"` + +#### Template Changes Would Be: + +Seller Profile: +```hcl +data "equinix_ecx_l2_sellerprofile" "aws" { + name = "AWS Direct Connect" +} + +output "id" { + value = data.equinix_ecx_l2_sellerprofile.aws.id +} +``` +to +```hcl +data "equinix_fabric_service_profile" "aws" { + uuid = "" +} + +output "id" { + value = data.equinix_fabric_service_profile.aws.id +} +``` +or if you still want to search by name you would use the `equinix_fabric_service_profiles` data source +```hcl +data "equinix_fabric_service_profiles" "aws" { + filter { + property = "/name" + operator = "=" + values = ["AWS Direct Connect"] + } +} + +output "id" { + value = data.equinix_fabric_service_profile.aws.data.0.id +} +``` + +Seller Profiles: +```hcl +data "equinix_ecx_l2_sellerprofiles" "aws" { + organization_global_name = "AWS" +} +``` +to +```hcl +data "equinix_fabric_service_profiles" "aws" { + filter { + property = "/name" + operator = "=" + values = ["AWS"] + } +} +``` + +Port: +```hcl +data "equinix_ecx_port" "tf-pri-dot1q" { + name = "sit-001-CX-NY5-NL-Dot1q-BO-10G-PRI-JP-157" +} + +output "id" { + value = data.equinix_ecx_port.tf-pri-dot1q.id +} +``` +to +```hcl +data "equinix_fabric_ports" "tf-pri-dot1q" { + filters { + name = "sit-001-CX-NY5-NL-Dot1q-BO-10G-PRI-JP-157" + } +} + +output "id" { + value = data.equinix_fabric_ports.tf-pri-dot1q.0.id +} +``` + +### Resource Mappings + +* Use `resource "equinix_fabric_connection"` instead of `resource "equinix_ecx_l2_connection"` +* `resource "equinix_ecx_l2_connection_acceptor` is deprecated. + * Add your AWS Secret Key and AWS Access Key to `additional_info` property in `resource "equinix_fabric_connection"` for AWS + * Or use the equivalent resource `aws_dx_connection_confirmation` in the 'AWS' provider instead." +* Use `resource "equinix_fabric_service_profile"` instead of `resource "equinix_ecx_l2_service_profile"` + +#### Template Changes + +L2 Connection: +```hcl +resource "equinix_ecx_l2_connection" "port-2-aws" { + name = "tf-aws" + profile_uuid = "" + speed = 200 + speed_unit = "MB" + notifications = ["marry@equinix.com", "john@equinix.com"] + port_uuid = "" + vlan_stag = 777 + vlan_ctag = 1000 + seller_region = "us-west-1" + seller_metro_code = "SV" + authorization_key = "" +} +``` +to +```hcl +resource "equinix_fabric_connection" "port2aws" { + name = "tf-aws" + type = "EVPL_VC" # L2 Connection + notifications { + type = "ALL" + emails = ["marry@equinix.com", "john@equinix.com"] + } + bandwidth = 200 # Speed unit is defaulted to MB + redundancy { priority= "PRIMARY" } + order { + purchase_order_number= "1-323929" + } + a_side { + access_point { + type= "COLO" + port { + uuid = "" + } + link_protocol { + type = "QINQ" + vlan_s_tag = "777" + vlan_c_tag = "1000" + } + } + } + z_side { + access_point { + type = "SP" + authentication_key = "" + seller_region = "us-west-1" + profile { + type = "L2_PROFILE" + uuid = "" + } + location { + metro_code = "SV" + } + } + } + + additional_info = [ + { key = "accessKey", value = "" }, + { key = "secretKey", value = "" } + ] +} +``` + +Service Profile: +```hcl +resource "equinix_ecx_l2_serviceprofile" "private-profile" { + name = "private-profile" + description = "my private profile" + connection_name_label = "Connection" + bandwidth_threshold_notifications = ["John.Doe@example.com", "Marry.Doe@example.com"] + profile_statuschange_notifications = ["John.Doe@example.com", "Marry.Doe@example.com"] + vc_statuschange_notifications = ["John.Doe@example.com", "Marry.Doe@example.com"] + private = true + private_user_emails = ["John.Doe@example.com", "Marry.Doe@example.com"] + features { + allow_remote_connections = true + test_profile = false + } + port { + uuid = "a867f685-422f-22f7-6de0-320a5c00abdd" + metro_code = "NY" + } + port { + uuid = "a867f685-4231-2317-6de0-320a5c00abdd" + metro_code = "NY" + } + speed_band { + speed = 1000 + speed_unit = "MB" + } + speed_band { + speed = 500 + speed_unit = "MB" + } + speed_band { + speed = 100 + speed_unit = "MB" + } +} +``` +to +```hcl +resource "equinix_fabric_service_profile" "private-profile" { + name = "private-profile" + description = "my private profile" + type = "L2_PROFILE" # Need to specify to make it an Layer 2 Profile + visibility = "PRIVATE" + notifications = [ + { + emails = ["John.Doe@example.com", "Marry.Doe@example.com"] + type = "BANDWIDTH_ALERT" + }, + { + emails = ["John.Doe@example.com", "Marry.Doe@example.com"] + type = "PROFILE_LIFECYCLE" + }, + { + emails = ["John.Doe@example.com", "Marry.Doe@example.com"] + type = "CONNECTION_APPROVAL" + } + ] + allowed_emails = ["John.Doe@example.com", "Marry.Doe@example.com"] + ports = [ + { + uuid = "c791f8cb-5cc9-cc90-8ce0-306a5c00a4ee" + type = "XF_PORT" + }, + { + uuid = "a867f685-4231-2317-6de0-320a5c00abdd" + type = "XF_PORT" + } + ] + + access_point_type_configs { + type = "COLO" + allow_remote_connections = true + connection_label = "Connection" + supported_bandwidths = [ 100, 500, 1000 ] + } +} +``` + + +## Migrating Terraform State + +Once we changed the template accordingly, we can remove the old `equinix_ecx_` resources from Terraform state and import the new ones as `equinix_fabric_` resources by their UUIDs. + +In the terraform state and import commands, we use the resource type and name, separated by dot: +```bash +terraform state rm equinix_ecx_l2_connection.example +terraform import equinix_fabric_connection.example +``` + +After that, our templates should be in check with the Terraform state and with the upstream resources in Equinix Fabric. We can verify the migration by running terraform plan, it should show that infrastructure is up to date. + + diff --git a/docs/resources/equinix_ecx_l2_connection.md b/docs/resources/equinix_ecx_l2_connection.md index 20a809b40..7c0f5df26 100644 --- a/docs/resources/equinix_ecx_l2_connection.md +++ b/docs/resources/equinix_ecx_l2_connection.md @@ -2,12 +2,10 @@ subcategory: "Fabric" --- -# DEPRECATED RESOURCE - -End of Life will be June 30th, 2024. Use equinix_fabric_connection instead. - # equinix_ecx_l2_connection (Resource) +!> **DEPRECATED** End of Life will be June 30th, 2024. Use `equinix_fabric_connection` instead. + Resource `equinix_ecx_l2_connection` allows creation and management of Equinix Fabric layer 2 connections. diff --git a/docs/resources/equinix_ecx_l2_connection_accepter.md b/docs/resources/equinix_ecx_l2_connection_accepter.md index 065eccc81..1a53e131e 100644 --- a/docs/resources/equinix_ecx_l2_connection_accepter.md +++ b/docs/resources/equinix_ecx_l2_connection_accepter.md @@ -4,7 +4,7 @@ subcategory: "Fabric" # equinix_ecx_l2_connection_accepter (Resource) -!> **DEPRECATED** Use the [`aws_dx_connection_confirmation`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dx_connection_confirmation) +!> **DEPRECATED** End of Life will be June 30th, 2024. Use the [`aws_dx_connection_confirmation`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dx_connection_confirmation) resource from the [AWS provider](https://registry.terraform.io/providers/hashicorp/aws/latest/docs). The documentation below applies to version v1.3 and below of the Equinix provider. Later versions of the Equinix provider will return an error, requiring usage of the diff --git a/docs/resources/equinix_ecx_l2_serviceprofile.md b/docs/resources/equinix_ecx_l2_serviceprofile.md index 19589e93d..bbad561df 100644 --- a/docs/resources/equinix_ecx_l2_serviceprofile.md +++ b/docs/resources/equinix_ecx_l2_serviceprofile.md @@ -2,12 +2,10 @@ subcategory: "Fabric" --- -# DEPRECATED RESOURCE - -End of Life will be June 30th, 2024. Use equinix_fabric_service_profile instead. - # equinix_ecx_l2_serviceprofile (Resource) +!> **DEPRECATED** End of Life will be June 30th, 2024. Use `equinix_fabric_service_profile` instead. + Resource `equinix_ecx_l2_serviceprofile` is used to manage layer 2 service profiles in Equinix Fabric. diff --git a/docs/resources/equinix_fabric_cloud_router.md b/docs/resources/equinix_fabric_cloud_router.md index 572dcc657..538b8024c 100644 --- a/docs/resources/equinix_fabric_cloud_router.md +++ b/docs/resources/equinix_fabric_cloud_router.md @@ -4,17 +4,41 @@ page_title: "equinix_fabric_cloud_router Resource - terraform-provider-equinix" subcategory: "Fabric" description: |- Fabric V4 API compatible resource allows creation and management of Equinix Fabric Cloud Router - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_cloud_router (Resource) Fabric V4 API compatible resource allows creation and management of Equinix Fabric Cloud Router -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - API documentation can be found here - https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#fabric-cloud-routers +## Example Usage + +```hcl +resource "equinix_fabric_cloud_router" "new_cloud_router"{ + name = "Router-SV" + type = "XF_ROUTER" + notifications{ + type = "ALL" + emails = ["example@equinix.com","test1@equinix.com"] + } + order { + purchase_order_number = "1-323292" + } + location { + metro_code = "SV" + } + package { + code = "PRO" + } + project { + project_id = "776847000642406" + } + account { + account_number = "203612" + } +} +``` ## Schema diff --git a/docs/resources/equinix_fabric_connection.md b/docs/resources/equinix_fabric_connection.md index a54d82f4b..b60d3f5bb 100644 --- a/docs/resources/equinix_fabric_connection.md +++ b/docs/resources/equinix_fabric_connection.md @@ -4,15 +4,508 @@ page_title: "equinix_fabric_connection Resource - terraform-provider-equinix" subcategory: "Fabric" description: |- Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_connection (Resource) Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - +## Example Usage + +Port to Port EVPL_VC Connection: +```hcl +resource "equinix_fabric_connection" "port2port" { + name = "ConnectionName" + type = "EVPL_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com","test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number= "1-323292" + } + a_side { + access_point { + type = "COLO" + port { + uuid = "" + } + link_protocol { + type = "QINQ" + vlan_s_tag = "1976" + + } + } + } + z_side { + access_point { + type = "COLO" + port { + uuid = "" + } + link_protocol { + type = "QINQ" + vlan_s_tag = "3711" + } + location { + metro_code= "SV" + } + } + } +} +``` + +Port to AWS EVPL_VC Connection: +```hcl +resource "equinix_fabric_connection" "port2aws" { + name = "ConnectionName" + type = "EVPL_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com","test1@equinix.com"] + } + bandwidth = 50 + redundancy { priority= "PRIMARY" } + order { + purchase_order_number= "1-323929" + } + a_side { + access_point { + type= "COLO" + port { + uuid = "" + } + link_protocol { + type = "QINQ" + vlan_s_tag = "2019" + vlan_c_tag = "2112" + } + } + } + z_side { + access_point { + type = "SP" + authentication_key = "" + seller_region = "us-west-1" + profile { + type = "L2_PROFILE" + uuid = "" + } + location { + metro_code = "SV" + } + } + } + + additional_info = [ + { key = "accessKey", value = "" }, + { key = "secretKey", value = "" } + ] +} +``` + +Port to Port EPL Connection: +```hcl +resource "equinix_fabric_connection" "epl" { + name = "ConnectionName" + type = "EPL_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com", "test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "COLO" + port { + uuid = "" + } + } + } + z_side { + access_point { + type = "COLO" + port { + uuid = "" + } + location { + metro_code = "SV" + } + } + } +} +``` + +Port to Port ACCESS_EPL_VC Connection: +```hcl +resource "equinix_fabric_connection" "access_epl_vc" { + name = "ConnectionName" + type = "ACCESS_EPL_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com", "test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "COLO" + port { + uuid = "" + } + link_protocol { + type = "QINQ" + vlan_s_tag = "1976" + } + } + } + z_side { + access_point { + type = "COLO" + port { + uuid = "" + } + location { + metro_code = "SV" + } + } + } +} +``` + +Virtual Device to Port Connection: +```hcl +resource "equinix_fabric_connection" "vd2port" { + name = "ConnectionName" + type = "EVPL_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com", "test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "VD" + virtual_device { + type = "EDGE" + uuid = "" + } + interface { + type = "NETWORK" + id = 45654 + } + } + } + z_side { + access_point { + type = "COLO" + port { + uuid = "" + } + link_protocol { + type = "DOT1Q" + vlan_s_tag = "3711" + } + location { + metro_code = "SV" + } + } + } +} +``` + +Virtual Device to Service Token Connection: +```hcl +resource "equinix_fabric_connection" "vd2token" { + name = "ConnectionName" + type = "EVPL_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com", "test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "VD" + virtual_device { + type = "EDGE" + uuid = "" + } + interface { + type = "NETWORK" + id = 45654 + } + } + } + z_side { + service_token { + uuid = "" + } + } +} +``` + +Service Token to AWS Connection: +```hcl +resource "equinix_fabric_connection" "token2aws" { + name = "ConnectionName" + type = "EVPL_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com", "test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + service_token { + uuid = "" + } + } + z_side { + access_point { + type = "SP" + authentication_key = "" + seller_region = "us-west-1" + profile { + type = "L2_PROFILE" + uuid = "" + } + location { + metro_code = "SV" + } + } + } +} +``` + +Cloud Router to Port Connection: +```hcl +resource "equinix_fabric_connection" "fcr2port"{ + name = "ConnectionName" + type = "IP_VC" + notifications{ + type = "ALL" + emails = ["example@equinix.com","test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "CLOUD_ROUTER" + router { + uuid = "" + } + } + } + z_side { + access_point { + type = "COLO" + port { + uuid = "" + } + link_protocol { + type = "DOT1Q" + vlan_tag = "2711" + } + location { + metro_code = "SV" + } + } + } +} +``` + +Cloud Router to Azure Connection: +```hcl +resource "equinix_fabric_connection" "fcr2azure"{ + name = "ConnectionName" + type = "IP_VC" + notifications{ + type = "ALL" + emails = ["example@equinix.com","test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "CLOUD_ROUTER" + router { + uuid = "" + } + } + } + z_side { + access_point { + type = "SP" + authentication_key = "" + peering_type = "PRIVATE" + profile { + type = "L2_PROFILE" + uuid = "" + } + location { + metro_code = "SV" + } + } + } +} +``` + +Cloud Router to Network Connection: +```hcl +resource "equinix_fabric_connection" "fcr2network"{ + name = "ConnectionName" + type = "IPWAN_VC" + notifications{ + type = "ALL" + emails = ["example@equinix.com","test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "CLOUD_ROUTER" + router { + uuid = "" + } + } + } + z_side { + access_point { + type = "NETWORK" + network { + uuid = "" + } + } + } +} +``` + +Virtual Device to Network Connection: +```hcl +resource "equinix_fabric_connection" "vd2token" { + name = "ConnectionName" + type = "EVPLAN_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com", "test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "VD" + virtual_device { + type = "EDGE" + uuid = "" + } + interface { + type = "NETWORK" + id = 45654 + } + } + } + z_side { + access_point { + type = "NETWORK" + network { + uuid = "" + } + } + } +} +``` + +EPLAN Port to Network Connection: +```hcl +resource "equinix_fabric_connection" "epl" { + name = "ConnectionName" + type = "EPLAN_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com", "test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "COLO" + port { + uuid = "" + } + } + } + z_side { + access_point { + type = "NETWORK" + network { + uuid = "" + } + } + } +} +``` + +EVPLAN Port to Network Connection: +```hcl +resource "equinix_fabric_connection" "epl" { + name = "ConnectionName" + type = "EVPLAN_VC" + notifications { + type = "ALL" + emails = ["example@equinix.com", "test1@equinix.com"] + } + bandwidth = 50 + order { + purchase_order_number = "1-323292" + } + a_side { + access_point { + type = "COLO" + port { + uuid = "" + } + link_protocol { + type = "DOT1Q" + vlan_s_tag = "1976" + + } + } + } + z_side { + access_point { + type = "NETWORK" + network { + uuid = "" + } + } + } +} +``` diff --git a/docs/resources/equinix_fabric_routing_protocol.md b/docs/resources/equinix_fabric_routing_protocol.md index 2ac41cbfb..a796a466f 100644 --- a/docs/resources/equinix_fabric_routing_protocol.md +++ b/docs/resources/equinix_fabric_routing_protocol.md @@ -4,17 +4,81 @@ page_title: "equinix_fabric_routing_protocol Resource - terraform-provider-equin subcategory: "Fabric" description: |- Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_routing_protocol (Resource) Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - API documentation can be found here - https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#routing-protocols +## Example Usage + +Direct Routing Protocol +```hcl +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" + } +} +``` + +BGP Routing Protocol (Requires Direct Routing Protocol Created First): +```hcl +resource "equinix_fabric_routing_protocol" "bgp" { + 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 +} +``` + +Direct and BGP Routing Protocol (Requires Depends On to Handle Synchronization): +```hcl +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 +} +``` ## Schema diff --git a/docs/resources/equinix_fabric_service_profile.md b/docs/resources/equinix_fabric_service_profile.md index cd1e4e3ec..ea6b28b6a 100644 --- a/docs/resources/equinix_fabric_service_profile.md +++ b/docs/resources/equinix_fabric_service_profile.md @@ -4,16 +4,46 @@ page_title: "equinix_fabric_service_profile Resource - terraform-provider-equini subcategory: "Fabric" description: |- Fabric V4 API compatible resource allows creation and management of Equinix Fabric Service Profile - ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md --- # equinix_fabric_service_profile (Resource) Fabric V4 API compatible resource allows creation and management of Equinix Fabric Service Profile -~> **Note** Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to `equinix_fabric_` resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new [issue](https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md) - - +## Example Usage + +```hcl +resource "equinix_fabric_service_profile" "new_service_profile" { + description = "Service Profile for Receiving Connections" + name = "Name Of Business + Use Case Tag" + type = "L2_PROFILE" + visibility = "PUBLIC" + notifications = [ + { + emails = ["someone@sample.com"] + type = "BANDWIDTH_ALERT" + } + ] + allowed_emails = ["test@equinix.com", "testagain@equinix.com"] + ports = [ + { + uuid = "c791f8cb-5cc9-cc90-8ce0-306a5c00a4ee" + type = "XF_PORT" + } + ] + + access_point_type_configs { + type = "COLO" + allow_remote_connections = true + allow_custom_bandwidth = true + allow_bandwidth_auto_approval = false + connection_redundancy_required = false + connection_label = "Service Profile Tag1" + bandwidth_alert_threshold = 10 + supported_bandwidths = [ 100, 500 ] + } +} +``` ## Schema diff --git a/examples/fabric/v4/portConnectivity/port2portself/main.tf b/examples/fabric/v4/portConnectivity/port2portself/main.tf index 1dca8490c..2c35f7593 100644 --- a/examples/fabric/v4/portConnectivity/port2portself/main.tf +++ b/examples/fabric/v4/portConnectivity/port2portself/main.tf @@ -35,9 +35,6 @@ resource "equinix_fabric_connection" "p2p-qinq" { type= var.aside_link_protocol_type vlan_s_tag= var.aside_link_protocol_stag } - gateway { - uuid= "XF_ROUTER" - } } } z_side {