From 5defbc38f91e91f601306567e9ee561b174d8add Mon Sep 17 00:00:00 2001 From: Marques Johansson Date: Thu, 28 Mar 2024 21:56:14 -0400 Subject: [PATCH 1/2] chore: update terraform-provider-equinix version to 1.33.0 Signed-off-by: Marques Johansson --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fb74e5e..3fbcf88 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ GOLANGCILINT_VERSION ?= 1.50.0 export TERRAFORM_VERSION := 1.3.1 export TERRAFORM_PROVIDER_SOURCE := equinix/equinix -export TERRAFORM_PROVIDER_VERSION := 1.20.0 +export TERRAFORM_PROVIDER_VERSION := 1.33.0 export TERRAFORM_PROVIDER_DOWNLOAD_NAME := terraform-provider-equinix export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX := https://releases.hashicorp.com/${TERRAFORM_PROVIDER_DOWNLOAD_NAME}/${TERRAFORM_PROVIDER_VERSION} export TERRAFORM_NATIVE_PROVIDER_BINARY := ${TERRAFORM_PROVIDER_DOWNLOAD_NAME}_v${TERRAFORM_PROVIDER_VERSION} From bc15243992091c0b97588b70fba2592b5493b8f2 Mon Sep 17 00:00:00 2001 From: Marques Johansson Date: Thu, 28 Mar 2024 22:02:47 -0400 Subject: [PATCH 2/2] chore: "make generate" against terraform-provider-equinix:1.33.0 Signed-off-by: Marques Johansson --- Makefile | 3 +- apis/fabric/v1alpha1/zz_cloudrouter_types.go | 59 +- apis/fabric/v1alpha1/zz_connection_types.go | 172 ++-- apis/fabric/v1alpha1/zz_generated.deepcopy.go | 905 +++++++++++++----- apis/fabric/v1alpha1/zz_generated.managed.go | 66 ++ .../v1alpha1/zz_generated.managedlist.go | 9 + .../v1alpha1/zz_generated_terraformed.go | 74 ++ apis/fabric/v1alpha1/zz_network_types.go | 225 +++++ .../v1alpha1/zz_routingprotocol_types.go | 24 +- .../v1alpha1/zz_serviceprofile_types.go | 59 +- apis/metal/v1alpha1/zz_connection_types.go | 14 +- apis/metal/v1alpha1/zz_device_types.go | 9 +- apis/metal/v1alpha1/zz_gateway_types.go | 4 +- apis/metal/v1alpha1/zz_generated.deepcopy.go | 21 +- apis/metal/v1alpha1/zz_organization_types.go | 4 +- apis/metal/v1alpha1/zz_project_types.go | 10 +- apis/metal/v1alpha1/zz_projectsshkey_types.go | 2 +- apis/metal/v1alpha1/zz_sshkey_types.go | 2 +- apis/network/v1alpha1/zz_acltemplate_types.go | 6 + apis/network/v1alpha1/zz_device_types.go | 33 +- apis/network/v1alpha1/zz_devicelink_types.go | 6 + .../network/v1alpha1/zz_generated.deepcopy.go | 35 + apis/network/v1alpha1/zz_sshkey_types.go | 6 + config/provider-metadata.yaml | 282 ++++-- config/schema.json | 2 +- examples-generated/network/acltemplate.yaml | 1 + examples-generated/network/devicelink.yaml | 1 + examples-generated/network/sshkey.yaml | 1 + .../fabric/network/zz_controller.go | 63 ++ internal/controller/zz_setup.go | 2 + ...quinix.jet.crossplane.io_cloudrouters.yaml | 56 +- ...equinix.jet.crossplane.io_connections.yaml | 174 ++-- ...ic.equinix.jet.crossplane.io_networks.yaml | 423 ++++++++ ...nix.jet.crossplane.io_serviceprofiles.yaml | 104 +- ...equinix.jet.crossplane.io_connections.yaml | 35 +- ...tal.equinix.jet.crossplane.io_devices.yaml | 15 +- ...al.equinix.jet.crossplane.io_gateways.yaml | 5 +- ...uinix.jet.crossplane.io_organizations.yaml | 1 - ...al.equinix.jet.crossplane.io_projects.yaml | 21 +- ...inix.jet.crossplane.io_projectsshkeys.yaml | 3 +- ...tal.equinix.jet.crossplane.io_sshkeys.yaml | 3 +- ...quinix.jet.crossplane.io_acltemplates.yaml | 7 + ...equinix.jet.crossplane.io_devicelinks.yaml | 6 + ...ork.equinix.jet.crossplane.io_devices.yaml | 46 +- ...ork.equinix.jet.crossplane.io_sshkeys.yaml | 7 + 45 files changed, 2263 insertions(+), 743 deletions(-) create mode 100755 apis/fabric/v1alpha1/zz_network_types.go create mode 100755 internal/controller/fabric/network/zz_controller.go create mode 100644 package/crds/fabric.equinix.jet.crossplane.io_networks.yaml diff --git a/Makefile b/Makefile index 3fbcf88..08502b1 100644 --- a/Makefile +++ b/Makefile @@ -121,7 +121,8 @@ pull-docs: fi @git -C "$(WORK_DIR)/$(TERRAFORM_PROVIDER_SOURCE)" sparse-checkout set "$(TERRAFORM_DOCS_PATH)" @echo "Removing examples known to cause parser errors for examples-generated" - @rm -f "$(WORK_DIR)/$(TERRAFORM_PROVIDER_SOURCE)/$(TERRAFORM_DOCS_PATH)/equinix_metal_port_vlan_attachment.md" + @rm -f "$(WORK_DIR)/$(TERRAFORM_PROVIDER_SOURCE)/$(TERRAFORM_DOCS_PATH)/equinix_metal_port_vlan_attachment.md" \ + "$(WORK_DIR)/$(TERRAFORM_PROVIDER_SOURCE)/$(TERRAFORM_DOCS_PATH)/equinix_fabric_routing_protocol.md" generate.init: $(TERRAFORM_PROVIDER_SCHEMA) pull-docs diff --git a/apis/fabric/v1alpha1/zz_cloudrouter_types.go b/apis/fabric/v1alpha1/zz_cloudrouter_types.go index 8affbe4..ed6352b 100755 --- a/apis/fabric/v1alpha1/zz_cloudrouter_types.go +++ b/apis/fabric/v1alpha1/zz_cloudrouter_types.go @@ -66,30 +66,29 @@ type ChangeLogParameters struct { type CloudRouterObservation struct { - // Access point used and maximum number of IPv4 BGP routes + // Number of IPv4 BGP routes in use (including non-distinct prefixes) BGPIPv4RoutesCount *float64 `json:"bgpIpv4RoutesCount,omitempty" tf:"bgp_ipv4_routes_count,omitempty"` - // Access point used and maximum number of IPv6 BGP routes + // Number of IPv6 BGP routes in use (including non-distinct prefixes) BGPIPv6RoutesCount *float64 `json:"bgpIpv6RoutesCount,omitempty" tf:"bgp_ipv6_routes_count,omitempty"` // Captures Fabric Cloud Router lifecycle change information ChangeLog []ChangeLogObservation `json:"changeLog,omitempty" tf:"change_log,omitempty"` - // Number of connections associated with this Access point + // Number of connections associated with this Fabric Cloud Router instance ConnectionsCount *float64 `json:"connectionsCount,omitempty" tf:"connections_count,omitempty"` + // Number of distinct IPv4 routes + DistinctIPv4PrefixesCount *float64 `json:"distinctIpv4PrefixesCount,omitempty" tf:"distinct_ipv4_prefixes_count,omitempty"` + + // Number of distinct IPv6 routes + DistinctIPv6PrefixesCount *float64 `json:"distinctIpv6PrefixesCount,omitempty" tf:"distinct_ipv6_prefixes_count,omitempty"` + // Equinix ASN EquinixAsn *float64 `json:"equinixAsn,omitempty" tf:"equinix_asn,omitempty"` - // Fabric Cloud Router URI information - Href *string `json:"href,omitempty" tf:"href,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Order information related to this Fabric Cloud Router - // +kubebuilder:validation:Optional - Order []OrderObservation `json:"order,omitempty" tf:"order,omitempty"` - // Fabric Cloud Router overall state State *string `json:"state,omitempty" tf:"state,omitempty"` } @@ -97,13 +96,17 @@ type CloudRouterObservation struct { type CloudRouterParameters struct { // Customer account information that is associated with this Fabric Cloud Router - // +kubebuilder:validation:Optional - Account []AccountParameters `json:"account,omitempty" tf:"account,omitempty"` + // +kubebuilder:validation:Required + Account []AccountParameters `json:"account" tf:"account,omitempty"` // Customer-provided Fabric Cloud Router description // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Fabric Cloud Router URI information + // +kubebuilder:validation:Optional + Href *string `json:"href,omitempty" tf:"href,omitempty"` + // Fabric Cloud Router location // +kubebuilder:validation:Required Location []LocationParameters `json:"location" tf:"location,omitempty"` @@ -117,20 +120,24 @@ type CloudRouterParameters struct { Notifications []NotificationsParameters `json:"notifications" tf:"notifications,omitempty"` // Order information related to this Fabric Cloud Router - // +kubebuilder:validation:Optional - Order []OrderParameters `json:"order,omitempty" tf:"order,omitempty"` + // +kubebuilder:validation:Required + Order []OrderParameters `json:"order" tf:"order,omitempty"` - // Fabric Cloud Router location + // Fabric Cloud Router Package Type // +kubebuilder:validation:Required Package []PackageParameters `json:"package" tf:"package,omitempty"` - // Fabric Cloud Router project - // +kubebuilder:validation:Optional - Project []ProjectParameters `json:"project,omitempty" tf:"project,omitempty"` + // Customer resource hierarchy project information.Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects + // +kubebuilder:validation:Required + Project []ProjectParameters `json:"project" tf:"project,omitempty"` - // Defines the FCR type like XF_ROUTER + // Defines the FCR type like; XF_ROUTER // +kubebuilder:validation:Required Type *string `json:"type" tf:"type,omitempty"` + + // Equinix-assigned Fabric Cloud Router identifier + // +kubebuilder:validation:Optional + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } type LocationObservation struct { @@ -174,12 +181,6 @@ type NotificationsParameters struct { } type OrderObservation struct { - - // Order Identification - OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` - - // Order Reference Number - OrderNumber *string `json:"orderNumber,omitempty" tf:"order_number,omitempty"` } type OrderParameters struct { @@ -188,6 +189,14 @@ type OrderParameters struct { // +kubebuilder:validation:Optional BillingTier *string `json:"billingTier,omitempty" tf:"billing_tier,omitempty"` + // Order Identification + // +kubebuilder:validation:Optional + OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` + + // Order Reference Number + // +kubebuilder:validation:Optional + OrderNumber *string `json:"orderNumber,omitempty" tf:"order_number,omitempty"` + // Purchase order number // +kubebuilder:validation:Optional PurchaseOrderNumber *string `json:"purchaseOrderNumber,omitempty" tf:"purchase_order_number,omitempty"` diff --git a/apis/fabric/v1alpha1/zz_connection_types.go b/apis/fabric/v1alpha1/zz_connection_types.go index 3f936fe..99d99fb 100755 --- a/apis/fabric/v1alpha1/zz_connection_types.go +++ b/apis/fabric/v1alpha1/zz_connection_types.go @@ -53,26 +53,29 @@ type ASideParameters struct { type AccessPointAccountObservation struct { - // Account Name + // Legal name of the accountholder. AccountName *string `json:"accountName,omitempty" tf:"account_name,omitempty"` - // Account Number + // Equinix-assigned account number. AccountNumber *float64 `json:"accountNumber,omitempty" tf:"account_number,omitempty"` - // Global Customer organization identifier + // Equinix-assigned ID of the subscriber's parent organization. GlobalCustID *string `json:"globalCustId,omitempty" tf:"global_cust_id,omitempty"` - // Global organization identifier + // Equinix-assigned ID of the subscriber's parent organization. GlobalOrgID *string `json:"globalOrgId,omitempty" tf:"global_org_id,omitempty"` - // Global organization name + // Equinix-assigned name of the subscriber's parent organization. GlobalOrganizationName *string `json:"globalOrganizationName,omitempty" tf:"global_organization_name,omitempty"` - // Customer organization identifier + // Equinix-assigned ID of the subscriber's organization. OrgID *float64 `json:"orgId,omitempty" tf:"org_id,omitempty"` - // Customer organization name + // Equinix-assigned name of the subscriber's organization. OrganizationName *string `json:"organizationName,omitempty" tf:"organization_name,omitempty"` + + // Enterprise datastore id + UcmID *string `json:"ucmId,omitempty" tf:"ucm_id,omitempty"` } type AccessPointAccountParameters struct { @@ -92,13 +95,14 @@ type AccessPointGatewayParameters struct { } type AccessPointInterfaceObservation struct { - - // id - ID *float64 `json:"id,omitempty" tf:"id,omitempty"` } type AccessPointInterfaceParameters struct { + // id + // +kubebuilder:validation:Optional + ID *float64 `json:"id,omitempty" tf:"id,omitempty"` + // Interface type // +kubebuilder:validation:Optional Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -171,14 +175,10 @@ type AccessPointObservation struct { // +kubebuilder:validation:Optional Account []AccessPointAccountObservation `json:"account,omitempty" tf:"account,omitempty"` - // Cloud Router access point information + // **Deprecated** `gateway` Use `router` attribute instead // +kubebuilder:validation:Optional Gateway []GatewayObservation `json:"gateway,omitempty" tf:"gateway,omitempty"` - // Virtual device interface - // +kubebuilder:validation:Optional - Interface []InterfaceObservation `json:"interface,omitempty" tf:"interface,omitempty"` - // network access point information // +kubebuilder:validation:Optional Network []NetworkObservation `json:"network,omitempty" tf:"network,omitempty"` @@ -191,7 +191,7 @@ type AccessPointObservation struct { // +kubebuilder:validation:Optional Profile []ProfileObservation `json:"profile,omitempty" tf:"profile,omitempty"` - // Cloud Router access point information + // Cloud Router access point information that replaces `gateway` // +kubebuilder:validation:Optional Router []RouterObservation `json:"router,omitempty" tf:"router,omitempty"` @@ -210,7 +210,7 @@ type AccessPointParameters struct { // +kubebuilder:validation:Optional AuthenticationKey *string `json:"authenticationKey,omitempty" tf:"authentication_key,omitempty"` - // Cloud Router access point information + // **Deprecated** `gateway` Use `router` attribute instead // +kubebuilder:validation:Optional Gateway []GatewayParameters `json:"gateway,omitempty" tf:"gateway,omitempty"` @@ -246,14 +246,10 @@ type AccessPointParameters struct { // +kubebuilder:validation:Optional ProviderConnectionID *string `json:"providerConnectionId,omitempty" tf:"provider_connection_id,omitempty"` - // Cloud Router access point information + // Cloud Router access point information that replaces `gateway` // +kubebuilder:validation:Optional Router []RouterParameters `json:"router,omitempty" tf:"router,omitempty"` - // Access point routing protocols configuration - // +kubebuilder:validation:Optional - RoutingProtocols []RoutingProtocolsParameters `json:"routingProtocols,omitempty" tf:"routing_protocols,omitempty"` - // Access point seller region // +kubebuilder:validation:Optional SellerRegion *string `json:"sellerRegion,omitempty" tf:"seller_region,omitempty"` @@ -325,24 +321,6 @@ type AccessPointRouterParameters struct { UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } -type AccessPointRoutingProtocolsObservation struct { -} - -type AccessPointRoutingProtocolsParameters struct { - - // Routing protocol instance state - // +kubebuilder:validation:Optional - State *string `json:"state,omitempty" tf:"state,omitempty"` - - // Routing Protocol type - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // Equinix-assigned Routing protocol identifier - // +kubebuilder:validation:Optional - UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` -} - type AccessPointTypeConfigsObservation struct { Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -401,6 +379,8 @@ type ConnectionAccountObservation struct { OrgID *float64 `json:"orgId,omitempty" tf:"org_id,omitempty"` OrganizationName *string `json:"organizationName,omitempty" tf:"organization_name,omitempty"` + + UcmID *string `json:"ucmId,omitempty" tf:"ucm_id,omitempty"` } type ConnectionAccountParameters struct { @@ -479,10 +459,6 @@ type ConnectionObservation struct { // Connection type-specific operational data Operation []OperationObservation `json:"operation,omitempty" tf:"operation,omitempty"` - // Order related to this connection information - // +kubebuilder:validation:Optional - Order []ConnectionOrderObservation `json:"order,omitempty" tf:"order,omitempty"` - // Project information // +kubebuilder:validation:Optional Project []ConnectionProjectObservation `json:"project,omitempty" tf:"project,omitempty"` @@ -490,18 +466,15 @@ type ConnectionObservation struct { // Connection overall state State *string `json:"state,omitempty" tf:"state,omitempty"` + // Equinix-assigned connection identifier + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` + // Destination or Provider side connection configuration object of the multi-segment connection // +kubebuilder:validation:Required ZSide []ZSideObservation `json:"zSide,omitempty" tf:"z_side,omitempty"` } type ConnectionOrderObservation struct { - - // Order Identification - OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` - - // Order Reference Number - OrderNumber *string `json:"orderNumber,omitempty" tf:"order_number,omitempty"` } type ConnectionOrderParameters struct { @@ -510,6 +483,14 @@ type ConnectionOrderParameters struct { // +kubebuilder:validation:Optional BillingTier *string `json:"billingTier,omitempty" tf:"billing_tier,omitempty"` + // Order Identification + // +kubebuilder:validation:Optional + OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` + + // Order Reference Number + // +kubebuilder:validation:Optional + OrderNumber *string `json:"orderNumber,omitempty" tf:"order_number,omitempty"` + // Purchase order number // +kubebuilder:validation:Optional PurchaseOrderNumber *string `json:"purchaseOrderNumber,omitempty" tf:"purchase_order_number,omitempty"` @@ -529,6 +510,10 @@ type ConnectionParameters struct { // +kubebuilder:validation:Required Bandwidth *float64 `json:"bandwidth" tf:"bandwidth,omitempty"` + // Customer-provided connection description + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` @@ -537,19 +522,19 @@ type ConnectionParameters struct { // +kubebuilder:validation:Required Notifications []ConnectionNotificationsParameters `json:"notifications" tf:"notifications,omitempty"` - // Order related to this connection information - // +kubebuilder:validation:Optional - Order []ConnectionOrderParameters `json:"order,omitempty" tf:"order,omitempty"` + // Order details + // +kubebuilder:validation:Required + Order []ConnectionOrderParameters `json:"order" tf:"order,omitempty"` // Project information // +kubebuilder:validation:Optional Project []ConnectionProjectParameters `json:"project,omitempty" tf:"project,omitempty"` - // Redundancy Information + // Connection Redundancy Configuration // +kubebuilder:validation:Optional Redundancy []ConnectionRedundancyParameters `json:"redundancy,omitempty" tf:"redundancy,omitempty"` - // Defines the connection type like VG_VC, EVPL_VC, EPL_VC, EC_VC, IP_VC, IPWAN_VC,ACCESS_EPL_VC + // Defines the connection type like EVPL_VC, EPL_VC, IPWAN_VC, IP_VC, ACCESS_EPL_VC, EVPLAN_VC, EPLAN_VC, EIA_VC, EC_VC // +kubebuilder:validation:Required Type *string `json:"type" tf:"type,omitempty"` @@ -562,12 +547,13 @@ type ConnectionProjectObservation struct { // Unique Resource URL Href *string `json:"href,omitempty" tf:"href,omitempty"` - - // Project Id - ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` } type ConnectionProjectParameters struct { + + // Project Id + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` } type ConnectionRedundancyObservation struct { @@ -575,11 +561,11 @@ type ConnectionRedundancyObservation struct { type ConnectionRedundancyParameters struct { - // Redundancy group identifier + // Redundancy group identifier (Use the redundancy.0.group UUID of primary connection; e.g. one(equinix_fabric_connection.primary_port_connection.redundancy).group or equinix_fabric_connection.primary_port_connection.redundancy.0.group) // +kubebuilder:validation:Optional Group *string `json:"group,omitempty" tf:"group,omitempty"` - // Priority type- PRIMARY, SECONDARY + // Connection priority in redundancy group - PRIMARY, SECONDARY // +kubebuilder:validation:Optional Priority *string `json:"priority,omitempty" tf:"priority,omitempty"` } @@ -624,13 +610,14 @@ type GatewayParameters struct { } type InterfaceObservation struct { - - // id - ID *float64 `json:"id,omitempty" tf:"id,omitempty"` } type InterfaceParameters struct { + // id + // +kubebuilder:validation:Optional + ID *float64 `json:"id,omitempty" tf:"id,omitempty"` + // Interface type // +kubebuilder:validation:Optional Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -706,6 +693,10 @@ type PortParameters struct { } type PortRedundancyObservation struct { + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + Group *string `json:"group,omitempty" tf:"group,omitempty"` + Priority *string `json:"priority,omitempty" tf:"priority,omitempty"` } @@ -748,6 +739,10 @@ type ProfileParameters struct { } type RedundancyObservation struct { + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + Group *string `json:"group,omitempty" tf:"group,omitempty"` + Priority *string `json:"priority,omitempty" tf:"priority,omitempty"` } @@ -767,24 +762,6 @@ type RouterParameters struct { UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } -type RoutingProtocolsObservation struct { -} - -type RoutingProtocolsParameters struct { - - // Routing protocol instance state - // +kubebuilder:validation:Optional - State *string `json:"state,omitempty" tf:"state,omitempty"` - - // Routing Protocol type - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // Equinix-assigned Routing protocol identifier - // +kubebuilder:validation:Optional - UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` -} - type ServiceTokenObservation struct { // Service token description @@ -828,26 +805,29 @@ type VirtualDeviceParameters struct { type ZSideAccessPointAccountObservation struct { - // Account Name + // Legal name of the accountholder. AccountName *string `json:"accountName,omitempty" tf:"account_name,omitempty"` - // Account Number + // Equinix-assigned account number. AccountNumber *float64 `json:"accountNumber,omitempty" tf:"account_number,omitempty"` - // Global Customer organization identifier + // Equinix-assigned ID of the subscriber's parent organization. GlobalCustID *string `json:"globalCustId,omitempty" tf:"global_cust_id,omitempty"` - // Global organization identifier + // Equinix-assigned ID of the subscriber's parent organization. GlobalOrgID *string `json:"globalOrgId,omitempty" tf:"global_org_id,omitempty"` - // Global organization name + // Equinix-assigned name of the subscriber's parent organization. GlobalOrganizationName *string `json:"globalOrganizationName,omitempty" tf:"global_organization_name,omitempty"` - // Customer organization identifier + // Equinix-assigned ID of the subscriber's organization. OrgID *float64 `json:"orgId,omitempty" tf:"org_id,omitempty"` - // Customer organization name + // Equinix-assigned name of the subscriber's organization. OrganizationName *string `json:"organizationName,omitempty" tf:"organization_name,omitempty"` + + // Enterprise datastore id + UcmID *string `json:"ucmId,omitempty" tf:"ucm_id,omitempty"` } type ZSideAccessPointAccountParameters struct { @@ -881,14 +861,10 @@ type ZSideAccessPointObservation struct { // +kubebuilder:validation:Optional Account []ZSideAccessPointAccountObservation `json:"account,omitempty" tf:"account,omitempty"` - // Cloud Router access point information + // **Deprecated** `gateway` Use `router` attribute instead // +kubebuilder:validation:Optional Gateway []AccessPointGatewayObservation `json:"gateway,omitempty" tf:"gateway,omitempty"` - // Virtual device interface - // +kubebuilder:validation:Optional - Interface []AccessPointInterfaceObservation `json:"interface,omitempty" tf:"interface,omitempty"` - // network access point information // +kubebuilder:validation:Optional Network []AccessPointNetworkObservation `json:"network,omitempty" tf:"network,omitempty"` @@ -901,7 +877,7 @@ type ZSideAccessPointObservation struct { // +kubebuilder:validation:Optional Profile []AccessPointProfileObservation `json:"profile,omitempty" tf:"profile,omitempty"` - // Cloud Router access point information + // Cloud Router access point information that replaces `gateway` // +kubebuilder:validation:Optional Router []AccessPointRouterObservation `json:"router,omitempty" tf:"router,omitempty"` @@ -920,7 +896,7 @@ type ZSideAccessPointParameters struct { // +kubebuilder:validation:Optional AuthenticationKey *string `json:"authenticationKey,omitempty" tf:"authentication_key,omitempty"` - // Cloud Router access point information + // **Deprecated** `gateway` Use `router` attribute instead // +kubebuilder:validation:Optional Gateway []AccessPointGatewayParameters `json:"gateway,omitempty" tf:"gateway,omitempty"` @@ -956,14 +932,10 @@ type ZSideAccessPointParameters struct { // +kubebuilder:validation:Optional ProviderConnectionID *string `json:"providerConnectionId,omitempty" tf:"provider_connection_id,omitempty"` - // Cloud Router access point information + // Cloud Router access point information that replaces `gateway` // +kubebuilder:validation:Optional Router []AccessPointRouterParameters `json:"router,omitempty" tf:"router,omitempty"` - // Access point routing protocols configuration - // +kubebuilder:validation:Optional - RoutingProtocols []AccessPointRoutingProtocolsParameters `json:"routingProtocols,omitempty" tf:"routing_protocols,omitempty"` - // Access point seller region // +kubebuilder:validation:Optional SellerRegion *string `json:"sellerRegion,omitempty" tf:"seller_region,omitempty"` diff --git a/apis/fabric/v1alpha1/zz_generated.deepcopy.go b/apis/fabric/v1alpha1/zz_generated.deepcopy.go index e5bc759..9e441a4 100644 --- a/apis/fabric/v1alpha1/zz_generated.deepcopy.go +++ b/apis/fabric/v1alpha1/zz_generated.deepcopy.go @@ -193,6 +193,11 @@ func (in *AccessPointAccountObservation) DeepCopyInto(out *AccessPointAccountObs *out = new(string) **out = **in } + if in.UcmID != nil { + in, out := &in.UcmID, &out.UcmID + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessPointAccountObservation. @@ -263,11 +268,6 @@ func (in *AccessPointGatewayParameters) DeepCopy() *AccessPointGatewayParameters // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AccessPointInterfaceObservation) DeepCopyInto(out *AccessPointInterfaceObservation) { *out = *in - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(float64) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessPointInterfaceObservation. @@ -283,6 +283,11 @@ func (in *AccessPointInterfaceObservation) DeepCopy() *AccessPointInterfaceObser // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AccessPointInterfaceParameters) DeepCopyInto(out *AccessPointInterfaceParameters) { *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(float64) + **out = **in + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -462,13 +467,6 @@ func (in *AccessPointObservation) DeepCopyInto(out *AccessPointObservation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.Interface != nil { - in, out := &in.Interface, &out.Interface - *out = make([]InterfaceObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.Network != nil { in, out := &in.Network, &out.Network *out = make([]NetworkObservation, len(*in)) @@ -595,13 +593,6 @@ func (in *AccessPointParameters) DeepCopyInto(out *AccessPointParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.RoutingProtocols != nil { - in, out := &in.RoutingProtocols, &out.RoutingProtocols - *out = make([]RoutingProtocolsParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.SellerRegion != nil { in, out := &in.SellerRegion, &out.SellerRegion *out = new(string) @@ -785,51 +776,6 @@ func (in *AccessPointRouterParameters) DeepCopy() *AccessPointRouterParameters { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AccessPointRoutingProtocolsObservation) DeepCopyInto(out *AccessPointRoutingProtocolsObservation) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessPointRoutingProtocolsObservation. -func (in *AccessPointRoutingProtocolsObservation) DeepCopy() *AccessPointRoutingProtocolsObservation { - if in == nil { - return nil - } - out := new(AccessPointRoutingProtocolsObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AccessPointRoutingProtocolsParameters) DeepCopyInto(out *AccessPointRoutingProtocolsParameters) { - *out = *in - if in.State != nil { - in, out := &in.State, &out.State - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } - if in.UUID != nil { - in, out := &in.UUID, &out.UUID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessPointRoutingProtocolsParameters. -func (in *AccessPointRoutingProtocolsParameters) DeepCopy() *AccessPointRoutingProtocolsParameters { - if in == nil { - return nil - } - out := new(AccessPointRoutingProtocolsParameters) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AccessPointTypeConfigsObservation) DeepCopyInto(out *AccessPointTypeConfigsObservation) { *out = *in @@ -1389,14 +1335,19 @@ func (in *CloudRouterObservation) DeepCopyInto(out *CloudRouterObservation) { *out = new(float64) **out = **in } - if in.EquinixAsn != nil { - in, out := &in.EquinixAsn, &out.EquinixAsn + if in.DistinctIPv4PrefixesCount != nil { + in, out := &in.DistinctIPv4PrefixesCount, &out.DistinctIPv4PrefixesCount *out = new(float64) **out = **in } - if in.Href != nil { - in, out := &in.Href, &out.Href - *out = new(string) + if in.DistinctIPv6PrefixesCount != nil { + in, out := &in.DistinctIPv6PrefixesCount, &out.DistinctIPv6PrefixesCount + *out = new(float64) + **out = **in + } + if in.EquinixAsn != nil { + in, out := &in.EquinixAsn, &out.EquinixAsn + *out = new(float64) **out = **in } if in.ID != nil { @@ -1404,13 +1355,6 @@ func (in *CloudRouterObservation) DeepCopyInto(out *CloudRouterObservation) { *out = new(string) **out = **in } - if in.Order != nil { - in, out := &in.Order, &out.Order - *out = make([]OrderObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.State != nil { in, out := &in.State, &out.State *out = new(string) @@ -1443,6 +1387,11 @@ func (in *CloudRouterParameters) DeepCopyInto(out *CloudRouterParameters) { *out = new(string) **out = **in } + if in.Href != nil { + in, out := &in.Href, &out.Href + *out = new(string) + **out = **in + } if in.Location != nil { in, out := &in.Location, &out.Location *out = make([]LocationParameters, len(*in)) @@ -1488,6 +1437,11 @@ func (in *CloudRouterParameters) DeepCopyInto(out *CloudRouterParameters) { *out = new(string) **out = **in } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudRouterParameters. @@ -1599,6 +1553,11 @@ func (in *ConnectionAccountObservation) DeepCopyInto(out *ConnectionAccountObser *out = new(string) **out = **in } + if in.UcmID != nil { + in, out := &in.UcmID, &out.UcmID + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionAccountObservation. @@ -1850,13 +1809,6 @@ func (in *ConnectionObservation) DeepCopyInto(out *ConnectionObservation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.Order != nil { - in, out := &in.Order, &out.Order - *out = make([]ConnectionOrderObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.Project != nil { in, out := &in.Project, &out.Project *out = make([]ConnectionProjectObservation, len(*in)) @@ -1869,6 +1821,11 @@ func (in *ConnectionObservation) DeepCopyInto(out *ConnectionObservation) { *out = new(string) **out = **in } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } if in.ZSide != nil { in, out := &in.ZSide, &out.ZSide *out = make([]ZSideObservation, len(*in)) @@ -1891,16 +1848,6 @@ func (in *ConnectionObservation) DeepCopy() *ConnectionObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConnectionOrderObservation) DeepCopyInto(out *ConnectionOrderObservation) { *out = *in - if in.OrderID != nil { - in, out := &in.OrderID, &out.OrderID - *out = new(string) - **out = **in - } - if in.OrderNumber != nil { - in, out := &in.OrderNumber, &out.OrderNumber - *out = new(string) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionOrderObservation. @@ -1921,6 +1868,16 @@ func (in *ConnectionOrderParameters) DeepCopyInto(out *ConnectionOrderParameters *out = new(string) **out = **in } + if in.OrderID != nil { + in, out := &in.OrderID, &out.OrderID + *out = new(string) + **out = **in + } + if in.OrderNumber != nil { + in, out := &in.OrderNumber, &out.OrderNumber + *out = new(string) + **out = **in + } if in.PurchaseOrderNumber != nil { in, out := &in.PurchaseOrderNumber, &out.PurchaseOrderNumber *out = new(string) @@ -1974,6 +1931,11 @@ func (in *ConnectionParameters) DeepCopyInto(out *ConnectionParameters) { *out = new(float64) **out = **in } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) @@ -1996,7 +1958,9 @@ func (in *ConnectionParameters) DeepCopyInto(out *ConnectionParameters) { if in.Project != nil { in, out := &in.Project, &out.Project *out = make([]ConnectionProjectParameters, len(*in)) - copy(*out, *in) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } if in.Redundancy != nil { in, out := &in.Redundancy, &out.Redundancy @@ -2037,11 +2001,6 @@ func (in *ConnectionProjectObservation) DeepCopyInto(out *ConnectionProjectObser *out = new(string) **out = **in } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID - *out = new(string) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionProjectObservation. @@ -2057,6 +2016,11 @@ func (in *ConnectionProjectObservation) DeepCopy() *ConnectionProjectObservation // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConnectionProjectParameters) DeepCopyInto(out *ConnectionProjectParameters) { *out = *in + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionProjectParameters. @@ -2424,11 +2388,6 @@ func (in *GatewayParameters) DeepCopy() *GatewayParameters { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *InterfaceObservation) DeepCopyInto(out *InterfaceObservation) { *out = *in - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(float64) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterfaceObservation. @@ -2444,6 +2403,11 @@ func (in *InterfaceObservation) DeepCopy() *InterfaceObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *InterfaceParameters) DeepCopyInto(out *InterfaceParameters) { *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(float64) + **out = **in + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -2735,75 +2699,541 @@ func (in *MetrosParameters) DeepCopy() *MetrosParameters { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NetworkObservation) DeepCopyInto(out *NetworkObservation) { +func (in *Network) DeepCopyInto(out *Network) { *out = *in - if in.Href != nil { - in, out := &in.Href, &out.Href - *out = new(string) - **out = **in - } + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkObservation. -func (in *NetworkObservation) DeepCopy() *NetworkObservation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network. +func (in *Network) DeepCopy() *Network { if in == nil { return nil } - out := new(NetworkObservation) + out := new(Network) in.DeepCopyInto(out) return out } +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Network) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NetworkParameters) DeepCopyInto(out *NetworkParameters) { +func (in *NetworkChangeLogObservation) DeepCopyInto(out *NetworkChangeLogObservation) { *out = *in - if in.UUID != nil { - in, out := &in.UUID, &out.UUID + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedByEmail != nil { + in, out := &in.CreatedByEmail, &out.CreatedByEmail + *out = new(string) + **out = **in + } + if in.CreatedByFullName != nil { + in, out := &in.CreatedByFullName, &out.CreatedByFullName + *out = new(string) + **out = **in + } + if in.CreatedDateTime != nil { + in, out := &in.CreatedDateTime, &out.CreatedDateTime + *out = new(string) + **out = **in + } + if in.DeletedBy != nil { + in, out := &in.DeletedBy, &out.DeletedBy + *out = new(string) + **out = **in + } + if in.DeletedByEmail != nil { + in, out := &in.DeletedByEmail, &out.DeletedByEmail + *out = new(string) + **out = **in + } + if in.DeletedByFullName != nil { + in, out := &in.DeletedByFullName, &out.DeletedByFullName + *out = new(string) + **out = **in + } + if in.DeletedDateTime != nil { + in, out := &in.DeletedDateTime, &out.DeletedDateTime + *out = new(string) + **out = **in + } + if in.UpdatedBy != nil { + in, out := &in.UpdatedBy, &out.UpdatedBy + *out = new(string) + **out = **in + } + if in.UpdatedByEmail != nil { + in, out := &in.UpdatedByEmail, &out.UpdatedByEmail + *out = new(string) + **out = **in + } + if in.UpdatedByFullName != nil { + in, out := &in.UpdatedByFullName, &out.UpdatedByFullName + *out = new(string) + **out = **in + } + if in.UpdatedDateTime != nil { + in, out := &in.UpdatedDateTime, &out.UpdatedDateTime *out = new(string) **out = **in } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkParameters. -func (in *NetworkParameters) DeepCopy() *NetworkParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChangeLogObservation. +func (in *NetworkChangeLogObservation) DeepCopy() *NetworkChangeLogObservation { if in == nil { return nil } - out := new(NetworkParameters) + out := new(NetworkChangeLogObservation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NotificationsObservation) DeepCopyInto(out *NotificationsObservation) { +func (in *NetworkChangeLogParameters) DeepCopyInto(out *NetworkChangeLogParameters) { *out = *in } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationsObservation. -func (in *NotificationsObservation) DeepCopy() *NotificationsObservation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkChangeLogParameters. +func (in *NetworkChangeLogParameters) DeepCopy() *NetworkChangeLogParameters { if in == nil { return nil } - out := new(NotificationsObservation) + out := new(NetworkChangeLogParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NotificationsParameters) DeepCopyInto(out *NotificationsParameters) { +func (in *NetworkList) DeepCopyInto(out *NetworkList) { *out = *in - if in.Emails != nil { - in, out := &in.Emails, &out.Emails - *out = make([]*string, len(*in)) + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Network, len(*in)) for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = new(string) - **out = **in - } + (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.SendInterval != nil { +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkList. +func (in *NetworkList) DeepCopy() *NetworkList { + if in == nil { + return nil + } + out := new(NetworkList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NetworkList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkLocationObservation) DeepCopyInto(out *NetworkLocationObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkLocationObservation. +func (in *NetworkLocationObservation) DeepCopy() *NetworkLocationObservation { + if in == nil { + return nil + } + out := new(NetworkLocationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkLocationParameters) DeepCopyInto(out *NetworkLocationParameters) { + *out = *in + if in.Ibx != nil { + in, out := &in.Ibx, &out.Ibx + *out = new(string) + **out = **in + } + if in.MetroCode != nil { + in, out := &in.MetroCode, &out.MetroCode + *out = new(string) + **out = **in + } + if in.MetroName != nil { + in, out := &in.MetroName, &out.MetroName + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkLocationParameters. +func (in *NetworkLocationParameters) DeepCopy() *NetworkLocationParameters { + if in == nil { + return nil + } + out := new(NetworkLocationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkNotificationsObservation) DeepCopyInto(out *NetworkNotificationsObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkNotificationsObservation. +func (in *NetworkNotificationsObservation) DeepCopy() *NetworkNotificationsObservation { + if in == nil { + return nil + } + out := new(NetworkNotificationsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkNotificationsParameters) DeepCopyInto(out *NetworkNotificationsParameters) { + *out = *in + if in.Emails != nil { + in, out := &in.Emails, &out.Emails + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.SendInterval != nil { + in, out := &in.SendInterval, &out.SendInterval + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkNotificationsParameters. +func (in *NetworkNotificationsParameters) DeepCopy() *NetworkNotificationsParameters { + if in == nil { + return nil + } + out := new(NetworkNotificationsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkObservation) DeepCopyInto(out *NetworkObservation) { + *out = *in + if in.Href != nil { + in, out := &in.Href, &out.Href + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkObservation. +func (in *NetworkObservation) DeepCopy() *NetworkObservation { + if in == nil { + return nil + } + out := new(NetworkObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkObservation_2) DeepCopyInto(out *NetworkObservation_2) { + *out = *in + if in.Change != nil { + in, out := &in.Change, &out.Change + *out = make([]ChangeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ChangeLog != nil { + in, out := &in.ChangeLog, &out.ChangeLog + *out = make([]NetworkChangeLogObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ConnectionsCount != nil { + in, out := &in.ConnectionsCount, &out.ConnectionsCount + *out = new(float64) + **out = **in + } + if in.Href != nil { + in, out := &in.Href, &out.Href + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Operation != nil { + in, out := &in.Operation, &out.Operation + *out = make([]NetworkOperationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkObservation_2. +func (in *NetworkObservation_2) DeepCopy() *NetworkObservation_2 { + if in == nil { + return nil + } + out := new(NetworkObservation_2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkOperationObservation) DeepCopyInto(out *NetworkOperationObservation) { + *out = *in + if in.EquinixStatus != nil { + in, out := &in.EquinixStatus, &out.EquinixStatus + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkOperationObservation. +func (in *NetworkOperationObservation) DeepCopy() *NetworkOperationObservation { + if in == nil { + return nil + } + out := new(NetworkOperationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkOperationParameters) DeepCopyInto(out *NetworkOperationParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkOperationParameters. +func (in *NetworkOperationParameters) DeepCopy() *NetworkOperationParameters { + if in == nil { + return nil + } + out := new(NetworkOperationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkParameters) DeepCopyInto(out *NetworkParameters) { + *out = *in + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkParameters. +func (in *NetworkParameters) DeepCopy() *NetworkParameters { + if in == nil { + return nil + } + out := new(NetworkParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkParameters_2) DeepCopyInto(out *NetworkParameters_2) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = make([]NetworkLocationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Notifications != nil { + in, out := &in.Notifications, &out.Notifications + *out = make([]NetworkNotificationsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Project != nil { + in, out := &in.Project, &out.Project + *out = make([]NetworkProjectParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Scope != nil { + in, out := &in.Scope, &out.Scope + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkParameters_2. +func (in *NetworkParameters_2) DeepCopy() *NetworkParameters_2 { + if in == nil { + return nil + } + out := new(NetworkParameters_2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkProjectObservation) DeepCopyInto(out *NetworkProjectObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkProjectObservation. +func (in *NetworkProjectObservation) DeepCopy() *NetworkProjectObservation { + if in == nil { + return nil + } + out := new(NetworkProjectObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkProjectParameters) DeepCopyInto(out *NetworkProjectParameters) { + *out = *in + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkProjectParameters. +func (in *NetworkProjectParameters) DeepCopy() *NetworkProjectParameters { + if in == nil { + return nil + } + out := new(NetworkProjectParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec. +func (in *NetworkSpec) DeepCopy() *NetworkSpec { + if in == nil { + return nil + } + out := new(NetworkSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatus. +func (in *NetworkStatus) DeepCopy() *NetworkStatus { + if in == nil { + return nil + } + out := new(NetworkStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NotificationsObservation) DeepCopyInto(out *NotificationsObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationsObservation. +func (in *NotificationsObservation) DeepCopy() *NotificationsObservation { + if in == nil { + return nil + } + out := new(NotificationsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NotificationsParameters) DeepCopyInto(out *NotificationsParameters) { + *out = *in + if in.Emails != nil { + in, out := &in.Emails, &out.Emails + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.SendInterval != nil { in, out := &in.SendInterval, &out.SendInterval *out = new(string) **out = **in @@ -2977,16 +3407,6 @@ func (in *OperationParameters) DeepCopy() *OperationParameters { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OrderObservation) DeepCopyInto(out *OrderObservation) { *out = *in - if in.OrderID != nil { - in, out := &in.OrderID, &out.OrderID - *out = new(string) - **out = **in - } - if in.OrderNumber != nil { - in, out := &in.OrderNumber, &out.OrderNumber - *out = new(string) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrderObservation. @@ -3007,6 +3427,16 @@ func (in *OrderParameters) DeepCopyInto(out *OrderParameters) { *out = new(string) **out = **in } + if in.OrderID != nil { + in, out := &in.OrderID, &out.OrderID + *out = new(string) + **out = **in + } + if in.OrderNumber != nil { + in, out := &in.OrderNumber, &out.OrderNumber + *out = new(string) + **out = **in + } if in.PurchaseOrderNumber != nil { in, out := &in.PurchaseOrderNumber, &out.PurchaseOrderNumber *out = new(string) @@ -3114,6 +3544,16 @@ func (in *PortParameters) DeepCopy() *PortParameters { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PortRedundancyObservation) DeepCopyInto(out *PortRedundancyObservation) { *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } if in.Priority != nil { in, out := &in.Priority, &out.Priority *out = new(string) @@ -3448,6 +3888,16 @@ func (in *ProjectParameters) DeepCopy() *ProjectParameters { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RedundancyObservation) DeepCopyInto(out *RedundancyObservation) { *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } if in.Priority != nil { in, out := &in.Priority, &out.Priority *out = new(string) @@ -3637,6 +4087,51 @@ func (in *RoutingProtocolChangeLogParameters) DeepCopy() *RoutingProtocolChangeL return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoutingProtocolChangeObservation) DeepCopyInto(out *RoutingProtocolChangeObservation) { + *out = *in + if in.Href != nil { + in, out := &in.Href, &out.Href + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingProtocolChangeObservation. +func (in *RoutingProtocolChangeObservation) DeepCopy() *RoutingProtocolChangeObservation { + if in == nil { + return nil + } + out := new(RoutingProtocolChangeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoutingProtocolChangeParameters) DeepCopyInto(out *RoutingProtocolChangeParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingProtocolChangeParameters. +func (in *RoutingProtocolChangeParameters) DeepCopy() *RoutingProtocolChangeParameters { + if in == nil { + return nil + } + out := new(RoutingProtocolChangeParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RoutingProtocolList) DeepCopyInto(out *RoutingProtocolList) { *out = *in @@ -3688,7 +4183,7 @@ func (in *RoutingProtocolObservation) DeepCopyInto(out *RoutingProtocolObservati } if in.Change != nil { in, out := &in.Change, &out.Change - *out = make([]ChangeObservation, len(*in)) + *out = make([]RoutingProtocolChangeObservation, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -3895,51 +4390,6 @@ func (in *RoutingProtocolStatus) DeepCopy() *RoutingProtocolStatus { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RoutingProtocolsObservation) DeepCopyInto(out *RoutingProtocolsObservation) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingProtocolsObservation. -func (in *RoutingProtocolsObservation) DeepCopy() *RoutingProtocolsObservation { - if in == nil { - return nil - } - out := new(RoutingProtocolsObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RoutingProtocolsParameters) DeepCopyInto(out *RoutingProtocolsParameters) { - *out = *in - if in.State != nil { - in, out := &in.State, &out.State - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } - if in.UUID != nil { - in, out := &in.UUID, &out.UUID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingProtocolsParameters. -func (in *RoutingProtocolsParameters) DeepCopy() *RoutingProtocolsParameters { - if in == nil { - return nil - } - out := new(RoutingProtocolsParameters) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceProfile) DeepCopyInto(out *ServiceProfile) { *out = *in @@ -4082,21 +4532,6 @@ func (in *ServiceProfileAccessPointTypeConfigsParameters) DeepCopy() *ServicePro // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceProfileAccountObservation) DeepCopyInto(out *ServiceProfileAccountObservation) { *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProfileAccountObservation. -func (in *ServiceProfileAccountObservation) DeepCopy() *ServiceProfileAccountObservation { - if in == nil { - return nil - } - out := new(ServiceProfileAccountObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServiceProfileAccountParameters) DeepCopyInto(out *ServiceProfileAccountParameters) { - *out = *in if in.AccountName != nil { in, out := &in.AccountName, &out.AccountName *out = new(string) @@ -4139,6 +4574,21 @@ func (in *ServiceProfileAccountParameters) DeepCopyInto(out *ServiceProfileAccou } } +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProfileAccountObservation. +func (in *ServiceProfileAccountObservation) DeepCopy() *ServiceProfileAccountObservation { + if in == nil { + return nil + } + out := new(ServiceProfileAccountObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceProfileAccountParameters) DeepCopyInto(out *ServiceProfileAccountParameters) { + *out = *in +} + // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProfileAccountParameters. func (in *ServiceProfileAccountParameters) DeepCopy() *ServiceProfileAccountParameters { if in == nil { @@ -4332,6 +4782,13 @@ func (in *ServiceProfileObservation) DeepCopyInto(out *ServiceProfileObservation (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Account != nil { + in, out := &in.Account, &out.Account + *out = make([]ServiceProfileAccountObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.ChangeLog != nil { in, out := &in.ChangeLog, &out.ChangeLog *out = make([]ServiceProfileChangeLogObservation, len(*in)) @@ -4383,13 +4840,6 @@ func (in *ServiceProfileParameters) DeepCopyInto(out *ServiceProfileParameters) (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.Account != nil { - in, out := &in.Account, &out.Account - *out = make([]ServiceProfileAccountParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.AllowedEmails != nil { in, out := &in.AllowedEmails, &out.AllowedEmails *out = make([]*string, len(*in)) @@ -4449,7 +4899,9 @@ func (in *ServiceProfileParameters) DeepCopyInto(out *ServiceProfileParameters) if in.Project != nil { in, out := &in.Project, &out.Project *out = make([]ServiceProfileProjectParameters, len(*in)) - copy(*out, *in) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } if in.SelfProfile != nil { in, out := &in.SelfProfile, &out.SelfProfile @@ -4509,11 +4961,6 @@ func (in *ServiceProfileProjectObservation) DeepCopyInto(out *ServiceProfileProj *out = new(string) **out = **in } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID - *out = new(string) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProfileProjectObservation. @@ -4529,6 +4976,11 @@ func (in *ServiceProfileProjectObservation) DeepCopy() *ServiceProfileProjectObs // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceProfileProjectParameters) DeepCopyInto(out *ServiceProfileProjectParameters) { *out = *in + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProfileProjectParameters. @@ -4815,6 +5267,11 @@ func (in *ZSideAccessPointAccountObservation) DeepCopyInto(out *ZSideAccessPoint *out = new(string) **out = **in } + if in.UcmID != nil { + in, out := &in.UcmID, &out.UcmID + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZSideAccessPointAccountObservation. @@ -4909,13 +5366,6 @@ func (in *ZSideAccessPointObservation) DeepCopyInto(out *ZSideAccessPointObserva (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.Interface != nil { - in, out := &in.Interface, &out.Interface - *out = make([]AccessPointInterfaceObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.Network != nil { in, out := &in.Network, &out.Network *out = make([]AccessPointNetworkObservation, len(*in)) @@ -5042,13 +5492,6 @@ func (in *ZSideAccessPointParameters) DeepCopyInto(out *ZSideAccessPointParamete (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.RoutingProtocols != nil { - in, out := &in.RoutingProtocols, &out.RoutingProtocols - *out = make([]AccessPointRoutingProtocolsParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.SellerRegion != nil { in, out := &in.SellerRegion, &out.SellerRegion *out = new(string) diff --git a/apis/fabric/v1alpha1/zz_generated.managed.go b/apis/fabric/v1alpha1/zz_generated.managed.go index e8554f5..68378b1 100644 --- a/apis/fabric/v1alpha1/zz_generated.managed.go +++ b/apis/fabric/v1alpha1/zz_generated.managed.go @@ -151,6 +151,72 @@ func (mg *Connection) SetWriteConnectionSecretToReference(r *xpv1.SecretReferenc mg.Spec.WriteConnectionSecretToReference = r } +// GetCondition of this Network. +func (mg *Network) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Network. +func (mg *Network) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetProviderConfigReference of this Network. +func (mg *Network) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +/* +GetProviderReference of this Network. +Deprecated: Use GetProviderConfigReference. +*/ +func (mg *Network) GetProviderReference() *xpv1.Reference { + return mg.Spec.ProviderReference +} + +// GetPublishConnectionDetailsTo of this Network. +func (mg *Network) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Network. +func (mg *Network) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Network. +func (mg *Network) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Network. +func (mg *Network) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetProviderConfigReference of this Network. +func (mg *Network) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +/* +SetProviderReference of this Network. +Deprecated: Use SetProviderConfigReference. +*/ +func (mg *Network) SetProviderReference(r *xpv1.Reference) { + mg.Spec.ProviderReference = r +} + +// SetPublishConnectionDetailsTo of this Network. +func (mg *Network) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Network. +func (mg *Network) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + // GetCondition of this RoutingProtocol. func (mg *RoutingProtocol) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) diff --git a/apis/fabric/v1alpha1/zz_generated.managedlist.go b/apis/fabric/v1alpha1/zz_generated.managedlist.go index 9a1b12e..e4dca9b 100644 --- a/apis/fabric/v1alpha1/zz_generated.managedlist.go +++ b/apis/fabric/v1alpha1/zz_generated.managedlist.go @@ -37,6 +37,15 @@ func (l *ConnectionList) GetItems() []resource.Managed { return items } +// GetItems of this NetworkList. +func (l *NetworkList) GetItems() []resource.Managed { + items := make([]resource.Managed, len(l.Items)) + for i := range l.Items { + items[i] = &l.Items[i] + } + return items +} + // GetItems of this RoutingProtocolList. func (l *RoutingProtocolList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) diff --git a/apis/fabric/v1alpha1/zz_generated_terraformed.go b/apis/fabric/v1alpha1/zz_generated_terraformed.go index 9dd265e..f9f1bc6 100755 --- a/apis/fabric/v1alpha1/zz_generated_terraformed.go +++ b/apis/fabric/v1alpha1/zz_generated_terraformed.go @@ -173,6 +173,80 @@ func (tr *Connection) GetTerraformSchemaVersion() int { return 0 } +// GetTerraformResourceType returns Terraform resource type for this Network +func (mg *Network) GetTerraformResourceType() string { + return "equinix_fabric_network" +} + +// GetConnectionDetailsMapping for this Network +func (tr *Network) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Network +func (tr *Network) GetObservation() (map[string]any, error) { + o, err := json.TFParser.Marshal(tr.Status.AtProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(o, &base) +} + +// SetObservation for this Network +func (tr *Network) SetObservation(obs map[string]any) error { + p, err := json.TFParser.Marshal(obs) + if err != nil { + return err + } + return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) +} + +// GetID returns ID of underlying Terraform resource of this Network +func (tr *Network) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Network +func (tr *Network) GetParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.ForProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// SetParameters for this Network +func (tr *Network) SetParameters(params map[string]any) error { + p, err := json.TFParser.Marshal(params) + if err != nil { + return err + } + return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) +} + +// LateInitialize this Network using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Network) LateInitialize(attrs []byte) (bool, error) { + params := &NetworkParameters_2{} + if err := json.TFParser.Unmarshal(attrs, params); err != nil { + return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") + } + opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} + + li := resource.NewGenericLateInitializer(opts...) + return li.LateInitialize(&tr.Spec.ForProvider, params) +} + +// GetTerraformSchemaVersion returns the associated Terraform schema version +func (tr *Network) GetTerraformSchemaVersion() int { + return 0 +} + // GetTerraformResourceType returns Terraform resource type for this RoutingProtocol func (mg *RoutingProtocol) GetTerraformResourceType() string { return "equinix_fabric_routing_protocol" diff --git a/apis/fabric/v1alpha1/zz_network_types.go b/apis/fabric/v1alpha1/zz_network_types.go new file mode 100755 index 0000000..91773a3 --- /dev/null +++ b/apis/fabric/v1alpha1/zz_network_types.go @@ -0,0 +1,225 @@ +/* +Copyright 2021 The Crossplane Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type ChangeObservation struct { + Href *string `json:"href,omitempty" tf:"href,omitempty"` + + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` +} + +type ChangeParameters struct { +} + +type NetworkChangeLogObservation struct { + CreatedBy *string `json:"createdBy,omitempty" tf:"created_by,omitempty"` + + CreatedByEmail *string `json:"createdByEmail,omitempty" tf:"created_by_email,omitempty"` + + CreatedByFullName *string `json:"createdByFullName,omitempty" tf:"created_by_full_name,omitempty"` + + CreatedDateTime *string `json:"createdDateTime,omitempty" tf:"created_date_time,omitempty"` + + DeletedBy *string `json:"deletedBy,omitempty" tf:"deleted_by,omitempty"` + + DeletedByEmail *string `json:"deletedByEmail,omitempty" tf:"deleted_by_email,omitempty"` + + DeletedByFullName *string `json:"deletedByFullName,omitempty" tf:"deleted_by_full_name,omitempty"` + + DeletedDateTime *string `json:"deletedDateTime,omitempty" tf:"deleted_date_time,omitempty"` + + UpdatedBy *string `json:"updatedBy,omitempty" tf:"updated_by,omitempty"` + + UpdatedByEmail *string `json:"updatedByEmail,omitempty" tf:"updated_by_email,omitempty"` + + UpdatedByFullName *string `json:"updatedByFullName,omitempty" tf:"updated_by_full_name,omitempty"` + + UpdatedDateTime *string `json:"updatedDateTime,omitempty" tf:"updated_date_time,omitempty"` +} + +type NetworkChangeLogParameters struct { +} + +type NetworkLocationObservation struct { +} + +type NetworkLocationParameters struct { + + // IBX Code + // +kubebuilder:validation:Optional + Ibx *string `json:"ibx,omitempty" tf:"ibx,omitempty"` + + // Access point metro code + // +kubebuilder:validation:Optional + MetroCode *string `json:"metroCode,omitempty" tf:"metro_code,omitempty"` + + // Access point metro name + // +kubebuilder:validation:Optional + MetroName *string `json:"metroName,omitempty" tf:"metro_name,omitempty"` + + // Access point region + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type NetworkNotificationsObservation struct { +} + +type NetworkNotificationsParameters struct { + + // Array of contact emails + // +kubebuilder:validation:Required + Emails []*string `json:"emails" tf:"emails,omitempty"` + + // Send interval + // +kubebuilder:validation:Optional + SendInterval *string `json:"sendInterval,omitempty" tf:"send_interval,omitempty"` + + // Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS + // +kubebuilder:validation:Required + Type *string `json:"type" tf:"type,omitempty"` +} + +type NetworkObservation_2 struct { + + // Information on asset change operation + Change []ChangeObservation `json:"change,omitempty" tf:"change,omitempty"` + + // A permanent record of asset creation, modification, or deletion + ChangeLog []NetworkChangeLogObservation `json:"changeLog,omitempty" tf:"change_log,omitempty"` + + // Number of connections associated with this network + ConnectionsCount *float64 `json:"connectionsCount,omitempty" tf:"connections_count,omitempty"` + + // Fabric Network URI information + Href *string `json:"href,omitempty" tf:"href,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Network operation information that is associated with this Fabric Network + Operation []NetworkOperationObservation `json:"operation,omitempty" tf:"operation,omitempty"` + + // Fabric Network overall state + State *string `json:"state,omitempty" tf:"state,omitempty"` + + // Equinix-assigned network identifier + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` +} + +type NetworkOperationObservation struct { + EquinixStatus *string `json:"equinixStatus,omitempty" tf:"equinix_status,omitempty"` +} + +type NetworkOperationParameters struct { +} + +type NetworkParameters_2 struct { + + // Fabric Network location + // +kubebuilder:validation:Optional + Location []NetworkLocationParameters `json:"location,omitempty" tf:"location,omitempty"` + + // Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores + // +kubebuilder:validation:Required + Name *string `json:"name" tf:"name,omitempty"` + + // Preferences for notifications on Fabric Network configuration or status changes + // +kubebuilder:validation:Required + Notifications []NetworkNotificationsParameters `json:"notifications" tf:"notifications,omitempty"` + + // Fabric Network project + // +kubebuilder:validation:Required + Project []NetworkProjectParameters `json:"project" tf:"project,omitempty"` + + // Fabric Network scope + // +kubebuilder:validation:Required + Scope *string `json:"scope" tf:"scope,omitempty"` + + // Supported Network types - EVPLAN, EPLAN, IPWAN + // +kubebuilder:validation:Required + Type *string `json:"type" tf:"type,omitempty"` +} + +type NetworkProjectObservation struct { +} + +type NetworkProjectParameters struct { + + // Customer project identifier + // +kubebuilder:validation:Required + ProjectID *string `json:"projectId" tf:"project_id,omitempty"` +} + +// NetworkSpec defines the desired state of Network +type NetworkSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider NetworkParameters_2 `json:"forProvider"` +} + +// NetworkStatus defines the observed state of Network. +type NetworkStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider NetworkObservation_2 `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Network is the Schema for the Networks API. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} +type Network struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec NetworkSpec `json:"spec"` + Status NetworkStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// NetworkList contains a list of Networks +type NetworkList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Network `json:"items"` +} + +// Repository type metadata. +var ( + Network_Kind = "Network" + Network_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Network_Kind}.String() + Network_KindAPIVersion = Network_Kind + "." + CRDGroupVersion.String() + Network_GroupVersionKind = CRDGroupVersion.WithKind(Network_Kind) +) + +func init() { + SchemeBuilder.Register(&Network{}, &NetworkList{}) +} diff --git a/apis/fabric/v1alpha1/zz_routingprotocol_types.go b/apis/fabric/v1alpha1/zz_routingprotocol_types.go index a0e2495..db5d804 100755 --- a/apis/fabric/v1alpha1/zz_routingprotocol_types.go +++ b/apis/fabric/v1alpha1/zz_routingprotocol_types.go @@ -73,17 +73,6 @@ type BfdParameters struct { Interval *string `json:"interval,omitempty" tf:"interval,omitempty"` } -type ChangeObservation struct { - Href *string `json:"href,omitempty" tf:"href,omitempty"` - - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` -} - -type ChangeParameters struct { -} - type DirectIPv4Observation struct { } @@ -159,6 +148,17 @@ type RoutingProtocolChangeLogObservation struct { type RoutingProtocolChangeLogParameters struct { } +type RoutingProtocolChangeObservation struct { + Href *string `json:"href,omitempty" tf:"href,omitempty"` + + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` +} + +type RoutingProtocolChangeParameters struct { +} + type RoutingProtocolObservation struct { // Routing Protocol BGP IPv4 @@ -170,7 +170,7 @@ type RoutingProtocolObservation struct { BGPIPv6 []BGPIPv6Observation `json:"bgpIpv6,omitempty" tf:"bgp_ipv6,omitempty"` // Routing Protocol configuration Changes - Change []ChangeObservation `json:"change,omitempty" tf:"change,omitempty"` + Change []RoutingProtocolChangeObservation `json:"change,omitempty" tf:"change,omitempty"` // Captures Routing Protocol lifecycle change information ChangeLog []RoutingProtocolChangeLogObservation `json:"changeLog,omitempty" tf:"change_log,omitempty"` diff --git a/apis/fabric/v1alpha1/zz_serviceprofile_types.go b/apis/fabric/v1alpha1/zz_serviceprofile_types.go index abc1ced..a154513 100755 --- a/apis/fabric/v1alpha1/zz_serviceprofile_types.go +++ b/apis/fabric/v1alpha1/zz_serviceprofile_types.go @@ -30,7 +30,7 @@ type APIConfigObservation struct { type APIConfigParameters struct { - // Setting indicating whether the API is available (true) or not (false) + // Indicates if it's possible to establish connections based on the given service profile using the Equinix Fabric API. // +kubebuilder:validation:Optional APIAvailable *bool `json:"apiAvailable,omitempty" tf:"api_available,omitempty"` @@ -38,7 +38,7 @@ type APIConfigParameters struct { // +kubebuilder:validation:Optional AllowOverSubscription *bool `json:"allowOverSubscription,omitempty" tf:"allow_over_subscription,omitempty"` - // Bandwidth from api + // Indicates if the connection bandwidth can be obtained directly from the cloud service provider. // +kubebuilder:validation:Optional BandwidthFromAPI *bool `json:"bandwidthFromApi,omitempty" tf:"bandwidth_from_api,omitempty"` @@ -50,11 +50,11 @@ type APIConfigParameters struct { // +kubebuilder:validation:Optional EquinixManagedVlan *bool `json:"equinixManagedVlan,omitempty" tf:"equinix_managed_vlan,omitempty"` - // Integration id + // A unique identifier issued during onboarding and used to integrate the customer's service profile with the Equinix Fabric API. // +kubebuilder:validation:Optional IntegrationID *string `json:"integrationId,omitempty" tf:"integration_id,omitempty"` - // A cap on over subscription + // Port bandwidth multiplier that determines the total bandwidth that can be allocated to users creating connections to your services. For example, a 10 Gbps port combined with an overSubscriptionLimit parameter value of 10 allows your subscribers to create connections with a total bandwidth of 100 Gbps. // +kubebuilder:validation:Optional OverSubscriptionLimit *float64 `json:"overSubscriptionLimit,omitempty" tf:"over_subscription_limit,omitempty"` } @@ -64,15 +64,15 @@ type AuthenticationKeyObservation struct { type AuthenticationKeyParameters struct { - // Description + // Description of authorization key // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Label + // Name of the parameter that must be provided to authorize the connection. // +kubebuilder:validation:Optional Label *string `json:"label,omitempty" tf:"label,omitempty"` - // Required + // Requirement to configure an authentication key. // +kubebuilder:validation:Optional Required *bool `json:"required,omitempty" tf:"required,omitempty"` } @@ -112,15 +112,15 @@ type LinkProtocolConfigObservation struct { type LinkProtocolConfigParameters struct { - // Port Encapsulation + // Data frames encapsulation standard.UNTAGGED - Untagged encapsulation for EPL connections. DOT1Q - DOT1Q encapsulation standard. QINQ - QINQ encapsulation standard. // +kubebuilder:validation:Optional Encapsulation *string `json:"encapsulation,omitempty" tf:"encapsulation,omitempty"` - // Encapsulation strategy + // Additional tagging information required by the seller profile. // +kubebuilder:validation:Optional EncapsulationStrategy *string `json:"encapsulationStrategy,omitempty" tf:"encapsulation_strategy,omitempty"` - // Reuse vlan sTag + // Automatically accept subsequent DOT1Q to QINQ connections that use the same authentication key. These connections will have the same VLAN S-tag assigned as the initial connection. // +kubebuilder:validation:Optional ReuseVlanSTag *bool `json:"reuseVlanSTag,omitempty" tf:"reuse_vlan_s_tag,omitempty"` } @@ -305,43 +305,26 @@ type ServiceProfileAccessPointTypeConfigsParameters struct { } type ServiceProfileAccountObservation struct { -} - -type ServiceProfileAccountParameters struct { - - // Account Name - // +kubebuilder:validation:Optional AccountName *string `json:"accountName,omitempty" tf:"account_name,omitempty"` - // Account Number - // +kubebuilder:validation:Optional AccountNumber *float64 `json:"accountNumber,omitempty" tf:"account_number,omitempty"` - // Global Customer organization identifier - // +kubebuilder:validation:Optional GlobalCustID *string `json:"globalCustId,omitempty" tf:"global_cust_id,omitempty"` - // Global organization identifier - // +kubebuilder:validation:Optional GlobalOrgID *string `json:"globalOrgId,omitempty" tf:"global_org_id,omitempty"` - // Global organization name - // +kubebuilder:validation:Optional GlobalOrganizationName *string `json:"globalOrganizationName,omitempty" tf:"global_organization_name,omitempty"` - // Customer organization identifier - // +kubebuilder:validation:Optional OrgID *float64 `json:"orgId,omitempty" tf:"org_id,omitempty"` - // Customer organization name - // +kubebuilder:validation:Optional OrganizationName *string `json:"organizationName,omitempty" tf:"organization_name,omitempty"` - // Enterprise datastore id - // +kubebuilder:validation:Optional UcmID *string `json:"ucmId,omitempty" tf:"ucm_id,omitempty"` } +type ServiceProfileAccountParameters struct { +} + type ServiceProfileChangeLogObservation struct { CreatedBy *string `json:"createdBy,omitempty" tf:"created_by,omitempty"` @@ -395,6 +378,9 @@ type ServiceProfileObservation struct { // +kubebuilder:validation:Optional AccessPointTypeConfigs []ServiceProfileAccessPointTypeConfigsObservation `json:"accessPointTypeConfigs,omitempty" tf:"access_point_type_configs,omitempty"` + // Service Profile Owner Account Information + Account []ServiceProfileAccountObservation `json:"account,omitempty" tf:"account,omitempty"` + // Captures connection lifecycle change information ChangeLog []ServiceProfileChangeLogObservation `json:"changeLog,omitempty" tf:"change_log,omitempty"` @@ -417,10 +403,6 @@ type ServiceProfileParameters struct { // +kubebuilder:validation:Optional AccessPointTypeConfigs []ServiceProfileAccessPointTypeConfigsParameters `json:"accessPointTypeConfigs,omitempty" tf:"access_point_type_configs,omitempty"` - // Account - // +kubebuilder:validation:Optional - Account []ServiceProfileAccountParameters `json:"account,omitempty" tf:"account,omitempty"` - // Array of contact emails // +kubebuilder:validation:Optional AllowedEmails []*string `json:"allowedEmails,omitempty" tf:"allowed_emails,omitempty"` @@ -457,7 +439,7 @@ type ServiceProfileParameters struct { // +kubebuilder:validation:Optional Project []ServiceProfileProjectParameters `json:"project,omitempty" tf:"project,omitempty"` - // Self Profile + // Self Profile indicating if the profile is created for customer's self use // +kubebuilder:validation:Optional SelfProfile *bool `json:"selfProfile,omitempty" tf:"self_profile,omitempty"` @@ -486,12 +468,13 @@ type ServiceProfileProjectObservation struct { // Unique Resource URL Href *string `json:"href,omitempty" tf:"href,omitempty"` - - // Project Id - ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` } type ServiceProfileProjectParameters struct { + + // Project Id + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` } type VirtualDevicesLocationObservation struct { diff --git a/apis/metal/v1alpha1/zz_connection_types.go b/apis/metal/v1alpha1/zz_connection_types.go index e72674b..fd39b01 100755 --- a/apis/metal/v1alpha1/zz_connection_types.go +++ b/apis/metal/v1alpha1/zz_connection_types.go @@ -50,7 +50,7 @@ type ConnectionObservation struct { type ConnectionParameters struct { // The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key. - // The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key + // The preferred email used for communication and notifications about the Equinix Fabric interconnection // +kubebuilder:validation:Optional ContactEmail *string `json:"contactEmail,omitempty" tf:"contact_email,omitempty"` @@ -116,8 +116,8 @@ type ConnectionParameters struct { // +kubebuilder:validation:Optional ServiceTokenType *string `json:"serviceTokenType,omitempty" tf:"service_token_type,omitempty"` - // Connection speed - one of 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. - // Port speed. Required for a_side connections. Allowed values are 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps + // Connection speed - Values must be in the format 'Mbps' or 'Gpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF. + // Connection speed - Values must be in the format 'Mbps' or 'Gpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF. // +kubebuilder:validation:Optional Speed *string `json:"speed,omitempty" tf:"speed,omitempty"` @@ -135,6 +135,10 @@ type ConnectionParameters struct { // Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection // +kubebuilder:validation:Optional Vlans []*float64 `json:"vlans,omitempty" tf:"vlans,omitempty"` + + // Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection + // +kubebuilder:validation:Optional + Vrfs []*string `json:"vrfs,omitempty" tf:"vrfs,omitempty"` } type PortsObservation struct { @@ -148,7 +152,7 @@ type PortsObservation struct { Role *string `json:"role,omitempty" tf:"role,omitempty"` - // Connection speed - one of 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. + // Connection speed - Values must be in the format 'Mbps' or 'Gpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF. Speed *float64 `json:"speed,omitempty" tf:"speed,omitempty"` // Status of the connection resource. @@ -165,7 +169,7 @@ type ServiceTokensObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Connection speed - one of 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. + // Connection speed - Values must be in the format 'Mbps' or 'Gpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF. MaxAllowedSpeed *string `json:"maxAllowedSpeed,omitempty" tf:"max_allowed_speed,omitempty"` Role *string `json:"role,omitempty" tf:"role,omitempty"` diff --git a/apis/metal/v1alpha1/zz_device_types.go b/apis/metal/v1alpha1/zz_device_types.go index 2029f36..c184867 100755 --- a/apis/metal/v1alpha1/zz_device_types.go +++ b/apis/metal/v1alpha1/zz_device_types.go @@ -66,10 +66,6 @@ type DeviceObservation struct { // The ID of the device. ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Whether the device is locked. - // Whether the device is locked - Locked *bool `json:"locked,omitempty" tf:"locked,omitempty"` - // The device's private and public IP (v4 and v6) network details. See // Network Attribute below for more details. // The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 addresses: public ipv4, private ipv4 and ipv6 @@ -183,6 +179,11 @@ type DeviceParameters struct { // +kubebuilder:validation:Optional IpxeScriptURL *string `json:"ipxeScriptUrl,omitempty" tf:"ipxe_script_url,omitempty"` + // Whether the device is locked or unlocked. Locking a device prevents you from deleting or reinstalling the device or performing a firmware update on the device, and it prevents an instance with a termination time set from being reclaimed, even if the termination time was reached + // Whether the device is locked or unlocked. Locking a device prevents you from deleting or reinstalling the device or performing a firmware update on the device, and it prevents an instance with a termination time set from being reclaimed, even if the termination time was reached + // +kubebuilder:validation:Optional + Locked *bool `json:"locked,omitempty" tf:"locked,omitempty"` + // Metro area for the new device. Conflicts with facilities. // Metro area for the new device. Conflicts with facilities // +kubebuilder:validation:Optional diff --git a/apis/metal/v1alpha1/zz_gateway_types.go b/apis/metal/v1alpha1/zz_gateway_types.go index 84927df..1db3f05 100755 --- a/apis/metal/v1alpha1/zz_gateway_types.go +++ b/apis/metal/v1alpha1/zz_gateway_types.go @@ -41,7 +41,7 @@ type GatewayParameters struct { // UUID of Public or VRF IP Reservation to associate with the gateway, the // reservation must be in the same metro as the VLAN, conflicts with private_ipv4_subnet_size. - // UUID of the Public or VRF IP Reservation to associate, must be in the same metro as the VLAN + // UUID of the Public or VRF IP Reservation to associate // +crossplane:generate:reference:type=ReservedIPBlock // +kubebuilder:validation:Optional IPReservationID *string `json:"ipReservationId,omitempty" tf:"ip_reservation_id,omitempty"` @@ -56,7 +56,7 @@ type GatewayParameters struct { // Size of the private IPv4 subnet to create for this metal // gateway, must be one of 8, 16, 32, 64, 128. Conflicts with ip_reservation_id. - // Size of the private IPv4 subnet to create for this gateway, one of [8 16 32 64 128] + // Size of the private IPv4 subnet to create for this gateway // +kubebuilder:validation:Optional PrivateIPv4SubnetSize *float64 `json:"privateIpv4SubnetSize,omitempty" tf:"private_ipv4_subnet_size,omitempty"` diff --git a/apis/metal/v1alpha1/zz_generated.deepcopy.go b/apis/metal/v1alpha1/zz_generated.deepcopy.go index 8f6e75f..e9996ad 100644 --- a/apis/metal/v1alpha1/zz_generated.deepcopy.go +++ b/apis/metal/v1alpha1/zz_generated.deepcopy.go @@ -543,6 +543,17 @@ func (in *ConnectionParameters) DeepCopyInto(out *ConnectionParameters) { } } } + if in.Vrfs != nil { + in, out := &in.Vrfs, &out.Vrfs + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionParameters. @@ -834,11 +845,6 @@ func (in *DeviceObservation) DeepCopyInto(out *DeviceObservation) { *out = new(string) **out = **in } - if in.Locked != nil { - in, out := &in.Locked, &out.Locked - *out = new(bool) - **out = **in - } if in.Network != nil { in, out := &in.Network, &out.Network *out = make([]NetworkObservation, len(*in)) @@ -964,6 +970,11 @@ func (in *DeviceParameters) DeepCopyInto(out *DeviceParameters) { *out = new(string) **out = **in } + if in.Locked != nil { + in, out := &in.Locked, &out.Locked + *out = new(bool) + **out = **in + } if in.Metro != nil { in, out := &in.Metro, &out.Metro *out = new(string) diff --git a/apis/metal/v1alpha1/zz_organization_types.go b/apis/metal/v1alpha1/zz_organization_types.go index 2caf40b..9ccf66a 100755 --- a/apis/metal/v1alpha1/zz_organization_types.go +++ b/apis/metal/v1alpha1/zz_organization_types.go @@ -73,8 +73,8 @@ type OrganizationParameters struct { // An object that has the address information. See Address // below for more details. // Address information block - // +kubebuilder:validation:Required - Address []AddressParameters `json:"address" tf:"address,omitempty"` + // +kubebuilder:validation:Optional + Address []AddressParameters `json:"address,omitempty" tf:"address,omitempty"` // Description string. // Description string diff --git a/apis/metal/v1alpha1/zz_project_types.go b/apis/metal/v1alpha1/zz_project_types.go index fdbfdf7..e60f483 100755 --- a/apis/metal/v1alpha1/zz_project_types.go +++ b/apis/metal/v1alpha1/zz_project_types.go @@ -45,7 +45,7 @@ type BGPConfigParameters struct { // local or global, the local is likely to be usable immediately, the // global will need to be reviewed by Equinix Metal engineers. - // "local" or "global", the local is likely to be usable immediately, the global will need to be review by Equinix Metal engineers + // The BGP deployment type, either 'local' or 'global'. The local is likely to be usable immediately, the global will need to be review by Equinix Metal engineers // +kubebuilder:validation:Required DeploymentType *string `json:"deploymentType" tf:"deployment_type,omitempty"` @@ -58,7 +58,7 @@ type BGPConfigParameters struct { type ProjectObservation struct { // Optional BGP settings. Refer to Equinix Metal guide for BGP. - // Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/) + // Address information block // +kubebuilder:validation:Optional BGPConfig []BGPConfigObservation `json:"bgpConfig,omitempty" tf:"bgp_config,omitempty"` @@ -77,7 +77,7 @@ type ProjectObservation struct { type ProjectParameters struct { // Optional BGP settings. Refer to Equinix Metal guide for BGP. - // Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/) + // Address information block // +kubebuilder:validation:Optional BGPConfig []BGPConfigParameters `json:"bgpConfig,omitempty" tf:"bgp_config,omitempty"` @@ -87,13 +87,13 @@ type ProjectParameters struct { BackendTransfer *bool `json:"backendTransfer,omitempty" tf:"backend_transfer,omitempty"` // The name of the project. The maximum length is 80 characters - // The name of the project. The maximum length is 80 characters. + // The name of the project. The maximum length is 80 characters // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` // The UUID of organization under which you want to create the project. If you // leave it out, the project will be created under your the default organization of your account. - // The UUID of organization under which you want to create the project. If you leave it out, the project will be create under your the default organization of your account + // The UUID of organization under which the project is created // +crossplane:generate:reference:type=Organization // +kubebuilder:validation:Optional OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` diff --git a/apis/metal/v1alpha1/zz_projectsshkey_types.go b/apis/metal/v1alpha1/zz_projectsshkey_types.go index b76cb7e..b8059dd 100755 --- a/apis/metal/v1alpha1/zz_projectsshkey_types.go +++ b/apis/metal/v1alpha1/zz_projectsshkey_types.go @@ -69,7 +69,7 @@ type ProjectSSHKeyParameters struct { ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` // The public key. If this is a file, it can be read using the file interpolation function. - // The public key. If this is a file, it + // The public key // +kubebuilder:validation:Required PublicKey *string `json:"publicKey" tf:"public_key,omitempty"` } diff --git a/apis/metal/v1alpha1/zz_sshkey_types.go b/apis/metal/v1alpha1/zz_sshkey_types.go index d53360f..c05cc40 100755 --- a/apis/metal/v1alpha1/zz_sshkey_types.go +++ b/apis/metal/v1alpha1/zz_sshkey_types.go @@ -56,7 +56,7 @@ type SSHKeyParameters struct { // The public key. If this is a file, it // can be read using the file interpolation function - // The public key. If this is a file, it + // The public key // +kubebuilder:validation:Required PublicKey *string `json:"publicKey" tf:"public_key,omitempty"` } diff --git a/apis/network/v1alpha1/zz_acltemplate_types.go b/apis/network/v1alpha1/zz_acltemplate_types.go index 023ad9e..ad27b73 100755 --- a/apis/network/v1alpha1/zz_acltemplate_types.go +++ b/apis/network/v1alpha1/zz_acltemplate_types.go @@ -75,6 +75,12 @@ type ACLTemplateParameters struct { // ACL template name // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + + // Unique Identifier for the project resource where the acl template is scoped to.If you + // leave it out, the ACL template will be created under the default project id of your organization. + // The unique identifier of Project Resource to which ACL template is scoped to + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` } type DeviceDetailsObservation struct { diff --git a/apis/network/v1alpha1/zz_device_types.go b/apis/network/v1alpha1/zz_device_types.go index a387650..8ce4c54 100755 --- a/apis/network/v1alpha1/zz_device_types.go +++ b/apis/network/v1alpha1/zz_device_types.go @@ -80,6 +80,11 @@ type DeviceObservation struct { // +kubebuilder:validation:Optional ClusterDetails []ClusterDetailsObservation `json:"clusterDetails,omitempty" tf:"cluster_details,omitempty"` + // Name of the device with diverse device UUID. This field is returned in device details if the + // device is created by passing diverse_device_id. + // Diverse Device Name of an existing device + DiverseDeviceName *string `json:"diverseDeviceName,omitempty" tf:"diverse_device_name,omitempty"` + // interface identifier. ID *string `json:"id,omitempty" tf:"id,omitempty"` @@ -127,7 +132,7 @@ type DeviceObservation struct { // Device provisioning status. Possible values are // INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, // WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, - // DEPROVISIONING, DEPROVISIONED. + // DEPROVISIONING, DEPROVISIONED, RESOURCE_UPGRADE_IN_PROGRESS, RESOURCE_UPGRADE_FAILED. // Device provisioning status Status *string `json:"status,omitempty" tf:"status,omitempty"` @@ -181,11 +186,18 @@ type DeviceParameters struct { // +kubebuilder:validation:Optional Connectivity *string `json:"connectivity,omitempty" tf:"connectivity,omitempty"` - // Number of CPU cores used by device. + // Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.) // Number of CPU cores used by device // +kubebuilder:validation:Required CoreCount *float64 `json:"coreCount" tf:"core_count,omitempty"` + // Unique ID of an existing device. + // Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual + // device. This field is only meaningful for single devices. + // Unique ID of an existing device + // +kubebuilder:validation:Optional + DiverseDeviceID *string `json:"diverseDeviceId,omitempty" tf:"diverse_device_id,omitempty"` + // Device hostname prefix. // Device hostname prefix // +kubebuilder:validation:Optional @@ -246,6 +258,12 @@ type DeviceParameters struct { // +kubebuilder:validation:Required PackageCode *string `json:"packageCode" tf:"package_code,omitempty"` + // Unique Identifier for the project resource where the device is scoped to.If you + // leave it out, the device will be created under the default project id of your organization. + // The unique identifier of Project Resource to which device is scoped to + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Purchase order number associated with a device order. // Purchase order number associated with a device order // +kubebuilder:validation:Optional @@ -343,7 +361,7 @@ type InterfaceObservation struct { // Device provisioning status. Possible values are // INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, // WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, - // DEPROVISIONING, DEPROVISIONED. + // DEPROVISIONING, DEPROVISIONED, RESOURCE_UPGRADE_IN_PROGRESS, RESOURCE_UPGRADE_FAILED. Status *string `json:"status,omitempty" tf:"status,omitempty"` // interface type. @@ -491,7 +509,7 @@ type SecondaryDeviceInterfaceObservation struct { // Device provisioning status. Possible values are // INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, // WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, - // DEPROVISIONING, DEPROVISIONED. + // DEPROVISIONING, DEPROVISIONED, RESOURCE_UPGRADE_IN_PROGRESS, RESOURCE_UPGRADE_FAILED. Status *string `json:"status,omitempty" tf:"status,omitempty"` // interface type. @@ -521,6 +539,11 @@ type SecondaryDeviceObservation struct { // Device license registration status LicenseStatus *string `json:"licenseStatus,omitempty" tf:"license_status,omitempty"` + // Unique Identifier for the project resource where the device is scoped to.If you + // leave it out, the device will be created under the default project id of your organization. + // The unique identifier of Project Resource to which device is scoped to + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Device redundancy type applicable for HA devices, either // primary or secondary. // Device redundancy type applicable for HA devices, either primary or secondary @@ -545,7 +568,7 @@ type SecondaryDeviceObservation struct { // Device provisioning status. Possible values are // INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, // WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, - // DEPROVISIONING, DEPROVISIONED. + // DEPROVISIONING, DEPROVISIONED, RESOURCE_UPGRADE_IN_PROGRESS, RESOURCE_UPGRADE_FAILED. // Device provisioning status Status *string `json:"status,omitempty" tf:"status,omitempty"` diff --git a/apis/network/v1alpha1/zz_devicelink_types.go b/apis/network/v1alpha1/zz_devicelink_types.go index ca4451c..e53bee8 100755 --- a/apis/network/v1alpha1/zz_devicelink_types.go +++ b/apis/network/v1alpha1/zz_devicelink_types.go @@ -94,6 +94,12 @@ type DeviceLinkParameters struct { // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // Unique Identifier for the project resource where the device link is scoped to.If you + // leave it out, the device link will be created under the default project id of your organization. + // project_id + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // device link subnet in CIDR format. Not required for link // between self configured devices. // subnet diff --git a/apis/network/v1alpha1/zz_generated.deepcopy.go b/apis/network/v1alpha1/zz_generated.deepcopy.go index bf7d3a4..19b7eb1 100644 --- a/apis/network/v1alpha1/zz_generated.deepcopy.go +++ b/apis/network/v1alpha1/zz_generated.deepcopy.go @@ -159,6 +159,11 @@ func (in *ACLTemplateParameters) DeepCopyInto(out *ACLTemplateParameters) { *out = new(string) **out = **in } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ACLTemplateParameters. @@ -701,6 +706,11 @@ func (in *DeviceLinkParameters) DeepCopyInto(out *DeviceLinkParameters) { *out = new(string) **out = **in } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } if in.Subnet != nil { in, out := &in.Subnet, &out.Subnet *out = new(string) @@ -799,6 +809,11 @@ func (in *DeviceObservation) DeepCopyInto(out *DeviceObservation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.DiverseDeviceName != nil { + in, out := &in.DiverseDeviceName, &out.DiverseDeviceName + *out = new(string) + **out = **in + } if in.ID != nil { in, out := &in.ID, &out.ID *out = new(string) @@ -925,6 +940,11 @@ func (in *DeviceParameters) DeepCopyInto(out *DeviceParameters) { *out = new(float64) **out = **in } + if in.DiverseDeviceID != nil { + in, out := &in.DiverseDeviceID, &out.DiverseDeviceID + *out = new(string) + **out = **in + } if in.Hostname != nil { in, out := &in.Hostname, &out.Hostname *out = new(string) @@ -986,6 +1006,11 @@ func (in *DeviceParameters) DeepCopyInto(out *DeviceParameters) { *out = new(string) **out = **in } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } if in.PurchaseOrderNumber != nil { in, out := &in.PurchaseOrderNumber, &out.PurchaseOrderNumber *out = new(string) @@ -1827,6 +1852,11 @@ func (in *SSHKeyParameters_2) DeepCopyInto(out *SSHKeyParameters_2) { *out = new(string) **out = **in } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } if in.PublicKey != nil { in, out := &in.PublicKey, &out.PublicKey *out = new(string) @@ -2128,6 +2158,11 @@ func (in *SecondaryDeviceObservation) DeepCopyInto(out *SecondaryDeviceObservati *out = new(string) **out = **in } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } if in.RedundancyType != nil { in, out := &in.RedundancyType, &out.RedundancyType *out = new(string) diff --git a/apis/network/v1alpha1/zz_sshkey_types.go b/apis/network/v1alpha1/zz_sshkey_types.go index 9537953..1f2c5eb 100755 --- a/apis/network/v1alpha1/zz_sshkey_types.go +++ b/apis/network/v1alpha1/zz_sshkey_types.go @@ -40,6 +40,12 @@ type SSHKeyParameters_2 struct { // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // 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. + // The unique identifier of Project Resource to which ssh key is scoped to + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // The SSH public key. If this is a file, it can be read using the file // interpolation function. // The SSH public key. If this is a file, it can be read using the file interpolation function diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index d81a11d..ca7a8b9 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -448,15 +448,18 @@ resources: importStatements: [] 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 + description: Fabric V4 API compatible resource allows creation and management of Equinix Fabric Cloud Router name: equinix_fabric_cloud_router Resource - terraform-provider-equinix title: equinix_fabric_cloud_router Resource - terraform-provider-equinix argumentDocs: - account: '(Block Set, Max: 1) Customer account information that is associated with this Fabric Cloud Router (see below for nested schema)' + account: '(Block Set, Min: 1, Max: 1) Customer account information that is associated with this Fabric Cloud Router (see below for nested schema)' account_number: (Number) Account Number + bgp_ipv4_routes_count: (Number) Number of IPv4 BGP routes in use (including non-distinct prefixes) + bgp_ipv6_routes_count: (Number) Number of IPv6 BGP routes in use (including non-distinct prefixes) billing_tier: (String) Billing tier for connection bandwidth change_log: (Set of Object) Captures Fabric Cloud Router lifecycle change information (see below for nested schema) code: (String) Fabric Cloud Router package code + connections_count: (Number) Number of connections associated with this Fabric Cloud Router instance create: (String) created_by: (String) created_by_email: (String) @@ -468,6 +471,8 @@ resources: deleted_by_full_name: (String) deleted_date_time: (String) description: (String) Customer-provided Fabric Cloud Router description + distinct_ipv4_prefixes_count: (Number) Number of distinct IPv4 routes + distinct_ipv6_prefixes_count: (Number) Number of distinct IPv6 routes emails: (List of String) Array of contact emails equinix_asn: (Number) Equinix ASN href: (String) Fabric Cloud Router URI information @@ -478,11 +483,11 @@ resources: metro_name: (String) Access point metro name name: (String) Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores notifications: '(Block List, Min: 1) Preferences for notifications on Fabric Cloud Router configuration or status changes (see below for nested schema)' - order: '(Block Set, Max: 1) Order information related to this Fabric Cloud Router (see below for nested schema)' + order: '(Block Set, Min: 1, Max: 1) Order information related to this Fabric Cloud Router (see below for nested schema)' order_id: (String) Order Identification order_number: (String) Order Reference Number - package: '(Block Set, Min: 1, Max: 1) Fabric Cloud Router package (see below for nested schema)' - project: (Block Set) Fabric Cloud Router project (see below for nested schema) + package: '(Block Set, Min: 1, Max: 1) Fabric Cloud Router Package Type (see below for nested schema)' + project: '(Block Set, Min: 1, Max: 1) Customer resource hierarchy project information.Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects (see below for nested schema)' project_id: (String) Project Id purchase_order_number: (String) Purchase order number read: (String) @@ -490,26 +495,27 @@ resources: send_interval: (String) Send interval state: (String) Fabric Cloud Router overall state timeouts: (Block, Optional) (see below for nested schema) - type: (String) Defines the FCR type like XF_GATEWAY + type: (String) Defines the FCR type like; XF_ROUTER update: (String) updated_by: (String) updated_by_email: (String) updated_by_full_name: (String) updated_date_time: (String) + uuid: (String) Equinix-assigned Fabric Cloud Router identifier importStatements: [] 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 + description: Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection name: equinix_fabric_connection Resource - terraform-provider-equinix title: equinix_fabric_connection Resource - terraform-provider-equinix argumentDocs: - a_side: '(Block Set, Min: 1) Requester or Customer side connection configuration object of the multi-segment connection (see below for nested schema)' - access_point: (Block Set) Point of access details (see below for nested schema) + a_side: '(Block Set, Min: 1, Max: 1) Requester or Customer side connection configuration object of the multi-segment connection (see below for nested schema)' + access_point: '(Block Set, Max: 1) Point of access details (see below for nested schema)' access_point_type_configs: (List of Object) Access point config information (see below for nested schema) account: (Set of Object) Customer account information that is associated with this connection (see below for nested schema) - account_name: (String) - account_number: (Number) - additional_info: (Block List) Connection additional information (see below for nested schema) + account_name: (String) Legal name of the accountholder. + account_number: (Number) Equinix-assigned account number. + additional_info: (List of Map of String) Connection additional information authentication_key: (String) Authentication key for provider based connections bandwidth: (Number) Connection bandwidth in Mbps billing_tier: (String) Billing tier for connection bandwidth @@ -525,44 +531,45 @@ resources: deleted_by_email: (String) deleted_by_full_name: (String) deleted_date_time: (String) - description: (String) User-provided service description + description: (String) Customer-provided connection description details: (String) direction: (String) Connection directionality from the requester point of view emails: (List of String) Array of contact emails + enabled: (Boolean) equinix_status: (String) error_code: (String) error_message: (String) errors: (List of Object) (see below for nested schema) - gateway: Use router attribute instead; (Block Set) (see below for nested schema) - global_cust_id: (String) - global_org_id: (String) - global_organization_name: (String) + gateway: '(Block Set, Max: 1, Deprecated) Deprecated gateway Use router attribute instead (see below for nested schema)' + global_cust_id: (String) Equinix-assigned ID of the subscriber's parent organization. + global_org_id: (String) Equinix-assigned ID of the subscriber's parent organization. + global_organization_name: (String) Equinix-assigned name of the subscriber's parent organization. group: (String) help: (String) href: (String) Connection URI information ibx: (String) IBX Code id: (String) The ID of this resource. - interface: (Block Set) Virtual device interface (see below for nested schema) + interface: '(Block Set, Max: 1) Virtual device interface (see below for nested schema)' is_remote: (Boolean) Connection property derived from access point locations key: (String) Additional information key - link_protocol: (Block Set) Connection link protocol (see below for nested schema) - location: (Block Set) Access point location (see below for nested schema) + link_protocol: '(Block Set, Max: 1) Connection link protocol (see below for nested schema)' + location: '(Block Set, Max: 1) Access point location (see below for nested schema)' metro_code: (String) Access point metro code metro_name: (String) Access point metro name name: (String) Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores - network: (Block Set) Simplified Network (see below for nested schema) + network: '(Block Set, Max: 1) network access point information (see below for nested schema)' notifications: '(Block List, Min: 1) Preferences for notifications on connection configuration or status changes (see below for nested schema)' operation: (Set of Object) Connection type-specific operational data (see below for nested schema) - order: (Block Set) Order related to this connection information (see below for nested schema) + order: '(Block Set, Min: 1, Max: 1) Order details (see below for nested schema)' order_id: (String) Order Identification order_number: (String) Order Reference Number - org_id: (Number) - organization_name: (String) + org_id: (Number) Equinix-assigned ID of the subscriber's organization. + organization_name: (String) Equinix-assigned name of the subscriber's organization. peering_type: (String) Peering Type- PRIVATE,MICROSOFT,PUBLIC, MANUAL - port: (Block Set) Port access point information (see below for nested schema) + port: '(Block Set, Max: 1) Port access point information (see below for nested schema)' priority: (String) - profile: (Block Set) Service Profile (see below for nested schema) - project: (Block Set) Project information (see below for nested schema) + profile: '(Block Set, Max: 1) Service Profile (see below for nested schema)' + project: '(Block Set, Max: 1) Project information (see below for nested schema)' project_id: (String) Project Id property: (String) provider_connection_id: (String) Provider assigned Connection Id @@ -570,107 +577,96 @@ resources: purchase_order_number: (String) Purchase order number read: (String) reason: (String) - redundancy: (Block Set) Redundancy Information (see below for nested schema) + redundancy: '(Block Set, Max: 1) Connection Redundancy Configuration (see below for nested schema)' region: (String) Access point region - router: (Block Set) Cloud Router access point information that replaces gateway (refers to below for nested schema) - routing_protocols: (Block List) Access point routing protocols configuration (see below for nested schema) + router: '(Block Set, Max: 1) Cloud Router access point information that replaces gateway (see below for nested schema)' seller_region: (String) Access point seller region send_interval: (String) Send interval - service_token: (Block Set) For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets (see below for nested schema) + service_token: '(Block Set, Max: 1) For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets (see below for nested schema)' state: (String) Connection overall state timeouts: (Block, Optional) (see below for nested schema) - type: (String) Defines the connection type like VG_VC, EVPL_VC, EPL_VC, EC_VC, IP_VC, ACCESS_EPL_VC + type: (String) Defines the connection type like EVPL_VC, EPL_VC, IPWAN_VC, IP_VC, ACCESS_EPL_VC, EVPLAN_VC, EPLAN_VC, EIA_VC, EC_VC + ucm_id: (String) Enterprise datastore id update: (String) updated_by: (String) updated_by_email: (String) updated_by_full_name: (String) updated_date_time: (String) - uuid: (String) Equinix-assigned virtual gateway identifier + uuid: (String) Equinix-assigned connection identifier value: (String) Additional information value - virtual_device: (Block Set) Virtual device (see below for nested schema) + virtual_device: '(Block Set, Max: 1) Virtual device (see below for nested schema)' vlan_c_tag: (Number) Vlan Customer Tag information, vlanCTag value specified for QINQ connections vlan_s_tag: (Number) Vlan Provider Tag information, vlanSTag value specified for QINQ connections vlan_tag: (Number) Vlan Tag information, vlanTag value specified for DOT1Q connections - z_side: '(Block Set, Min: 1) Destination or Provider side connection configuration object of the multi-segment connection (see below for nested schema)' + z_side: '(Block Set, Min: 1, Max: 1) Destination or Provider side connection configuration object of the multi-segment connection (see below for nested schema)' importStatements: [] - equinix_fabric_routing_protocol Resource - terraform-provider-equinix: + equinix_fabric_network 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 - name: equinix_fabric_routing_protocol Resource - terraform-provider-equinix - title: equinix_fabric_routing_protocol Resource - terraform-provider-equinix + description: Fabric V4 API compatible resource allows creation and management of Equinix Fabric Network + name: equinix_fabric_network Resource - terraform-provider-equinix + title: equinix_fabric_network Resource - terraform-provider-equinix argumentDocs: - additional_info: (List of Object) (see below for nested schema) - bfd: (Block Set) Bidirectional Forwarding Detection (see below for nested schema) - bgp_auth_key: (String) BGP authorization key - bgp_ipv4: (Block Set) Routing Protocol BGP IPv4 (see below for nested schema) - bgp_ipv6: (Block Set) Routing Protocol BGP IPv6 (see below for nested schema) - change: (Set of Object) Routing Protocol configuration Changes (see below for nested schema) - change_log: (Set of Object) Captures Routing Protocol lifecycle change information (see below for nested schema) - connection_uuid: (String) Connection URI associated with Routing Protocol - correlation_id: (String) + change: (Set of Object) Information on asset change operation (see below for nested schema) + change_log: (Set of Object) A permanent record of asset creation, modification, or deletion (see below for nested schema) + connections_count: (Number) Number of connections associated with this network create: (String) created_by: (String) created_by_email: (String) created_by_full_name: (String) created_date_time: (String) - customer_asn: (Number) Customer-provided ASN - customer_peer_ip: (String) Customer side peering ip delete: (String) deleted_by: (String) deleted_by_email: (String) deleted_by_full_name: (String) deleted_date_time: (String) - description: (String) Customer-provided Fabric Routing Protocol description - details: (String) - direct_ipv4: (Block Set) Routing Protocol Direct IPv4 (see below for nested schema) - direct_ipv6: (Block Set) Routing Protocol Direct IPv6 (see below for nested schema) - enabled: (Boolean) Bidirectional Forwarding Detection enablement - equinix_asn: (Number) Equinix ASN - equinix_iface_ip: (String) Equinix side Interface IP address - equinix_peer_ip: (String) Equinix side peering ip - error_code: (String) - error_message: (String) - errors: (List of Object) (see below for nested schema) - help: (String) - href: (String) Routing Protocol URI information + emails: (List of String) Array of contact emails + equinix_status: (String) + href: (String) Fabric Network URI information + ibx: (String) IBX Code id: (String) The ID of this resource. - interval: (String) Interval range between the received BFD control packets - name: (String) Routing Protocol name. An alpha-numeric 24 characters string which can include only hyphens and underscores - operation: (Set of Object) Routing Protocol type-specific operational data (see below for nested schema) - property: (String) + location: '(Block Set, Max: 1) Fabric Network location (see below for nested schema)' + metro_code: (String) Access point metro code + metro_name: (String) Access point metro name + name: (String) Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores + notifications: '(Block List, Min: 1) Preferences for notifications on Fabric Network configuration or status changes (see below for nested schema)' + operation: (Set of Object) Network operation information that is associated with this Fabric Network (see below for nested schema) + project: '(Block Set, Min: 1) Fabric Network project (see below for nested schema)' + project_id: (String) Customer project identifier read: (String) - reason: (String) - state: (String) Routing Protocol overall state + region: (String) Access point region + scope: (String) Fabric Network scope + send_interval: (String) Send interval + state: (String) Fabric Network overall state timeouts: (Block, Optional) (see below for nested schema) - type: (String) Defines the routing protocol type like BGP or DIRECT + type: (String) Supported Network types - EVPLAN, EPLAN, IPWAN update: (String) updated_by: (String) updated_by_email: (String) updated_by_full_name: (String) updated_date_time: (String) - uuid: (String) Equinix-assigned routing protocol identifier + uuid: (String) Equinix-assigned network identifier importStatements: [] equinix_fabric_service_profile Resource - terraform-provider-equinix: 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 + description: Fabric V4 API compatible resource allows creation and management of Equinix Fabric Service Profile name: equinix_fabric_service_profile Resource - terraform-provider-equinix title: equinix_fabric_service_profile Resource - terraform-provider-equinix argumentDocs: access_point_type_configs: (Block List) Access point config information (see below for nested schema) - account: (Block Set) Account (see below for nested schema) - account_name: (String) Account Name - account_number: (Number) Account Number + account: (Set of Object) Service Profile Owner Account Information (see below for nested schema) + account_name: (String) + account_number: (Number) allow_bandwidth_auto_approval: (Boolean) Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller allow_bandwidth_upgrade: (Boolean) Availability of a bandwidth upgrade. The default is false allow_custom_bandwidth: (Boolean) Setting to enable or disable the ability of the buyer to customize the bandwidth allow_over_subscription: (Boolean) Setting showing that oversubscription support is available (true) or not (false). The default is false allow_remote_connections: (Boolean) Setting to allow or prohibit remote connections to the service profile allowed_emails: (List of String) Array of contact emails - api_available: (Boolean) Setting indicating whether the API is available (true) or not (false) - api_config: (Block Set) Api configuration details (see below for nested schema) - authentication_key: (Block Set) Authentication key details (see below for nested schema) + api_available: (Boolean) Indicates if it's possible to establish connections based on the given service profile using the Equinix Fabric API. + api_config: '(Block Set, Max: 1) Api configuration details (see below for nested schema)' + authentication_key: '(Block Set, Max: 1) Authentication key details (see below for nested schema)' bandwidth_alert_threshold: (Number) Percentage of port bandwidth at which an allocation alert is generated - bandwidth_from_api: (Boolean) Bandwidth from api + bandwidth_from_api: (Boolean) Indicates if the connection bandwidth can be obtained directly from the cloud service provider. capture_in_email: (Boolean) Required field change_log: (Set of Object) Captures connection lifecycle change information (see below for nested schema) code: (String) Metro Code - Example SV @@ -693,44 +689,44 @@ resources: display_name: (String) Display Name emails: (List of String) Array of contact emails enable_auto_generate_service_key: (Boolean) Enable auto generate service key - encapsulation: (String) Port Encapsulation - encapsulation_strategy: (String) Encapsulation strategy + encapsulation: (String) Data frames encapsulation standard.UNTAGGED - Untagged encapsulation for EPL connections. DOT1Q - DOT1Q encapsulation standard. QINQ - QINQ encapsulation standard. + encapsulation_strategy: (String) Additional tagging information required by the seller profile. equinix_managed_port: (Boolean) Setting indicating that the port is managed by Equinix (true) or not (false) equinix_managed_vlan: (Boolean) Setting indicating that the VLAN is managed by Equinix (true) or not (false) - global_cust_id: (String) Global Customer organization identifier - global_org_id: (String) Global organization identifier - global_organization_name: (String) Global organization name + global_cust_id: (String) + global_org_id: (String) + global_organization_name: (String) href: (String) Service Profile URI response attribute ibx: (String) IBX Code ibxs: (List of String) IBX- Equinix International Business Exchange list id: (String) The ID of this resource. in_trail: (Boolean) In Trail - integration_id: (String) Integration id + integration_id: (String) A unique identifier issued during onboarding and used to integrate the customer's service profile with the Equinix Fabric API. interface_uuid: (String) Device Interface Uuid - label: (String) Label - link_protocol_config: (Block Set) Link protocol configuration details (see below for nested schema) - location: (Block Set) Colo/Port Location (see below for nested schema) + label: (String) Name of the parameter that must be provided to authorize the connection. + link_protocol_config: '(Block Set, Max: 1) Link protocol configuration details (see below for nested schema)' + location: '(Block Set, Max: 1) Colo/Port Location (see below for nested schema)' logo: (String) Logo - marketing_info: (Block Set) Marketing Info (see below for nested schema) + marketing_info: '(Block Set, Max: 1) Marketing Info (see below for nested schema)' metro_code: (String) Access point metro code metro_name: (String) Access point metro name metros: (Block List) Access point config information (see below for nested schema) name: (String) Customer-assigned service profile name notifications: (Block List) Preferences for notifications on connection configuration or status changes (see below for nested schema) options: (List of String) Options - org_id: (Number) Customer organization identifier - organization_name: (String) Customer organization name - over_subscription_limit: (Number) A cap on over subscription + org_id: (Number) + organization_name: (String) + over_subscription_limit: (Number) Port bandwidth multiplier that determines the total bandwidth that can be allocated to users creating connections to your services. For example, a 10 Gbps port combined with an overSubscriptionLimit parameter value of 10 allows your subscribers to create connections with a total bandwidth of 100 Gbps. ports: (Block List) Ports (see below for nested schema) process_step: (Block List) Process Step (see below for nested schema) - project: (Block Set) Project information (see below for nested schema) + project: '(Block Set, Max: 1) Project information (see below for nested schema)' project_id: (String) Project Id promotion: (Boolean) Promotion read: (String) region: (String) Access point region - required: (Boolean) Required - reuse_vlan_s_tag: (Boolean) Reuse vlan sTag - self_profile: (Boolean) Self Profile + required: (Boolean) Requirement to configure an authentication key. + reuse_vlan_s_tag: (Boolean) Automatically accept subsequent DOT1Q to QINQ connections that use the same authentication key. These connections will have the same VLAN S-tag assigned as the initial connection. + self_profile: (Boolean) Self Profile indicating if the profile is created for customer's self use seller_region: (String) Seller Region seller_region_description: (String) Seller Region details seller_regions: (Map of String) Seller Regions @@ -742,7 +738,7 @@ resources: timeouts: (Block, Optional) (see below for nested schema) title: (String) Title type: (String) Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE - ucm_id: (String) Enterprise datastore id + ucm_id: (String) update: (String) updated_by: (String) updated_by_email: (String) @@ -881,7 +877,10 @@ resources: "redundancy": "primary", "service_token_type": "z_side", "speed": "200Mbps", - "type": "shared" + "type": "shared", + "vlans": [ + "${equinix_metal_vlan.example.vxlan}" + ] } references: project_id: local.project_id @@ -898,6 +897,11 @@ resources: "vlan_stag": 1020, "zside_service_token": "${equinix_metal_connection.example.service_tokens.0.id}" } + equinix_metal_vlan.example: |- + { + "metro": "FR", + "project_id": "${local.my_project_id}" + } - name: example manifest: |- { @@ -906,7 +910,11 @@ resources: "name": "tf-port-to-metal-legacy", "project_id": "${local.my_project_id}", "redundancy": "redundant", - "type": "shared" + "type": "shared", + "vlans": [ + "${equinix_metal_vlan.example1.vxlan}", + "${equinix_metal_vlan.example2.vxlan}" + ] } references: project_id: local.my_project_id @@ -923,6 +931,16 @@ resources: "speed_unit": "MB", "vlan_stag": 1020 } + equinix_metal_vlan.example1: |- + { + "metro": "SV", + "project_id": "${local.my_project_id}" + } + equinix_metal_vlan.example2: |- + { + "metro": "SV", + "project_id": "${local.my_project_id}" + } argumentDocs: contact_email: '- (Optional) The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key.' description: '- (Optional) Description for the connection resource.' @@ -939,7 +957,7 @@ resources: redundancy: '- (Required) Connection redundancy - redundant or primary.' service_token_type: '- (Optional) Only used with shared connection. Type of service token to use for the connection, a_side or z_side. (NOTE: To support the legacy non-automated way to create connections, terraform will not check if )' service_tokens: '- List of connection service tokens with attributes required to configure the connection in Equinix Fabric with the equinix_ecx_l2_connection resource or from the Equinix Fabric Portal. Scehma of service_token is described in documentation of the equinix_metal_connection datasource.' - speed: '- (Required) Connection speed - one of 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps.' + speed: '- (Required) Connection speed - Values must be in the format ''Mbps'' or ''Gpbs'', for example ''100Mbps'' or ''50Gbps''. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.' status: '- Status of the connection resource.' tags: '- (Optional) String list of tags.' token: '- (Deprecated) Fabric Token required to configure the connection in Equinix Fabric with the equinix_ecx_l2_connection resource or from the Equinix Fabric Portal. If your organization already has connection service tokens enabled, use service_tokens instead.' @@ -1099,7 +1117,7 @@ resources: ipxe_script_url: |- - (Optional) URL pointing to a hosted iPXE script. More information is in the Custom iPXE doc. - locked: '- Whether the device is locked.' + locked: '- Whether the device is locked or unlocked. Locking a device prevents you from deleting or reinstalling the device or performing a firmware update on the device, and it prevents an instance with a termination time set from being reclaimed, even if the termination time was reached' mac: '- MAC address assigned to the port.' metro: '- (Optional) Metro area for the new device. Conflicts with facilities.' name: '- Name of the port (e.g. eth0, or bond0).' @@ -1205,7 +1223,7 @@ resources: { "metro": "sv", "project_id": "${local.project_id}", - "quantity": 2 + "quantity": 8 } equinix_metal_vlan.test: |- { @@ -1214,6 +1232,7 @@ resources: "project_id": "${local.project_id}" } argumentDocs: + delete: '- (Default 20m)' ip_reservation_id: |- - (Optional) UUID of Public or VRF IP Reservation to associate with the gateway, the reservation must be in the same metro as the VLAN, conflicts with private_ipv4_subnet_size. @@ -1763,7 +1782,8 @@ resources: "subnet": "172.16.25.0/24" } ], - "name": "test" + "name": "test", + "project_id": "a86d7112-d740-4758-9c9c-31e66373746b" } argumentDocs: description: '- (Optional) ACL template description, up to 200 characters.' @@ -1792,6 +1812,9 @@ resources: inbound_rule.subnets: '- (Deprecated) Inbound traffic source IP subnets in CIDR format.' metro_code: '- (Deprecated) ACL template location metro code.' name: '- (Required) ACL template name.' + project_id: |- + - (Optional) Unique Identifier for the project resource where the acl template is scoped to.If you + leave it out, the ACL template will be created under the default project id of your organization. uuid: '- Unique identifier of ACL template resource.' importStatements: [] equinix_network_bgp: @@ -1993,6 +2016,37 @@ resources: references: account_number: data.equinix_network_account.sv.number metro_code: data.equinix_network_account.sv.metro_code + - name: vsrx-single + manifest: |- + { + "account_number": "${data.equinix_network_account.sv.number}", + "acl_template_id": "3e548c02-9164-4197-aa23-05b1f644883c", + "additional_bandwidth": 5, + "byol": true, + "core_count": 2, + "diverse_device_id": "ed7891bd-15b4-4f72-ac56-d96cfdacddcc", + "hostname": "VSRX", + "metro_code": "${data.equinix_network_account.sv.metro_code}", + "name": "tf-c8kv-sdwan", + "notifications": [ + "test@equinix.com" + ], + "package_code": "STD", + "project_id": "a86d7112-d740-4758-9c9c-31e66373746b", + "self_managed": true, + "ssh_key": [ + { + "key_name": "valid-key-name", + "username": "test-username" + } + ], + "term_length": 12, + "type_code": "VSRX", + "version": "23.2R1.13" + } + references: + account_number: data.equinix_network_account.sv.number + metro_code: data.equinix_network_account.sv.metro_code - name: arista-ha manifest: |- { @@ -2087,7 +2141,14 @@ resources: connectivity: |- - (Optional) Device accessibility (INTERNET-ACCESS or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT). If not specified, default will be INTERNET-ACCESS - core_count: '- (Required) Number of CPU cores used by device.' + core_count: '- (Required) Number of CPU cores used by device. (NOTE: Use this field to resize your device. When resizing your HA devices, primary device will be upgraded first. If the upgrade failed, device will be automatically rolled back to the previous state with original core number.)' + diverse_device_id: |- + - (Optional) Unique ID of an existing device. + Use this field to let Equinix know if you want your new device to be in a different location from any existing virtual + device. This field is only meaningful for single devices. + diverse_device_name: |- + - Name of the device with diverse device UUID. This field is returned in device details if the + device is created by passing diverse_device_id. hostname: '- (Optional) Device hostname prefix.' ibx: '- Device location Equinix Business Exchange name.' id: '- interface identifier.' @@ -2121,6 +2182,9 @@ resources: operational_status: '- interface operational status. One of up, down.' order_reference: '- (Optional) Name/number used to identify device order on the invoice.' package_code: '- (Required) Device software package code.' + project_id: |- + - (Optional) Unique Identifier for the project resource where the device is scoped to.If you + leave it out, the device will be created under the default project id of your organization. purchase_order_number: '- (Optional) Purchase order number associated with a device order.' redundancy_type: |- - Device redundancy type applicable for HA devices, either @@ -2174,7 +2238,7 @@ resources: - Device provisioning status. Possible values are INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, - DEPROVISIONING, DEPROVISIONED. + DEPROVISIONING, DEPROVISIONED, RESOURCE_UPGRADE_IN_PROGRESS, RESOURCE_UPGRADE_FAILED. term_length: '- (Required) Device term length.' throughput: '- (Optional) Device license throughput.' throughput_unit: '- (Optional) License throughput unit. One of Mbps or Gbps.' @@ -2220,6 +2284,7 @@ resources: } ], "name": "test-link", + "project_id": "a86d7112-d740-4758-9c9c-31e66373746b", "subnet": "192.168.40.64/27" } references: @@ -2253,6 +2318,9 @@ resources: link.throughput: '- (Required) connection throughput.' link.throughput_unit: '- (Required) connection throughput unit (Mbps or Gbps).' name: '- (Required) device link name.' + project_id: |- + - (Optional) Unique Identifier for the project resource where the device link is scoped to.If you + leave it out, the device link will be created under the default project id of your organization. status: |- - Device link provisioning status. One of PROVISIONING, PROVISIONED, DEPROVISIONING, DEPROVISIONED, FAILED. @@ -2301,11 +2369,15 @@ resources: manifest: |- { "name": "johnKent", + "project_id": "a86d7112-d740-4758-9c9c-31e66373746b", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDpXGdxljAyPp9vH97436U171cX", "type": "RSA" } argumentDocs: name: '- (Required) The name of SSH key used for identification.' + 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. public_key: |- - (Required) The SSH public key. If this is a file, it can be read using the file interpolation function. diff --git a/config/schema.json b/config/schema.json index ac29c1d..741441b 100644 --- a/config/schema.json +++ b/config/schema.json @@ -1 +1 @@ -{"format_version":"1.0","provider_schemas":{"registry.terraform.io/equinix/equinix":{"provider":{"version":0,"block":{"attributes":{"auth_token":{"type":"string","description":"The Equinix Metal API auth key for API operations","description_kind":"plain","optional":true},"client_id":{"type":"string","description":"API Consumer Key available under My Apps section in developer portal","description_kind":"plain","optional":true},"client_secret":{"type":"string","description":"API Consumer secret available under My Apps section in developer portal","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The Equinix API base URL to point out desired environment. Defaults to https://api.equinix.com","description_kind":"plain","optional":true},"max_retries":{"type":"number","description_kind":"plain","optional":true},"max_retry_wait_seconds":{"type":"number","description_kind":"plain","optional":true},"request_timeout":{"type":"number","description":"The duration of time, in seconds, that the Equinix Platform API Client should wait before canceling an API request. Defaults to 30","description_kind":"plain","optional":true},"response_max_page_size":{"type":"number","description":"The maximum number of records in a single response for REST queries that produce paginated responses","description_kind":"plain","optional":true},"token":{"type":"string","description":"API token from the developer sandbox","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_schemas":{"equinix_ecx_l2_connection":{"version":0,"block":{"attributes":{"actions":{"type":["set",["object",{"message":"string","operation_id":"string","required_data":["set",["object",{"editable":"bool","key":"string","label":"string","validation_pattern":"string","value":"string"}]],"type":"string"}]],"description":"One or more pending actions to complete connection provisioning","description_kind":"plain","computed":true},"authorization_key":{"type":"string","description":"Text field used to authorize connection on the provider side. Value depends on a provider service profile used for connection","description_kind":"plain","optional":true,"computed":true},"device_interface_id":{"type":"number","description":"Identifier of network interface on a given device, used for a connection. If not specified then first available interface will be selected","description_kind":"plain","optional":true},"device_uuid":{"type":"string","description":"Unique identifier of the Network Edge virtual device from which the connection would originate","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"named_tag":{"type":"string","description":"The type of peering to set up in case when connecting to Azure Express Route. One of PRIVATE, MICROSOFT, MANUAL, PUBLIC (MANUAL and PUBLIC are deprecated and not available for new connections)","description_kind":"plain","optional":true},"notifications":{"type":["set","string"],"description":"A list of email addresses used for sending connection update notifications","description_kind":"plain","required":true},"port_uuid":{"type":"string","description":"Unique identifier of the buyer's port from which the connection would originate","description_kind":"plain","optional":true,"computed":true},"profile_uuid":{"type":"string","description":"Unique identifier of the service provider's service profile","description_kind":"plain","optional":true,"computed":true},"provider_status":{"type":"string","description":"Connection provisioning status on service provider's side","description_kind":"plain","computed":true},"purchase_order_number":{"type":"string","description":"Connection's purchase order number to reflect on the invoice","description_kind":"plain","optional":true},"redundancy_group":{"type":"string","description":"Unique identifier of group containing a primary and secondary connection","description_kind":"plain","computed":true},"redundancy_type":{"type":"string","description":"Connection redundancy type, applicable for HA connections. Either primary or secondary","description_kind":"plain","computed":true},"redundant_uuid":{"type":"string","description":"Unique identifier of the redundant connection, applicable for HA connections","description_kind":"plain","computed":true},"seller_metro_code":{"type":"string","description":"The metro code that denotes the connection's remote side (z-side)","description_kind":"plain","optional":true,"computed":true},"seller_region":{"type":"string","description":"The region in which the seller port resides","description_kind":"plain","optional":true},"service_token":{"type":"string","description":"Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity from a shared multi-tenant port (a-side)","description_kind":"plain","optional":true},"speed":{"type":"number","description":"Speed/Bandwidth to be allocated to the connection","description_kind":"plain","required":true},"speed_unit":{"type":"string","description":"Unit of the speed/bandwidth to be allocated to the connection","description_kind":"plain","required":true},"status":{"type":"string","description":"Connection provisioning status on Equinix Fabric side","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of the connection","description_kind":"plain","computed":true},"vendor_token":{"type":"string","description":"The Equinix Fabric Token the connection was created with. Applicable if the connection was created with a ServiceToken (a-side) or ZSideServiceToken (z-side)","description_kind":"plain","computed":true},"vlan_ctag":{"type":"number","description":"C-Tag/Inner-Tag of the connection, a numeric character ranging from 2 - 4094","description_kind":"plain","optional":true},"vlan_stag":{"type":"number","description":"S-Tag/Outer-Tag of the connection, a numeric character ranging from 2 - 4094","description_kind":"plain","optional":true,"computed":true},"zside_port_uuid":{"type":"string","description":"Unique identifier of the port on the remote side (z-side)","description_kind":"plain","optional":true,"computed":true},"zside_service_token":{"type":"string","description":"Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity to a shared multi-tenant port (z-side)","description_kind":"plain","optional":true},"zside_vlan_ctag":{"type":"number","description":"C-Tag/Inner-Tag of the connection on the remote side (z-side)","description_kind":"plain","optional":true,"computed":true},"zside_vlan_stag":{"type":"number","description":"S-Tag/Outer-Tag of the connection on the remote side (z-side)","description_kind":"plain","optional":true,"computed":true}},"block_types":{"additional_info":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"Additional information key","description_kind":"plain","required":true},"value":{"type":"string","description":"Additional information value","description_kind":"plain","required":true}},"description":"One or more additional information key-value objects","description_kind":"plain"}},"secondary_connection":{"nesting_mode":"list","block":{"attributes":{"actions":{"type":["set",["object",{"message":"string","operation_id":"string","required_data":["set",["object",{"editable":"bool","key":"string","label":"string","validation_pattern":"string","value":"string"}]],"type":"string"}]],"description":"One or more pending actions to complete connection provisioning","description_kind":"plain","computed":true},"authorization_key":{"type":"string","description":"Text field used to authorize connection on the provider side. Value depends on a provider service profile used for connection","description_kind":"plain","optional":true,"computed":true},"device_interface_id":{"type":"number","description":"Identifier of network interface on a given device, used for a connection. If not specified then first available interface will be selected","description_kind":"plain","optional":true,"computed":true},"device_uuid":{"type":"string","description":"Unique identifier of the Network Edge virtual device from which the connection would originate","description_kind":"plain","optional":true},"name":{"type":"string","description":"Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"port_uuid":{"type":"string","description":"Unique identifier of the buyer's port from which the connection would originate","description_kind":"plain","optional":true,"computed":true},"profile_uuid":{"type":"string","description":"Unique identifier of the service provider's service profile","description_kind":"plain","optional":true,"computed":true},"provider_status":{"type":"string","description":"Connection provisioning status on service provider's side","description_kind":"plain","computed":true},"redundancy_group":{"type":"string","description":"Unique identifier of group containing a primary and secondary connection","description_kind":"plain","computed":true},"redundancy_type":{"type":"string","description":"Connection redundancy type, applicable for HA connections. Either primary or secondary","description_kind":"plain","computed":true},"redundant_uuid":{"type":"string","description":"Unique identifier of the redundant connection, applicable for HA connections","description_kind":"plain","deprecated":true,"computed":true},"seller_metro_code":{"type":"string","description":"The metro code that denotes the connection's remote side (z-side)","description_kind":"plain","optional":true,"computed":true},"seller_region":{"type":"string","description":"The region in which the seller port resides","description_kind":"plain","optional":true,"computed":true},"service_token":{"type":"string","description":"Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity from a shared multi-tenant port (a-side)","description_kind":"plain","optional":true},"speed":{"type":"number","description":"Speed/Bandwidth to be allocated to the connection","description_kind":"plain","optional":true,"computed":true},"speed_unit":{"type":"string","description":"Unit of the speed/bandwidth to be allocated to the connection","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Connection provisioning status on Equinix Fabric side","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of the connection","description_kind":"plain","computed":true},"vendor_token":{"type":"string","description":"The Equinix Fabric Token the connection was created with. Applicable if the connection was created with a ServiceToken (a-side) or ZSideServiceToken (z-side)","description_kind":"plain","computed":true},"vlan_ctag":{"type":"number","description":"C-Tag/Inner-Tag of the connection, a numeric character ranging from 2 - 4094","description_kind":"plain","optional":true},"vlan_stag":{"type":"number","description":"S-Tag/Outer-Tag of the connection, a numeric character ranging from 2 - 4094","description_kind":"plain","optional":true,"computed":true},"zside_port_uuid":{"type":"string","description":"Unique identifier of the port on the remote side (z-side)","description_kind":"plain","computed":true},"zside_vlan_ctag":{"type":"number","description":"C-Tag/Inner-Tag of the connection on the remote side (z-side)","description_kind":"plain","computed":true},"zside_vlan_stag":{"type":"number","description":"S-Tag/Outer-Tag of the connection on the remote side (z-side)","description_kind":"plain","computed":true}},"description":"Definition of secondary connection for redundant, HA connectivity","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Fabric\tlayer 2 connections","description_kind":"plain","deprecated":true}},"equinix_ecx_l2_connection_accepter":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"Access Key used to accept connection on provider side","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"aws_connection_id":{"type":"string","description":"Identifier of a hosted Direct Connect connection on AWS side, applicable for accepter resource with connections to AWS only","description_kind":"plain","computed":true},"aws_profile":{"type":"string","description":"AWS Profile Name for retrieving credentials from shared credentials file","description_kind":"plain","optional":true},"connection_id":{"type":"string","description":"Identifier of layer 2 connection that will be accepted","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"Secret Key used to accept connection on provider side","description_kind":"plain","optional":true,"computed":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource is used to accept Equinix Fabric layer 2 connection on provider side","description_kind":"plain","deprecated":true}},"equinix_ecx_l2_serviceprofile":{"version":0,"block":{"attributes":{"api_integration":{"type":"bool","description":"Specifies the API integration ID that was provided to the customer during onboarding","description_kind":"plain","optional":true},"authkey_label":{"type":"string","description":"Name of the authentication key label to be used by the Authentication Key service","description_kind":"plain","optional":true},"bandwidth_alert_threshold":{"type":"number","description":"Specifies the port bandwidth threshold percentage. If the bandwidth limit is met or exceeded, an alert is sent to the seller","description_kind":"plain","optional":true},"bandwidth_threshold_notifications":{"type":["set","string"],"description":"A list of email addresses that will receive notifications about bandwidth thresholds","description_kind":"plain","required":true},"connection_name_label":{"type":"string","description":"Custom name used for calling a connections i.e. circuit. Defaults to Connection","description_kind":"plain","optional":true},"ctag_label":{"type":"string","description":"C-Tag/Inner-Tag label name for the connections","description_kind":"plain","optional":true},"description":{"type":"string","description":"Description of the service profile","description_kind":"plain","optional":true},"equinix_managed_port_vlan":{"type":"bool","description":"Boolean value that indicates whether the port and VLAN details are managed by Equinix","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integration_id":{"type":"string","description":"Specifies the API integration ID that was provided to the customer during onboarding","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the service profile. An alpha-numeric 50 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"oversubscription":{"type":"string","description":"Oversubscription limit that will cause alerting. Default is 1x","description_kind":"plain","optional":true},"oversubscription_allowed":{"type":"bool","description":"Boolean value that determines if, regardless of the utilization, Equinix Fabric will continue to add connections to your links until we reach the oversubscription limit","description_kind":"plain","optional":true},"private":{"type":"bool","description":"Boolean value that indicates whether or not this is a private profile.","description_kind":"plain","optional":true},"private_user_emails":{"type":["set","string"],"description":"A list of email addresses associated to users that will be allowed to access this service profile. Applicable for private profiles","description_kind":"plain","optional":true},"profile_statuschange_notifications":{"type":["set","string"],"description":"A list of email addresses that will receive notifications about profile status changes","description_kind":"plain","required":true},"redundancy_required":{"type":"bool","description":"Boolean value that determines if yourconnections will require redundancy","description_kind":"plain","optional":true},"secondary_vlan_from_primary":{"type":"bool","description":"Indicates whether the VLAN ID of the secondary connection is the same as the primary connection","description_kind":"plain","optional":true},"servicekey_autogenerated":{"type":"bool","description":"Boolean value that indicates whether multiple connections can be created with the same authorization key","description_kind":"plain","optional":true},"speed_customization_allowed":{"type":"bool","description":"Boolean value that determines if customer is allowed to enter a custom connection speed","description_kind":"plain","optional":true},"speed_from_api":{"type":"bool","description":"Boolean valuta that determines if connection speed will be derived from an API call","description_kind":"plain","optional":true},"state":{"type":"string","description":"Service profile provisioning status","description_kind":"plain","computed":true},"tag_type":{"type":"string","description":"Specifies additional tagging information required by the seller profile for Dot1Q to QinQ translation","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Unique identifier of the service profile","description_kind":"plain","computed":true},"vc_statuschange_notifications":{"type":["set","string"],"description":"A list of email addresses that will receive notifications about connections approvals and rejections","description_kind":"plain","required":true}},"block_types":{"features":{"nesting_mode":"set","block":{"attributes":{"allow_remote_connections":{"type":"bool","description":"Indicates whether or not connections to this profile can be created from remote metro locations","description_kind":"plain","required":true},"test_profile":{"type":"bool","description":"Indicates whether or not this profile can be used for test connections","description_kind":"plain","deprecated":true,"optional":true}},"description":"Block of profile features configuration","description_kind":"plain"},"min_items":1,"max_items":1},"port":{"nesting_mode":"set","block":{"attributes":{"metro_code":{"type":"string","description":"Port location metro code","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Unique identifier of the port","description_kind":"plain","required":true}},"description":"One or more definitions of ports associated with the profile","description_kind":"plain"},"min_items":1},"speed_band":{"nesting_mode":"set","block":{"attributes":{"speed":{"type":"number","description":"Speed/bandwidth supported by given service profile","description_kind":"plain","required":true},"speed_unit":{"type":"string","description":"Unit of the speed/bandwidth supported by given service profile","description_kind":"plain","required":true}},"description":"One or more definitions of supported speed/bandwidth configurations","description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"equinix_fabric_cloud_router":{"version":0,"block":{"attributes":{"bgp_ipv4_routes_count":{"type":"number","description":"Access point used and maximum number of IPv4 BGP routes","description_kind":"plain","computed":true},"bgp_ipv6_routes_count":{"type":"number","description":"Access point used and maximum number of IPv6 BGP routes","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures Fabric Cloud Router lifecycle change information","description_kind":"plain","computed":true},"connections_count":{"type":"number","description":"Number of connections associated with this Access point","description_kind":"plain","computed":true},"description":{"type":"string","description":"Customer-provided Fabric Cloud Router description","description_kind":"plain","optional":true},"equinix_asn":{"type":"number","description":"Equinix ASN","description_kind":"plain","computed":true},"href":{"type":"string","description":"Fabric Cloud Router URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"state":{"type":"string","description":"Fabric Cloud Router overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the FCR type like XF_ROUTER","description_kind":"plain","required":true}},"block_types":{"account":{"nesting_mode":"set","block":{"attributes":{"account_number":{"type":"number","description":"Account Number","description_kind":"plain","optional":true,"computed":true}},"description":"Customer account information that is associated with this Fabric Cloud Router","description_kind":"plain"},"max_items":1},"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Fabric Cloud Router location","description_kind":"plain"},"min_items":1,"max_items":1},"notifications":{"nesting_mode":"list","block":{"attributes":{"emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","required":true},"send_interval":{"type":"string","description":"Send interval","description_kind":"plain","optional":true},"type":{"type":"string","description":"Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS","description_kind":"plain","required":true}},"description":"Preferences for notifications on Fabric Cloud Router configuration or status changes","description_kind":"plain"},"min_items":1},"order":{"nesting_mode":"set","block":{"attributes":{"billing_tier":{"type":"string","description":"Billing tier for connection bandwidth","description_kind":"plain","optional":true},"order_id":{"type":"string","description":"Order Identification","description_kind":"plain","computed":true},"order_number":{"type":"string","description":"Order Reference Number","description_kind":"plain","computed":true},"purchase_order_number":{"type":"string","description":"Purchase order number","description_kind":"plain","optional":true}},"description":"Order information related to this Fabric Cloud Router","description_kind":"plain"},"max_items":1},"package":{"nesting_mode":"set","block":{"attributes":{"code":{"type":"string","description":"Fabric Cloud Router package code","description_kind":"plain","required":true}},"description":"Fabric Cloud Router location","description_kind":"plain"},"min_items":1,"max_items":1},"project":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource URL","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"Project Id","description_kind":"plain","optional":true,"computed":true}},"description":"Fabric Cloud Router project","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Fabric V4 API compatible resource allows creation and management of Equinix Fabric Cloud Router\n\n~\u003e **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)","description_kind":"plain"}},"equinix_fabric_connection":{"version":0,"block":{"attributes":{"account":{"type":["set",["object",{"account_name":"string","account_number":"number","global_cust_id":"string","global_org_id":"string","global_organization_name":"string","org_id":"number","organization_name":"string"}]],"description":"Customer account information that is associated with this connection","description_kind":"plain","computed":true},"additional_info":{"type":["list",["map","string"]],"description":"Connection additional information","description_kind":"plain","optional":true},"bandwidth":{"type":"number","description":"Connection bandwidth in Mbps","description_kind":"plain","required":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures connection lifecycle change information","description_kind":"plain","computed":true},"direction":{"type":"string","description":"Connection directionality from the requester point of view","description_kind":"plain","computed":true},"href":{"type":"string","description":"Connection URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_remote":{"type":"bool","description":"Connection property derived from access point locations","description_kind":"plain","computed":true},"name":{"type":"string","description":"Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"operation":{"type":["set",["object",{"equinix_status":"string","errors":["list",["object",{"additional_info":["list",["object",{"property":"string","reason":"string"}]],"correlation_id":"string","details":"string","error_code":"string","error_message":"string","help":"string"}]],"provider_status":"string"}]],"description":"Connection type-specific operational data","description_kind":"plain","computed":true},"state":{"type":"string","description":"Connection overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the connection type like VG_VC, EVPL_VC, EPL_VC, EC_VC, IP_VC, IPWAN_VC,ACCESS_EPL_VC","description_kind":"plain","required":true}},"block_types":{"a_side":{"nesting_mode":"set","block":{"block_types":{"access_point":{"nesting_mode":"set","block":{"attributes":{"authentication_key":{"type":"string","description":"Authentication key for provider based connections","description_kind":"plain","optional":true},"peering_type":{"type":"string","description":"Peering Type- PRIVATE,MICROSOFT,PUBLIC, MANUAL","description_kind":"plain","optional":true},"provider_connection_id":{"type":"string","description":"Provider assigned Connection Id","description_kind":"plain","optional":true},"seller_region":{"type":"string","description":"Access point seller region","description_kind":"plain","optional":true},"type":{"type":"string","description":"Access point type - COLO, VD, VG, SP, IGW, SUBNET, CLOUD_ROUTER, NETWORK","description_kind":"plain","optional":true}},"block_types":{"account":{"nesting_mode":"set","block":{"attributes":{"account_name":{"type":"string","description":"Account Name","description_kind":"plain","computed":true},"account_number":{"type":"number","description":"Account Number","description_kind":"plain","computed":true},"global_cust_id":{"type":"string","description":"Global Customer organization identifier","description_kind":"plain","computed":true},"global_org_id":{"type":"string","description":"Global organization identifier","description_kind":"plain","computed":true},"global_organization_name":{"type":"string","description":"Global organization name","description_kind":"plain","computed":true},"org_id":{"type":"number","description":"Customer organization identifier","description_kind":"plain","computed":true},"organization_name":{"type":"string","description":"Customer organization name","description_kind":"plain","computed":true}},"description":"Account","description_kind":"plain"}},"gateway":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned virtual gateway identifier","description_kind":"plain","optional":true}},"description":"Cloud Router access point information","description_kind":"plain","deprecated":true},"max_items":1},"interface":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"id","description_kind":"plain","computed":true},"type":{"type":"string","description":"Interface type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned interface identifier","description_kind":"plain","optional":true}},"description":"Virtual device interface","description_kind":"plain"},"max_items":1},"link_protocol":{"nesting_mode":"set","block":{"attributes":{"type":{"type":"string","description":"Type of the link protocol - UNTAGGED, DOT1Q, QINQ, EVPN_VXLAN","description_kind":"plain","optional":true},"vlan_c_tag":{"type":"number","description":"Vlan Customer Tag information, vlanCTag value specified for QINQ connections","description_kind":"plain","optional":true,"computed":true},"vlan_s_tag":{"type":"number","description":"Vlan Provider Tag information, vlanSTag value specified for QINQ connections","description_kind":"plain","optional":true,"computed":true},"vlan_tag":{"type":"number","description":"Vlan Tag information, vlanTag value specified for DOT1Q connections","description_kind":"plain","optional":true,"computed":true}},"description":"Connection link protocol","description_kind":"plain"},"max_items":1},"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Access point location","description_kind":"plain"},"max_items":1},"network":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Network identifier","description_kind":"plain","optional":true}},"description":"network access point information","description_kind":"plain"},"max_items":1},"port":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"name":{"type":"string","description":"Port name","description_kind":"plain","computed":true},"redundancy":{"type":["set",["object",{"priority":"string"}]],"description":"Redundancy Information","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Port identifier","description_kind":"plain","optional":true,"computed":true}},"description":"Port access point information","description_kind":"plain"},"max_items":1},"profile":{"nesting_mode":"set","block":{"attributes":{"access_point_type_configs":{"type":["list",["object",{"type":"string","uuid":"string"}]],"description":"Access point config information","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-provided service description","description_kind":"plain","computed":true},"href":{"type":"string","description":"Service Profile URI response attribute","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned service profile name","description_kind":"plain","computed":true},"type":{"type":"string","description":"Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Equinix assigned service profile identifier","description_kind":"plain","required":true}},"description":"Service Profile","description_kind":"plain"},"max_items":1},"router":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned virtual gateway identifier","description_kind":"plain","optional":true}},"description":"Cloud Router access point information","description_kind":"plain"},"max_items":1},"routing_protocols":{"nesting_mode":"list","block":{"attributes":{"state":{"type":"string","description":"Routing protocol instance state","description_kind":"plain","optional":true},"type":{"type":"string","description":"Routing Protocol type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned Routing protocol identifier","description_kind":"plain","optional":true}},"description":"Access point routing protocols configuration","description_kind":"plain"}},"virtual_device":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned Virtual Device Name","description_kind":"plain","optional":true},"type":{"type":"string","description":"Virtual Device type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned Virtual Device identifier","description_kind":"plain","optional":true}},"description":"Virtual device","description_kind":"plain"},"max_items":1}},"description":"Point of access details","description_kind":"plain"},"max_items":1},"additional_info":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Additional information key","description_kind":"plain","optional":true},"value":{"type":"string","description":"Additional information value","description_kind":"plain","optional":true}},"description":"Connection side additional information","description_kind":"plain"}},"service_token":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Service token description","description_kind":"plain","computed":true},"href":{"type":"string","description":"An absolute URL that is the subject of the link's context","description_kind":"plain","computed":true},"type":{"type":"string","description":"Token type - VC_TOKEN","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned service token identifier","description_kind":"plain","optional":true}},"description":"For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets","description_kind":"plain"},"max_items":1}},"description":"Requester or Customer side connection configuration object of the multi-segment connection","description_kind":"plain"},"min_items":1,"max_items":1},"notifications":{"nesting_mode":"list","block":{"attributes":{"emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","required":true},"send_interval":{"type":"string","description":"Send interval","description_kind":"plain","optional":true},"type":{"type":"string","description":"Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS","description_kind":"plain","required":true}},"description":"Preferences for notifications on connection configuration or status changes","description_kind":"plain"},"min_items":1},"order":{"nesting_mode":"set","block":{"attributes":{"billing_tier":{"type":"string","description":"Billing tier for connection bandwidth","description_kind":"plain","optional":true},"order_id":{"type":"string","description":"Order Identification","description_kind":"plain","computed":true},"order_number":{"type":"string","description":"Order Reference Number","description_kind":"plain","computed":true},"purchase_order_number":{"type":"string","description":"Purchase order number","description_kind":"plain","optional":true}},"description":"Order related to this connection information","description_kind":"plain"},"max_items":1},"project":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource URL","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project Id","description_kind":"plain","computed":true}},"description":"Project information","description_kind":"plain"},"max_items":1},"redundancy":{"nesting_mode":"set","block":{"attributes":{"group":{"type":"string","description":"Redundancy group identifier","description_kind":"plain","optional":true,"computed":true},"priority":{"type":"string","description":"Priority type- PRIMARY, SECONDARY","description_kind":"plain","optional":true}},"description":"Redundancy Information","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"z_side":{"nesting_mode":"set","block":{"block_types":{"access_point":{"nesting_mode":"set","block":{"attributes":{"authentication_key":{"type":"string","description":"Authentication key for provider based connections","description_kind":"plain","optional":true},"peering_type":{"type":"string","description":"Peering Type- PRIVATE,MICROSOFT,PUBLIC, MANUAL","description_kind":"plain","optional":true},"provider_connection_id":{"type":"string","description":"Provider assigned Connection Id","description_kind":"plain","optional":true},"seller_region":{"type":"string","description":"Access point seller region","description_kind":"plain","optional":true},"type":{"type":"string","description":"Access point type - COLO, VD, VG, SP, IGW, SUBNET, CLOUD_ROUTER, NETWORK","description_kind":"plain","optional":true}},"block_types":{"account":{"nesting_mode":"set","block":{"attributes":{"account_name":{"type":"string","description":"Account Name","description_kind":"plain","computed":true},"account_number":{"type":"number","description":"Account Number","description_kind":"plain","computed":true},"global_cust_id":{"type":"string","description":"Global Customer organization identifier","description_kind":"plain","computed":true},"global_org_id":{"type":"string","description":"Global organization identifier","description_kind":"plain","computed":true},"global_organization_name":{"type":"string","description":"Global organization name","description_kind":"plain","computed":true},"org_id":{"type":"number","description":"Customer organization identifier","description_kind":"plain","computed":true},"organization_name":{"type":"string","description":"Customer organization name","description_kind":"plain","computed":true}},"description":"Account","description_kind":"plain"}},"gateway":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned virtual gateway identifier","description_kind":"plain","optional":true}},"description":"Cloud Router access point information","description_kind":"plain","deprecated":true},"max_items":1},"interface":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"id","description_kind":"plain","computed":true},"type":{"type":"string","description":"Interface type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned interface identifier","description_kind":"plain","optional":true}},"description":"Virtual device interface","description_kind":"plain"},"max_items":1},"link_protocol":{"nesting_mode":"set","block":{"attributes":{"type":{"type":"string","description":"Type of the link protocol - UNTAGGED, DOT1Q, QINQ, EVPN_VXLAN","description_kind":"plain","optional":true},"vlan_c_tag":{"type":"number","description":"Vlan Customer Tag information, vlanCTag value specified for QINQ connections","description_kind":"plain","optional":true,"computed":true},"vlan_s_tag":{"type":"number","description":"Vlan Provider Tag information, vlanSTag value specified for QINQ connections","description_kind":"plain","optional":true,"computed":true},"vlan_tag":{"type":"number","description":"Vlan Tag information, vlanTag value specified for DOT1Q connections","description_kind":"plain","optional":true,"computed":true}},"description":"Connection link protocol","description_kind":"plain"},"max_items":1},"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Access point location","description_kind":"plain"},"max_items":1},"network":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Network identifier","description_kind":"plain","optional":true}},"description":"network access point information","description_kind":"plain"},"max_items":1},"port":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"name":{"type":"string","description":"Port name","description_kind":"plain","computed":true},"redundancy":{"type":["set",["object",{"priority":"string"}]],"description":"Redundancy Information","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Port identifier","description_kind":"plain","optional":true,"computed":true}},"description":"Port access point information","description_kind":"plain"},"max_items":1},"profile":{"nesting_mode":"set","block":{"attributes":{"access_point_type_configs":{"type":["list",["object",{"type":"string","uuid":"string"}]],"description":"Access point config information","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-provided service description","description_kind":"plain","computed":true},"href":{"type":"string","description":"Service Profile URI response attribute","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned service profile name","description_kind":"plain","computed":true},"type":{"type":"string","description":"Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Equinix assigned service profile identifier","description_kind":"plain","required":true}},"description":"Service Profile","description_kind":"plain"},"max_items":1},"router":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned virtual gateway identifier","description_kind":"plain","optional":true}},"description":"Cloud Router access point information","description_kind":"plain"},"max_items":1},"routing_protocols":{"nesting_mode":"list","block":{"attributes":{"state":{"type":"string","description":"Routing protocol instance state","description_kind":"plain","optional":true},"type":{"type":"string","description":"Routing Protocol type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned Routing protocol identifier","description_kind":"plain","optional":true}},"description":"Access point routing protocols configuration","description_kind":"plain"}},"virtual_device":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned Virtual Device Name","description_kind":"plain","optional":true},"type":{"type":"string","description":"Virtual Device type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned Virtual Device identifier","description_kind":"plain","optional":true}},"description":"Virtual device","description_kind":"plain"},"max_items":1}},"description":"Point of access details","description_kind":"plain"},"max_items":1},"additional_info":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Additional information key","description_kind":"plain","optional":true},"value":{"type":"string","description":"Additional information value","description_kind":"plain","optional":true}},"description":"Connection side additional information","description_kind":"plain"}},"service_token":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Service token description","description_kind":"plain","computed":true},"href":{"type":"string","description":"An absolute URL that is the subject of the link's context","description_kind":"plain","computed":true},"type":{"type":"string","description":"Token type - VC_TOKEN","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned service token identifier","description_kind":"plain","optional":true}},"description":"For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets","description_kind":"plain"},"max_items":1}},"description":"Destination or Provider side connection configuration object of the multi-segment connection","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection\n\n~\u003e **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)","description_kind":"plain"}},"equinix_fabric_routing_protocol":{"version":0,"block":{"attributes":{"bgp_auth_key":{"type":"string","description":"BGP authorization key","description_kind":"plain","optional":true},"change":{"type":["set",["object",{"href":"string","type":"string","uuid":"string"}]],"description":"Routing Protocol configuration Changes","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures Routing Protocol lifecycle change information","description_kind":"plain","computed":true},"connection_uuid":{"type":"string","description":"Connection URI associated with Routing Protocol","description_kind":"plain","required":true},"customer_asn":{"type":"number","description":"Customer-provided ASN","description_kind":"plain","optional":true},"description":{"type":"string","description":"Customer-provided Fabric Routing Protocol description","description_kind":"plain","optional":true},"equinix_asn":{"type":"number","description":"Equinix ASN","description_kind":"plain","computed":true},"href":{"type":"string","description":"Routing Protocol URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Routing Protocol name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","optional":true},"operation":{"type":["set",["object",{"errors":["list",["object",{"additional_info":["list",["object",{"property":"string","reason":"string"}]],"correlation_id":"string","details":"string","error_code":"string","error_message":"string","help":"string"}]]}]],"description":"Routing Protocol type-specific operational data","description_kind":"plain","computed":true},"state":{"type":"string","description":"Routing Protocol overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the routing protocol type like BGP or DIRECT","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned routing protocol identifier","description_kind":"plain","optional":true,"computed":true}},"block_types":{"bfd":{"nesting_mode":"set","block":{"attributes":{"enabled":{"type":"bool","description":"Bidirectional Forwarding Detection enablement","description_kind":"plain","required":true},"interval":{"type":"string","description":"Interval range between the received BFD control packets","description_kind":"plain","optional":true}},"description":"Bidirectional Forwarding Detection","description_kind":"plain"}},"bgp_ipv4":{"nesting_mode":"set","block":{"attributes":{"customer_peer_ip":{"type":"string","description":"Customer side peering ip","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Admin status for the BGP session","description_kind":"plain","optional":true},"equinix_peer_ip":{"type":"string","description":"Equinix side peering ip","description_kind":"plain","computed":true}},"description":"Routing Protocol BGP IPv4","description_kind":"plain"}},"bgp_ipv6":{"nesting_mode":"set","block":{"attributes":{"customer_peer_ip":{"type":"string","description":"Customer side peering ip","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Admin status for the BGP session","description_kind":"plain","optional":true},"equinix_peer_ip":{"type":"string","description":"Equinix side peering ip","description_kind":"plain","computed":true}},"description":"Routing Protocol BGP IPv6","description_kind":"plain"}},"direct_ipv4":{"nesting_mode":"set","block":{"attributes":{"equinix_iface_ip":{"type":"string","description":"Equinix side Interface IP address","description_kind":"plain","required":true}},"description":"Routing Protocol Direct IPv4","description_kind":"plain"}},"direct_ipv6":{"nesting_mode":"set","block":{"attributes":{"equinix_iface_ip":{"type":"string","description":"Equinix side Interface IP address\n\n","description_kind":"plain","optional":true}},"description":"Routing Protocol Direct IPv6","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection\n\n~\u003e **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)","description_kind":"plain"}},"equinix_fabric_service_profile":{"version":0,"block":{"attributes":{"allowed_emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","optional":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures connection lifecycle change information","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-provided service description","description_kind":"plain","required":true},"href":{"type":"string","description":"Service Profile URI response attribute","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Customer-assigned service profile name","description_kind":"plain","required":true},"self_profile":{"type":"bool","description":"Self Profile","description_kind":"plain","optional":true},"state":{"type":"string","description":"Service profile state - ACTIVE, PENDING_APPROVAL, DELETED, REJECTED","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags attached to the connection","description_kind":"plain","optional":true},"type":{"type":"string","description":"Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Equinix assigned service profile identifier","description_kind":"plain","computed":true},"visibility":{"type":"string","description":"Service profile visibility - PUBLIC, PRIVATE","description_kind":"plain","optional":true}},"block_types":{"access_point_type_configs":{"nesting_mode":"list","block":{"attributes":{"allow_bandwidth_auto_approval":{"type":"bool","description":"Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller","description_kind":"plain","optional":true},"allow_bandwidth_upgrade":{"type":"bool","description":"Availability of a bandwidth upgrade. The default is false","description_kind":"plain","optional":true},"allow_custom_bandwidth":{"type":"bool","description":"Setting to enable or disable the ability of the buyer to customize the bandwidth","description_kind":"plain","optional":true},"allow_remote_connections":{"type":"bool","description":"Setting to allow or prohibit remote connections to the service profile","description_kind":"plain","optional":true},"bandwidth_alert_threshold":{"type":"number","description":"Percentage of port bandwidth at which an allocation alert is generated","description_kind":"plain","optional":true},"connection_label":{"type":"string","description":"Custom name for Connection","description_kind":"plain","optional":true},"connection_redundancy_required":{"type":"bool","description":"Mandate redundant connections","description_kind":"plain","optional":true},"enable_auto_generate_service_key":{"type":"bool","description":"Enable auto generate service key","description_kind":"plain","optional":true},"supported_bandwidths":{"type":["list","number"],"description":"Supported bandwidths","description_kind":"plain","optional":true},"type":{"type":"string","description":"Type of access point type config - VD, COLO","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Colo/Port Uuid","description_kind":"plain","computed":true}},"block_types":{"api_config":{"nesting_mode":"set","block":{"attributes":{"allow_over_subscription":{"type":"bool","description":"Setting showing that oversubscription support is available (true) or not (false). The default is false","description_kind":"plain","optional":true},"api_available":{"type":"bool","description":"Setting indicating whether the API is available (true) or not (false)","description_kind":"plain","optional":true},"bandwidth_from_api":{"type":"bool","description":"Bandwidth from api","description_kind":"plain","optional":true},"equinix_managed_port":{"type":"bool","description":"Setting indicating that the port is managed by Equinix (true) or not (false)","description_kind":"plain","optional":true},"equinix_managed_vlan":{"type":"bool","description":"Setting indicating that the VLAN is managed by Equinix (true) or not (false)","description_kind":"plain","optional":true},"integration_id":{"type":"string","description":"Integration id","description_kind":"plain","optional":true},"over_subscription_limit":{"type":"number","description":"A cap on over subscription","description_kind":"plain","optional":true}},"description":"Api configuration details","description_kind":"plain"},"max_items":1},"authentication_key":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Description","description_kind":"plain","optional":true},"label":{"type":"string","description":"Label","description_kind":"plain","optional":true},"required":{"type":"bool","description":"Required","description_kind":"plain","optional":true}},"description":"Authentication key details","description_kind":"plain"},"max_items":1},"link_protocol_config":{"nesting_mode":"set","block":{"attributes":{"encapsulation":{"type":"string","description":"Port Encapsulation","description_kind":"plain","optional":true},"encapsulation_strategy":{"type":"string","description":"Encapsulation strategy","description_kind":"plain","optional":true},"reuse_vlan_s_tag":{"type":"bool","description":"Reuse vlan sTag","description_kind":"plain","optional":true}},"description":"Link protocol configuration details","description_kind":"plain"},"max_items":1}},"description":"Access point config information","description_kind":"plain"}},"account":{"nesting_mode":"set","block":{"attributes":{"account_name":{"type":"string","description":"Account Name","description_kind":"plain","optional":true},"account_number":{"type":"number","description":"Account Number","description_kind":"plain","optional":true},"global_cust_id":{"type":"string","description":"Global Customer organization identifier","description_kind":"plain","optional":true},"global_org_id":{"type":"string","description":"Global organization identifier","description_kind":"plain","optional":true},"global_organization_name":{"type":"string","description":"Global organization name","description_kind":"plain","optional":true},"org_id":{"type":"number","description":"Customer organization identifier","description_kind":"plain","optional":true},"organization_name":{"type":"string","description":"Customer organization name","description_kind":"plain","optional":true},"ucm_id":{"type":"string","description":"Enterprise datastore id","description_kind":"plain","optional":true}},"description":"Account","description_kind":"plain"},"max_items":1},"custom_fields":{"nesting_mode":"list","block":{"attributes":{"capture_in_email":{"type":"bool","description":"Required field","description_kind":"plain","optional":true},"data_type":{"type":"string","description":"Data type","description_kind":"plain","required":true},"description":{"type":"string","description":"Description","description_kind":"plain","optional":true},"label":{"type":"string","description":"Label","description_kind":"plain","required":true},"options":{"type":["list","string"],"description":"Options","description_kind":"plain","optional":true},"required":{"type":"bool","description":"Required field","description_kind":"plain","required":true}},"description":"Custom Fields","description_kind":"plain"}},"marketing_info":{"nesting_mode":"set","block":{"attributes":{"logo":{"type":"string","description":"Logo","description_kind":"plain","optional":true},"promotion":{"type":"bool","description":"Promotion","description_kind":"plain","optional":true}},"block_types":{"process_step":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description","description_kind":"plain","optional":true},"sub_title":{"type":"string","description":"Sub Title","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title","description_kind":"plain","optional":true}},"description":"Process Step","description_kind":"plain"}}},"description":"Marketing Info","description_kind":"plain"},"max_items":1},"metros":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"string","description":"Metro Code - Example SV","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display Name","description_kind":"plain","optional":true},"ibxs":{"type":["list","string"],"description":"IBX- Equinix International Business Exchange list","description_kind":"plain","optional":true},"in_trail":{"type":"bool","description":"In Trail","description_kind":"plain","optional":true},"name":{"type":"string","description":"Metro Name","description_kind":"plain","optional":true},"seller_regions":{"type":["map","string"],"description":"Seller Regions","description_kind":"plain","optional":true}},"description":"Access point config information","description_kind":"plain"}},"notifications":{"nesting_mode":"list","block":{"attributes":{"emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","required":true},"send_interval":{"type":"string","description":"Send interval","description_kind":"plain","optional":true},"type":{"type":"string","description":"Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS","description_kind":"plain","required":true}},"description":"Preferences for notifications on connection configuration or status changes","description_kind":"plain"}},"ports":{"nesting_mode":"list","block":{"attributes":{"cross_connect_id":{"type":"string","description":"Cross Connect Id","description_kind":"plain","optional":true},"seller_region":{"type":"string","description":"Seller Region","description_kind":"plain","optional":true},"seller_region_description":{"type":"string","description":"Seller Region details","description_kind":"plain","optional":true},"type":{"type":"string","description":"Colo/Port Type","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Colo/Port Uuid","description_kind":"plain","required":true}},"block_types":{"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Colo/Port Location","description_kind":"plain"},"max_items":1}},"description":"Ports","description_kind":"plain"}},"project":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource URL","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project Id","description_kind":"plain","computed":true}},"description":"Project information","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"virtual_devices":{"nesting_mode":"list","block":{"attributes":{"interface_uuid":{"type":"string","description":"Device Interface Uuid","description_kind":"plain","optional":true},"type":{"type":"string","description":"Virtual Device Type","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Virtual Device Uuid","description_kind":"plain","required":true}},"block_types":{"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Device Location","description_kind":"plain"},"max_items":1}},"description":"Virtual Devices","description_kind":"plain"}}},"description":"Fabric V4 API compatible resource allows creation and management of Equinix Fabric Service Profile\n\n~\u003e **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)","description_kind":"plain"}},"equinix_metal_bgp_session":{"version":0,"block":{"attributes":{"address_family":{"type":"string","description":"ipv4 or ipv6","description_kind":"plain","required":true},"default_route":{"type":"bool","description":"Boolean flag to set the default route policy. False by default","description_kind":"plain","optional":true},"device_id":{"type":"string","description":"ID of device","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the session - up or down","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_connection":{"version":0,"block":{"attributes":{"contact_email":{"type":"string","description":"The preferred email used for communication and notifications about the Equinix Fabric interconnection. Required when using a Project API key. Optional and defaults to the primary user email address when using a User API key","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":"Description of the connection resource","description_kind":"plain","optional":true},"facility":{"type":"string","description":"Facility where the connection will be created","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"Metro where the connection will be created","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Mode for connections in IBX facilities with the dedicated type - standard or tunnel","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the connection resource","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"ID of the organization responsible for the connection. Applicable with type \"dedicated\"","description_kind":"plain","optional":true,"computed":true},"ports":{"type":["list",["object",{"id":"string","link_status":"string","name":"string","role":"string","speed":"number","status":"string","virtual_circuit_ids":["list","string"]}]],"description":"List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`)","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the project where the connection is scoped to. Required with type \"shared\"","description_kind":"plain","optional":true},"redundancy":{"type":"string","description":"Connection redundancy - redundant or primary","description_kind":"plain","required":true},"service_token_type":{"type":"string","description":"Only used with shared connection. Type of service token to use for the connection, a_side or z_side","description_kind":"plain","optional":true},"service_tokens":{"type":["list",["object",{"expires_at":"string","id":"string","max_allowed_speed":"string","role":"string","state":"string","type":"string"}]],"description":"Only used with shared connection. List of service tokens required to continue the setup process with [equinix_ecx_l2_connection](https://registry.terraform.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard)","description_kind":"plain","computed":true},"speed":{"type":"string","description":"Port speed. Required for a_side connections. Allowed values are 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the connection resource","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Tags attached to the connection","description_kind":"plain","optional":true},"token":{"type":"string","description":"Only used with shared connection. Fabric Token required to continue the setup process with [equinix_ecx_l2_connection](https://registry.terraform.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard)","description_kind":"plain","deprecated":true,"computed":true},"type":{"type":"string","description":"Connection type - dedicated or shared","description_kind":"plain","required":true},"vlans":{"type":["list","number"],"description":"Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection","description_kind":"plain","optional":true}},"description_kind":"plain"}},"equinix_metal_device":{"version":0,"block":{"attributes":{"access_private_ipv4":{"type":"string","description":"The ipv4 private IP assigned to the device","description_kind":"plain","computed":true},"access_public_ipv4":{"type":"string","description":"The ipv4 maintenance IP assigned to the device","description_kind":"plain","computed":true},"access_public_ipv6":{"type":"string","description":"The ipv6 maintenance IP assigned to the device","description_kind":"plain","computed":true},"always_pxe":{"type":"bool","description":"If true, a device with OS custom_ipxe will","description_kind":"plain","optional":true},"billing_cycle":{"type":"string","description":"monthly or hourly","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description":"The timestamp for when the device was created","description_kind":"plain","computed":true},"custom_data":{"type":"string","description":"A string of the desired Custom Data for the device. By default, changing this attribute will cause the provider to destroy and recreate your device. If `reinstall` is specified or `behavior.allow_changes` includes `\"custom_data\"`, the device will be updated in-place instead of recreated.","description_kind":"plain","optional":true,"sensitive":true},"deployed_facility":{"type":"string","description":"The facility where the device is deployed","description_kind":"plain","deprecated":true,"computed":true},"deployed_hardware_reservation_id":{"type":"string","description":"ID of hardware reservation where this device was deployed. It is useful when using the next-available hardware reservation","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description string for the device","description_kind":"plain","optional":true},"facilities":{"type":["list","string"],"description":"List of facility codes with deployment preferences. Equinix Metal API will go through the list and will deploy your device to first facility with free capacity. List items must be facility codes or any (a wildcard). To find the facility code, visit [Facilities API docs](https://metal.equinix.com/developers/api/facilities/), set your API auth token in the top of the page and see JSON from the API response. Conflicts with metro","description_kind":"plain","deprecated":true,"optional":true},"force_detach_volumes":{"type":"bool","description":"Delete device even if it has volumes attached. Only applies for destroy action","description_kind":"plain","optional":true},"hardware_reservation_id":{"type":"string","description":"The UUID of the hardware reservation where you want this device deployed, or next-available if you want to pick your next available reservation automatically","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"The device hostname used in deployments taking advantage of Layer3 DHCP or metadata service configuration.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipxe_script_url":{"type":"string","description":"URL pointing to a hosted iPXE script. More","description_kind":"plain","optional":true},"locked":{"type":"bool","description":"Whether the device is locked","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro area for the new device. Conflicts with facilities","description_kind":"plain","optional":true},"network":{"type":["list",["object",{"address":"string","cidr":"number","family":"number","gateway":"string","public":"bool"}]],"description":"The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 addresses: public ipv4, private ipv4 and ipv6","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"Network type of a device, used in [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Will be one of layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded","description_kind":"plain","deprecated":true,"computed":true},"operating_system":{"type":"string","description":"The operating system slug. To find the slug, or visit [Operating Systems API docs](https://metal.equinix.com/developers/api/operatingsystems), set your API auth token in the top of the page and see JSON from the API response. By default, changing this attribute will cause your device to be deleted and recreated. If `reinstall` is enabled, the device will be updated in-place instead of recreated.","description_kind":"plain","required":true},"plan":{"type":"string","description":"The device plan slug. To find the plan slug, visit [Device plans API docs](https://metal.equinix.com/developers/api/plans), set your auth token in the top of the page and see JSON from the API response","description_kind":"plain","required":true},"ports":{"type":["list",["object",{"bonded":"bool","id":"string","mac":"string","name":"string","type":"string"}]],"description":"Ports assigned to the device","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The ID of the project in which to create the device","description_kind":"plain","required":true},"project_ssh_key_ids":{"type":["list","string"],"description":"Array of IDs of the project SSH keys which should be added to the device. If you specify this array, only the listed project SSH keys (and any SSH keys for the users specified in user_ssh_key_ids) will be added. If no SSH keys are specified (both user_ssh_keys_ids and project_ssh_key_ids are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. Project SSH keys can be created with the [equinix_metal_project_ssh_key](equinix_metal_project_ssh_key.md) resource","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"Root password to the server (disabled after 24 hours)","description_kind":"plain","computed":true,"sensitive":true},"sos_hostname":{"type":"string","description":"The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device","description_kind":"plain","computed":true},"ssh_key_ids":{"type":["list","string"],"description":"List of IDs of SSH keys deployed in the device, can be both user and project SSH keys","description_kind":"plain","computed":true},"state":{"type":"string","description":"The status of the device","description_kind":"plain","computed":true},"storage":{"type":"string","description":"JSON for custom partitioning. Only usable on reserved hardware. More information in in the [Custom Partitioning and RAID](https://metal.equinix.com/developers/docs/servers/custom-partitioning-raid/) doc","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags attached to the device","description_kind":"plain","optional":true},"termination_time":{"type":"string","description":"Timestamp for device termination. For example \"2021-09-03T16:32:00+03:00\". If you don't supply timezone info, timestamp is assumed to be in UTC.","description_kind":"plain","optional":true},"updated":{"type":"string","description":"The timestamp for the last time the device was updated","description_kind":"plain","computed":true},"user_data":{"type":"string","description":"A string of the desired User Data for the device. By default, changing this attribute will cause the provider to destroy and recreate your device. If `reinstall` is specified or `behavior.allow_changes` includes `\"user_data\"`, the device will be updated in-place instead of recreated.","description_kind":"plain","optional":true,"sensitive":true},"user_ssh_key_ids":{"type":["list","string"],"description":"Array of IDs of the users whose SSH keys should be added to the device. If you specify this array, only the listed users' SSH keys (and any project SSH keys specified in project_ssh_key_ids) will be added. If no SSH keys are specified (both user_ssh_keys_ids and project_ssh_key_ids are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. User SSH keys can be created with the [equinix_metal_ssh_key](equinix_metal_ssh_key.md) resource","description_kind":"plain","optional":true},"wait_for_reservation_deprovision":{"type":"bool","description":"Only used for devices in reserved hardware. If set, the deletion of this device will block until the hardware reservation is marked provisionable (about 4 minutes in August 2019)","description_kind":"plain","optional":true}},"block_types":{"behavior":{"nesting_mode":"list","block":{"attributes":{"allow_changes":{"type":["list","string"],"description":"List of attributes that are allowed to change without recreating the instance. Supported attributes: `custom_data`, `user_data`","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"ip_address":{"nesting_mode":"list","block":{"attributes":{"cidr":{"type":"number","description":"CIDR suffix for IP block assigned to this device","description_kind":"plain","optional":true},"reservation_ids":{"type":["list","string"],"description":"IDs of reservations to pick the blocks from","description_kind":"plain","optional":true},"type":{"type":"string","description":"one of public_ipv4,private_ipv4,public_ipv6","description_kind":"plain","required":true}},"description":"A list of IP address types for the device (structure is documented below)","description_kind":"plain"}},"reinstall":{"nesting_mode":"list","block":{"attributes":{"deprovision_fast":{"type":"bool","description":"Whether the OS disk should be filled with `00h` bytes before reinstall","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Whether the device should be reinstalled instead of destroyed","description_kind":"plain","optional":true},"preserve_data":{"type":"bool","description":"Whether the non-OS disks should be kept or wiped during reinstall","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_device_network_type":{"version":0,"block":{"attributes":{"device_id":{"type":"string","description":"The ID of the device on which the network type should be set","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"Network type to set. Must be one of layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded","description_kind":"plain","required":true}},"description_kind":"plain"}},"equinix_metal_gateway":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_reservation_id":{"type":"string","description":"UUID of the Public or VRF IP Reservation to associate, must be in the same metro as the VLAN","description_kind":"plain","optional":true},"private_ipv4_subnet_size":{"type":"number","description":"Size of the private IPv4 subnet to create for this gateway, one of [8 16 32 64 128]","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"UUID of the Project where the Gateway is scoped to","description_kind":"plain","required":true},"state":{"type":"string","description":"Status of the gateway resource","description_kind":"plain","computed":true},"vlan_id":{"type":"string","description":"UUID of the VLAN to associate","description_kind":"plain","required":true},"vrf_id":{"type":"string","description":"UUID of the VRF associated with the IP Reservation","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_ip_attachment":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"address_family":{"type":"number","description":"Address family as integer (4 or 6)","description_kind":"plain","computed":true},"cidr":{"type":"number","description":"Length of CIDR prefix of the block as integer","description_kind":"plain","computed":true},"cidr_notation":{"type":"string","description_kind":"plain","required":true},"device_id":{"type":"string","description_kind":"plain","required":true},"gateway":{"type":"string","description_kind":"plain","computed":true},"global":{"type":"bool","description":"Flag indicating whether IP block is global, i.e. assignable in any location","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manageable":{"type":"bool","description_kind":"plain","computed":true},"management":{"type":"bool","description_kind":"plain","computed":true},"netmask":{"type":"string","description":"Mask in decimal notation, e.g. 255.255.255.0","description_kind":"plain","computed":true},"network":{"type":"string","description":"Network IP address portion of the block specification","description_kind":"plain","computed":true},"public":{"type":"bool","description":"Flag indicating whether IP block is addressable from the Internet","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_organization":{"version":0,"block":{"attributes":{"created":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"logo":{"type":"string","description":"Logo URL","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the Organization","description_kind":"plain","required":true},"twitter":{"type":"string","description":"Twitter handle","description_kind":"plain","optional":true},"updated":{"type":"string","description_kind":"plain","computed":true},"website":{"type":"string","description":"Website link","description_kind":"plain","optional":true}},"block_types":{"address":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description":"Postal address","description_kind":"plain","required":true},"city":{"type":"string","description":"City name","description_kind":"plain","required":true},"country":{"type":"string","description":"Two letter country code (ISO 3166-1 alpha-2), e.g. US","description_kind":"plain","required":true},"state":{"type":"string","description":"State name","description_kind":"plain","optional":true},"zip_code":{"type":"string","description":"Zip Code","description_kind":"plain","required":true}},"description":"Address information block","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"equinix_metal_organization_member":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"When the invitation was created (only known in the invitation stage)","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"invited_by":{"type":"string","description":"The user id of the user that sent the invitation (only known in the invitation stage)","description_kind":"plain","computed":true},"invitee":{"type":"string","description":"The email address of the user to invite","description_kind":"plain","required":true},"message":{"type":"string","description":"A message to the invitee (only used during the invitation stage)","description_kind":"plain","optional":true},"nonce":{"type":"string","description":"The nonce for the invitation (only known in the invitation stage)","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization to invite the user to","description_kind":"plain","required":true},"projects_ids":{"type":["set","string"],"description":"Project IDs the member has access to within the organization. If the member is an 'owner', the projects list should be empty.","description_kind":"plain","required":true},"roles":{"type":["set","string"],"description":"Organization roles (owner, collaborator, limited_collaborator, billing)","description_kind":"plain","required":true},"state":{"type":"string","description":"The state of the membership ('invited' when an invitation is open, 'active' when the user is an organization member)","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When the invitation was updated (only known in the invitation stage)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_port":{"version":0,"block":{"attributes":{"bond_id":{"type":"string","description":"UUID of the bond port","description_kind":"plain","computed":true},"bond_name":{"type":"string","description":"Name of the bond port","description_kind":"plain","computed":true},"bonded":{"type":"bool","description":"Flag indicating whether the port should be bonded","description_kind":"plain","required":true},"disbond_supported":{"type":"bool","description":"Flag indicating whether the port can be removed from a bond","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"layer2":{"type":"bool","description":"Flag indicating whether the port is in layer2 (or layer3) mode. The `layer2` flag can be set only for bond ports.","description_kind":"plain","optional":true},"mac":{"type":"string","description":"MAC address of the port","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the port to look up, e.g. bond0, eth1","description_kind":"plain","computed":true},"native_vlan_id":{"type":"string","description":"UUID of native VLAN of the port","description_kind":"plain","optional":true},"network_type":{"type":"string","description":"One of layer2-bonded, layer2-individual, layer3, hybrid and hybrid-bonded. This attribute is only set on bond ports.","description_kind":"plain","computed":true},"port_id":{"type":"string","description":"UUID of the port to lookup","description_kind":"plain","required":true},"reset_on_delete":{"type":"bool","description":"Behavioral setting to reset the port to default settings (layer3 bonded mode without any vlan attached) before delete/destroy","description_kind":"plain","optional":true},"type":{"type":"string","description":"Port type","description_kind":"plain","computed":true},"vlan_ids":{"type":["set","string"],"description":"UUIDs VLANs to attach. To avoid jitter, use the UUID and not the VXLAN","description_kind":"plain","optional":true,"computed":true},"vxlan_ids":{"type":["set","number"],"description":"VLAN VXLAN ids to attach (example: [1000])","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_port_vlan_attachment":{"version":0,"block":{"attributes":{"device_id":{"type":"string","description":"ID of device to be assigned to the VLAN","description_kind":"plain","required":true},"force_bond":{"type":"bool","description":"Add port back to the bond when this resource is removed. Default is false","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"native":{"type":"bool","description":"Mark this VLAN a native VLAN on the port. This can be used only if this assignment assigns second or further VLAN to the port. To ensure that this attachment is not first on a port, you can use depends_on pointing to another equinix_metal_port_vlan_attachment, just like in the layer2-individual example above","description_kind":"plain","optional":true},"port_id":{"type":"string","description":"UUID of device port","description_kind":"plain","computed":true},"port_name":{"type":"string","description":"Name of network port to be assigned to the VLAN","description_kind":"plain","required":true},"vlan_id":{"type":"string","description":"UUID of VLAN API resource","description_kind":"plain","computed":true},"vlan_vnid":{"type":"number","description":"VXLAN Network Identifier, integer","description_kind":"plain","required":true}},"description_kind":"plain"}},"equinix_metal_project":{"version":0,"block":{"attributes":{"backend_transfer":{"type":"bool","description":"Enable or disable [Backend Transfer](https://metal.equinix.com/developers/docs/networking/backend-transfer/), default is false","description_kind":"plain","optional":true},"created":{"type":"string","description":"The timestamp for when the project was created","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the project. The maximum length is 80 characters.","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The UUID of organization under which you want to create the project. If you leave it out, the project will be create under your the default organization of your account","description_kind":"plain","optional":true,"computed":true},"payment_method_id":{"type":"string","description":"The UUID of payment method for this project. The payment method and the project need to belong to the same organization (passed with organization_id, or default)","description_kind":"plain","optional":true,"computed":true},"updated":{"type":"string","description":"The timestamp for the last time the project was updated","description_kind":"plain","computed":true}},"block_types":{"bgp_config":{"nesting_mode":"list","block":{"attributes":{"asn":{"type":"number","description":"Autonomous System Number for local BGP deployment","description_kind":"plain","required":true},"deployment_type":{"type":"string","description":"\"local\" or \"global\", the local is likely to be usable immediately, the global will need to be review by Equinix Metal engineers","description_kind":"plain","required":true},"max_prefix":{"type":"number","description":"The maximum number of route filters allowed per server","description_kind":"plain","computed":true},"md5":{"type":"string","description":"Password for BGP session in plaintext (not a checksum)","description_kind":"plain","optional":true,"sensitive":true},"status":{"type":"string","description":"Status of BGP configuration in the project","description_kind":"plain","computed":true}},"description":"Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/)","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"equinix_metal_project_api_key":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description string for the API key","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"UUID of project which the new API key is scoped to","description_kind":"plain","required":true},"read_only":{"type":"bool","description":"Flag indicating whether the API key shoud be read-only","description_kind":"plain","required":true},"token":{"type":"string","description":"API token for API clients","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"equinix_metal_project_ssh_key":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The timestamp for when the SSH key was created","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the SSH key for identification","description_kind":"plain","required":true},"owner_id":{"type":"string","description":"The UUID of the Equinix Metal API User who owns this key","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The ID of parent project","description_kind":"plain","required":true},"public_key":{"type":"string","description":"The public key. If this is a file, it","description_kind":"plain","required":true},"updated":{"type":"string","description":"The timestamp for the last time the SSH key was updated","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_reserved_ip_block":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"address_family":{"type":"number","description":"Address family as integer (4 or 6)","description_kind":"plain","computed":true},"cidr":{"type":"number","description":"the size of the network to reserve from an existing vrf ip_range. `cidr` can only be specified with `vrf_id`. Minimum range is 22-29, with 30-31 supported and necessary for virtual-circuits","description_kind":"plain","optional":true,"computed":true},"cidr_notation":{"type":"string","description_kind":"plain","computed":true},"custom_data":{"type":"string","description":"Custom Data is an arbitrary object (submitted in Terraform as serialized JSON) to assign to the IP Reservation. This may be helpful for self-managed IPAM. The object must be valid JSON.","description_kind":"plain","optional":true},"description":{"type":"string","description":"Arbitrary description","description_kind":"plain","optional":true},"facility":{"type":"string","description":"Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4, conflicts with metro","description_kind":"plain","optional":true},"gateway":{"type":"string","description_kind":"plain","computed":true},"global":{"type":"bool","description":"Flag indicating whether IP block is global, i.e. assignable in any location","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manageable":{"type":"bool","description_kind":"plain","computed":true},"management":{"type":"bool","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4, conflicts with facility","description_kind":"plain","optional":true},"netmask":{"type":"string","description":"Mask in decimal notation, e.g. 255.255.255.0","description_kind":"plain","computed":true},"network":{"type":"string","description":"an unreserved network address from an existing vrf ip_range. `network` can only be specified with vrf_id","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The metal project ID where to allocate the address block","description_kind":"plain","required":true},"public":{"type":"bool","description":"Flag indicating whether IP block is addressable from the Internet","description_kind":"plain","computed":true},"quantity":{"type":"number","description":"The number of allocated /32 addresses, a power of 2","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["set","string"],"description":"Tags attached to the reserved block","description_kind":"plain","optional":true},"type":{"type":"string","description":"Either global_ipv4, public_ipv4, or vrf. Defaults to public_ipv4.","description_kind":"plain","optional":true},"vrf_id":{"type":"string","description":"VRF ID for type=vrf reservations","description_kind":"plain","optional":true},"wait_for_state":{"type":"string","description":"Wait for the IP reservation block to reach a desired state on resource creation. One of: `pending`, `created`. The `created` state is default and recommended if the addresses are needed within the configuration. An error will be returned if a timeout or the `denied` state is encountered.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_spot_market_request":{"version":0,"block":{"attributes":{"devices_max":{"type":"number","description":"Maximum number devices to be created","description_kind":"plain","required":true},"devices_min":{"type":"number","description":"Miniumum number devices to be created","description_kind":"plain","required":true},"facilities":{"type":["list","string"],"description":"Facility IDs where devices should be created","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_bid_price":{"type":"number","description":"Maximum price user is willing to pay per hour per device","description_kind":"plain","required":true},"metro":{"type":"string","description":"Metro where devices should be created","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID","description_kind":"plain","required":true},"wait_for_devices":{"type":"bool","description":"On resource creation - wait until all desired devices are active, on resource destruction - wait until devices are removed","description_kind":"plain","optional":true}},"block_types":{"instance_parameters":{"nesting_mode":"list","block":{"attributes":{"always_pxe":{"type":"bool","description_kind":"plain","optional":true},"billing_cycle":{"type":"string","description_kind":"plain","required":true},"customdata":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"features":{"type":["list","string"],"description_kind":"plain","optional":true},"hostname":{"type":"string","description_kind":"plain","required":true},"ipxe_script_url":{"type":"string","description_kind":"plain","optional":true},"locked":{"type":"bool","description_kind":"plain","optional":true},"operating_system":{"type":"string","description_kind":"plain","required":true},"plan":{"type":"string","description_kind":"plain","required":true},"project_ssh_keys":{"type":["list","string"],"description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description_kind":"plain","optional":true},"termination_time":{"type":"string","description_kind":"plain","computed":true},"termintation_time":{"type":"string","description_kind":"plain","deprecated":true,"computed":true},"user_ssh_keys":{"type":["list","string"],"description_kind":"plain","optional":true},"userdata":{"type":"string","description_kind":"plain","optional":true}},"description":"Parameters for devices provisioned from this request. You can find the parameter description from the [equinix_metal_device doc](device.md)","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_ssh_key":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The timestamp for when the SSH key was created","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the SSH key for identification","description_kind":"plain","required":true},"owner_id":{"type":"string","description":"The UUID of the Equinix Metal API User who owns this key","description_kind":"plain","computed":true},"public_key":{"type":"string","description":"The public key. If this is a file, it","description_kind":"plain","required":true},"updated":{"type":"string","description":"The timestamp for the last time the SSH key was updated","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_user_api_key":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description string for the API key","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"read_only":{"type":"bool","description":"Flag indicating whether the API key shoud be read-only","description_kind":"plain","required":true},"token":{"type":"string","description":"API token for API clients","description_kind":"plain","computed":true,"sensitive":true},"user_id":{"type":"string","description":"UUID of user owning this key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_virtual_circuit":{"version":0,"block":{"attributes":{"connection_id":{"type":"string","description":"UUID of Connection where the VC is scoped to","description_kind":"plain","required":true},"customer_ip":{"type":"string","description":"The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.","description_kind":"plain","optional":true},"description":{"type":"string","description":"Description of the Virtual Circuit resource","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"md5":{"type":"string","description":"The password that can be set for the VRF BGP peer","description_kind":"plain","optional":true,"sensitive":true},"metal_ip":{"type":"string","description":"The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the Virtual Circuit resource","description_kind":"plain","optional":true},"nni_vlan":{"type":"number","description":"Equinix Metal network-to-network VLAN ID (optional when the connection has mode=tunnel)","description_kind":"plain","optional":true},"nni_vnid":{"type":"number","description":"Nni VLAN ID parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"peer_asn":{"type":"number","description":"The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the local_asn of the VRF.","description_kind":"plain","optional":true},"port_id":{"type":"string","description":"UUID of the Connection Port where the VC is scoped to","description_kind":"plain","required":true},"project_id":{"type":"string","description":"UUID of the Project where the VC is scoped to","description_kind":"plain","required":true},"speed":{"type":"string","description":"Description of the Virtual Circuit speed. This is for information purposes and is computed when the connection type is shared.","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the virtual circuit resource","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"A subnet from one of the IP blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.\n\t\t\t\t * For a /31 block, it will only have two IP addresses, which will be used for the metal_ip and customer_ip.\n\t\t\t\t * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags attached to the virtual circuit","description_kind":"plain","optional":true},"vlan_id":{"type":"string","description":"UUID of the VLAN to associate","description_kind":"plain","optional":true},"vnid":{"type":"number","description":"VNID VLAN parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description":"UUID of the VRF to associate","description_kind":"plain","optional":true}},"description_kind":"plain"}},"equinix_metal_vlan":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description string","description_kind":"plain","optional":true},"facility":{"type":"string","description":"Facility where to create the VLAN","description_kind":"plain","deprecated":true,"optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"Metro in which to create the VLAN","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"ID of parent project","description_kind":"plain","required":true},"vxlan":{"type":"number","description":"VLAN ID, must be unique in metro","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"equinix_metal_vrf":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description of the VRF","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_ranges":{"type":["set","string"],"description":"All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.","description_kind":"plain","optional":true},"local_asn":{"type":"number","description":"The 4-byte ASN set on the VRF.","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"Metro Code","description_kind":"plain","required":true},"name":{"type":"string","description":"User-supplied name of the VRF, unique to the project","description_kind":"plain","required":true},"project_id":{"type":"string","description":"Project ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"equinix_network_acl_template":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"ACL template description, up to 200 characters","description_kind":"plain","optional":true},"device_acl_status":{"type":"string","description":"Status of ACL template provisioning process on a device, where template was applied","description_kind":"plain","computed":true},"device_details":{"type":["list",["object",{"acl_status":"string","name":"string","uuid":"string"}]],"description":"Device Details to which ACL template is assigned to. ","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"Identifier of a network device where template was applied","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"ACL template location metro code","description_kind":"plain","deprecated":true,"optional":true},"name":{"type":"string","description":"ACL template name","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Unique identifier of ACL template resource","description_kind":"plain","computed":true}},"block_types":{"inbound_rule":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Inbound rule description, up to 200 characters","description_kind":"plain","optional":true},"dst_port":{"type":"string","description":"Inbound traffic destination ports. Either up to 10, comma separated ports or port range or any word","description_kind":"plain","required":true},"protocol":{"type":"string","description":"Inbound traffic protocol. One of: `IP`, `TCP`, `UDP`","description_kind":"plain","required":true},"sequence_number":{"type":"number","description":"Inbound rule sequence number","description_kind":"plain","computed":true},"source_type":{"type":"string","description":"Type of traffic source used in a given inbound rule","description_kind":"plain","deprecated":true,"computed":true},"src_port":{"type":"string","description":"Inbound traffic source ports. Either up to 10, comma separated ports or port range or any word","description_kind":"plain","required":true},"subnet":{"type":"string","description":"Inbound traffic source IP subnet in CIDR format","description_kind":"plain","optional":true},"subnets":{"type":["list","string"],"description":"Inbound traffic source IP subnets in CIDR format","description_kind":"plain","deprecated":true,"optional":true}},"description":"One or more rules to specify allowed inbound traffic. Rules are ordered, matching traffic rule stops processing subsequent ones.","description_kind":"plain"},"min_items":1}},"description":"Resource allows creation and management of Equinix Network Edge device Access Control List templates","description_kind":"plain"}},"equinix_network_bgp":{"version":0,"block":{"attributes":{"authentication_key":{"type":"string","description":"Shared key used for BGP peer authentication","description_kind":"plain","optional":true,"sensitive":true},"connection_id":{"type":"string","description":"Identifier of a connection established between network device and remote service provider that will be used for peering","description_kind":"plain","required":true},"device_id":{"type":"string","description":"Unique identifier of a network device that is a local peer in a given BGP peering configuration","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"local_asn":{"type":"number","description":"Local ASN number","description_kind":"plain","required":true},"local_ip_address":{"type":"string","description":"IP address in CIDR format of a local device","description_kind":"plain","required":true},"provisioning_status":{"type":"string","description":"BGP peering configuration provisioning status","description_kind":"plain","computed":true},"remote_asn":{"type":"number","description":"Remote ASN number","description_kind":"plain","required":true},"remote_ip_address":{"type":"string","description":"IP address of remote peer","description_kind":"plain","required":true},"state":{"type":"string","description":"BGP peer state","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"BGP peering configuration unique identifier","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Network Edge BGP peering configurations","description_kind":"plain"}},"equinix_network_device":{"version":0,"block":{"attributes":{"account_number":{"type":"string","description":"Device billing account number","description_kind":"plain","required":true},"acl_template_id":{"type":"string","description":"Unique identifier of applied ACL template","description_kind":"plain","optional":true},"additional_bandwidth":{"type":"number","description":"Additional Internet bandwidth, in Mbps, that will be allocated to the device","description_kind":"plain","optional":true,"computed":true},"asn":{"type":"number","description":"Autonomous system number","description_kind":"plain","computed":true},"byol":{"type":"bool","description":"Boolean value that determines device licensing mode: bring your own license or subscription (default)","description_kind":"plain","optional":true},"cloud_init_file_id":{"type":"string","description":"Unique identifier of applied cloud init file","description_kind":"plain","optional":true},"connectivity":{"type":"string","description":"Parameter to identify internet access for device. Supported Values: INTERNET-ACCESS(default) or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT","description_kind":"plain","optional":true},"core_count":{"type":"number","description":"Number of CPU cores used by device","description_kind":"plain","required":true},"hostname":{"type":"string","description":"Device hostname prefix","description_kind":"plain","optional":true,"computed":true},"ibx":{"type":"string","description":"Device location Equinix Business Exchange name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface":{"type":["list",["object",{"assigned_type":"string","id":"number","ip_address":"string","mac_address":"string","name":"string","operational_status":"string","status":"string","type":"string"}]],"description":"List of device interfaces","description_kind":"plain","computed":true},"interface_count":{"type":"number","description":"Number of network interfaces on a device. If not specified, default number for a given device type will be used","description_kind":"plain","optional":true,"computed":true},"license_file":{"type":"string","description":"Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode","description_kind":"plain","optional":true},"license_file_id":{"type":"string","description":"Unique identifier of applied license file","description_kind":"plain","optional":true,"computed":true},"license_status":{"type":"string","description":"Device license registration status","description_kind":"plain","computed":true},"license_token":{"type":"string","description":"License Token applicable for some device types in BYOL licensing mode","description_kind":"plain","optional":true},"metro_code":{"type":"string","description":"Device location metro code","description_kind":"plain","required":true},"mgmt_acl_template_uuid":{"type":"string","description":"Unique identifier of applied MGMT ACL template","description_kind":"plain","optional":true},"name":{"type":"string","description":"Device name","description_kind":"plain","required":true},"notifications":{"type":["set","string"],"description":"List of email addresses that will receive device status notifications","description_kind":"plain","required":true},"order_reference":{"type":"string","description":"Name/number used to identify device order on the invoice","description_kind":"plain","optional":true},"package_code":{"type":"string","description":"Device software package code","description_kind":"plain","required":true},"purchase_order_number":{"type":"string","description":"Purchase order number associated with a device order","description_kind":"plain","optional":true},"redundancy_type":{"type":"string","description":"Device redundancy type applicable for HA devices, either primary or secondary","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description":"Unique identifier for a redundant device, applicable for HA device","description_kind":"plain","computed":true},"region":{"type":"string","description":"Device location region","description_kind":"plain","computed":true},"self_managed":{"type":"bool","description":"Boolean value that determines device management mode: self-managed or subscription (default)","description_kind":"plain","optional":true},"ssh_ip_address":{"type":"string","description":"IP address of SSH enabled interface on the device","description_kind":"plain","computed":true},"ssh_ip_fqdn":{"type":"string","description":"FQDN of SSH enabled interface on the device","description_kind":"plain","computed":true},"status":{"type":"string","description":"Device provisioning status","description_kind":"plain","computed":true},"term_length":{"type":"number","description":"Device term length","description_kind":"plain","required":true},"throughput":{"type":"number","description":"Device license throughput","description_kind":"plain","optional":true},"throughput_unit":{"type":"string","description":"Device license throughput unit (Mbps or Gbps)","description_kind":"plain","optional":true},"type_code":{"type":"string","description":"Device type code","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Device unique identifier","description_kind":"plain","computed":true},"vendor_configuration":{"type":["map","string"],"description":"Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress)","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description":"Device software software version","description_kind":"plain","required":true},"wan_interface_id":{"type":"string","description":"device interface id picked for WAN","description_kind":"plain","optional":true},"zone_code":{"type":"string","description":"Device location zone code","description_kind":"plain","computed":true}},"block_types":{"cluster_details":{"nesting_mode":"list","block":{"attributes":{"cluster_id":{"type":"string","description":"The id of the cluster","description_kind":"plain","computed":true},"cluster_name":{"type":"string","description":"The name of the cluster device","description_kind":"plain","required":true},"num_of_nodes":{"type":"number","description":"The number of nodes in the cluster","description_kind":"plain","computed":true}},"block_types":{"node0":{"nesting_mode":"list","block":{"attributes":{"license_file_id":{"type":"string","description":"License file id. This is necessary for Fortinet and Juniper clusters","description_kind":"plain","optional":true},"license_token":{"type":"string","description":"License token. This is necessary for Palo Alto clusters","description_kind":"plain","optional":true,"sensitive":true},"name":{"type":"string","description":"The name of the node","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"The unique id of the node","description_kind":"plain","computed":true}},"block_types":{"vendor_configuration":{"nesting_mode":"list","block":{"attributes":{"activation_key":{"type":"string","description":"Activation key. This is required for Velocloud clusters","description_kind":"plain","optional":true,"sensitive":true},"admin_password":{"type":"string","description":"The administrative password of the device. You can use it to log in to the console. This field is not available for all device types","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"controller1":{"type":"string","description":"System IP Address. Mandatory for the Fortinet SDWAN cluster device","description_kind":"plain","optional":true},"controller_fqdn":{"type":"string","description":"Controller fqdn. This is required for Velocloud clusters","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster","description_kind":"plain","optional":true,"sensitive":true}},"description":"An object that has fields relevant to the vendor of the cluster device","description_kind":"plain"},"max_items":1}},"description":"An object that has node0 details","description_kind":"plain"},"min_items":1,"max_items":1},"node1":{"nesting_mode":"list","block":{"attributes":{"license_file_id":{"type":"string","description":"License file id. This is necessary for Fortinet and Juniper clusters","description_kind":"plain","optional":true},"license_token":{"type":"string","description":"License token. This is necessary for Palo Alto clusters","description_kind":"plain","optional":true,"sensitive":true},"name":{"type":"string","description":"The name of the node","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"The unique id of the node","description_kind":"plain","computed":true}},"block_types":{"vendor_configuration":{"nesting_mode":"list","block":{"attributes":{"activation_key":{"type":"string","description":"Activation key. This is required for Velocloud clusters","description_kind":"plain","optional":true,"sensitive":true},"admin_password":{"type":"string","description":"The administrative password of the device. You can use it to log in to the console. This field is not available for all device types","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"controller1":{"type":"string","description":"System IP Address. Mandatory for the Fortinet SDWAN cluster device","description_kind":"plain","optional":true},"controller_fqdn":{"type":"string","description":"Controller fqdn. This is required for Velocloud clusters","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster","description_kind":"plain","optional":true,"sensitive":true}},"description":"An object that has fields relevant to the vendor of the cluster device","description_kind":"plain"},"max_items":1}},"description":"An object that has node1 details","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"An object that has the cluster details","description_kind":"plain"},"max_items":1},"secondary_device":{"nesting_mode":"list","block":{"attributes":{"account_number":{"type":"string","description":"Device billing account number","description_kind":"plain","required":true},"acl_template_id":{"type":"string","description":"Unique identifier of applied ACL template","description_kind":"plain","optional":true},"additional_bandwidth":{"type":"number","description":"Additional Internet bandwidth, in Mbps, that will be allocated to the device","description_kind":"plain","optional":true,"computed":true},"asn":{"type":"number","description":"Autonomous system number","description_kind":"plain","computed":true},"cloud_init_file_id":{"type":"string","description":"Unique identifier of applied cloud init file","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"Device hostname prefix","description_kind":"plain","optional":true},"ibx":{"type":"string","description":"Device location Equinix Business Exchange name","description_kind":"plain","computed":true},"interface":{"type":["list",["object",{"assigned_type":"string","id":"number","ip_address":"string","mac_address":"string","name":"string","operational_status":"string","status":"string","type":"string"}]],"description":"List of device interfaces","description_kind":"plain","computed":true},"license_file":{"type":"string","description":"Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode","description_kind":"plain","optional":true},"license_file_id":{"type":"string","description":"Unique identifier of applied license file","description_kind":"plain","optional":true,"computed":true},"license_status":{"type":"string","description":"Device license registration status","description_kind":"plain","computed":true},"license_token":{"type":"string","description":"License Token applicable for some device types in BYOL licensing mode","description_kind":"plain","optional":true},"metro_code":{"type":"string","description":"Device location metro code","description_kind":"plain","required":true},"mgmt_acl_template_uuid":{"type":"string","description":"Unique identifier of applied MGMT ACL template","description_kind":"plain","optional":true},"name":{"type":"string","description":"Device name","description_kind":"plain","required":true},"notifications":{"type":["set","string"],"description":"List of email addresses that will receive device status notifications","description_kind":"plain","required":true},"redundancy_type":{"type":"string","description":"Device redundancy type applicable for HA devices, either primary or secondary","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description":"Unique identifier for a redundant device, applicable for HA device","description_kind":"plain","computed":true},"region":{"type":"string","description":"Device location region","description_kind":"plain","computed":true},"ssh_ip_address":{"type":"string","description":"IP address of SSH enabled interface on the device","description_kind":"plain","computed":true},"ssh_ip_fqdn":{"type":"string","description":"FQDN of SSH enabled interface on the device","description_kind":"plain","computed":true},"status":{"type":"string","description":"Device provisioning status","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Device unique identifier","description_kind":"plain","computed":true},"vendor_configuration":{"type":["map","string"],"description":"Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress)","description_kind":"plain","optional":true,"computed":true},"wan_interface_id":{"type":"string","description":"device interface id picked for WAN","description_kind":"plain","optional":true},"zone_code":{"type":"string","description":"Device location zone code","description_kind":"plain","computed":true}},"block_types":{"ssh_key":{"nesting_mode":"set","block":{"attributes":{"key_name":{"type":"string","description":"Reference by name to previously provisioned public SSH key","description_kind":"plain","required":true},"username":{"type":"string","description":"Username associated with given key","description_kind":"plain","required":true}},"description":"Definition of SSH key that will be provisioned on a device","description_kind":"plain"},"max_items":1}},"description":"Definition of secondary device applicable for HA setup","description_kind":"plain"},"max_items":1},"ssh_key":{"nesting_mode":"set","block":{"attributes":{"key_name":{"type":"string","description":"Reference by name to previously provisioned public SSH key","description_kind":"plain","required":true},"username":{"type":"string","description":"Username associated with given key","description_kind":"plain","required":true}},"description":"Definition of SSH key that will be provisioned on a device","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Network Edge virtual devices","description_kind":"plain"}},"equinix_network_device_link":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"name","description_kind":"plain","required":true},"status":{"type":"string","description":"Device link provisioning status","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"subnet","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Device link unique identifier","description_kind":"plain","computed":true}},"block_types":{"device":{"nesting_mode":"set","block":{"attributes":{"asn":{"type":"number","description":"Device ASN number","description_kind":"plain","optional":true},"id":{"type":"string","description":"Device identifier","description_kind":"plain","required":true},"interface_id":{"type":"number","description":"Device network interface identifier to use for device link connection","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"Assigned IP address from device link subnet","description_kind":"plain","computed":true},"status":{"type":"string","description":"Device link connection provisioning status","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":2},"link":{"nesting_mode":"set","block":{"attributes":{"account_number":{"type":"string","description":"Billing account number to be used for connection charges","description_kind":"plain","required":true},"dst_metro_code":{"type":"string","description":"Connection destination metro code","description_kind":"plain","required":true},"dst_zone_code":{"type":"string","description":"Connection destination zone code","description_kind":"plain","deprecated":true,"optional":true},"src_metro_code":{"type":"string","description":"Connection source metro code","description_kind":"plain","required":true},"src_zone_code":{"type":"string","description":"Connection source zone code","description_kind":"plain","deprecated":true,"optional":true},"throughput":{"type":"string","description":"Connection throughput","description_kind":"plain","required":true},"throughput_unit":{"type":"string","description":"Connection throughput unit","description_kind":"plain","required":true}},"description":"link","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Network Edge device links","description_kind":"plain"}},"equinix_network_file":{"version":0,"block":{"attributes":{"byol":{"type":"bool","description":"Boolean value that determines device licensing mode: bring your own license or subscription","description_kind":"plain","required":true},"content":{"type":"string","description":"Uploaded file content, expected to be a UTF-8 encoded string","description_kind":"plain","required":true,"sensitive":true},"device_type_code":{"type":"string","description":"Device type code","description_kind":"plain","required":true},"file_name":{"type":"string","description":"File name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"File upload location metro code","description_kind":"plain","required":true},"process_type":{"type":"string","description":"File process type (LICENSE or CLOUD_INIT)","description_kind":"plain","required":true},"self_managed":{"type":"bool","description":"Boolean value that determines device management mode: self-managed or equinix-managed","description_kind":"plain","required":true},"status":{"type":"string","description":"File upload status","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of file resource","description_kind":"plain","computed":true}},"description":"Resource allows creation and management of Equinix Network Edge device files","description_kind":"plain"}},"equinix_network_ssh_key":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of SSH key used for identification","description_kind":"plain","required":true},"public_key":{"type":"string","description":"The SSH public key. If this is a file, it can be read using the file interpolation function","description_kind":"plain","required":true},"type":{"type":"string","description":"The type of SSH key: RSA (default) or DSA","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"The unique identifier of the key","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Network Edge SSH keys","description_kind":"plain"}},"equinix_network_ssh_user":{"version":0,"block":{"attributes":{"device_ids":{"type":["set","string"],"description":"list of device identifiers to which user will have access","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description":"SSH user password","description_kind":"plain","required":true,"sensitive":true},"username":{"type":"string","description":"SSH user login name","description_kind":"plain","required":true},"uuid":{"type":"string","description":"SSH user unique identifier","description_kind":"plain","computed":true}},"description":"Resource allows creation and management of Equinix Network Edge SSH users","description_kind":"plain"}}},"data_source_schemas":{"equinix_ecx_l2_sellerprofile":{"version":0,"block":{"attributes":{"additional_info":{"type":["set",["object",{"captured_in_email":"bool","data_type":"string","description":"string","mandatory":"bool","name":"string"}]],"description":"One or more specifications of additional buyer information attributes that can be provided in connection definition that uses given seller profile","description_kind":"plain","computed":true},"description":{"type":"string","description":"Seller Profile text description","description_kind":"plain","computed":true},"encapsulation":{"type":"string","description":"Seller profile's encapsulation (either Dot1q or QinQ)","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":["set",["object",{"code":"string","ibxes":["set","string"],"name":"string","regions":["map","string"]}]],"description":"One or more specifications of metro locations supported by seller profile","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the seller profile","description_kind":"plain","optional":true,"computed":true},"organization_global_name":{"type":"string","description":"Name of seller's global organization","description_kind":"plain","optional":true,"computed":true},"organization_name":{"type":"string","description":"Name of seller's organization","description_kind":"plain","optional":true,"computed":true},"redundancy_required":{"type":"bool","description":"Boolean that indicate if seller requires connections to be redundant","description_kind":"plain","computed":true},"speed_band":{"type":["set",["object",{"speed":"number","speed_unit":"string"}]],"description":"One or more specifications of speed/bandwidth supported by given seller profile","description_kind":"plain","computed":true},"speed_customization_allowed":{"type":"bool","description":"Boolean that indicates if seller allows customer to enter a custom connection speed","description_kind":"plain","computed":true},"speed_from_api":{"type":"bool","description":"Boolean that indicates if seller is deriving connection speed from an API call","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of the seller profile","description_kind":"plain","computed":true}},"description":"Use this data source to get details of Equinix Fabric layer 2 seller profile with a given name and / or organization","description_kind":"plain","deprecated":true}},"equinix_ecx_l2_sellerprofiles":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_codes":{"type":["set","string"],"description":"List of metro codes of locations that should be served by resulting profiles","description_kind":"plain","optional":true},"name_regex":{"type":"string","description":"A regex string to apply on returned seller profile names and filter search results","description_kind":"plain","optional":true},"organization_global_name":{"type":"string","description":"Name of seller's global organization","description_kind":"plain","optional":true},"organization_name":{"type":"string","description":"Name of seller's organization","description_kind":"plain","optional":true},"profiles":{"type":["list",["object",{"additional_info":["set",["object",{"captured_in_email":"bool","data_type":"string","description":"string","mandatory":"bool","name":"string"}]],"description":"string","encapsulation":"string","metro":["set",["object",{"code":"string","ibxes":["set","string"],"name":"string","regions":["map","string"]}]],"name":"string","organization_global_name":"string","organization_name":"string","redundancy_required":"bool","speed_band":["set",["object",{"speed":"number","speed_unit":"string"}]],"speed_customization_allowed":"bool","speed_from_api":"bool","uuid":"string"}]],"description":"Resulting list of profiles that match filtering criteria","description_kind":"plain","computed":true},"speed_bands":{"type":["set","string"],"description":"List of speed bands that should be supported by resulting profiles","description_kind":"plain","optional":true}},"description":"Use this data source to get list of Equinix Fabric layer 2 seller profiles","description_kind":"plain","deprecated":true}},"equinix_ecx_port":{"version":0,"block":{"attributes":{"bandwidth":{"type":"string","description":"Port Bandwidth in bytes","description_kind":"plain","computed":true},"buyout":{"type":"bool","description":"Boolean value that indicates whether the port supports unlimited connections.","description_kind":"plain","computed":true},"encapsulation":{"type":"string","description":"The VLAN encapsulation of the port (Dot1q or QinQ)","description_kind":"plain","computed":true},"ibx":{"type":"string","description":"Port location Equinix Business Exchange (IBX)","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Port location metro code","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the port","description_kind":"plain","required":true},"priority":{"type":"string","description":"The priority of the device (primary / secondary) where the port resides","description_kind":"plain","computed":true},"region":{"type":"string","description":"Port location region","description_kind":"plain","computed":true},"status":{"type":"string","description":"Port status that indicates whether a port has been assigned or is ready for connection","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of the por","description_kind":"plain","computed":true}},"description":"Use this data source to get details of Equinix Fabric port with a given name","description_kind":"plain","deprecated":true}},"equinix_fabric_cloud_router":{"version":0,"block":{"attributes":{"account":{"type":["set",["object",{"account_name":"string","account_number":"number","global_cust_id":"string","global_org_id":"string","global_organization_name":"string","org_id":"number","organization_name":"string"}]],"description":"Customer account information that is associated with this Fabric Cloud Router","description_kind":"plain","computed":true},"bgp_ipv4_routes_count":{"type":"number","description":"Access point used and maximum number of IPv4 BGP routes","description_kind":"plain","computed":true},"bgp_ipv6_routes_count":{"type":"number","description":"Access point used and maximum number of IPv6 BGP routes","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures Fabric Cloud Router lifecycle change information","description_kind":"plain","computed":true},"connections_count":{"type":"number","description":"Number of connections associated with this Access point","description_kind":"plain","computed":true},"description":{"type":"string","description":"Customer-provided Fabric Cloud Router description","description_kind":"plain","computed":true},"equinix_asn":{"type":"number","description":"Equinix ASN","description_kind":"plain","computed":true},"href":{"type":"string","description":"Fabric Cloud Router URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":["set",["object",{"href":"string","ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"description":"Fabric Cloud Router location","description_kind":"plain","computed":true},"name":{"type":"string","description":"Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","computed":true},"notifications":{"type":["list",["object",{"emails":["list","string"],"send_interval":"string","type":"string"}]],"description":"Preferences for notifications on Fabric Cloud Router configuration or status changes","description_kind":"plain","computed":true},"order":{"type":["set",["object",{"billing_tier":"string","order_id":"string","order_number":"string","purchase_order_number":"string"}]],"description":"Order information related to this Fabric Cloud Router","description_kind":"plain","computed":true},"package":{"type":["set",["object",{"code":"string"}]],"description":"Fabric Cloud Router package information","description_kind":"plain","computed":true},"state":{"type":"string","description":"Fabric Cloud Router overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the Fabric Cloud Router type like XF_GATEWAY","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Fabric Cloud Router identifier","description_kind":"plain","optional":true}},"block_types":{"project":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource URL","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project Id","description_kind":"plain","computed":true}},"description":"Project information","description_kind":"plain"}}},"description":"Fabric V4 API compatible data resource that allow user to fetch Fabric Cloud Router for a given UUID\n\n~\u003e **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)","description_kind":"plain"}},"equinix_fabric_connection":{"version":0,"block":{"attributes":{"a_side":{"type":["set",["object",{"access_point":["set",["object",{"account":["set",["object",{"account_name":"string","account_number":"number","global_cust_id":"string","global_org_id":"string","global_organization_name":"string","org_id":"number","organization_name":"string"}]],"authentication_key":"string","gateway":["set",["object",{"href":"string","state":"string","uuid":"string"}]],"interface":["set",["object",{"id":"string","type":"string","uuid":"string"}]],"link_protocol":["set",["object",{"type":"string","vlan_c_tag":"number","vlan_s_tag":"number","vlan_tag":"number"}]],"location":["set",["object",{"href":"string","ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"peering_type":"string","port":["set",["object",{"href":"string","name":"string","redundancy":["set",["object",{"priority":"string"}]],"uuid":"string"}]],"profile":["set",["object",{"access_point_type_configs":["list",["object",{"allow_bandwidth_auto_approval":"bool","allow_bandwidth_upgrade":"bool","allow_custom_bandwidth":"bool","allow_remote_connections":"bool","api_config":["set",["object",{"allow_over_subscription":"bool","api_available":"bool","bandwidth_from_api":"bool","equinix_managed_port":"bool","equinix_managed_vlan":"bool","integration_id":"string","over_subscription_limit":"number"}]],"authentication_key":["set",["object",{"description":"string","label":"string","required":"bool"}]],"bandwidth_alert_threshold":"number","connection_label":"string","connection_redundancy_required":"bool","enable_auto_generate_service_key":"bool","link_protocol_config":["set",["object",{"encapsulation":"string","encapsulation_strategy":"string","reuse_vlan_s_tag":"bool"}]],"supported_bandwidths":["list","number"],"type":"string","uuid":"string"}]],"description":"string","href":"string","name":"string","type":"string","uuid":"string"}]],"provider_connection_id":"string","router":["set",["object",{"href":"string","state":"string","uuid":"string"}]],"seller_region":"string","type":"string","virtual_device":["set",["object",{"href":"string","type":"string","uuid":"string"}]]}]],"service_token":["set",["object",{"description":"string","href":"string","type":"string","uuid":"string"}]]}]],"description":"Requester or Customer side connection configuration object of the multi-segment connection","description_kind":"plain","computed":true},"account":{"type":["set",["object",{"account_name":"string","account_number":"number","global_cust_id":"string","global_org_id":"string","global_organization_name":"string","org_id":"number","organization_name":"string"}]],"description":"Customer account information that is associated with this connection","description_kind":"plain","computed":true},"additional_info":{"type":["list",["object",{"key":"string","value":"string"}]],"description":"Connection additional information","description_kind":"plain","computed":true},"bandwidth":{"type":"number","description":"Connection bandwidth in Mbps","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures connection lifecycle change information","description_kind":"plain","computed":true},"description":{"type":"string","description":"Customer-provided connection description","description_kind":"plain","computed":true},"direction":{"type":"string","description":"Connection directionality from the requester point of view","description_kind":"plain","computed":true},"href":{"type":"string","description":"Connection URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_remote":{"type":"bool","description":"Connection property derived from access point locations","description_kind":"plain","computed":true},"name":{"type":"string","description":"Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","computed":true},"notifications":{"type":["list",["object",{"emails":["list","string"],"send_interval":"string","type":"string"}]],"description":"Preferences for notifications on connection configuration or status changes","description_kind":"plain","computed":true},"operation":{"type":["set",["object",{"equinix_status":"string","errors":["list",["object",{"additional_info":["list",["object",{"property":"string","reason":"string"}]],"correlation_id":"string","details":"string","error_code":"string","error_message":"string","help":"string"}]],"provider_status":"string"}]],"description":"Connection specific operational data","description_kind":"plain","computed":true},"order":{"type":["set",["object",{"billing_tier":"string","order_id":"string","order_number":"string","purchase_order_number":"string"}]],"description":"Order related to this connection information","description_kind":"plain","computed":true},"redundancy":{"type":["set",["object",{"group":"string","priority":"string"}]],"description":"Redundancy Information","description_kind":"plain","computed":true},"state":{"type":"string","description":"Connection overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the connection type like VG_VC, EVPL_VC, EPL_VC, EC_VC, IP_VC, IPWAN_VC, ACCESS_EPL_VC","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned connection identifier","description_kind":"plain","optional":true},"z_side":{"type":["set",["object",{"access_point":["set",["object",{"account":["set",["object",{"account_name":"string","account_number":"number","global_cust_id":"string","global_org_id":"string","global_organization_name":"string","org_id":"number","organization_name":"string"}]],"authentication_key":"string","gateway":["set",["object",{"href":"string","state":"string","uuid":"string"}]],"interface":["set",["object",{"id":"string","type":"string","uuid":"string"}]],"link_protocol":["set",["object",{"type":"string","vlan_c_tag":"number","vlan_s_tag":"number","vlan_tag":"number"}]],"location":["set",["object",{"href":"string","ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"peering_type":"string","port":["set",["object",{"href":"string","name":"string","redundancy":["set",["object",{"priority":"string"}]],"uuid":"string"}]],"profile":["set",["object",{"access_point_type_configs":["list",["object",{"allow_bandwidth_auto_approval":"bool","allow_bandwidth_upgrade":"bool","allow_custom_bandwidth":"bool","allow_remote_connections":"bool","api_config":["set",["object",{"allow_over_subscription":"bool","api_available":"bool","bandwidth_from_api":"bool","equinix_managed_port":"bool","equinix_managed_vlan":"bool","integration_id":"string","over_subscription_limit":"number"}]],"authentication_key":["set",["object",{"description":"string","label":"string","required":"bool"}]],"bandwidth_alert_threshold":"number","connection_label":"string","connection_redundancy_required":"bool","enable_auto_generate_service_key":"bool","link_protocol_config":["set",["object",{"encapsulation":"string","encapsulation_strategy":"string","reuse_vlan_s_tag":"bool"}]],"supported_bandwidths":["list","number"],"type":"string","uuid":"string"}]],"description":"string","href":"string","name":"string","type":"string","uuid":"string"}]],"provider_connection_id":"string","router":["set",["object",{"href":"string","state":"string","uuid":"string"}]],"seller_region":"string","type":"string","virtual_device":["set",["object",{"href":"string","type":"string","uuid":"string"}]]}]],"service_token":["set",["object",{"description":"string","href":"string","type":"string","uuid":"string"}]]}]],"description":"Destination or Provider side connection configuration object of the multi-segment connection","description_kind":"plain","computed":true}},"block_types":{"project":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource URL","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project Id","description_kind":"plain","computed":true}},"description":"Project information","description_kind":"plain"}}},"description":"Fabric V4 API compatible data resource that allow user to fetch connection for a given UUID\n\n~\u003e **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)","description_kind":"plain"}},"equinix_fabric_port":{"version":0,"block":{"attributes":{"account":{"type":["set",["object",{"account_name":"string","account_number":"number","global_cust_id":"string","global_org_id":"string","global_organization_name":"string","org_id":"number","organization_name":"string"}]],"description":"Customer account information that is associated with this port","description_kind":"plain","computed":true},"available_bandwidth":{"type":"number","description":"Port available bandwidth in Mbps","description_kind":"plain","computed":true},"bandwidth":{"type":"number","description":"Port bandwidth in Mbps","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures port lifecycle change information","description_kind":"plain","computed":true},"description":{"type":"string","description":"Port description","description_kind":"plain","computed":true},"device":{"type":["set",["object",{"name":"string","redundancy":["set",["object",{"group":"string","priority":"string"}]]}]],"description":"Port device","description_kind":"plain","computed":true},"encapsulation":{"type":["set",["object",{"tag_protocol_id":"string","type":"string"}]],"description":"Port encapsulation protocol","description_kind":"plain","computed":true},"href":{"type":"string","description":"Port URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lag_enabled":{"type":"bool","description":"Port Lag","description_kind":"plain","computed":true},"location":{"type":["set",["object",{"href":"string","ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"description":"Port location information","description_kind":"plain","computed":true},"name":{"type":"string","description":"Port name","description_kind":"plain","computed":true},"operation":{"type":["set",["object",{"connection_count":"number","op_status_changed_at":"string","operational_status":"string"}]],"description":"Port specific operational data","description_kind":"plain","computed":true},"redundancy":{"type":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]],"description":"Port redundancy information","description_kind":"plain","computed":true},"service_type":{"type":"string","description":"Port service type","description_kind":"plain","computed":true},"state":{"type":"string","description":"Port state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Port type","description_kind":"plain","computed":true},"used_bandwidth":{"type":"number","description":"Port used bandwidth in Mbps","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned port identifier","description_kind":"plain","required":true}},"description":"Fabric V4 API compatible data resource that allow user to fetch port by uuid\n\n~\u003e **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)","description_kind":"plain"}},"equinix_fabric_ports":{"version":0,"block":{"attributes":{"data":{"type":["list",["object",{"account":["set",["object",{"account_name":"string","account_number":"number","global_cust_id":"string","global_org_id":"string","global_organization_name":"string","org_id":"number","organization_name":"string"}]],"available_bandwidth":"number","bandwidth":"number","change_log":["set",["object",{"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"}]],"description":"string","device":["set",["object",{"name":"string","redundancy":["set",["object",{"group":"string","priority":"string"}]]}]],"encapsulation":["set",["object",{"tag_protocol_id":"string","type":"string"}]],"href":"string","lag_enabled":"bool","location":["set",["object",{"href":"string","ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"name":"string","operation":["set",["object",{"connection_count":"number","op_status_changed_at":"string","operational_status":"string"}]],"redundancy":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]],"service_type":"string","state":"string","type":"string","used_bandwidth":"number","uuid":"string"}]],"description":"List of Ports","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"filters":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"Query Parameter to Get Ports By Name","description_kind":"plain","optional":true}},"description":"name","description_kind":"plain"}}},"description":"Fabric V4 API compatible data resource that allow user to fetch port by name\n\n~\u003e **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)","description_kind":"plain"}},"equinix_fabric_routing_protocol":{"version":0,"block":{"attributes":{"bgp_auth_key":{"type":"string","description":"BGP authorization key","description_kind":"plain","optional":true},"change":{"type":["set",["object",{"href":"string","type":"string","uuid":"string"}]],"description":"Routing Protocol configuration Changes","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures Routing Protocol lifecycle change information","description_kind":"plain","computed":true},"connection_uuid":{"type":"string","description":"Connection URI associated with Routing Protocol","description_kind":"plain","required":true},"customer_asn":{"type":"number","description":"Customer-provided ASN","description_kind":"plain","optional":true},"description":{"type":"string","description":"Customer-provided Fabric Routing Protocol description","description_kind":"plain","optional":true},"equinix_asn":{"type":"number","description":"Equinix ASN","description_kind":"plain","computed":true},"href":{"type":"string","description":"Routing Protocol URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Routing Protocol name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","optional":true},"operation":{"type":["set",["object",{"errors":["list",["object",{"additional_info":["list",["object",{"property":"string","reason":"string"}]],"correlation_id":"string","details":"string","error_code":"string","error_message":"string","help":"string"}]]}]],"description":"Routing Protocol type-specific operational data","description_kind":"plain","computed":true},"state":{"type":"string","description":"Routing Protocol overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the routing protocol type like BGP or DIRECT","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned routing protocol identifier","description_kind":"plain","optional":true,"computed":true}},"block_types":{"bfd":{"nesting_mode":"set","block":{"attributes":{"enabled":{"type":"bool","description":"Bidirectional Forwarding Detection enablement","description_kind":"plain","required":true},"interval":{"type":"string","description":"Interval range between the received BFD control packets","description_kind":"plain","optional":true}},"description":"Bidirectional Forwarding Detection","description_kind":"plain"}},"bgp_ipv4":{"nesting_mode":"set","block":{"attributes":{"customer_peer_ip":{"type":"string","description":"Customer side peering ip","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Admin status for the BGP session","description_kind":"plain","optional":true},"equinix_peer_ip":{"type":"string","description":"Equinix side peering ip","description_kind":"plain","computed":true}},"description":"Routing Protocol BGP IPv4","description_kind":"plain"}},"bgp_ipv6":{"nesting_mode":"set","block":{"attributes":{"customer_peer_ip":{"type":"string","description":"Customer side peering ip","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Admin status for the BGP session","description_kind":"plain","optional":true},"equinix_peer_ip":{"type":"string","description":"Equinix side peering ip","description_kind":"plain","computed":true}},"description":"Routing Protocol BGP IPv6","description_kind":"plain"}},"direct_ipv4":{"nesting_mode":"set","block":{"attributes":{"equinix_iface_ip":{"type":"string","description":"Equinix side Interface IP address","description_kind":"plain","required":true}},"description":"Routing Protocol Direct IPv4","description_kind":"plain"}},"direct_ipv6":{"nesting_mode":"set","block":{"attributes":{"equinix_iface_ip":{"type":"string","description":"Equinix side Interface IP address\n\n","description_kind":"plain","optional":true}},"description":"Routing Protocol Direct IPv6","description_kind":"plain"}}},"description":"Fabric V4 API compatible data resource that allow user to fetch routing protocol for a given UUID\n\n~\u003e **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)","description_kind":"plain"}},"equinix_fabric_service_profile":{"version":0,"block":{"attributes":{"access_point_type_configs":{"type":["list",["object",{"allow_bandwidth_auto_approval":"bool","allow_bandwidth_upgrade":"bool","allow_custom_bandwidth":"bool","allow_remote_connections":"bool","api_config":["set",["object",{"allow_over_subscription":"bool","api_available":"bool","bandwidth_from_api":"bool","equinix_managed_port":"bool","equinix_managed_vlan":"bool","integration_id":"string","over_subscription_limit":"number"}]],"authentication_key":["set",["object",{"description":"string","label":"string","required":"bool"}]],"bandwidth_alert_threshold":"number","connection_label":"string","connection_redundancy_required":"bool","enable_auto_generate_service_key":"bool","link_protocol_config":["set",["object",{"encapsulation":"string","encapsulation_strategy":"string","reuse_vlan_s_tag":"bool"}]],"supported_bandwidths":["list","number"],"type":"string","uuid":"string"}]],"description":"Access point config information","description_kind":"plain","computed":true},"account":{"type":["set",["object",{"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"}]],"description":"Account","description_kind":"plain","computed":true},"allowed_emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures connection lifecycle change information","description_kind":"plain","computed":true},"custom_fields":{"type":["list",["object",{"capture_in_email":"bool","data_type":"string","description":"string","label":"string","options":["list","string"],"required":"bool"}]],"description":"Custom Fields","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-provided service description","description_kind":"plain","computed":true},"href":{"type":"string","description":"Service Profile URI response attribute","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"marketing_info":{"type":["set",["object",{"logo":"string","process_step":["list",["object",{"description":"string","sub_title":"string","title":"string"}]],"promotion":"bool"}]],"description":"Marketing Info","description_kind":"plain","computed":true},"metros":{"type":["list",["object",{"code":"string","display_name":"string","ibxs":["list","string"],"in_trail":"bool","name":"string","seller_regions":["map","string"]}]],"description":"Access point config information","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned service profile name","description_kind":"plain","computed":true},"notifications":{"type":["list",["object",{"emails":["list","string"],"send_interval":"string","type":"string"}]],"description":"Preferences for notifications on connection configuration or status changes","description_kind":"plain","computed":true},"ports":{"type":["list",["object",{"cross_connect_id":"string","location":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"seller_region":"string","seller_region_description":"string","type":"string","uuid":"string"}]],"description":"Ports","description_kind":"plain","computed":true},"project":{"type":["set",["object",{"href":"string","project_id":"string"}]],"description":"Project information","description_kind":"plain","computed":true},"self_profile":{"type":"bool","description":"Self Profile indicating if the profile is created for customer's self use","description_kind":"plain","computed":true},"state":{"type":"string","description":"Service profile state - ACTIVE, PENDING_APPROVAL, DELETED, REJECTED","description_kind":"plain","optional":true},"tags":{"type":["set","string"],"description":"Tags attached to the connection","description_kind":"plain","computed":true},"type":{"type":"string","description":"Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix assigned service profile identifier","description_kind":"plain","required":true},"visibility":{"type":"string","description":"Service profile visibility - PUBLIC, PRIVATE","description_kind":"plain","computed":true}},"description":"Fabric V4 API compatible data resource that allow user to fetch Service Profile by UUID filter criteria\n\n~\u003e **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","description_kind":"plain"}},"equinix_fabric_service_profiles":{"version":0,"block":{"attributes":{"data":{"type":["list",["object",{"access_point_type_configs":["list",["object",{"allow_bandwidth_auto_approval":"bool","allow_bandwidth_upgrade":"bool","allow_custom_bandwidth":"bool","allow_remote_connections":"bool","api_config":["set",["object",{"allow_over_subscription":"bool","api_available":"bool","bandwidth_from_api":"bool","equinix_managed_port":"bool","equinix_managed_vlan":"bool","integration_id":"string","over_subscription_limit":"number"}]],"authentication_key":["set",["object",{"description":"string","label":"string","required":"bool"}]],"bandwidth_alert_threshold":"number","connection_label":"string","connection_redundancy_required":"bool","enable_auto_generate_service_key":"bool","link_protocol_config":["set",["object",{"encapsulation":"string","encapsulation_strategy":"string","reuse_vlan_s_tag":"bool"}]],"supported_bandwidths":["list","number"],"type":"string","uuid":"string"}]],"account":["set",["object",{"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"}]],"allowed_emails":["list","string"],"change_log":["set",["object",{"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"}]],"custom_fields":["list",["object",{"capture_in_email":"bool","data_type":"string","description":"string","label":"string","options":["list","string"],"required":"bool"}]],"description":"string","href":"string","marketing_info":["set",["object",{"logo":"string","process_step":["list",["object",{"description":"string","sub_title":"string","title":"string"}]],"promotion":"bool"}]],"metros":["list",["object",{"code":"string","display_name":"string","ibxs":["list","string"],"in_trail":"bool","name":"string","seller_regions":["map","string"]}]],"name":"string","notifications":["list",["object",{"emails":["list","string"],"send_interval":"string","type":"string"}]],"ports":["list",["object",{"cross_connect_id":"string","location":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"seller_region":"string","seller_region_description":"string","type":"string","uuid":"string"}]],"project":["set",["object",{"href":"string","project_id":"string"}]],"self_profile":"bool","state":"string","tags":["set","string"],"type":"string","uuid":"string","visibility":"string"}]],"description":"List of Service Profiles","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"view_point":{"type":"string","description":"flips view between buyer and seller representation. Available values : aSide, zSide. Default value : aSide","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"operator":{"type":"string","description":"Possible operator to use on filters = - equal","description_kind":"plain","optional":true},"property":{"type":"string","description":"Search Criteria for Service Profile - /name, /uuid, /state, /metros/code, /visibility, /type","description_kind":"plain","optional":true},"values":{"type":["list","string"],"description":"Values","description_kind":"plain","optional":true}},"description":"Service Profile Search Filter","description_kind":"plain"},"max_items":1},"sort":{"nesting_mode":"list","block":{"attributes":{"direction":{"type":"string","description":"Priority type- DESC, ASC","description_kind":"plain","optional":true},"property":{"type":"string","description":"Search operation sort criteria /name /state /changeLog/createdDateTime /changeLog/updatedDateTime","description_kind":"plain","optional":true}},"description":"Service Profile Sort criteria for Search Request response payload","description_kind":"plain"}}},"description":"Fabric V4 API compatible data resource that allow user to fetch Service Profile by name filter criteria\n\n~\u003e **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)","description_kind":"plain"}},"equinix_metal_connection":{"version":0,"block":{"attributes":{"connection_id":{"type":"string","description":"ID of the connection to lookup","description_kind":"plain","required":true},"contact_email":{"type":"string","description":"The preferred email used for communication and notifications about the Equinix Fabric interconnection","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the connection resource","description_kind":"plain","computed":true},"facility":{"type":"string","description":"Facility which the connection is scoped to","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"Metro which the connection is scoped to","description_kind":"plain","computed":true},"mode":{"type":"string","description":"Connection mode - standard or tunnel","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the connection resource","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"ID of organization to which the connection is scoped to","description_kind":"plain","computed":true},"ports":{"type":["list",["object",{"id":"string","link_status":"string","name":"string","role":"string","speed":"number","status":"string","virtual_circuit_ids":["list","string"]}]],"description":"List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`)","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of project to which the connection belongs","description_kind":"plain","computed":true},"redundancy":{"type":"string","description":"Connection redundancy - redundant or primary","description_kind":"plain","computed":true},"service_token_type":{"type":"string","description":"Only used with shared connection. Type of service token to use for the connection, a_side or z_side","description_kind":"plain","computed":true},"service_tokens":{"type":["list",["object",{"expires_at":"string","id":"string","max_allowed_speed":"string","role":"string","state":"string","type":"string"}]],"description":"Only used with shared connection. List of service tokens required to continue the setup process with [equinix_ecx_l2_connection](https://registry.terraform.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard)","description_kind":"plain","computed":true},"speed":{"type":"string","description":"Port speed. Possible values are 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps","description_kind":"plain","computed":true},"status":{"type":"string","description":"Status of the connection resource","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Tags attached to the connection","description_kind":"plain","computed":true},"token":{"type":"string","description":"Only used with shared connection. Fabric Token required to continue the setup process with [equinix_ecx_l2_connection](https://registry.terraform.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard)","description_kind":"plain","deprecated":true,"computed":true},"type":{"type":"string","description":"Connection type - dedicated or shared","description_kind":"plain","computed":true},"vlans":{"type":["list","number"],"description":"Attached vlans, only in shared connection","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_device":{"version":0,"block":{"attributes":{"access_private_ipv4":{"type":"string","description":"The ipv4 private IP assigned to the device","description_kind":"plain","computed":true},"access_public_ipv4":{"type":"string","description":"The ipv4 management IP assigned to the device","description_kind":"plain","computed":true},"access_public_ipv6":{"type":"string","description":"The ipv6 management IP assigned to the device","description_kind":"plain","computed":true},"always_pxe":{"type":"bool","description_kind":"plain","computed":true},"billing_cycle":{"type":"string","description":"The billing cycle of the device (monthly or hourly)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description string for the device","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"Device ID","description_kind":"plain","optional":true,"computed":true},"facility":{"type":"string","description":"The facility where the device is deployed","description_kind":"plain","deprecated":true,"computed":true},"hardware_reservation_id":{"type":"string","description":"The id of hardware reservation which this device occupies","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"The device name","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipxe_script_url":{"type":"string","description_kind":"plain","computed":true},"metro":{"type":"string","description":"The metro where the device is deployed","description_kind":"plain","computed":true},"network":{"type":["list",["object",{"address":"string","cidr":"number","family":"number","gateway":"string","public":"bool"}]],"description":"The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 networks: ublic IPv4 at equinix_metal_device.name.network.0, IPv6 at equinix_metal_device.name.network.1 and private IPv4 at equinix_metal_device.name.network.2. Elastic addresses then stack by type - an assigned public IPv4 will go after the management public IPv4 (to index 1), and will then shift the indices of the IPv6 and private IPv4. Assigned private IPv4 will go after the management private IPv4 (to the end of the network list).","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"L2 network type of the device, one oflayer3, hybrid, layer2-individual, layer2-bonded","description_kind":"plain","computed":true},"operating_system":{"type":"string","description":"The operating system running on the device","description_kind":"plain","computed":true},"plan":{"type":"string","description":"The hardware config of the device","description_kind":"plain","computed":true},"ports":{"type":["list",["object",{"bonded":"bool","id":"string","mac":"string","name":"string","type":"string"}]],"description":"Ports assigned to the device","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The id of the project in which the devices exists","description_kind":"plain","optional":true,"computed":true},"root_password":{"type":"string","description":"Root password to the server (if still available)","description_kind":"plain","computed":true,"sensitive":true},"sos_hostname":{"type":"string","description":"The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device","description_kind":"plain","computed":true},"ssh_key_ids":{"type":["list","string"],"description":"List of IDs of SSH keys deployed in the device, can be both user or project SSH keys","description_kind":"plain","computed":true},"state":{"type":"string","description":"The state of the device","description_kind":"plain","computed":true},"storage":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Tags attached to the device","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_device_bgp_neighbors":{"version":0,"block":{"attributes":{"bgp_neighbors":{"type":["list",["object",{"address_family":"number","customer_as":"number","customer_ip":"string","md5_enabled":"bool","md5_password":"string","multihop":"bool","peer_as":"number","peer_ips":["list","string"],"routes_in":["list",["object",{"exact":"bool","route":"string"}]],"routes_out":["list",["object",{"exact":"bool","route":"string"}]]}]],"description":"Array of BGP neighbor records","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"UUID of BGP-enabled device whose neighbors to list","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"equinix_metal_devices":{"version":0,"block":{"attributes":{"devices":{"type":["list",["object",{"access_private_ipv4":"string","access_public_ipv4":"string","access_public_ipv6":"string","always_pxe":"bool","billing_cycle":"string","description":"string","device_id":"string","facility":"string","hardware_reservation_id":"string","hostname":"string","ipxe_script_url":"string","metro":"string","network":["list",["object",{"address":"string","cidr":"number","family":"number","gateway":"string","public":"bool"}]],"network_type":"string","operating_system":"string","plan":"string","ports":["list",["object",{"bonded":"bool","id":"string","mac":"string","name":"string","type":"string"}]],"project_id":"string","root_password":"string","sos_hostname":"string","ssh_key_ids":["list","string"],"state":"string","storage":"string","tags":["list","string"]}]],"description":"List of devices that match specified filters","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The id of the organization to query for devices","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The id of the project to query for devices","description_kind":"plain","optional":true},"search":{"type":"string","description":"Search string to filter devices by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"all":{"type":"bool","description":"If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values","description_kind":"plain","optional":true},"attribute":{"type":"string","description":"The attribute used to filter. Filter attributes are case-sensitive","description_kind":"plain","required":true},"match_by":{"type":"string","description":"The type of comparison to apply. One of: in (default), re, substring, less_than, less_than_or_equal, greater_than, greater_than_or_equal","description_kind":"plain","optional":true},"values":{"type":["list","string"],"description":"The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values","description_kind":"plain","required":true}},"description":"One or more attribute/values pairs on which to filter results","description_kind":"plain"}},"sort":{"nesting_mode":"list","block":{"attributes":{"attribute":{"type":"string","description":"The attribute used to sort the results. Sort attributes are case-sensitive","description_kind":"plain","required":true},"direction":{"type":"string","description":"Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc","description_kind":"plain","optional":true}},"description":"One or more attribute/direction pairs on which to sort results. If multiple sorts are provided, they will be applied in order","description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_facility":{"version":0,"block":{"attributes":{"code":{"type":"string","description":"The code of the Facility to match","description_kind":"plain","required":true},"features":{"type":["list","string"],"description":"The features of this Facility","description_kind":"plain","computed":true},"features_required":{"type":["set","string"],"description":"Features which the facility needs to have","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"This facility's metro code","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of this Facility","description_kind":"plain","computed":true}},"block_types":{"capacity":{"nesting_mode":"list","block":{"attributes":{"plan":{"type":"string","description":"Plan which has to be available in selected location","description_kind":"plain","required":true},"quantity":{"type":"number","description_kind":"plain","optional":true}},"description":"Optional list of capacity specifications by plan","description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"equinix_metal_gateway":{"version":0,"block":{"attributes":{"gateway_id":{"type":"string","description":"UUID of the Metal Gateway to fetch","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_reservation_id":{"type":"string","description":"UUID of the IP Reservation to associate, must be in the same metro as the VLAN","description_kind":"plain","computed":true},"private_ipv4_subnet_size":{"type":"number","description":"Size of the private IPv4 subnet to create for this gateway, one of [8 16 32 64 128]","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"UUID of the Project where the Gateway is scoped to","description_kind":"plain","computed":true},"state":{"type":"string","description":"Status of the virtual circuit resource","description_kind":"plain","computed":true},"vlan_id":{"type":"string","description":"UUID of the VLAN to associate","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description":"UUID of the VRF associated with the IP Reservation","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_hardware_reservation":{"version":0,"block":{"attributes":{"device_id":{"type":"string","description":"UUID of device occupying the reservation","description_kind":"plain","optional":true,"computed":true},"facility":{"type":"string","description":"Facility for the reservation","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description":"ID of the hardware reservation to look up","description_kind":"plain","optional":true,"computed":true},"plan":{"type":"string","description":"Plan type for the reservation","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"UUID of project this reservation is scoped to","description_kind":"plain","computed":true},"provisionable":{"type":"bool","description":"Flag indicating whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first","description_kind":"plain","computed":true},"short_id":{"type":"string","description":"Reservation short ID","description_kind":"plain","computed":true},"spare":{"type":"bool","description":"Flag indicating whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix","description_kind":"plain","computed":true},"switch_uuid":{"type":"string","description":"Switch short ID, can be used to determine if two devices are connected to the same switch","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_ip_block_ranges":{"version":0,"block":{"attributes":{"facility":{"type":"string","description":"Facility code filtering the IP blocks. Global IPv4 blocks will be listed anyway. If you omit this and metro, all the block from the project will be listed","description_kind":"plain","deprecated":true,"optional":true},"global_ipv4":{"type":["list","string"],"description":"List of CIDR expressions for Global IPv4 blocks in the project","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv6":{"type":["list","string"],"description":"List of CIDR expressions for IPv6 blocks in the project","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro code filtering the IP blocks. Global IPv4 blocks will be listed anyway. If you omit this and facility, all the block from the project will be listed","description_kind":"plain","optional":true},"private_ipv4":{"type":["list","string"],"description":"List of CIDR expressions for Private IPv4 blocks in the project","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the project from which to list the blocks","description_kind":"plain","required":true},"public_ipv4":{"type":["list","string"],"description":"List of CIDR expressions for Public IPv4 blocks in the project","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_metro":{"version":0,"block":{"attributes":{"code":{"type":"string","description":"The code of the Metro to match","description_kind":"plain","required":true},"country":{"type":"string","description":"The country of this Metro","description_kind":"plain","computed":true},"id":{"type":"string","description":"The ID of this Metro","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of this Metro","description_kind":"plain","computed":true}},"block_types":{"capacity":{"nesting_mode":"list","block":{"attributes":{"plan":{"type":"string","description":"Plan which has to be available in selected location","description_kind":"plain","required":true},"quantity":{"type":"number","description_kind":"plain","optional":true}},"description":"Optional list of capacity specifications by plan","description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_operating_system":{"version":0,"block":{"attributes":{"distro":{"type":"string","description":"Name of the OS distribution","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name or part of the name of the distribution. Case insensitive","description_kind":"plain","optional":true},"provisionable_on":{"type":"string","description":"Plan name","description_kind":"plain","optional":true},"slug":{"type":"string","description":"Operating system slug (same as id)","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of the distribution","description_kind":"plain","optional":true}},"description_kind":"plain"}},"equinix_metal_organization":{"version":0,"block":{"attributes":{"address":{"type":["list",["object",{"address":"string","city":"string","country":"string","state":"string","zip_code":"string"}]],"description":"Business' address","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"logo":{"type":"string","description":"Logo URL","description_kind":"plain","computed":true},"name":{"type":"string","description":"The organization name","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The UUID of the organization resource","description_kind":"plain","optional":true,"computed":true},"project_ids":{"type":["list","string"],"description":"UUIDs of project resources which belong to this organization","description_kind":"plain","computed":true},"twitter":{"type":"string","description":"Twitter handle","description_kind":"plain","computed":true},"website":{"type":"string","description":"Website link","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_plans":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plans":{"type":["list",["object",{"available_in":["set","string"],"available_in_metros":["set","string"],"class":"string","deployment_types":["set","string"],"description":"string","id":"string","legacy":"bool","line":"string","name":"string","pricing_hour":"number","pricing_month":"number","slug":"string"}]],"description":"Sorted list of available server plans that match the specified filters","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"all":{"type":"bool","description":"If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values","description_kind":"plain","optional":true},"attribute":{"type":"string","description":"The attribute used to filter. Filter attributes are case-sensitive","description_kind":"plain","required":true},"match_by":{"type":"string","description":"The type of comparison to apply. One of: in (default), re, substring, less_than, less_than_or_equal, greater_than, greater_than_or_equal","description_kind":"plain","optional":true},"values":{"type":["list","string"],"description":"The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values","description_kind":"plain","required":true}},"description":"One or more attribute/values pairs on which to filter results","description_kind":"plain"}},"sort":{"nesting_mode":"list","block":{"attributes":{"attribute":{"type":"string","description":"The attribute used to sort the results. Sort attributes are case-sensitive","description_kind":"plain","required":true},"direction":{"type":"string","description":"Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc","description_kind":"plain","optional":true}},"description":"One or more attribute/direction pairs on which to sort results. If multiple sorts are provided, they will be applied in order","description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_port":{"version":0,"block":{"attributes":{"bond_id":{"type":"string","description":"UUID of the bond port","description_kind":"plain","computed":true},"bond_name":{"type":"string","description":"Name of the bond port","description_kind":"plain","computed":true},"bonded":{"type":"bool","description":"Flag indicating whether the port is bonded","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"Device UUID where to lookup the port","description_kind":"plain","optional":true},"disbond_supported":{"type":"bool","description":"Flag indicating whether the port can be removed from a bond","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"layer2":{"type":"bool","description":"Flag indicating whether the port is in layer2 (or layer3) mode","description_kind":"plain","computed":true},"mac":{"type":"string","description":"MAC address of the port","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the port to look up, e.g. bond0, eth1","description_kind":"plain","optional":true,"computed":true},"native_vlan_id":{"type":"string","description":"UUID of native VLAN of the port","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"One of layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded","description_kind":"plain","computed":true},"port_id":{"type":"string","description":"UUID of the port to lookup","description_kind":"plain","optional":true},"type":{"type":"string","description":"Port type","description_kind":"plain","computed":true},"vlan_ids":{"type":["list","string"],"description":"UUIDs of attached VLANs","description_kind":"plain","computed":true},"vxlan_ids":{"type":["list","number"],"description":"UUIDs of attached VLANs","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_precreated_ip_block":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"address_family":{"type":"number","description":"4 or 6, depending on which block you are looking for.","description_kind":"plain","required":true},"cidr":{"type":"number","description":"Length of CIDR prefix of the block as integer","description_kind":"plain","computed":true},"cidr_notation":{"type":"string","description":"CIDR notation of the looked up block.","description_kind":"plain","computed":true},"facility":{"type":"string","description":"Facility of the searched block. (for non-global blocks).","description_kind":"plain","optional":true},"gateway":{"type":"string","description_kind":"plain","computed":true},"global":{"type":"bool","description":"Whether to look for global block. Default is false for backward compatibility.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manageable":{"type":"bool","description_kind":"plain","computed":true},"management":{"type":"bool","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro of the searched block (for non-global blocks).","description_kind":"plain","optional":true},"netmask":{"type":"string","description":"Mask in decimal notation, e.g. 255.255.255.0","description_kind":"plain","computed":true},"network":{"type":"string","description":"Network IP address portion of the block specification","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the project where the searched block should be.","description_kind":"plain","required":true},"public":{"type":"bool","description":"Whether to look for public or private block.","description_kind":"plain","required":true},"quantity":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_project":{"version":0,"block":{"attributes":{"backend_transfer":{"type":"bool","description":"Whether Backend Transfer is enabled for this project","description_kind":"plain","computed":true},"bgp_config":{"type":["list",["object",{"asn":"number","deployment_type":"string","max_prefix":"number","md5":"string","status":"string"}]],"description":"Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/)","description_kind":"plain","computed":true},"created":{"type":"string","description":"The timestamp for when the project was created","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name which is used to look up the project","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The UUID of this project's parent organization","description_kind":"plain","computed":true},"payment_method_id":{"type":"string","description":"The UUID of payment method for this project","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The UUID by which to look up the project","description_kind":"plain","optional":true,"computed":true},"updated":{"type":"string","description":"The timestamp for the last time the project was updated","description_kind":"plain","computed":true},"user_ids":{"type":["list","string"],"description":"List of UUIDs of user accounts which belong to this project","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_project_ssh_key":{"version":0,"block":{"attributes":{"created":{"type":"string","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the SSH Key","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The label of the Equinix Metal SSH Key","description_kind":"plain","computed":true},"owner_id":{"type":"string","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The Equinix Metal project id of the Equinix Metal SSH Key","description_kind":"plain","required":true},"public_key":{"type":"string","description":"The public SSH key that will be authorized for SSH access on Equinix Metal devices provisioned with this key","description_kind":"plain","computed":true},"search":{"type":"string","description":"The name, fingerprint, id, or public_key of the SSH Key to search for in the Equinix Metal project","description_kind":"plain","optional":true},"updated":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_reserved_ip_block":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"address_family":{"type":"number","description":"4 or 6","description_kind":"plain","computed":true},"cidr":{"type":"number","description":"Length of CIDR prefix of the block as integer","description_kind":"plain","computed":true},"cidr_notation":{"type":"string","description":"CIDR notation of the looked up block","description_kind":"plain","computed":true},"facility":{"type":"string","description":"Facility of the block. (for non-global blocks)","description_kind":"plain","deprecated":true,"computed":true},"gateway":{"type":"string","description":"IP address of gateway for the block","description_kind":"plain","computed":true},"global":{"type":"bool","description":"Addresses from block are attachable in all locations","description_kind":"plain","computed":true},"id":{"type":"string","description":"ID of the block to look up","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"Find block containing this IP address in given project","description_kind":"plain","optional":true},"manageable":{"type":"bool","description_kind":"plain","computed":true},"management":{"type":"bool","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro of the block (for non-global blocks)","description_kind":"plain","computed":true},"netmask":{"type":"string","description":"Mask in decimal notation, e.g. 255.255.255.0","description_kind":"plain","computed":true},"network":{"type":"string","description":"Network IP address portion of the block specification","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the project where the searched block should be","description_kind":"plain","optional":true,"computed":true},"public":{"type":"bool","description":"Addresses from public block are routeable from the Internet","description_kind":"plain","computed":true},"quantity":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description":"Address type, one of public_ipv4, public_ipv6, private_ipv4, global_ipv4, and vrf","description_kind":"plain","computed":true},"vrf_id":{"type":"number","description":"VRF ID of the block when type=vrf","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_spot_market_price":{"version":0,"block":{"attributes":{"facility":{"type":"string","description":"Name of the facility","description_kind":"plain","deprecated":true,"optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"Name of the metro","description_kind":"plain","optional":true},"plan":{"type":"string","description":"Name of the plan","description_kind":"plain","required":true},"price":{"type":"number","description":"Current spot market price for given plan in given facility","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_spot_market_request":{"version":0,"block":{"attributes":{"device_ids":{"type":["list","string"],"description":"List of IDs of devices spawned by the referenced Spot Market Request","description_kind":"plain","computed":true},"devices_max":{"type":"number","description":"Maximum number devices to be created","description_kind":"plain","computed":true},"devices_min":{"type":"number","description":"Miniumum number devices to be created","description_kind":"plain","computed":true},"end_at":{"type":"string","description":"Date and time When the spot market request will be ended.","description_kind":"plain","computed":true},"facilities":{"type":["list","string"],"description":"Facility IDs where devices should be created","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_bid_price":{"type":"number","description":"Maximum price user is willing to pay per hour per device","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro where devices should be created.","description_kind":"plain","computed":true},"plan":{"type":"string","description":"The device plan slug.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project ID","description_kind":"plain","computed":true},"request_id":{"type":"string","description":"The id of the Spot Market Request","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_virtual_circuit":{"version":0,"block":{"attributes":{"connection_id":{"type":"string","description":"UUID of Connection where the VC is scoped to","description_kind":"plain","computed":true},"customer_ip":{"type":"string","description":"The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the virtual circuit","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"md5":{"type":"string","description":"The password that can be set for the VRF BGP peer","description_kind":"plain","computed":true,"sensitive":true},"metal_ip":{"type":"string","description":"The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the virtual circuit","description_kind":"plain","computed":true},"nni_vlan":{"type":"number","description":"Nni VLAN parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"nni_vnid":{"type":"number","description":"Nni VLAN ID parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"peer_asn":{"type":"number","description":"The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the local_asn of the VRF.","description_kind":"plain","computed":true},"port_id":{"type":"string","description":"UUID of the Connection Port where the VC is scoped to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the projct to which the virtual circuit belongs","description_kind":"plain","computed":true},"speed":{"type":"string","description":"Description of the Virtual Circuit speed. This is for information purposes and is computed when the connection type is shared.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Status of the virtual circuit","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"A subnet from one of the IP blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.\n\t\t\t\t * For a /31 block, it will only have two IP addresses, which will be used for the metal_ip and customer_ip.\n\t\t\t\t * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Tags attached to the virtual circuit","description_kind":"plain","computed":true},"virtual_circuit_id":{"type":"string","description":"ID of the virtual circuit to lookup","description_kind":"plain","required":true},"vlan_id":{"type":"string","description":"UUID of the associated VLAN","description_kind":"plain","computed":true},"vnid":{"type":"number","description":"VNID VLAN parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description":"UUID of the associated VRF","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_vlan":{"version":0,"block":{"attributes":{"assigned_devices_ids":{"type":["list","string"],"description":"List of device IDs to which this VLAN is assigned","description_kind":"plain","computed":true},"description":{"type":"string","description":"VLAN description text","description_kind":"plain","computed":true},"facility":{"type":"string","description":"Facility where the VLAN is deployed","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"Metro where the VLAN is deployed","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"ID of parent project of the VLAN. Use together with vxlan and metro or facility","description_kind":"plain","optional":true,"computed":true},"vlan_id":{"type":"string","description":"Metal UUID of the VLAN resource","description_kind":"plain","optional":true,"computed":true},"vxlan":{"type":"number","description":"VXLAN numner of the VLAN. Unique in a project and facility or metro. Use with project_id","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"equinix_metal_vrf":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description of the VRF","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_ranges":{"type":["set","string"],"description":"All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.","description_kind":"plain","computed":true},"local_asn":{"type":"number","description":"The 4-byte ASN set on the VRF.","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro Code","description_kind":"plain","computed":true},"name":{"type":"string","description":"User-supplied name of the VRF, unique to the project","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project ID","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description":"ID of the VRF to lookup","description_kind":"plain","required":true}},"description_kind":"plain"}},"equinix_network_account":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Account location metro cod","description_kind":"plain","required":true},"name":{"type":"string","description":"Account name for filtering","description_kind":"plain","optional":true,"computed":true},"number":{"type":"string","description":"Account unique number","description_kind":"plain","computed":true},"status":{"type":"string","description":"Account status for filtering. Possible values are Active, Processing, Submitted, Staged","description_kind":"plain","optional":true,"computed":true},"ucm_id":{"type":"string","description":"Account unique identifier","description_kind":"plain","computed":true}},"description":"Use this data source to get number and identifier of Equinix Network Edge billing account in a given metro location","description_kind":"plain"}},"equinix_network_device":{"version":0,"block":{"attributes":{"account_number":{"type":"string","description":"Device billing account number","description_kind":"plain","computed":true},"acl_template_id":{"type":"string","description":"Unique identifier of applied ACL template","description_kind":"plain","computed":true},"additional_bandwidth":{"type":"number","description":"Additional Internet bandwidth, in Mbps, that will be allocated to the device","description_kind":"plain","computed":true},"asn":{"type":"number","description":"Autonomous system number","description_kind":"plain","computed":true},"byol":{"type":"bool","description":"Boolean value that determines device licensing mode: bring your own license or subscription (default)","description_kind":"plain","computed":true},"cluster_details":{"type":["list",["object",{"cluster_id":"string","cluster_name":"string","node0":["list",["object",{"license_file_id":"string","license_token":"string","name":"string","uuid":"string","vendor_configuration":["list",["object",{"activation_key":"string","admin_password":"string","controller1":"string","controller_fqdn":"string","hostname":"string","root_password":"string"}]]}]],"node1":["list",["object",{"license_file_id":"string","license_token":"string","name":"string","uuid":"string","vendor_configuration":["list",["object",{"activation_key":"string","admin_password":"string","controller1":"string","controller_fqdn":"string","hostname":"string","root_password":"string"}]]}]],"num_of_nodes":"number"}]],"description":"An object that has the cluster details","description_kind":"plain","computed":true},"connectivity":{"type":"string","description":"Parameter to identify internet access for device. Supported Values: INTERNET-ACCESS(default) or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT","description_kind":"plain","computed":true},"core_count":{"type":"number","description":"Number of CPU cores used by device","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Device hostname prefix","description_kind":"plain","computed":true},"ibx":{"type":"string","description":"Device location Equinix Business Exchange name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface":{"type":["list",["object",{"assigned_type":"string","id":"number","ip_address":"string","mac_address":"string","name":"string","operational_status":"string","status":"string","type":"string"}]],"description":"List of device interfaces","description_kind":"plain","computed":true},"interface_count":{"type":"number","description":"Number of network interfaces on a device. If not specified, default number for a given device type will be used","description_kind":"plain","computed":true},"license_file":{"type":"string","description":"Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode","description_kind":"plain","computed":true},"license_file_id":{"type":"string","description":"Unique identifier of applied license file","description_kind":"plain","computed":true},"license_status":{"type":"string","description":"Device license registration status","description_kind":"plain","computed":true},"license_token":{"type":"string","description":"License Token applicable for some device types in BYOL licensing mode","description_kind":"plain","computed":true},"metro_code":{"type":"string","description":"Device location metro code","description_kind":"plain","computed":true},"mgmt_acl_template_uuid":{"type":"string","description":"Unique identifier of applied MGMT ACL template","description_kind":"plain","computed":true},"name":{"type":"string","description":"Device name","description_kind":"plain","optional":true,"computed":true},"notifications":{"type":["set","string"],"description":"List of email addresses that will receive device status notifications","description_kind":"plain","computed":true},"order_reference":{"type":"string","description":"Name/number used to identify device order on the invoice","description_kind":"plain","computed":true},"package_code":{"type":"string","description":"Device software package code","description_kind":"plain","computed":true},"purchase_order_number":{"type":"string","description":"Purchase order number associated with a device order","description_kind":"plain","computed":true},"redundancy_type":{"type":"string","description":"Device redundancy type applicable for HA devices, either primary or secondary","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description":"Unique identifier for a redundant device, applicable for HA device","description_kind":"plain","computed":true},"region":{"type":"string","description":"Device location region","description_kind":"plain","computed":true},"secondary_device":{"type":["list",["object",{"account_number":"string","acl_template_id":"string","additional_bandwidth":"number","asn":"number","cloud_init_file_id":"string","hostname":"string","ibx":"string","interface":["list",["object",{"assigned_type":"string","id":"number","ip_address":"string","mac_address":"string","name":"string","operational_status":"string","status":"string","type":"string"}]],"license_file":"string","license_file_id":"string","license_status":"string","license_token":"string","metro_code":"string","mgmt_acl_template_uuid":"string","name":"string","notifications":["set","string"],"redundancy_type":"string","redundant_id":"string","region":"string","ssh_ip_address":"string","ssh_ip_fqdn":"string","ssh_key":["set",["object",{"key_name":"string","username":"string"}]],"status":"string","uuid":"string","vendor_configuration":["map","string"],"wan_interface_id":"string","zone_code":"string"}]],"description":"Definition of secondary device applicable for HA setup","description_kind":"plain","computed":true},"self_managed":{"type":"bool","description":"Boolean value that determines device management mode: self-managed or subscription (default)","description_kind":"plain","computed":true},"ssh_ip_address":{"type":"string","description":"IP address of SSH enabled interface on the device","description_kind":"plain","computed":true},"ssh_ip_fqdn":{"type":"string","description":"FQDN of SSH enabled interface on the device","description_kind":"plain","computed":true},"ssh_key":{"type":["set",["object",{"key_name":"string","username":"string"}]],"description":"Definition of SSH key that will be provisioned on a device","description_kind":"plain","computed":true},"status":{"type":"string","description":"Device provisioning status","description_kind":"plain","computed":true},"term_length":{"type":"number","description":"Device term length","description_kind":"plain","computed":true},"throughput":{"type":"number","description":"Device license throughput","description_kind":"plain","computed":true},"throughput_unit":{"type":"string","description":"Device license throughput unit (Mbps or Gbps)","description_kind":"plain","computed":true},"type_code":{"type":"string","description":"Device type code","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Device unique identifier","description_kind":"plain","optional":true,"computed":true},"valid_status_list":{"type":"string","description":"Comma Separated List of states to be considered valid when searching by name","description_kind":"plain","optional":true},"vendor_configuration":{"type":["map","string"],"description":"Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress)","description_kind":"plain","computed":true},"version":{"type":"string","description":"Device software software version","description_kind":"plain","computed":true},"wan_interface_id":{"type":"string","description":"device interface id picked for WAN","description_kind":"plain","computed":true},"zone_code":{"type":"string","description":"Device location zone code","description_kind":"plain","computed":true}},"description":"Use this data source to get details of Equinix Network Edge network device with a given Name or UUID","description_kind":"plain"}},"equinix_network_device_platform":{"version":0,"block":{"attributes":{"core_count":{"type":"number","description":"Number of CPU cores used to limit platform search results","description_kind":"plain","optional":true,"computed":true},"device_type":{"type":"string","description":"Device type code","description_kind":"plain","required":true},"flavor":{"type":"string","description":"Device platform flavor that determines number of CPU cores and memory. Supported values: small, medium, large, xlarge","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"license_options":{"type":["set","string"],"description":"List of device licensing options to limit platform search result. Supported values: BYOL (Bring Your Own License), Sub (license subscription)","description_kind":"plain","optional":true,"computed":true},"management_types":{"type":["set","string"],"description":"List of device management types to limit platform search results. Supported values: EQUINIX-CONFIGURED, SELF-CONFIGURED","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description":"The amount of memory provided by device platform","description_kind":"plain","computed":true},"memory_unit":{"type":"string","description":"Unit of memory provider by device platform","description_kind":"plain","computed":true},"packages":{"type":["set","string"],"description":"List of software package codes to limit platform search results","description_kind":"plain","optional":true,"computed":true}},"description":"Use this data source to get Equinix Network Edge device platform configuration details for a given device type","description_kind":"plain"}},"equinix_network_device_software":{"version":0,"block":{"attributes":{"date":{"type":"string","description":"Version release date","description_kind":"plain","computed":true},"device_type":{"type":"string","description":"Code of a device type","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_name":{"type":"string","description":"Software image name","description_kind":"plain","computed":true},"most_recent":{"type":"bool","description":"Boolean value to indicate that most recent version should be used, in case when more than one result is returned","description_kind":"plain","optional":true},"packages":{"type":["set","string"],"description":"Limits returned versions to those that are supported by given software package codes","description_kind":"plain","optional":true,"computed":true},"release_notes_link":{"type":"string","description":"Link to version release notes","description_kind":"plain","computed":true},"stable":{"type":"bool","description":"Boolean value to limit query results to stable versions only","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Version status","description_kind":"plain","computed":true},"version":{"type":"string","description":"Software version","description_kind":"plain","computed":true},"version_regex":{"type":"string","description":"A regex string to apply on returned versions and filter search results","description_kind":"plain","optional":true}},"description":"Use this data source to get Equinix Network Edge device software details for a given device type.","description_kind":"plain"}},"equinix_network_device_type":{"version":0,"block":{"attributes":{"category":{"type":"string","description":"Device type category, one of: Router, Firewall, SDWAN","description_kind":"plain","optional":true,"computed":true},"code":{"type":"string","description":"Device type short code, unique identifier of a network device type","description_kind":"plain","computed":true},"description":{"type":"string","description":"Device type textual description","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_codes":{"type":["set","string"],"description":"List of metro codes where device type has to be available","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Device type name","description_kind":"plain","optional":true,"computed":true},"vendor":{"type":"string","description":"Device type vendor i.e. Cisco, Juniper Networks, VERSA Networks","description_kind":"plain","optional":true,"computed":true}},"description":"Use this data source to get Equinix Network Edge device type details","description_kind":"plain"}}}}}} +{"format_version":"1.0","provider_schemas":{"registry.terraform.io/equinix/equinix":{"provider":{"version":0,"block":{"attributes":{"auth_token":{"type":"string","description":"The Equinix Metal API auth key for API operations","description_kind":"plain","optional":true},"client_id":{"type":"string","description":"API Consumer Key available under My Apps section in developer portal","description_kind":"plain","optional":true},"client_secret":{"type":"string","description":"API Consumer secret available under My Apps section in developer portal","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The Equinix API base URL to point out desired environment. Defaults to https://api.equinix.com","description_kind":"plain","optional":true},"max_retries":{"type":"number","description":"Maximum number of retries.","description_kind":"plain","optional":true},"max_retry_wait_seconds":{"type":"number","description":"Maximum number of seconds to wait before retrying a request.","description_kind":"plain","optional":true},"request_timeout":{"type":"number","description":"The duration of time, in seconds, that the Equinix Platform API Client should wait before canceling an API request. Defaults to 30","description_kind":"plain","optional":true},"response_max_page_size":{"type":"number","description":"The maximum number of records in a single response for REST queries that produce paginated responses","description_kind":"plain","optional":true},"token":{"type":"string","description":"API token from the developer sandbox","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_schemas":{"equinix_ecx_l2_connection":{"version":0,"block":{"attributes":{"actions":{"type":["set",["object",{"message":"string","operation_id":"string","required_data":["set",["object",{"editable":"bool","key":"string","label":"string","validation_pattern":"string","value":"string"}]],"type":"string"}]],"description":"One or more pending actions to complete connection provisioning","description_kind":"plain","computed":true},"authorization_key":{"type":"string","description":"Text field used to authorize connection on the provider side. Value depends on a provider service profile used for connection","description_kind":"plain","optional":true,"computed":true},"device_interface_id":{"type":"number","description":"Identifier of network interface on a given device, used for a connection. If not specified then first available interface will be selected","description_kind":"plain","optional":true},"device_uuid":{"type":"string","description":"Unique identifier of the Network Edge virtual device from which the connection would originate","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"named_tag":{"type":"string","description":"The type of peering to set up in case when connecting to Azure Express Route. One of PRIVATE, MICROSOFT, MANUAL, PUBLIC (MANUAL and PUBLIC are deprecated and not available for new connections)","description_kind":"plain","optional":true},"notifications":{"type":["set","string"],"description":"A list of email addresses used for sending connection update notifications","description_kind":"plain","required":true},"port_uuid":{"type":"string","description":"Unique identifier of the buyer's port from which the connection would originate","description_kind":"plain","optional":true,"computed":true},"profile_uuid":{"type":"string","description":"Unique identifier of the service provider's service profile","description_kind":"plain","optional":true,"computed":true},"provider_status":{"type":"string","description":"Connection provisioning status on service provider's side","description_kind":"plain","computed":true},"purchase_order_number":{"type":"string","description":"Connection's purchase order number to reflect on the invoice","description_kind":"plain","optional":true},"redundancy_group":{"type":"string","description":"Unique identifier of group containing a primary and secondary connection","description_kind":"plain","computed":true},"redundancy_type":{"type":"string","description":"Connection redundancy type, applicable for HA connections. Either primary or secondary","description_kind":"plain","computed":true},"redundant_uuid":{"type":"string","description":"Unique identifier of the redundant connection, applicable for HA connections","description_kind":"plain","computed":true},"seller_metro_code":{"type":"string","description":"The metro code that denotes the connection's remote side (z-side)","description_kind":"plain","optional":true,"computed":true},"seller_region":{"type":"string","description":"The region in which the seller port resides","description_kind":"plain","optional":true},"service_token":{"type":"string","description":"Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity from a shared multi-tenant port (a-side)","description_kind":"plain","optional":true},"speed":{"type":"number","description":"Speed/Bandwidth to be allocated to the connection","description_kind":"plain","required":true},"speed_unit":{"type":"string","description":"Unit of the speed/bandwidth to be allocated to the connection","description_kind":"plain","required":true},"status":{"type":"string","description":"Connection provisioning status on Equinix Fabric side","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of the connection","description_kind":"plain","computed":true},"vendor_token":{"type":"string","description":"The Equinix Fabric Token the connection was created with. Applicable if the connection was created with a ServiceToken (a-side) or ZSideServiceToken (z-side)","description_kind":"plain","computed":true},"vlan_ctag":{"type":"number","description":"C-Tag/Inner-Tag of the connection, a numeric character ranging from 2 - 4094","description_kind":"plain","optional":true},"vlan_stag":{"type":"number","description":"S-Tag/Outer-Tag of the connection, a numeric character ranging from 2 - 4094","description_kind":"plain","optional":true,"computed":true},"zside_port_uuid":{"type":"string","description":"Unique identifier of the port on the remote side (z-side)","description_kind":"plain","optional":true,"computed":true},"zside_service_token":{"type":"string","description":"Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity to a shared multi-tenant port (z-side)","description_kind":"plain","optional":true},"zside_vlan_ctag":{"type":"number","description":"C-Tag/Inner-Tag of the connection on the remote side (z-side)","description_kind":"plain","optional":true,"computed":true},"zside_vlan_stag":{"type":"number","description":"S-Tag/Outer-Tag of the connection on the remote side (z-side)","description_kind":"plain","optional":true,"computed":true}},"block_types":{"additional_info":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"Additional information key","description_kind":"plain","required":true},"value":{"type":"string","description":"Additional information value","description_kind":"plain","required":true}},"description":"One or more additional information key-value objects","description_kind":"plain"}},"secondary_connection":{"nesting_mode":"list","block":{"attributes":{"actions":{"type":["set",["object",{"message":"string","operation_id":"string","required_data":["set",["object",{"editable":"bool","key":"string","label":"string","validation_pattern":"string","value":"string"}]],"type":"string"}]],"description":"One or more pending actions to complete connection provisioning","description_kind":"plain","computed":true},"authorization_key":{"type":"string","description":"Text field used to authorize connection on the provider side. Value depends on a provider service profile used for connection","description_kind":"plain","optional":true,"computed":true},"device_interface_id":{"type":"number","description":"Identifier of network interface on a given device, used for a connection. If not specified then first available interface will be selected","description_kind":"plain","optional":true,"computed":true},"device_uuid":{"type":"string","description":"Unique identifier of the Network Edge virtual device from which the connection would originate","description_kind":"plain","optional":true},"name":{"type":"string","description":"Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"port_uuid":{"type":"string","description":"Unique identifier of the buyer's port from which the connection would originate","description_kind":"plain","optional":true,"computed":true},"profile_uuid":{"type":"string","description":"Unique identifier of the service provider's service profile","description_kind":"plain","optional":true,"computed":true},"provider_status":{"type":"string","description":"Connection provisioning status on service provider's side","description_kind":"plain","computed":true},"redundancy_group":{"type":"string","description":"Unique identifier of group containing a primary and secondary connection","description_kind":"plain","computed":true},"redundancy_type":{"type":"string","description":"Connection redundancy type, applicable for HA connections. Either primary or secondary","description_kind":"plain","computed":true},"redundant_uuid":{"type":"string","description":"Unique identifier of the redundant connection, applicable for HA connections","description_kind":"plain","deprecated":true,"computed":true},"seller_metro_code":{"type":"string","description":"The metro code that denotes the connection's remote side (z-side)","description_kind":"plain","optional":true,"computed":true},"seller_region":{"type":"string","description":"The region in which the seller port resides","description_kind":"plain","optional":true,"computed":true},"service_token":{"type":"string","description":"Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity from a shared multi-tenant port (a-side)","description_kind":"plain","optional":true},"speed":{"type":"number","description":"Speed/Bandwidth to be allocated to the connection","description_kind":"plain","optional":true,"computed":true},"speed_unit":{"type":"string","description":"Unit of the speed/bandwidth to be allocated to the connection","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Connection provisioning status on Equinix Fabric side","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of the connection","description_kind":"plain","computed":true},"vendor_token":{"type":"string","description":"The Equinix Fabric Token the connection was created with. Applicable if the connection was created with a ServiceToken (a-side) or ZSideServiceToken (z-side)","description_kind":"plain","computed":true},"vlan_ctag":{"type":"number","description":"C-Tag/Inner-Tag of the connection, a numeric character ranging from 2 - 4094","description_kind":"plain","optional":true},"vlan_stag":{"type":"number","description":"S-Tag/Outer-Tag of the connection, a numeric character ranging from 2 - 4094","description_kind":"plain","optional":true,"computed":true},"zside_port_uuid":{"type":"string","description":"Unique identifier of the port on the remote side (z-side)","description_kind":"plain","computed":true},"zside_vlan_ctag":{"type":"number","description":"C-Tag/Inner-Tag of the connection on the remote side (z-side)","description_kind":"plain","computed":true},"zside_vlan_stag":{"type":"number","description":"S-Tag/Outer-Tag of the connection on the remote side (z-side)","description_kind":"plain","computed":true}},"description":"Definition of secondary connection for redundant, HA connectivity","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Fabric\tlayer 2 connections","description_kind":"plain","deprecated":true}},"equinix_ecx_l2_connection_accepter":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"Access Key used to accept connection on provider side","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"aws_connection_id":{"type":"string","description":"Identifier of a hosted Direct Connect connection on AWS side, applicable for accepter resource with connections to AWS only","description_kind":"plain","computed":true},"aws_profile":{"type":"string","description":"AWS Profile Name for retrieving credentials from shared credentials file","description_kind":"plain","optional":true},"connection_id":{"type":"string","description":"Identifier of layer 2 connection that will be accepted","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"Secret Key used to accept connection on provider side","description_kind":"plain","optional":true,"computed":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource is used to accept Equinix Fabric layer 2 connection on provider side","description_kind":"plain","deprecated":true}},"equinix_ecx_l2_serviceprofile":{"version":0,"block":{"attributes":{"api_integration":{"type":"bool","description":"Specifies the API integration ID that was provided to the customer during onboarding","description_kind":"plain","optional":true},"authkey_label":{"type":"string","description":"Name of the authentication key label to be used by the Authentication Key service","description_kind":"plain","optional":true},"bandwidth_alert_threshold":{"type":"number","description":"Specifies the port bandwidth threshold percentage. If the bandwidth limit is met or exceeded, an alert is sent to the seller","description_kind":"plain","optional":true},"bandwidth_threshold_notifications":{"type":["set","string"],"description":"A list of email addresses that will receive notifications about bandwidth thresholds","description_kind":"plain","required":true},"connection_name_label":{"type":"string","description":"Custom name used for calling a connections i.e. circuit. Defaults to Connection","description_kind":"plain","optional":true},"ctag_label":{"type":"string","description":"C-Tag/Inner-Tag label name for the connections","description_kind":"plain","optional":true},"description":{"type":"string","description":"Description of the service profile","description_kind":"plain","optional":true},"equinix_managed_port_vlan":{"type":"bool","description":"Boolean value that indicates whether the port and VLAN details are managed by Equinix","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integration_id":{"type":"string","description":"Specifies the API integration ID that was provided to the customer during onboarding","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the service profile. An alpha-numeric 50 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"oversubscription":{"type":"string","description":"Oversubscription limit that will cause alerting. Default is 1x","description_kind":"plain","optional":true},"oversubscription_allowed":{"type":"bool","description":"Boolean value that determines if, regardless of the utilization, Equinix Fabric will continue to add connections to your links until we reach the oversubscription limit","description_kind":"plain","optional":true},"private":{"type":"bool","description":"Boolean value that indicates whether or not this is a private profile.","description_kind":"plain","optional":true},"private_user_emails":{"type":["set","string"],"description":"A list of email addresses associated to users that will be allowed to access this service profile. Applicable for private profiles","description_kind":"plain","optional":true},"profile_statuschange_notifications":{"type":["set","string"],"description":"A list of email addresses that will receive notifications about profile status changes","description_kind":"plain","required":true},"redundancy_required":{"type":"bool","description":"Boolean value that determines if yourconnections will require redundancy","description_kind":"plain","optional":true},"secondary_vlan_from_primary":{"type":"bool","description":"Indicates whether the VLAN ID of the secondary connection is the same as the primary connection","description_kind":"plain","optional":true},"servicekey_autogenerated":{"type":"bool","description":"Boolean value that indicates whether multiple connections can be created with the same authorization key","description_kind":"plain","optional":true},"speed_customization_allowed":{"type":"bool","description":"Boolean value that determines if customer is allowed to enter a custom connection speed","description_kind":"plain","optional":true},"speed_from_api":{"type":"bool","description":"Boolean valuta that determines if connection speed will be derived from an API call","description_kind":"plain","optional":true},"state":{"type":"string","description":"Service profile provisioning status","description_kind":"plain","computed":true},"tag_type":{"type":"string","description":"Specifies additional tagging information required by the seller profile for Dot1Q to QinQ translation","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Unique identifier of the service profile","description_kind":"plain","computed":true},"vc_statuschange_notifications":{"type":["set","string"],"description":"A list of email addresses that will receive notifications about connections approvals and rejections","description_kind":"plain","required":true}},"block_types":{"features":{"nesting_mode":"set","block":{"attributes":{"allow_remote_connections":{"type":"bool","description":"Indicates whether or not connections to this profile can be created from remote metro locations","description_kind":"plain","required":true},"test_profile":{"type":"bool","description":"Indicates whether or not this profile can be used for test connections","description_kind":"plain","deprecated":true,"optional":true}},"description":"Block of profile features configuration","description_kind":"plain"},"min_items":1,"max_items":1},"port":{"nesting_mode":"set","block":{"attributes":{"metro_code":{"type":"string","description":"Port location metro code","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Unique identifier of the port","description_kind":"plain","required":true}},"description":"One or more definitions of ports associated with the profile","description_kind":"plain"},"min_items":1},"speed_band":{"nesting_mode":"set","block":{"attributes":{"speed":{"type":"number","description":"Speed/bandwidth supported by given service profile","description_kind":"plain","required":true},"speed_unit":{"type":"string","description":"Unit of the speed/bandwidth supported by given service profile","description_kind":"plain","required":true}},"description":"One or more definitions of supported speed/bandwidth configurations","description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"equinix_fabric_cloud_router":{"version":0,"block":{"attributes":{"bgp_ipv4_routes_count":{"type":"number","description":"Number of IPv4 BGP routes in use (including non-distinct prefixes)","description_kind":"plain","computed":true},"bgp_ipv6_routes_count":{"type":"number","description":"Number of IPv6 BGP routes in use (including non-distinct prefixes)","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures Fabric Cloud Router lifecycle change information","description_kind":"plain","computed":true},"connections_count":{"type":"number","description":"Number of connections associated with this Fabric Cloud Router instance","description_kind":"plain","computed":true},"description":{"type":"string","description":"Customer-provided Fabric Cloud Router description","description_kind":"plain","optional":true},"distinct_ipv4_prefixes_count":{"type":"number","description":"Number of distinct IPv4 routes","description_kind":"plain","computed":true},"distinct_ipv6_prefixes_count":{"type":"number","description":"Number of distinct IPv6 routes","description_kind":"plain","computed":true},"equinix_asn":{"type":"number","description":"Equinix ASN","description_kind":"plain","computed":true},"href":{"type":"string","description":"Fabric Cloud Router URI information","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"state":{"type":"string","description":"Fabric Cloud Router overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the FCR type like; XF_ROUTER","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Equinix-assigned Fabric Cloud Router identifier","description_kind":"plain","optional":true,"computed":true}},"block_types":{"account":{"nesting_mode":"set","block":{"attributes":{"account_number":{"type":"number","description":"Account Number","description_kind":"plain","optional":true,"computed":true}},"description":"Customer account information that is associated with this Fabric Cloud Router","description_kind":"plain"},"min_items":1,"max_items":1},"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Fabric Cloud Router location","description_kind":"plain"},"min_items":1,"max_items":1},"notifications":{"nesting_mode":"list","block":{"attributes":{"emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","required":true},"send_interval":{"type":"string","description":"Send interval","description_kind":"plain","optional":true},"type":{"type":"string","description":"Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS","description_kind":"plain","required":true}},"description":"Preferences for notifications on Fabric Cloud Router configuration or status changes","description_kind":"plain"},"min_items":1},"order":{"nesting_mode":"set","block":{"attributes":{"billing_tier":{"type":"string","description":"Billing tier for connection bandwidth","description_kind":"plain","optional":true,"computed":true},"order_id":{"type":"string","description":"Order Identification","description_kind":"plain","optional":true,"computed":true},"order_number":{"type":"string","description":"Order Reference Number","description_kind":"plain","optional":true,"computed":true},"purchase_order_number":{"type":"string","description":"Purchase order number","description_kind":"plain","optional":true,"computed":true}},"description":"Order information related to this Fabric Cloud Router","description_kind":"plain"},"min_items":1,"max_items":1},"package":{"nesting_mode":"set","block":{"attributes":{"code":{"type":"string","description":"Fabric Cloud Router package code","description_kind":"plain","required":true}},"description":"Fabric Cloud Router Package Type","description_kind":"plain"},"min_items":1,"max_items":1},"project":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource URL","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"Project Id","description_kind":"plain","optional":true,"computed":true}},"description":"Customer resource hierarchy project information.Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Fabric V4 API compatible resource allows creation and management of Equinix Fabric Cloud Router","description_kind":"plain"}},"equinix_fabric_connection":{"version":0,"block":{"attributes":{"account":{"type":["set",["object",{"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"}]],"description":"Customer account information that is associated with this connection","description_kind":"plain","computed":true},"additional_info":{"type":["list",["map","string"]],"description":"Connection additional information","description_kind":"plain","optional":true},"bandwidth":{"type":"number","description":"Connection bandwidth in Mbps","description_kind":"plain","required":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures connection lifecycle change information","description_kind":"plain","computed":true},"description":{"type":"string","description":"Customer-provided connection description","description_kind":"plain","optional":true},"direction":{"type":"string","description":"Connection directionality from the requester point of view","description_kind":"plain","computed":true},"href":{"type":"string","description":"Connection URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_remote":{"type":"bool","description":"Connection property derived from access point locations","description_kind":"plain","computed":true},"name":{"type":"string","description":"Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"operation":{"type":["set",["object",{"equinix_status":"string","errors":["list",["object",{"additional_info":["list",["object",{"property":"string","reason":"string"}]],"correlation_id":"string","details":"string","error_code":"string","error_message":"string","help":"string"}]],"provider_status":"string"}]],"description":"Connection type-specific operational data","description_kind":"plain","computed":true},"state":{"type":"string","description":"Connection overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the connection type like EVPL_VC, EPL_VC, IPWAN_VC, IP_VC, ACCESS_EPL_VC, EVPLAN_VC, EPLAN_VC, EIA_VC, EC_VC","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Equinix-assigned connection identifier","description_kind":"plain","computed":true}},"block_types":{"a_side":{"nesting_mode":"set","block":{"block_types":{"access_point":{"nesting_mode":"set","block":{"attributes":{"authentication_key":{"type":"string","description":"Authentication key for provider based connections","description_kind":"plain","optional":true},"peering_type":{"type":"string","description":"Peering Type- PRIVATE,MICROSOFT,PUBLIC, MANUAL","description_kind":"plain","optional":true},"provider_connection_id":{"type":"string","description":"Provider assigned Connection Id","description_kind":"plain","optional":true},"seller_region":{"type":"string","description":"Access point seller region","description_kind":"plain","optional":true},"type":{"type":"string","description":"Access point type - COLO, VD, VG, SP, IGW, SUBNET, CLOUD_ROUTER, NETWORK","description_kind":"plain","optional":true}},"block_types":{"account":{"nesting_mode":"set","block":{"attributes":{"account_name":{"type":"string","description":"Legal name of the accountholder.","description_kind":"plain","computed":true},"account_number":{"type":"number","description":"Equinix-assigned account number.","description_kind":"plain","computed":true},"global_cust_id":{"type":"string","description":"Equinix-assigned ID of the subscriber's parent organization.","description_kind":"plain","computed":true},"global_org_id":{"type":"string","description":"Equinix-assigned ID of the subscriber's parent organization.","description_kind":"plain","computed":true},"global_organization_name":{"type":"string","description":"Equinix-assigned name of the subscriber's parent organization.","description_kind":"plain","computed":true},"org_id":{"type":"number","description":"Equinix-assigned ID of the subscriber's organization.","description_kind":"plain","computed":true},"organization_name":{"type":"string","description":"Equinix-assigned name of the subscriber's organization.","description_kind":"plain","computed":true},"ucm_id":{"type":"string","description":"Enterprise datastore id","description_kind":"plain","computed":true}},"description":"Account","description_kind":"plain"}},"gateway":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned virtual gateway identifier","description_kind":"plain","optional":true}},"description":"**Deprecated** `gateway` Use `router` attribute instead","description_kind":"plain","deprecated":true},"max_items":1},"interface":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"id","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"Interface type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned interface identifier","description_kind":"plain","optional":true}},"description":"Virtual device interface","description_kind":"plain"},"max_items":1},"link_protocol":{"nesting_mode":"set","block":{"attributes":{"type":{"type":"string","description":"Type of the link protocol - UNTAGGED, DOT1Q, QINQ, EVPN_VXLAN","description_kind":"plain","optional":true},"vlan_c_tag":{"type":"number","description":"Vlan Customer Tag information, vlanCTag value specified for QINQ connections","description_kind":"plain","optional":true,"computed":true},"vlan_s_tag":{"type":"number","description":"Vlan Provider Tag information, vlanSTag value specified for QINQ connections","description_kind":"plain","optional":true,"computed":true},"vlan_tag":{"type":"number","description":"Vlan Tag information, vlanTag value specified for DOT1Q connections","description_kind":"plain","optional":true,"computed":true}},"description":"Connection link protocol","description_kind":"plain"},"max_items":1},"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Access point location","description_kind":"plain"},"max_items":1},"network":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Network identifier","description_kind":"plain","optional":true}},"description":"network access point information","description_kind":"plain"},"max_items":1},"port":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"name":{"type":"string","description":"Port name","description_kind":"plain","computed":true},"redundancy":{"type":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]],"description":"Redundancy Information","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Port identifier","description_kind":"plain","optional":true,"computed":true}},"description":"Port access point information","description_kind":"plain"},"max_items":1},"profile":{"nesting_mode":"set","block":{"attributes":{"access_point_type_configs":{"type":["list",["object",{"type":"string","uuid":"string"}]],"description":"Access point config information","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-provided service description","description_kind":"plain","computed":true},"href":{"type":"string","description":"Service Profile URI response attribute","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned service profile name","description_kind":"plain","computed":true},"type":{"type":"string","description":"Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Equinix assigned service profile identifier","description_kind":"plain","required":true}},"description":"Service Profile","description_kind":"plain"},"max_items":1},"router":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned virtual gateway identifier","description_kind":"plain","optional":true}},"description":"Cloud Router access point information that replaces `gateway`","description_kind":"plain"},"max_items":1},"virtual_device":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned Virtual Device Name","description_kind":"plain","optional":true},"type":{"type":"string","description":"Virtual Device type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned Virtual Device identifier","description_kind":"plain","optional":true}},"description":"Virtual device","description_kind":"plain"},"max_items":1}},"description":"Point of access details","description_kind":"plain"},"max_items":1},"additional_info":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Additional information key","description_kind":"plain","optional":true},"value":{"type":"string","description":"Additional information value","description_kind":"plain","optional":true}},"description":"Connection side additional information","description_kind":"plain"}},"service_token":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Service token description","description_kind":"plain","computed":true},"href":{"type":"string","description":"An absolute URL that is the subject of the link's context","description_kind":"plain","computed":true},"type":{"type":"string","description":"Token type - VC_TOKEN","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned service token identifier","description_kind":"plain","optional":true}},"description":"For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets","description_kind":"plain"},"max_items":1}},"description":"Requester or Customer side connection configuration object of the multi-segment connection","description_kind":"plain"},"min_items":1,"max_items":1},"notifications":{"nesting_mode":"list","block":{"attributes":{"emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","required":true},"send_interval":{"type":"string","description":"Send interval","description_kind":"plain","optional":true},"type":{"type":"string","description":"Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS","description_kind":"plain","required":true}},"description":"Preferences for notifications on connection configuration or status changes","description_kind":"plain"},"min_items":1},"order":{"nesting_mode":"set","block":{"attributes":{"billing_tier":{"type":"string","description":"Billing tier for connection bandwidth","description_kind":"plain","optional":true,"computed":true},"order_id":{"type":"string","description":"Order Identification","description_kind":"plain","optional":true,"computed":true},"order_number":{"type":"string","description":"Order Reference Number","description_kind":"plain","optional":true,"computed":true},"purchase_order_number":{"type":"string","description":"Purchase order number","description_kind":"plain","optional":true,"computed":true}},"description":"Order details","description_kind":"plain"},"min_items":1,"max_items":1},"project":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource URL","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project Id","description_kind":"plain","optional":true,"computed":true}},"description":"Project information","description_kind":"plain"},"max_items":1},"redundancy":{"nesting_mode":"set","block":{"attributes":{"group":{"type":"string","description":"Redundancy group identifier (Use the redundancy.0.group UUID of primary connection; e.g. one(equinix_fabric_connection.primary_port_connection.redundancy).group or equinix_fabric_connection.primary_port_connection.redundancy.0.group)","description_kind":"plain","optional":true,"computed":true},"priority":{"type":"string","description":"Connection priority in redundancy group - PRIMARY, SECONDARY","description_kind":"plain","optional":true,"computed":true}},"description":"Connection Redundancy Configuration","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"z_side":{"nesting_mode":"set","block":{"block_types":{"access_point":{"nesting_mode":"set","block":{"attributes":{"authentication_key":{"type":"string","description":"Authentication key for provider based connections","description_kind":"plain","optional":true},"peering_type":{"type":"string","description":"Peering Type- PRIVATE,MICROSOFT,PUBLIC, MANUAL","description_kind":"plain","optional":true},"provider_connection_id":{"type":"string","description":"Provider assigned Connection Id","description_kind":"plain","optional":true},"seller_region":{"type":"string","description":"Access point seller region","description_kind":"plain","optional":true},"type":{"type":"string","description":"Access point type - COLO, VD, VG, SP, IGW, SUBNET, CLOUD_ROUTER, NETWORK","description_kind":"plain","optional":true}},"block_types":{"account":{"nesting_mode":"set","block":{"attributes":{"account_name":{"type":"string","description":"Legal name of the accountholder.","description_kind":"plain","computed":true},"account_number":{"type":"number","description":"Equinix-assigned account number.","description_kind":"plain","computed":true},"global_cust_id":{"type":"string","description":"Equinix-assigned ID of the subscriber's parent organization.","description_kind":"plain","computed":true},"global_org_id":{"type":"string","description":"Equinix-assigned ID of the subscriber's parent organization.","description_kind":"plain","computed":true},"global_organization_name":{"type":"string","description":"Equinix-assigned name of the subscriber's parent organization.","description_kind":"plain","computed":true},"org_id":{"type":"number","description":"Equinix-assigned ID of the subscriber's organization.","description_kind":"plain","computed":true},"organization_name":{"type":"string","description":"Equinix-assigned name of the subscriber's organization.","description_kind":"plain","computed":true},"ucm_id":{"type":"string","description":"Enterprise datastore id","description_kind":"plain","computed":true}},"description":"Account","description_kind":"plain"}},"gateway":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned virtual gateway identifier","description_kind":"plain","optional":true}},"description":"**Deprecated** `gateway` Use `router` attribute instead","description_kind":"plain","deprecated":true},"max_items":1},"interface":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"id","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"Interface type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned interface identifier","description_kind":"plain","optional":true}},"description":"Virtual device interface","description_kind":"plain"},"max_items":1},"link_protocol":{"nesting_mode":"set","block":{"attributes":{"type":{"type":"string","description":"Type of the link protocol - UNTAGGED, DOT1Q, QINQ, EVPN_VXLAN","description_kind":"plain","optional":true},"vlan_c_tag":{"type":"number","description":"Vlan Customer Tag information, vlanCTag value specified for QINQ connections","description_kind":"plain","optional":true,"computed":true},"vlan_s_tag":{"type":"number","description":"Vlan Provider Tag information, vlanSTag value specified for QINQ connections","description_kind":"plain","optional":true,"computed":true},"vlan_tag":{"type":"number","description":"Vlan Tag information, vlanTag value specified for DOT1Q connections","description_kind":"plain","optional":true,"computed":true}},"description":"Connection link protocol","description_kind":"plain"},"max_items":1},"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Access point location","description_kind":"plain"},"max_items":1},"network":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Network identifier","description_kind":"plain","optional":true}},"description":"network access point information","description_kind":"plain"},"max_items":1},"port":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"name":{"type":"string","description":"Port name","description_kind":"plain","computed":true},"redundancy":{"type":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]],"description":"Redundancy Information","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Port identifier","description_kind":"plain","optional":true,"computed":true}},"description":"Port access point information","description_kind":"plain"},"max_items":1},"profile":{"nesting_mode":"set","block":{"attributes":{"access_point_type_configs":{"type":["list",["object",{"type":"string","uuid":"string"}]],"description":"Access point config information","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-provided service description","description_kind":"plain","computed":true},"href":{"type":"string","description":"Service Profile URI response attribute","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned service profile name","description_kind":"plain","computed":true},"type":{"type":"string","description":"Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Equinix assigned service profile identifier","description_kind":"plain","required":true}},"description":"Service Profile","description_kind":"plain"},"max_items":1},"router":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned virtual gateway identifier","description_kind":"plain","optional":true}},"description":"Cloud Router access point information that replaces `gateway`","description_kind":"plain"},"max_items":1},"virtual_device":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource Identifier","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned Virtual Device Name","description_kind":"plain","optional":true},"type":{"type":"string","description":"Virtual Device type","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned Virtual Device identifier","description_kind":"plain","optional":true}},"description":"Virtual device","description_kind":"plain"},"max_items":1}},"description":"Point of access details","description_kind":"plain"},"max_items":1},"additional_info":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"Additional information key","description_kind":"plain","optional":true},"value":{"type":"string","description":"Additional information value","description_kind":"plain","optional":true}},"description":"Connection side additional information","description_kind":"plain"}},"service_token":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Service token description","description_kind":"plain","computed":true},"href":{"type":"string","description":"An absolute URL that is the subject of the link's context","description_kind":"plain","computed":true},"type":{"type":"string","description":"Token type - VC_TOKEN","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned service token identifier","description_kind":"plain","optional":true}},"description":"For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets","description_kind":"plain"},"max_items":1}},"description":"Destination or Provider side connection configuration object of the multi-segment connection","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection","description_kind":"plain"}},"equinix_fabric_network":{"version":0,"block":{"attributes":{"change":{"type":["set",["object",{"href":"string","type":"string","uuid":"string"}]],"description":"Information on asset change operation","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"A permanent record of asset creation, modification, or deletion","description_kind":"plain","computed":true},"connections_count":{"type":"number","description":"Number of connections associated with this network","description_kind":"plain","computed":true},"href":{"type":"string","description":"Fabric Network URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","required":true},"operation":{"type":["set",["object",{"equinix_status":"string"}]],"description":"Network operation information that is associated with this Fabric Network","description_kind":"plain","computed":true},"scope":{"type":"string","description":"Fabric Network scope","description_kind":"plain","required":true},"state":{"type":"string","description":"Fabric Network overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Supported Network types - EVPLAN, EPLAN, IPWAN","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Equinix-assigned network identifier","description_kind":"plain","computed":true}},"block_types":{"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Fabric Network location","description_kind":"plain"},"max_items":1},"notifications":{"nesting_mode":"list","block":{"attributes":{"emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","required":true},"send_interval":{"type":"string","description":"Send interval","description_kind":"plain","optional":true},"type":{"type":"string","description":"Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS","description_kind":"plain","required":true}},"description":"Preferences for notifications on Fabric Network configuration or status changes","description_kind":"plain"},"min_items":1},"project":{"nesting_mode":"set","block":{"attributes":{"project_id":{"type":"string","description":"Customer project identifier","description_kind":"plain","required":true}},"description":"Fabric Network project","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Fabric V4 API compatible resource allows creation and management of Equinix Fabric Network","description_kind":"plain"}},"equinix_fabric_routing_protocol":{"version":0,"block":{"attributes":{"bgp_auth_key":{"type":"string","description":"BGP authorization key","description_kind":"plain","optional":true},"change":{"type":["set",["object",{"href":"string","type":"string","uuid":"string"}]],"description":"Routing Protocol configuration Changes","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures Routing Protocol lifecycle change information","description_kind":"plain","computed":true},"connection_uuid":{"type":"string","description":"Connection URI associated with Routing Protocol","description_kind":"plain","required":true},"customer_asn":{"type":"number","description":"Customer-provided ASN","description_kind":"plain","optional":true},"description":{"type":"string","description":"Customer-provided Fabric Routing Protocol description","description_kind":"plain","optional":true},"equinix_asn":{"type":"number","description":"Equinix ASN","description_kind":"plain","computed":true},"href":{"type":"string","description":"Routing Protocol URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Routing Protocol name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","optional":true},"operation":{"type":["set",["object",{"errors":["list",["object",{"additional_info":["list",["object",{"property":"string","reason":"string"}]],"correlation_id":"string","details":"string","error_code":"string","error_message":"string","help":"string"}]]}]],"description":"Routing Protocol type-specific operational data","description_kind":"plain","computed":true},"state":{"type":"string","description":"Routing Protocol overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the routing protocol type like BGP or DIRECT","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Equinix-assigned routing protocol identifier","description_kind":"plain","optional":true,"computed":true}},"block_types":{"bfd":{"nesting_mode":"set","block":{"attributes":{"enabled":{"type":"bool","description":"Bidirectional Forwarding Detection enablement","description_kind":"plain","required":true},"interval":{"type":"string","description":"Interval range between the received BFD control packets","description_kind":"plain","optional":true}},"description":"Bidirectional Forwarding Detection","description_kind":"plain"}},"bgp_ipv4":{"nesting_mode":"set","block":{"attributes":{"customer_peer_ip":{"type":"string","description":"Customer side peering ip","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Admin status for the BGP session","description_kind":"plain","optional":true},"equinix_peer_ip":{"type":"string","description":"Equinix side peering ip","description_kind":"plain","computed":true}},"description":"Routing Protocol BGP IPv4","description_kind":"plain"}},"bgp_ipv6":{"nesting_mode":"set","block":{"attributes":{"customer_peer_ip":{"type":"string","description":"Customer side peering ip","description_kind":"plain","required":true},"enabled":{"type":"bool","description":"Admin status for the BGP session","description_kind":"plain","optional":true},"equinix_peer_ip":{"type":"string","description":"Equinix side peering ip","description_kind":"plain","computed":true}},"description":"Routing Protocol BGP IPv6","description_kind":"plain"}},"direct_ipv4":{"nesting_mode":"set","block":{"attributes":{"equinix_iface_ip":{"type":"string","description":"Equinix side Interface IP address","description_kind":"plain","required":true}},"description":"Routing Protocol Direct IPv4","description_kind":"plain"}},"direct_ipv6":{"nesting_mode":"set","block":{"attributes":{"equinix_iface_ip":{"type":"string","description":"Equinix side Interface IP address\n\n","description_kind":"plain","optional":true}},"description":"Routing Protocol Direct IPv6","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection","description_kind":"plain"}},"equinix_fabric_service_profile":{"version":0,"block":{"attributes":{"account":{"type":["set",["object",{"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"}]],"description":"Service Profile Owner Account Information","description_kind":"plain","computed":true},"allowed_emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","optional":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures connection lifecycle change information","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-provided service description","description_kind":"plain","required":true},"href":{"type":"string","description":"Service Profile URI response attribute","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Customer-assigned service profile name","description_kind":"plain","required":true},"self_profile":{"type":"bool","description":"Self Profile indicating if the profile is created for customer's self use","description_kind":"plain","optional":true},"state":{"type":"string","description":"Service profile state - ACTIVE, PENDING_APPROVAL, DELETED, REJECTED","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags attached to the connection","description_kind":"plain","optional":true},"type":{"type":"string","description":"Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Equinix assigned service profile identifier","description_kind":"plain","computed":true},"visibility":{"type":"string","description":"Service profile visibility - PUBLIC, PRIVATE","description_kind":"plain","optional":true}},"block_types":{"access_point_type_configs":{"nesting_mode":"list","block":{"attributes":{"allow_bandwidth_auto_approval":{"type":"bool","description":"Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller","description_kind":"plain","optional":true},"allow_bandwidth_upgrade":{"type":"bool","description":"Availability of a bandwidth upgrade. The default is false","description_kind":"plain","optional":true},"allow_custom_bandwidth":{"type":"bool","description":"Setting to enable or disable the ability of the buyer to customize the bandwidth","description_kind":"plain","optional":true},"allow_remote_connections":{"type":"bool","description":"Setting to allow or prohibit remote connections to the service profile","description_kind":"plain","optional":true},"bandwidth_alert_threshold":{"type":"number","description":"Percentage of port bandwidth at which an allocation alert is generated","description_kind":"plain","optional":true},"connection_label":{"type":"string","description":"Custom name for Connection","description_kind":"plain","optional":true},"connection_redundancy_required":{"type":"bool","description":"Mandate redundant connections","description_kind":"plain","optional":true},"enable_auto_generate_service_key":{"type":"bool","description":"Enable auto generate service key","description_kind":"plain","optional":true},"supported_bandwidths":{"type":["list","number"],"description":"Supported bandwidths","description_kind":"plain","optional":true},"type":{"type":"string","description":"Type of access point type config - VD, COLO","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Colo/Port Uuid","description_kind":"plain","computed":true}},"block_types":{"api_config":{"nesting_mode":"set","block":{"attributes":{"allow_over_subscription":{"type":"bool","description":"Setting showing that oversubscription support is available (true) or not (false). The default is false","description_kind":"plain","optional":true},"api_available":{"type":"bool","description":"Indicates if it's possible to establish connections based on the given service profile using the Equinix Fabric API.","description_kind":"plain","optional":true},"bandwidth_from_api":{"type":"bool","description":"Indicates if the connection bandwidth can be obtained directly from the cloud service provider.","description_kind":"plain","optional":true},"equinix_managed_port":{"type":"bool","description":"Setting indicating that the port is managed by Equinix (true) or not (false)","description_kind":"plain","optional":true},"equinix_managed_vlan":{"type":"bool","description":"Setting indicating that the VLAN is managed by Equinix (true) or not (false)","description_kind":"plain","optional":true},"integration_id":{"type":"string","description":"A unique identifier issued during onboarding and used to integrate the customer's service profile with the Equinix Fabric API.","description_kind":"plain","optional":true},"over_subscription_limit":{"type":"number","description":"Port bandwidth multiplier that determines the total bandwidth that can be allocated to users creating connections to your services. For example, a 10 Gbps port combined with an overSubscriptionLimit parameter value of 10 allows your subscribers to create connections with a total bandwidth of 100 Gbps.","description_kind":"plain","optional":true}},"description":"Api configuration details","description_kind":"plain"},"max_items":1},"authentication_key":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Description of authorization key","description_kind":"plain","optional":true},"label":{"type":"string","description":"Name of the parameter that must be provided to authorize the connection.","description_kind":"plain","optional":true},"required":{"type":"bool","description":"Requirement to configure an authentication key.","description_kind":"plain","optional":true}},"description":"Authentication key details","description_kind":"plain"},"max_items":1},"link_protocol_config":{"nesting_mode":"set","block":{"attributes":{"encapsulation":{"type":"string","description":"Data frames encapsulation standard.UNTAGGED - Untagged encapsulation for EPL connections. DOT1Q - DOT1Q encapsulation standard. QINQ - QINQ encapsulation standard.","description_kind":"plain","optional":true},"encapsulation_strategy":{"type":"string","description":"Additional tagging information required by the seller profile.","description_kind":"plain","optional":true},"reuse_vlan_s_tag":{"type":"bool","description":"Automatically accept subsequent DOT1Q to QINQ connections that use the same authentication key. These connections will have the same VLAN S-tag assigned as the initial connection.","description_kind":"plain","optional":true}},"description":"Link protocol configuration details","description_kind":"plain"},"max_items":1}},"description":"Access point config information","description_kind":"plain"}},"custom_fields":{"nesting_mode":"list","block":{"attributes":{"capture_in_email":{"type":"bool","description":"Required field","description_kind":"plain","optional":true},"data_type":{"type":"string","description":"Data type","description_kind":"plain","required":true},"description":{"type":"string","description":"Description","description_kind":"plain","optional":true},"label":{"type":"string","description":"Label","description_kind":"plain","required":true},"options":{"type":["list","string"],"description":"Options","description_kind":"plain","optional":true},"required":{"type":"bool","description":"Required field","description_kind":"plain","required":true}},"description":"Custom Fields","description_kind":"plain"}},"marketing_info":{"nesting_mode":"set","block":{"attributes":{"logo":{"type":"string","description":"Logo","description_kind":"plain","optional":true},"promotion":{"type":"bool","description":"Promotion","description_kind":"plain","optional":true}},"block_types":{"process_step":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description","description_kind":"plain","optional":true},"sub_title":{"type":"string","description":"Sub Title","description_kind":"plain","optional":true},"title":{"type":"string","description":"Title","description_kind":"plain","optional":true}},"description":"Process Step","description_kind":"plain"}}},"description":"Marketing Info","description_kind":"plain"},"max_items":1},"metros":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"string","description":"Metro Code - Example SV","description_kind":"plain","optional":true},"display_name":{"type":"string","description":"Display Name","description_kind":"plain","optional":true},"ibxs":{"type":["list","string"],"description":"IBX- Equinix International Business Exchange list","description_kind":"plain","optional":true},"in_trail":{"type":"bool","description":"In Trail","description_kind":"plain","optional":true},"name":{"type":"string","description":"Metro Name","description_kind":"plain","optional":true},"seller_regions":{"type":["map","string"],"description":"Seller Regions","description_kind":"plain","optional":true}},"description":"Access point config information","description_kind":"plain"}},"notifications":{"nesting_mode":"list","block":{"attributes":{"emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","required":true},"send_interval":{"type":"string","description":"Send interval","description_kind":"plain","optional":true},"type":{"type":"string","description":"Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS","description_kind":"plain","required":true}},"description":"Preferences for notifications on connection configuration or status changes","description_kind":"plain"}},"ports":{"nesting_mode":"list","block":{"attributes":{"cross_connect_id":{"type":"string","description":"Cross Connect Id","description_kind":"plain","optional":true},"seller_region":{"type":"string","description":"Seller Region","description_kind":"plain","optional":true},"seller_region_description":{"type":"string","description":"Seller Region details","description_kind":"plain","optional":true},"type":{"type":"string","description":"Colo/Port Type","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Colo/Port Uuid","description_kind":"plain","required":true}},"block_types":{"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Colo/Port Location","description_kind":"plain"},"max_items":1}},"description":"Ports","description_kind":"plain"}},"project":{"nesting_mode":"set","block":{"attributes":{"href":{"type":"string","description":"Unique Resource URL","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project Id","description_kind":"plain","optional":true,"computed":true}},"description":"Project information","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"virtual_devices":{"nesting_mode":"list","block":{"attributes":{"interface_uuid":{"type":"string","description":"Device Interface Uuid","description_kind":"plain","optional":true},"type":{"type":"string","description":"Virtual Device Type","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Virtual Device Uuid","description_kind":"plain","required":true}},"block_types":{"location":{"nesting_mode":"set","block":{"attributes":{"ibx":{"type":"string","description":"IBX Code","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Access point metro code","description_kind":"plain","optional":true,"computed":true},"metro_name":{"type":"string","description":"Access point metro name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Access point region","description_kind":"plain","optional":true,"computed":true}},"description":"Device Location","description_kind":"plain"},"max_items":1}},"description":"Virtual Devices","description_kind":"plain"}}},"description":"Fabric V4 API compatible resource allows creation and management of Equinix Fabric Service Profile","description_kind":"plain"}},"equinix_metal_bgp_session":{"version":0,"block":{"attributes":{"address_family":{"type":"string","description":"ipv4 or ipv6","description_kind":"plain","required":true},"default_route":{"type":"bool","description":"Boolean flag to set the default route policy. False by default","description_kind":"plain","optional":true},"device_id":{"type":"string","description":"ID of device","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the session - up or down","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_connection":{"version":0,"block":{"attributes":{"contact_email":{"type":"string","description":"The preferred email used for communication and notifications about the Equinix Fabric interconnection","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":"Description of the connection resource","description_kind":"plain","optional":true,"computed":true},"facility":{"type":"string","description":"Facility where the connection will be created","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description":"The unique identifier of the resource","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro where the connection will be created","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Mode for connections in IBX facilities with the dedicated type - standard or tunnel","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the connection resource","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"ID of the organization responsible for the connection. Applicable with type \"dedicated\"","description_kind":"plain","optional":true,"computed":true},"ports":{"type":["list",["object",{"id":"string","link_status":"string","name":"string","role":"string","speed":"number","status":"string","virtual_circuit_ids":["list","string"]}]],"description":"List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`)","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the project where the connection is scoped to. Required with type \"shared\"","description_kind":"plain","optional":true},"redundancy":{"type":"string","description":"Connection redundancy - redundant or primary","description_kind":"plain","required":true},"service_token_type":{"type":"string","description":"Only used with shared connection. Type of service token to use for the connection, a_side or z_side","description_kind":"plain","optional":true},"service_tokens":{"type":["list",["object",{"expires_at":"string","id":"string","max_allowed_speed":"string","role":"string","state":"string","type":"string"}]],"description":"Only used with shared connection. List of service tokens required to continue the setup process with [equinix_ecx_l2_connection](https://registry.terraform.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard)","description_kind":"plain","computed":true},"speed":{"type":"string","description":"Connection speed - Values must be in the format '\u003cnumber\u003eMbps' or '\u003cnumber\u003eGpbs', for example '100Mbps' or '50Gbps'. Actual supported values will depend on the connection type and whether the connection uses VLANs or VRF.","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the connection resource","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Tags attached to the connection","description_kind":"plain","optional":true},"token":{"type":"string","description":"Only used with shared connection. Fabric Token required to continue the setup process with [equinix_ecx_l2_connection](https://registry.terraform.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard)","description_kind":"plain","deprecated":true,"computed":true},"type":{"type":"string","description":"Connection type - dedicated or shared","description_kind":"plain","required":true},"vlans":{"type":["list","number"],"description":"Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection","description_kind":"plain","optional":true},"vrfs":{"type":["list","string"],"description":"Only used with shared connection. VRFs to attach. Pass one VRF for Primary/Single connection and two VRFs for Redundant connection","description_kind":"plain","optional":true}},"description_kind":"plain"}},"equinix_metal_device":{"version":0,"block":{"attributes":{"access_private_ipv4":{"type":"string","description":"The ipv4 private IP assigned to the device","description_kind":"plain","computed":true},"access_public_ipv4":{"type":"string","description":"The ipv4 maintenance IP assigned to the device","description_kind":"plain","computed":true},"access_public_ipv6":{"type":"string","description":"The ipv6 maintenance IP assigned to the device","description_kind":"plain","computed":true},"always_pxe":{"type":"bool","description":"If true, a device with OS custom_ipxe will","description_kind":"plain","optional":true},"billing_cycle":{"type":"string","description":"monthly or hourly","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description":"The timestamp for when the device was created","description_kind":"plain","computed":true},"custom_data":{"type":"string","description":"A string of the desired Custom Data for the device. By default, changing this attribute will cause the provider to destroy and recreate your device. If `reinstall` is specified or `behavior.allow_changes` includes `\"custom_data\"`, the device will be updated in-place instead of recreated.","description_kind":"plain","optional":true,"sensitive":true},"deployed_facility":{"type":"string","description":"The facility where the device is deployed","description_kind":"plain","deprecated":true,"computed":true},"deployed_hardware_reservation_id":{"type":"string","description":"ID of hardware reservation where this device was deployed. It is useful when using the next-available hardware reservation","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description string for the device","description_kind":"plain","optional":true},"facilities":{"type":["list","string"],"description":"List of facility codes with deployment preferences. Equinix Metal API will go through the list and will deploy your device to first facility with free capacity. List items must be facility codes or any (a wildcard). To find the facility code, visit [Facilities API docs](https://metal.equinix.com/developers/api/facilities/), set your API auth token in the top of the page and see JSON from the API response. Conflicts with metro","description_kind":"plain","deprecated":true,"optional":true},"force_detach_volumes":{"type":"bool","description":"Delete device even if it has volumes attached. Only applies for destroy action","description_kind":"plain","optional":true},"hardware_reservation_id":{"type":"string","description":"The UUID of the hardware reservation where you want this device deployed, or next-available if you want to pick your next available reservation automatically","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"The device hostname used in deployments taking advantage of Layer3 DHCP or metadata service configuration.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipxe_script_url":{"type":"string","description":"URL pointing to a hosted iPXE script. More","description_kind":"plain","optional":true},"locked":{"type":"bool","description":"Whether the device is locked or unlocked. Locking a device prevents you from deleting or reinstalling the device or performing a firmware update on the device, and it prevents an instance with a termination time set from being reclaimed, even if the termination time was reached","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"Metro area for the new device. Conflicts with facilities","description_kind":"plain","optional":true},"network":{"type":["list",["object",{"address":"string","cidr":"number","family":"number","gateway":"string","public":"bool"}]],"description":"The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 addresses: public ipv4, private ipv4 and ipv6","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"Network type of a device, used in [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Will be one of layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded","description_kind":"plain","deprecated":true,"computed":true},"operating_system":{"type":"string","description":"The operating system slug. To find the slug, or visit [Operating Systems API docs](https://metal.equinix.com/developers/api/operatingsystems), set your API auth token in the top of the page and see JSON from the API response. By default, changing this attribute will cause your device to be deleted and recreated. If `reinstall` is enabled, the device will be updated in-place instead of recreated.","description_kind":"plain","required":true},"plan":{"type":"string","description":"The device plan slug. To find the plan slug, visit [Device plans API docs](https://metal.equinix.com/developers/api/plans), set your auth token in the top of the page and see JSON from the API response","description_kind":"plain","required":true},"ports":{"type":["list",["object",{"bonded":"bool","id":"string","mac":"string","name":"string","type":"string"}]],"description":"Ports assigned to the device","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The ID of the project in which to create the device","description_kind":"plain","required":true},"project_ssh_key_ids":{"type":["list","string"],"description":"Array of IDs of the project SSH keys which should be added to the device. If you specify this array, only the listed project SSH keys (and any SSH keys for the users specified in user_ssh_key_ids) will be added. If no SSH keys are specified (both user_ssh_keys_ids and project_ssh_key_ids are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. Project SSH keys can be created with the [equinix_metal_project_ssh_key](equinix_metal_project_ssh_key.md) resource","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"Root password to the server (disabled after 24 hours)","description_kind":"plain","computed":true,"sensitive":true},"sos_hostname":{"type":"string","description":"The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device","description_kind":"plain","computed":true},"ssh_key_ids":{"type":["list","string"],"description":"List of IDs of SSH keys deployed in the device, can be both user and project SSH keys","description_kind":"plain","computed":true},"state":{"type":"string","description":"The status of the device","description_kind":"plain","computed":true},"storage":{"type":"string","description":"JSON for custom partitioning. Only usable on reserved hardware. More information in in the [Custom Partitioning and RAID](https://metal.equinix.com/developers/docs/servers/custom-partitioning-raid/) doc","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags attached to the device","description_kind":"plain","optional":true},"termination_time":{"type":"string","description":"Timestamp for device termination. For example \"2021-09-03T16:32:00+03:00\". If you don't supply timezone info, timestamp is assumed to be in UTC.","description_kind":"plain","optional":true},"updated":{"type":"string","description":"The timestamp for the last time the device was updated","description_kind":"plain","computed":true},"user_data":{"type":"string","description":"A string of the desired User Data for the device. By default, changing this attribute will cause the provider to destroy and recreate your device. If `reinstall` is specified or `behavior.allow_changes` includes `\"user_data\"`, the device will be updated in-place instead of recreated.","description_kind":"plain","optional":true,"sensitive":true},"user_ssh_key_ids":{"type":["list","string"],"description":"Array of IDs of the users whose SSH keys should be added to the device. If you specify this array, only the listed users' SSH keys (and any project SSH keys specified in project_ssh_key_ids) will be added. If no SSH keys are specified (both user_ssh_keys_ids and project_ssh_key_ids are empty lists or omitted), all parent project keys, parent project members keys and organization members keys will be included. User SSH keys can be created with the [equinix_metal_ssh_key](equinix_metal_ssh_key.md) resource","description_kind":"plain","optional":true},"wait_for_reservation_deprovision":{"type":"bool","description":"Only used for devices in reserved hardware. If set, the deletion of this device will block until the hardware reservation is marked provisionable (about 4 minutes in August 2019)","description_kind":"plain","optional":true}},"block_types":{"behavior":{"nesting_mode":"list","block":{"attributes":{"allow_changes":{"type":["list","string"],"description":"List of attributes that are allowed to change without recreating the instance. Supported attributes: `custom_data`, `user_data`","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"ip_address":{"nesting_mode":"list","block":{"attributes":{"cidr":{"type":"number","description":"CIDR suffix for IP block assigned to this device","description_kind":"plain","optional":true},"reservation_ids":{"type":["list","string"],"description":"IDs of reservations to pick the blocks from","description_kind":"plain","optional":true},"type":{"type":"string","description":"one of public_ipv4,private_ipv4,public_ipv6","description_kind":"plain","required":true}},"description":"A list of IP address types for the device (structure is documented below)","description_kind":"plain"}},"reinstall":{"nesting_mode":"list","block":{"attributes":{"deprovision_fast":{"type":"bool","description":"Whether the OS disk should be filled with `00h` bytes before reinstall","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Whether the device should be reinstalled instead of destroyed","description_kind":"plain","optional":true},"preserve_data":{"type":"bool","description":"Whether the non-OS disks should be kept or wiped during reinstall","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_device_network_type":{"version":0,"block":{"attributes":{"device_id":{"type":"string","description":"The ID of the device on which the network type should be set","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"Network type to set. Must be one of layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded","description_kind":"plain","required":true}},"description_kind":"plain"}},"equinix_metal_gateway":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The unique identifier for this Metal Gateway","description_kind":"plain","computed":true},"ip_reservation_id":{"type":"string","description":"UUID of the Public or VRF IP Reservation to associate","description_kind":"plain","optional":true,"computed":true},"private_ipv4_subnet_size":{"type":"number","description":"Size of the private IPv4 subnet to create for this gateway","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"UUID of the Project where the Gateway is scoped to","description_kind":"plain","required":true},"state":{"type":"string","description":"Status of the gateway resource","description_kind":"plain","computed":true},"vlan_id":{"type":"string","description":"UUID of the VLAN to associate","description_kind":"plain","required":true},"vrf_id":{"type":"string","description":"UUID of the VRF associated with the IP Reservation","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"delete":{"type":"string","description":"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.","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_ip_attachment":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"address_family":{"type":"number","description":"Address family as integer (4 or 6)","description_kind":"plain","computed":true},"cidr":{"type":"number","description":"Length of CIDR prefix of the block as integer","description_kind":"plain","computed":true},"cidr_notation":{"type":"string","description_kind":"plain","required":true},"device_id":{"type":"string","description_kind":"plain","required":true},"gateway":{"type":"string","description_kind":"plain","computed":true},"global":{"type":"bool","description":"Flag indicating whether IP block is global, i.e. assignable in any location","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manageable":{"type":"bool","description_kind":"plain","computed":true},"management":{"type":"bool","description_kind":"plain","computed":true},"netmask":{"type":"string","description":"Mask in decimal notation, e.g. 255.255.255.0","description_kind":"plain","computed":true},"network":{"type":"string","description":"Network IP address portion of the block specification","description_kind":"plain","computed":true},"public":{"type":"bool","description":"Flag indicating whether IP block is addressable from the Internet","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_organization":{"version":0,"block":{"attributes":{"created":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The unique identifier of the resource","description_kind":"plain","computed":true},"logo":{"type":"string","description":"Logo URL","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the Organization","description_kind":"plain","required":true},"twitter":{"type":"string","description":"Twitter handle","description_kind":"plain","optional":true,"computed":true},"updated":{"type":"string","description_kind":"plain","computed":true},"website":{"type":"string","description":"Website link","description_kind":"plain","optional":true,"computed":true}},"block_types":{"address":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description":"Postal address","description_kind":"plain","required":true},"city":{"type":"string","description":"City name","description_kind":"plain","required":true},"country":{"type":"string","description":"Two letter country code (ISO 3166-1 alpha-2), e.g. US","description_kind":"plain","required":true},"state":{"type":"string","description":"State name","description_kind":"plain","optional":true,"computed":true},"zip_code":{"type":"string","description":"Zip Code","description_kind":"plain","required":true}},"description":"Address information block","description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_organization_member":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"When the invitation was created (only known in the invitation stage)","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique identifier for the organization member.","description_kind":"plain","computed":true},"invited_by":{"type":"string","description":"The user id of the user that sent the invitation (only known in the invitation stage)","description_kind":"plain","computed":true},"invitee":{"type":"string","description":"The email address of the user to invite","description_kind":"plain","required":true},"message":{"type":"string","description":"A message to the invitee (only used during the invitation stage)","description_kind":"plain","optional":true},"nonce":{"type":"string","description":"The nonce for the invitation (only known in the invitation stage)","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization to invite the user to","description_kind":"plain","required":true},"projects_ids":{"type":["set","string"],"description":"Project IDs the member has access to within the organization. If the member is an 'owner', the projects list should be empty.","description_kind":"plain","required":true},"roles":{"type":["set","string"],"description":"Organization roles (owner, collaborator, limited_collaborator, billing)","description_kind":"plain","required":true},"state":{"type":"string","description":"The state of the membership ('invited' when an invitation is open, 'active' when the user is an organization member)","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When the invitation was updated (only known in the invitation stage)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_port":{"version":0,"block":{"attributes":{"bond_id":{"type":"string","description":"UUID of the bond port","description_kind":"plain","computed":true},"bond_name":{"type":"string","description":"Name of the bond port","description_kind":"plain","computed":true},"bonded":{"type":"bool","description":"Flag indicating whether the port should be bonded","description_kind":"plain","required":true},"disbond_supported":{"type":"bool","description":"Flag indicating whether the port can be removed from a bond","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"layer2":{"type":"bool","description":"Flag indicating whether the port is in layer2 (or layer3) mode. The `layer2` flag can be set only for bond ports.","description_kind":"plain","optional":true},"mac":{"type":"string","description":"MAC address of the port","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the port to look up, e.g. bond0, eth1","description_kind":"plain","computed":true},"native_vlan_id":{"type":"string","description":"UUID of native VLAN of the port","description_kind":"plain","optional":true},"network_type":{"type":"string","description":"One of layer2-bonded, layer2-individual, layer3, hybrid and hybrid-bonded. This attribute is only set on bond ports.","description_kind":"plain","computed":true},"port_id":{"type":"string","description":"UUID of the port to lookup","description_kind":"plain","required":true},"reset_on_delete":{"type":"bool","description":"Behavioral setting to reset the port to default settings (layer3 bonded mode without any vlan attached) before delete/destroy","description_kind":"plain","optional":true},"type":{"type":"string","description":"Port type","description_kind":"plain","computed":true},"vlan_ids":{"type":["set","string"],"description":"UUIDs VLANs to attach. To avoid jitter, use the UUID and not the VXLAN","description_kind":"plain","optional":true,"computed":true},"vxlan_ids":{"type":["set","number"],"description":"VLAN VXLAN ids to attach (example: [1000])","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_port_vlan_attachment":{"version":0,"block":{"attributes":{"device_id":{"type":"string","description":"ID of device to be assigned to the VLAN","description_kind":"plain","required":true},"force_bond":{"type":"bool","description":"Add port back to the bond when this resource is removed. Default is false","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"native":{"type":"bool","description":"Mark this VLAN a native VLAN on the port. This can be used only if this assignment assigns second or further VLAN to the port. To ensure that this attachment is not first on a port, you can use depends_on pointing to another equinix_metal_port_vlan_attachment, just like in the layer2-individual example above","description_kind":"plain","optional":true},"port_id":{"type":"string","description":"UUID of device port","description_kind":"plain","computed":true},"port_name":{"type":"string","description":"Name of network port to be assigned to the VLAN","description_kind":"plain","required":true},"vlan_id":{"type":"string","description":"UUID of VLAN API resource","description_kind":"plain","computed":true},"vlan_vnid":{"type":"number","description":"VXLAN Network Identifier, integer","description_kind":"plain","required":true}},"description_kind":"plain"}},"equinix_metal_project":{"version":0,"block":{"attributes":{"backend_transfer":{"type":"bool","description":"Enable or disable [Backend Transfer](https://metal.equinix.com/developers/docs/networking/backend-transfer/), default is false","description_kind":"markdown","optional":true,"computed":true},"created":{"type":"string","description":"The timestamp for when the project was created","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique identifier of the resource","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the project. The maximum length is 80 characters","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The UUID of organization under which the project is created","description_kind":"plain","optional":true,"computed":true},"payment_method_id":{"type":"string","description":"The UUID of payment method for this project. The payment method and the project need to belong to the same organization (passed with organization_id, or default)","description_kind":"plain","optional":true,"computed":true},"updated":{"type":"string","description":"The timestamp for the last time the project was updated","description_kind":"plain","computed":true}},"block_types":{"bgp_config":{"nesting_mode":"list","block":{"attributes":{"asn":{"type":"number","description":"Autonomous System Number for local BGP deployment","description_kind":"plain","required":true},"deployment_type":{"type":"string","description":"The BGP deployment type, either 'local' or 'global'. The local is likely to be usable immediately, the global will need to be review by Equinix Metal engineers","description_kind":"markdown","required":true},"max_prefix":{"type":"number","description":"The maximum number of route filters allowed per server","description_kind":"plain","computed":true},"md5":{"type":"string","description":"Password for BGP session in plaintext (not a checksum)","description_kind":"plain","optional":true,"sensitive":true},"status":{"type":"string","description":"Status of BGP configuration in the project","description_kind":"plain","computed":true}},"description":"Address information block","description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_project_api_key":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description string for the API key","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"UUID of project which the new API key is scoped to","description_kind":"plain","required":true},"read_only":{"type":"bool","description":"Flag indicating whether the API key shoud be read-only","description_kind":"plain","required":true},"token":{"type":"string","description":"API token for API clients","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"equinix_metal_project_ssh_key":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The timestamp for when the SSH key was created","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique identifier of the resource","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the SSH key for identification","description_kind":"plain","required":true},"owner_id":{"type":"string","description":"The UUID of the Equinix Metal API User who owns this key","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The ID of parent project","description_kind":"plain","required":true},"public_key":{"type":"string","description":"The public key","description_kind":"plain","required":true},"updated":{"type":"string","description":"The timestamp for the last time the SSH key was updated","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_reserved_ip_block":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"address_family":{"type":"number","description":"Address family as integer (4 or 6)","description_kind":"plain","computed":true},"cidr":{"type":"number","description":"the size of the network to reserve from an existing vrf ip_range. `cidr` can only be specified with `vrf_id`. Minimum range is 22-29, with 30-31 supported and necessary for virtual-circuits","description_kind":"plain","optional":true,"computed":true},"cidr_notation":{"type":"string","description_kind":"plain","computed":true},"custom_data":{"type":"string","description":"Custom Data is an arbitrary object (submitted in Terraform as serialized JSON) to assign to the IP Reservation. This may be helpful for self-managed IPAM. The object must be valid JSON.","description_kind":"plain","optional":true},"description":{"type":"string","description":"Arbitrary description","description_kind":"plain","optional":true},"facility":{"type":"string","description":"Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4, conflicts with metro","description_kind":"plain","optional":true},"gateway":{"type":"string","description_kind":"plain","computed":true},"global":{"type":"bool","description":"Flag indicating whether IP block is global, i.e. assignable in any location","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manageable":{"type":"bool","description_kind":"plain","computed":true},"management":{"type":"bool","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4, conflicts with facility","description_kind":"plain","optional":true},"netmask":{"type":"string","description":"Mask in decimal notation, e.g. 255.255.255.0","description_kind":"plain","computed":true},"network":{"type":"string","description":"an unreserved network address from an existing vrf ip_range. `network` can only be specified with vrf_id","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The metal project ID where to allocate the address block","description_kind":"plain","required":true},"public":{"type":"bool","description":"Flag indicating whether IP block is addressable from the Internet","description_kind":"plain","computed":true},"quantity":{"type":"number","description":"The number of allocated /32 addresses, a power of 2","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["set","string"],"description":"Tags attached to the reserved block","description_kind":"plain","optional":true},"type":{"type":"string","description":"Either global_ipv4, public_ipv4, or vrf. Defaults to public_ipv4.","description_kind":"plain","optional":true},"vrf_id":{"type":"string","description":"VRF ID for type=vrf reservations","description_kind":"plain","optional":true},"wait_for_state":{"type":"string","description":"Wait for the IP reservation block to reach a desired state on resource creation. One of: `pending`, `created`. The `created` state is default and recommended if the addresses are needed within the configuration. An error will be returned if a timeout or the `denied` state is encountered.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_spot_market_request":{"version":0,"block":{"attributes":{"devices_max":{"type":"number","description":"Maximum number devices to be created","description_kind":"plain","required":true},"devices_min":{"type":"number","description":"Miniumum number devices to be created","description_kind":"plain","required":true},"facilities":{"type":["list","string"],"description":"Facility IDs where devices should be created","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_bid_price":{"type":"number","description":"Maximum price user is willing to pay per hour per device","description_kind":"plain","required":true},"metro":{"type":"string","description":"Metro where devices should be created","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID","description_kind":"plain","required":true},"wait_for_devices":{"type":"bool","description":"On resource creation - wait until all desired devices are active, on resource destruction - wait until devices are removed","description_kind":"plain","optional":true}},"block_types":{"instance_parameters":{"nesting_mode":"list","block":{"attributes":{"always_pxe":{"type":"bool","description_kind":"plain","optional":true},"billing_cycle":{"type":"string","description_kind":"plain","required":true},"customdata":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"features":{"type":["list","string"],"description_kind":"plain","optional":true},"hostname":{"type":"string","description_kind":"plain","required":true},"ipxe_script_url":{"type":"string","description_kind":"plain","optional":true},"locked":{"type":"bool","description_kind":"plain","optional":true},"operating_system":{"type":"string","description_kind":"plain","required":true},"plan":{"type":"string","description_kind":"plain","required":true},"project_ssh_keys":{"type":["list","string"],"description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description_kind":"plain","optional":true},"termination_time":{"type":"string","description_kind":"plain","computed":true},"termintation_time":{"type":"string","description_kind":"plain","deprecated":true,"computed":true},"user_ssh_keys":{"type":["list","string"],"description_kind":"plain","optional":true},"userdata":{"type":"string","description_kind":"plain","optional":true}},"description":"Parameters for devices provisioned from this request. You can find the parameter description from the [equinix_metal_device doc](device.md)","description_kind":"plain"},"min_items":1,"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_ssh_key":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The timestamp for when the SSH key was created","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique identifier of the resource","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the SSH key for identification","description_kind":"plain","required":true},"owner_id":{"type":"string","description":"The UUID of the Equinix Metal API User who owns this key","description_kind":"plain","computed":true},"public_key":{"type":"string","description":"The public key","description_kind":"plain","required":true},"updated":{"type":"string","description":"The timestamp for the last time the SSH key was updated","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_user_api_key":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description string for the API key","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"read_only":{"type":"bool","description":"Flag indicating whether the API key shoud be read-only","description_kind":"plain","required":true},"token":{"type":"string","description":"API token for API clients","description_kind":"plain","computed":true,"sensitive":true},"user_id":{"type":"string","description":"UUID of user owning this key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_virtual_circuit":{"version":0,"block":{"attributes":{"connection_id":{"type":"string","description":"UUID of Connection where the VC is scoped to","description_kind":"plain","required":true},"customer_ip":{"type":"string","description":"The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.","description_kind":"plain","optional":true},"description":{"type":"string","description":"Description of the Virtual Circuit resource","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"md5":{"type":"string","description":"The password that can be set for the VRF BGP peer","description_kind":"plain","optional":true,"sensitive":true},"metal_ip":{"type":"string","description":"The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the Virtual Circuit resource","description_kind":"plain","optional":true},"nni_vlan":{"type":"number","description":"Equinix Metal network-to-network VLAN ID (optional when the connection has mode=tunnel)","description_kind":"plain","optional":true},"nni_vnid":{"type":"number","description":"Nni VLAN ID parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"peer_asn":{"type":"number","description":"The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the local_asn of the VRF.","description_kind":"plain","optional":true},"port_id":{"type":"string","description":"UUID of the Connection Port where the VC is scoped to","description_kind":"plain","required":true},"project_id":{"type":"string","description":"UUID of the Project where the VC is scoped to","description_kind":"plain","required":true},"speed":{"type":"string","description":"Description of the Virtual Circuit speed. This is for information purposes and is computed when the connection type is shared.","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the virtual circuit resource","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"A subnet from one of the IP blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.\n\t\t\t\t * For a /31 block, it will only have two IP addresses, which will be used for the metal_ip and customer_ip.\n\t\t\t\t * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Tags attached to the virtual circuit","description_kind":"plain","optional":true},"vlan_id":{"type":"string","description":"UUID of the VLAN to associate","description_kind":"plain","optional":true},"vnid":{"type":"number","description":"VNID VLAN parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description":"UUID of the VRF to associate","description_kind":"plain","optional":true}},"description_kind":"plain"}},"equinix_metal_vlan":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description string","description_kind":"plain","optional":true},"facility":{"type":"string","description":"Facility where to create the VLAN","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description":"The unique identifier for this Metal Vlan","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro in which to create the VLAN","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"ID of parent project","description_kind":"plain","required":true},"vxlan":{"type":"number","description":"VLAN ID, must be unique in metro","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"equinix_metal_vrf":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description of the VRF","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_ranges":{"type":["set","string"],"description":"All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.","description_kind":"plain","optional":true},"local_asn":{"type":"number","description":"The 4-byte ASN set on the VRF.","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"Metro Code","description_kind":"plain","required":true},"name":{"type":"string","description":"User-supplied name of the VRF, unique to the project","description_kind":"plain","required":true},"project_id":{"type":"string","description":"Project ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"equinix_network_acl_template":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"ACL template description, up to 200 characters","description_kind":"plain","optional":true},"device_acl_status":{"type":"string","description":"Status of ACL template provisioning process on a device, where template was applied","description_kind":"plain","computed":true},"device_details":{"type":["list",["object",{"acl_status":"string","name":"string","uuid":"string"}]],"description":"Device Details to which ACL template is assigned to. ","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"Identifier of a network device where template was applied","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"ACL template location metro code","description_kind":"plain","deprecated":true,"optional":true},"name":{"type":"string","description":"ACL template name","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The unique identifier of Project Resource to which ACL template is scoped to","description_kind":"plain","optional":true,"computed":true},"uuid":{"type":"string","description":"Unique identifier of ACL template resource","description_kind":"plain","computed":true}},"block_types":{"inbound_rule":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Inbound rule description, up to 200 characters","description_kind":"plain","optional":true},"dst_port":{"type":"string","description":"Inbound traffic destination ports. Either up to 10, comma separated ports or port range or any word","description_kind":"plain","required":true},"protocol":{"type":"string","description":"Inbound traffic protocol. One of: `IP`, `TCP`, `UDP`","description_kind":"plain","required":true},"sequence_number":{"type":"number","description":"Inbound rule sequence number","description_kind":"plain","computed":true},"source_type":{"type":"string","description":"Type of traffic source used in a given inbound rule","description_kind":"plain","deprecated":true,"computed":true},"src_port":{"type":"string","description":"Inbound traffic source ports. Either up to 10, comma separated ports or port range or any word","description_kind":"plain","required":true},"subnet":{"type":"string","description":"Inbound traffic source IP subnet in CIDR format","description_kind":"plain","optional":true},"subnets":{"type":["list","string"],"description":"Inbound traffic source IP subnets in CIDR format","description_kind":"plain","deprecated":true,"optional":true}},"description":"One or more rules to specify allowed inbound traffic. Rules are ordered, matching traffic rule stops processing subsequent ones.","description_kind":"plain"},"min_items":1}},"description":"Resource allows creation and management of Equinix Network Edge device Access Control List templates","description_kind":"plain"}},"equinix_network_bgp":{"version":0,"block":{"attributes":{"authentication_key":{"type":"string","description":"Shared key used for BGP peer authentication","description_kind":"plain","optional":true,"sensitive":true},"connection_id":{"type":"string","description":"Identifier of a connection established between network device and remote service provider that will be used for peering","description_kind":"plain","required":true},"device_id":{"type":"string","description":"Unique identifier of a network device that is a local peer in a given BGP peering configuration","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"local_asn":{"type":"number","description":"Local ASN number","description_kind":"plain","required":true},"local_ip_address":{"type":"string","description":"IP address in CIDR format of a local device","description_kind":"plain","required":true},"provisioning_status":{"type":"string","description":"BGP peering configuration provisioning status","description_kind":"plain","computed":true},"remote_asn":{"type":"number","description":"Remote ASN number","description_kind":"plain","required":true},"remote_ip_address":{"type":"string","description":"IP address of remote peer","description_kind":"plain","required":true},"state":{"type":"string","description":"BGP peer state","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"BGP peering configuration unique identifier","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Network Edge BGP peering configurations","description_kind":"plain"}},"equinix_network_device":{"version":0,"block":{"attributes":{"account_number":{"type":"string","description":"Device billing account number","description_kind":"plain","required":true},"acl_template_id":{"type":"string","description":"Unique identifier of applied ACL template","description_kind":"plain","optional":true},"additional_bandwidth":{"type":"number","description":"Additional Internet bandwidth, in Mbps, that will be allocated to the device","description_kind":"plain","optional":true,"computed":true},"asn":{"type":"number","description":"Autonomous system number","description_kind":"plain","computed":true},"byol":{"type":"bool","description":"Boolean value that determines device licensing mode: bring your own license or subscription (default)","description_kind":"plain","optional":true},"cloud_init_file_id":{"type":"string","description":"Unique identifier of applied cloud init file","description_kind":"plain","optional":true},"connectivity":{"type":"string","description":"Parameter to identify internet access for device. Supported Values: INTERNET-ACCESS(default) or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT","description_kind":"plain","optional":true},"core_count":{"type":"number","description":"Number of CPU cores used by device","description_kind":"plain","required":true},"diverse_device_id":{"type":"string","description":"Unique ID of an existing device","description_kind":"plain","optional":true,"computed":true},"diverse_device_name":{"type":"string","description":"Diverse Device Name of an existing device","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Device hostname prefix","description_kind":"plain","optional":true,"computed":true},"ibx":{"type":"string","description":"Device location Equinix Business Exchange name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface":{"type":["list",["object",{"assigned_type":"string","id":"number","ip_address":"string","mac_address":"string","name":"string","operational_status":"string","status":"string","type":"string"}]],"description":"List of device interfaces","description_kind":"plain","computed":true},"interface_count":{"type":"number","description":"Number of network interfaces on a device. If not specified, default number for a given device type will be used","description_kind":"plain","optional":true,"computed":true},"license_file":{"type":"string","description":"Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode","description_kind":"plain","optional":true},"license_file_id":{"type":"string","description":"Unique identifier of applied license file","description_kind":"plain","optional":true,"computed":true},"license_status":{"type":"string","description":"Device license registration status","description_kind":"plain","computed":true},"license_token":{"type":"string","description":"License Token applicable for some device types in BYOL licensing mode","description_kind":"plain","optional":true},"metro_code":{"type":"string","description":"Device location metro code","description_kind":"plain","required":true},"mgmt_acl_template_uuid":{"type":"string","description":"Unique identifier of applied MGMT ACL template","description_kind":"plain","optional":true},"name":{"type":"string","description":"Device name","description_kind":"plain","required":true},"notifications":{"type":["set","string"],"description":"List of email addresses that will receive device status notifications","description_kind":"plain","required":true},"order_reference":{"type":"string","description":"Name/number used to identify device order on the invoice","description_kind":"plain","optional":true},"package_code":{"type":"string","description":"Device software package code","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The unique identifier of Project Resource to which device is scoped to","description_kind":"plain","optional":true,"computed":true},"purchase_order_number":{"type":"string","description":"Purchase order number associated with a device order","description_kind":"plain","optional":true},"redundancy_type":{"type":"string","description":"Device redundancy type applicable for HA devices, either primary or secondary","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description":"Unique identifier for a redundant device, applicable for HA device","description_kind":"plain","computed":true},"region":{"type":"string","description":"Device location region","description_kind":"plain","computed":true},"self_managed":{"type":"bool","description":"Boolean value that determines device management mode: self-managed or subscription (default)","description_kind":"plain","optional":true},"ssh_ip_address":{"type":"string","description":"IP address of SSH enabled interface on the device","description_kind":"plain","computed":true},"ssh_ip_fqdn":{"type":"string","description":"FQDN of SSH enabled interface on the device","description_kind":"plain","computed":true},"status":{"type":"string","description":"Device provisioning status","description_kind":"plain","computed":true},"term_length":{"type":"number","description":"Device term length","description_kind":"plain","required":true},"throughput":{"type":"number","description":"Device license throughput","description_kind":"plain","optional":true},"throughput_unit":{"type":"string","description":"Device license throughput unit (Mbps or Gbps)","description_kind":"plain","optional":true},"type_code":{"type":"string","description":"Device type code","description_kind":"plain","required":true},"uuid":{"type":"string","description":"Device unique identifier","description_kind":"plain","computed":true},"vendor_configuration":{"type":["map","string"],"description":"Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress)","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description":"Device software software version","description_kind":"plain","required":true},"wan_interface_id":{"type":"string","description":"device interface id picked for WAN","description_kind":"plain","optional":true},"zone_code":{"type":"string","description":"Device location zone code","description_kind":"plain","computed":true}},"block_types":{"cluster_details":{"nesting_mode":"list","block":{"attributes":{"cluster_id":{"type":"string","description":"The id of the cluster","description_kind":"plain","computed":true},"cluster_name":{"type":"string","description":"The name of the cluster device","description_kind":"plain","required":true},"num_of_nodes":{"type":"number","description":"The number of nodes in the cluster","description_kind":"plain","computed":true}},"block_types":{"node0":{"nesting_mode":"list","block":{"attributes":{"license_file_id":{"type":"string","description":"License file id. This is necessary for Fortinet and Juniper clusters","description_kind":"plain","optional":true},"license_token":{"type":"string","description":"License token. This is necessary for Palo Alto clusters","description_kind":"plain","optional":true,"sensitive":true},"name":{"type":"string","description":"The name of the node","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"The unique id of the node","description_kind":"plain","computed":true}},"block_types":{"vendor_configuration":{"nesting_mode":"list","block":{"attributes":{"activation_key":{"type":"string","description":"Activation key. This is required for Velocloud clusters","description_kind":"plain","optional":true,"sensitive":true},"admin_password":{"type":"string","description":"The administrative password of the device. You can use it to log in to the console. This field is not available for all device types","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"controller1":{"type":"string","description":"System IP Address. Mandatory for the Fortinet SDWAN cluster device","description_kind":"plain","optional":true},"controller_fqdn":{"type":"string","description":"Controller fqdn. This is required for Velocloud clusters","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster","description_kind":"plain","optional":true,"sensitive":true}},"description":"An object that has fields relevant to the vendor of the cluster device","description_kind":"plain"},"max_items":1}},"description":"An object that has node0 details","description_kind":"plain"},"min_items":1,"max_items":1},"node1":{"nesting_mode":"list","block":{"attributes":{"license_file_id":{"type":"string","description":"License file id. This is necessary for Fortinet and Juniper clusters","description_kind":"plain","optional":true},"license_token":{"type":"string","description":"License token. This is necessary for Palo Alto clusters","description_kind":"plain","optional":true,"sensitive":true},"name":{"type":"string","description":"The name of the node","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"The unique id of the node","description_kind":"plain","computed":true}},"block_types":{"vendor_configuration":{"nesting_mode":"list","block":{"attributes":{"activation_key":{"type":"string","description":"Activation key. This is required for Velocloud clusters","description_kind":"plain","optional":true,"sensitive":true},"admin_password":{"type":"string","description":"The administrative password of the device. You can use it to log in to the console. This field is not available for all device types","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"controller1":{"type":"string","description":"System IP Address. Mandatory for the Fortinet SDWAN cluster device","description_kind":"plain","optional":true},"controller_fqdn":{"type":"string","description":"Controller fqdn. This is required for Velocloud clusters","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster","description_kind":"plain","optional":true,"sensitive":true}},"description":"An object that has fields relevant to the vendor of the cluster device","description_kind":"plain"},"max_items":1}},"description":"An object that has node1 details","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"An object that has the cluster details","description_kind":"plain"},"max_items":1},"secondary_device":{"nesting_mode":"list","block":{"attributes":{"account_number":{"type":"string","description":"Device billing account number","description_kind":"plain","required":true},"acl_template_id":{"type":"string","description":"Unique identifier of applied ACL template","description_kind":"plain","optional":true},"additional_bandwidth":{"type":"number","description":"Additional Internet bandwidth, in Mbps, that will be allocated to the device","description_kind":"plain","optional":true,"computed":true},"asn":{"type":"number","description":"Autonomous system number","description_kind":"plain","computed":true},"cloud_init_file_id":{"type":"string","description":"Unique identifier of applied cloud init file","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"Device hostname prefix","description_kind":"plain","optional":true},"ibx":{"type":"string","description":"Device location Equinix Business Exchange name","description_kind":"plain","computed":true},"interface":{"type":["list",["object",{"assigned_type":"string","id":"number","ip_address":"string","mac_address":"string","name":"string","operational_status":"string","status":"string","type":"string"}]],"description":"List of device interfaces","description_kind":"plain","computed":true},"license_file":{"type":"string","description":"Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode","description_kind":"plain","optional":true},"license_file_id":{"type":"string","description":"Unique identifier of applied license file","description_kind":"plain","optional":true,"computed":true},"license_status":{"type":"string","description":"Device license registration status","description_kind":"plain","computed":true},"license_token":{"type":"string","description":"License Token applicable for some device types in BYOL licensing mode","description_kind":"plain","optional":true},"metro_code":{"type":"string","description":"Device location metro code","description_kind":"plain","required":true},"mgmt_acl_template_uuid":{"type":"string","description":"Unique identifier of applied MGMT ACL template","description_kind":"plain","optional":true},"name":{"type":"string","description":"Device name","description_kind":"plain","required":true},"notifications":{"type":["set","string"],"description":"List of email addresses that will receive device status notifications","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The unique identifier of Project Resource to which device is scoped to","description_kind":"plain","computed":true},"redundancy_type":{"type":"string","description":"Device redundancy type applicable for HA devices, either primary or secondary","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description":"Unique identifier for a redundant device, applicable for HA device","description_kind":"plain","computed":true},"region":{"type":"string","description":"Device location region","description_kind":"plain","computed":true},"ssh_ip_address":{"type":"string","description":"IP address of SSH enabled interface on the device","description_kind":"plain","computed":true},"ssh_ip_fqdn":{"type":"string","description":"FQDN of SSH enabled interface on the device","description_kind":"plain","computed":true},"status":{"type":"string","description":"Device provisioning status","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Device unique identifier","description_kind":"plain","computed":true},"vendor_configuration":{"type":["map","string"],"description":"Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress)","description_kind":"plain","optional":true,"computed":true},"wan_interface_id":{"type":"string","description":"device interface id picked for WAN","description_kind":"plain","optional":true},"zone_code":{"type":"string","description":"Device location zone code","description_kind":"plain","computed":true}},"block_types":{"ssh_key":{"nesting_mode":"set","block":{"attributes":{"key_name":{"type":"string","description":"Reference by name to previously provisioned public SSH key","description_kind":"plain","required":true},"username":{"type":"string","description":"Username associated with given key","description_kind":"plain","required":true}},"description":"Definition of SSH key that will be provisioned on a device","description_kind":"plain"},"max_items":1}},"description":"Definition of secondary device applicable for HA setup","description_kind":"plain"},"max_items":1},"ssh_key":{"nesting_mode":"set","block":{"attributes":{"key_name":{"type":"string","description":"Reference by name to previously provisioned public SSH key","description_kind":"plain","required":true},"username":{"type":"string","description":"Username associated with given key","description_kind":"plain","required":true}},"description":"Definition of SSH key that will be provisioned on a device","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Network Edge virtual devices","description_kind":"plain"}},"equinix_network_device_link":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"name","description_kind":"plain","required":true},"project_id":{"type":"string","description":"project_id","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Device link provisioning status","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"subnet","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"Device link unique identifier","description_kind":"plain","computed":true}},"block_types":{"device":{"nesting_mode":"set","block":{"attributes":{"asn":{"type":"number","description":"Device ASN number","description_kind":"plain","optional":true},"id":{"type":"string","description":"Device identifier","description_kind":"plain","required":true},"interface_id":{"type":"number","description":"Device network interface identifier to use for device link connection","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"Assigned IP address from device link subnet","description_kind":"plain","computed":true},"status":{"type":"string","description":"Device link connection provisioning status","description_kind":"plain","computed":true}},"description_kind":"plain"},"min_items":2},"link":{"nesting_mode":"set","block":{"attributes":{"account_number":{"type":"string","description":"Billing account number to be used for connection charges","description_kind":"plain","required":true},"dst_metro_code":{"type":"string","description":"Connection destination metro code","description_kind":"plain","required":true},"dst_zone_code":{"type":"string","description":"Connection destination zone code","description_kind":"plain","deprecated":true,"optional":true},"src_metro_code":{"type":"string","description":"Connection source metro code","description_kind":"plain","required":true},"src_zone_code":{"type":"string","description":"Connection source zone code","description_kind":"plain","deprecated":true,"optional":true},"throughput":{"type":"string","description":"Connection throughput","description_kind":"plain","required":true},"throughput_unit":{"type":"string","description":"Connection throughput unit","description_kind":"plain","required":true}},"description":"link","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Network Edge device links","description_kind":"plain"}},"equinix_network_file":{"version":0,"block":{"attributes":{"byol":{"type":"bool","description":"Boolean value that determines device licensing mode: bring your own license or subscription","description_kind":"plain","required":true},"content":{"type":"string","description":"Uploaded file content, expected to be a UTF-8 encoded string","description_kind":"plain","required":true,"sensitive":true},"device_type_code":{"type":"string","description":"Device type code","description_kind":"plain","required":true},"file_name":{"type":"string","description":"File name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"File upload location metro code","description_kind":"plain","required":true},"process_type":{"type":"string","description":"File process type (LICENSE or CLOUD_INIT)","description_kind":"plain","required":true},"self_managed":{"type":"bool","description":"Boolean value that determines device management mode: self-managed or equinix-managed","description_kind":"plain","required":true},"status":{"type":"string","description":"File upload status","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of file resource","description_kind":"plain","computed":true}},"description":"Resource allows creation and management of Equinix Network Edge device files","description_kind":"plain"}},"equinix_network_ssh_key":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of SSH key used for identification","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The unique identifier of Project Resource to which ssh key is scoped to","description_kind":"plain","optional":true,"computed":true},"public_key":{"type":"string","description":"The SSH public key. If this is a file, it can be read using the file interpolation function","description_kind":"plain","required":true},"type":{"type":"string","description":"The type of SSH key: RSA (default) or DSA","description_kind":"plain","optional":true},"uuid":{"type":"string","description":"The unique identifier of the key","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description":"Resource allows creation and management of Equinix Network Edge SSH keys","description_kind":"plain"}},"equinix_network_ssh_user":{"version":0,"block":{"attributes":{"device_ids":{"type":["set","string"],"description":"list of device identifiers to which user will have access","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description":"SSH user password","description_kind":"plain","required":true,"sensitive":true},"username":{"type":"string","description":"SSH user login name","description_kind":"plain","required":true},"uuid":{"type":"string","description":"SSH user unique identifier","description_kind":"plain","computed":true}},"description":"Resource allows creation and management of Equinix Network Edge SSH users","description_kind":"plain"}}},"data_source_schemas":{"equinix_ecx_l2_sellerprofile":{"version":0,"block":{"attributes":{"additional_info":{"type":["set",["object",{"captured_in_email":"bool","data_type":"string","description":"string","mandatory":"bool","name":"string"}]],"description":"One or more specifications of additional buyer information attributes that can be provided in connection definition that uses given seller profile","description_kind":"plain","computed":true},"description":{"type":"string","description":"Seller Profile text description","description_kind":"plain","computed":true},"encapsulation":{"type":"string","description":"Seller profile's encapsulation (either Dot1q or QinQ)","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":["set",["object",{"code":"string","ibxes":["set","string"],"name":"string","regions":["map","string"]}]],"description":"One or more specifications of metro locations supported by seller profile","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the seller profile","description_kind":"plain","optional":true,"computed":true},"organization_global_name":{"type":"string","description":"Name of seller's global organization","description_kind":"plain","optional":true,"computed":true},"organization_name":{"type":"string","description":"Name of seller's organization","description_kind":"plain","optional":true,"computed":true},"redundancy_required":{"type":"bool","description":"Boolean that indicate if seller requires connections to be redundant","description_kind":"plain","computed":true},"speed_band":{"type":["set",["object",{"speed":"number","speed_unit":"string"}]],"description":"One or more specifications of speed/bandwidth supported by given seller profile","description_kind":"plain","computed":true},"speed_customization_allowed":{"type":"bool","description":"Boolean that indicates if seller allows customer to enter a custom connection speed","description_kind":"plain","computed":true},"speed_from_api":{"type":"bool","description":"Boolean that indicates if seller is deriving connection speed from an API call","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of the seller profile","description_kind":"plain","computed":true}},"description":"Use this data source to get details of Equinix Fabric layer 2 seller profile with a given name and / or organization","description_kind":"plain","deprecated":true}},"equinix_ecx_l2_sellerprofiles":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_codes":{"type":["set","string"],"description":"List of metro codes of locations that should be served by resulting profiles","description_kind":"plain","optional":true},"name_regex":{"type":"string","description":"A regex string to apply on returned seller profile names and filter search results","description_kind":"plain","optional":true},"organization_global_name":{"type":"string","description":"Name of seller's global organization","description_kind":"plain","optional":true},"organization_name":{"type":"string","description":"Name of seller's organization","description_kind":"plain","optional":true},"profiles":{"type":["list",["object",{"additional_info":["set",["object",{"captured_in_email":"bool","data_type":"string","description":"string","mandatory":"bool","name":"string"}]],"description":"string","encapsulation":"string","metro":["set",["object",{"code":"string","ibxes":["set","string"],"name":"string","regions":["map","string"]}]],"name":"string","organization_global_name":"string","organization_name":"string","redundancy_required":"bool","speed_band":["set",["object",{"speed":"number","speed_unit":"string"}]],"speed_customization_allowed":"bool","speed_from_api":"bool","uuid":"string"}]],"description":"Resulting list of profiles that match filtering criteria","description_kind":"plain","computed":true},"speed_bands":{"type":["set","string"],"description":"List of speed bands that should be supported by resulting profiles","description_kind":"plain","optional":true}},"description":"Use this data source to get list of Equinix Fabric layer 2 seller profiles","description_kind":"plain","deprecated":true}},"equinix_ecx_port":{"version":0,"block":{"attributes":{"bandwidth":{"type":"string","description":"Port Bandwidth in bytes","description_kind":"plain","computed":true},"buyout":{"type":"bool","description":"Boolean value that indicates whether the port supports unlimited connections.","description_kind":"plain","computed":true},"encapsulation":{"type":"string","description":"The VLAN encapsulation of the port (Dot1q or QinQ)","description_kind":"plain","computed":true},"ibx":{"type":"string","description":"Port location Equinix Business Exchange (IBX)","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Port location metro code","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the port","description_kind":"plain","required":true},"priority":{"type":"string","description":"The priority of the device (primary / secondary) where the port resides","description_kind":"plain","computed":true},"region":{"type":"string","description":"Port location region","description_kind":"plain","computed":true},"status":{"type":"string","description":"Port status that indicates whether a port has been assigned or is ready for connection","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Unique identifier of the por","description_kind":"plain","computed":true}},"description":"Use this data source to get details of Equinix Fabric port with a given name","description_kind":"plain","deprecated":true}},"equinix_fabric_cloud_router":{"version":0,"block":{"attributes":{"account":{"type":["set",["object",{"account_number":"number"}]],"description":"Customer account information that is associated with this Fabric Cloud Router","description_kind":"plain","computed":true},"bgp_ipv4_routes_count":{"type":"number","description":"Number of IPv4 BGP routes in use (including non-distinct prefixes)","description_kind":"plain","computed":true},"bgp_ipv6_routes_count":{"type":"number","description":"Number of IPv6 BGP routes in use (including non-distinct prefixes)","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures Fabric Cloud Router lifecycle change information","description_kind":"plain","computed":true},"connections_count":{"type":"number","description":"Number of connections associated with this Fabric Cloud Router instance","description_kind":"plain","computed":true},"description":{"type":"string","description":"Customer-provided Fabric Cloud Router description","description_kind":"plain","computed":true},"distinct_ipv4_prefixes_count":{"type":"number","description":"Number of distinct IPv4 routes","description_kind":"plain","computed":true},"distinct_ipv6_prefixes_count":{"type":"number","description":"Number of distinct IPv6 routes","description_kind":"plain","computed":true},"equinix_asn":{"type":"number","description":"Equinix ASN","description_kind":"plain","computed":true},"href":{"type":"string","description":"Fabric Cloud Router URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"description":"Fabric Cloud Router location","description_kind":"plain","computed":true},"name":{"type":"string","description":"Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","computed":true},"notifications":{"type":["list",["object",{"emails":["list","string"],"send_interval":"string","type":"string"}]],"description":"Preferences for notifications on Fabric Cloud Router configuration or status changes","description_kind":"plain","computed":true},"order":{"type":["set",["object",{"billing_tier":"string","order_id":"string","order_number":"string","purchase_order_number":"string"}]],"description":"Order information related to this Fabric Cloud Router","description_kind":"plain","computed":true},"package":{"type":["set",["object",{"code":"string"}]],"description":"Fabric Cloud Router Package Type","description_kind":"plain","computed":true},"project":{"type":["set",["object",{"href":"string","project_id":"string"}]],"description":"Customer resource hierarchy project information.Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects","description_kind":"plain","computed":true},"state":{"type":"string","description":"Fabric Cloud Router overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the FCR type like; XF_ROUTER","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned Fabric Cloud Router identifier","description_kind":"plain","required":true}},"description":"Fabric V4 API compatible data resource that allow user to fetch Fabric Cloud Router for a given UUID","description_kind":"plain"}},"equinix_fabric_connection":{"version":0,"block":{"attributes":{"a_side":{"type":["set",["object",{"access_point":["set",["object",{"account":["set",["object",{"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"}]],"authentication_key":"string","gateway":["set",["object",{"href":"string","uuid":"string"}]],"interface":["set",["object",{"id":"number","type":"string","uuid":"string"}]],"link_protocol":["set",["object",{"type":"string","vlan_c_tag":"number","vlan_s_tag":"number","vlan_tag":"number"}]],"location":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"network":["set",["object",{"href":"string","uuid":"string"}]],"peering_type":"string","port":["set",["object",{"href":"string","name":"string","redundancy":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]],"uuid":"string"}]],"profile":["set",["object",{"access_point_type_configs":["list",["object",{"type":"string","uuid":"string"}]],"description":"string","href":"string","name":"string","type":"string","uuid":"string"}]],"provider_connection_id":"string","router":["set",["object",{"href":"string","uuid":"string"}]],"seller_region":"string","type":"string","virtual_device":["set",["object",{"href":"string","name":"string","type":"string","uuid":"string"}]]}]],"additional_info":["list",["object",{"key":"string","value":"string"}]],"service_token":["set",["object",{"description":"string","href":"string","type":"string","uuid":"string"}]]}]],"description":"Requester or Customer side connection configuration object of the multi-segment connection","description_kind":"plain","computed":true},"account":{"type":["set",["object",{"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"}]],"description":"Customer account information that is associated with this connection","description_kind":"plain","computed":true},"additional_info":{"type":["list",["map","string"]],"description":"Connection additional information","description_kind":"plain","computed":true},"bandwidth":{"type":"number","description":"Connection bandwidth in Mbps","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures connection lifecycle change information","description_kind":"plain","computed":true},"description":{"type":"string","description":"Customer-provided connection description","description_kind":"plain","computed":true},"direction":{"type":"string","description":"Connection directionality from the requester point of view","description_kind":"plain","computed":true},"href":{"type":"string","description":"Connection URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_remote":{"type":"bool","description":"Connection property derived from access point locations","description_kind":"plain","computed":true},"name":{"type":"string","description":"Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","computed":true},"notifications":{"type":["list",["object",{"emails":["list","string"],"send_interval":"string","type":"string"}]],"description":"Preferences for notifications on connection configuration or status changes","description_kind":"plain","computed":true},"operation":{"type":["set",["object",{"equinix_status":"string","errors":["list",["object",{"additional_info":["list",["object",{"property":"string","reason":"string"}]],"correlation_id":"string","details":"string","error_code":"string","error_message":"string","help":"string"}]],"provider_status":"string"}]],"description":"Connection type-specific operational data","description_kind":"plain","computed":true},"order":{"type":["set",["object",{"billing_tier":"string","order_id":"string","order_number":"string","purchase_order_number":"string"}]],"description":"Order details","description_kind":"plain","computed":true},"project":{"type":["set",["object",{"href":"string","project_id":"string"}]],"description":"Project information","description_kind":"plain","computed":true},"redundancy":{"type":["set",["object",{"group":"string","priority":"string"}]],"description":"Connection Redundancy Configuration","description_kind":"plain","computed":true},"state":{"type":"string","description":"Connection overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the connection type like EVPL_VC, EPL_VC, IPWAN_VC, IP_VC, ACCESS_EPL_VC, EVPLAN_VC, EPLAN_VC, EIA_VC, EC_VC","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned connection identifier","description_kind":"plain","required":true},"z_side":{"type":["set",["object",{"access_point":["set",["object",{"account":["set",["object",{"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"}]],"authentication_key":"string","gateway":["set",["object",{"href":"string","uuid":"string"}]],"interface":["set",["object",{"id":"number","type":"string","uuid":"string"}]],"link_protocol":["set",["object",{"type":"string","vlan_c_tag":"number","vlan_s_tag":"number","vlan_tag":"number"}]],"location":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"network":["set",["object",{"href":"string","uuid":"string"}]],"peering_type":"string","port":["set",["object",{"href":"string","name":"string","redundancy":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]],"uuid":"string"}]],"profile":["set",["object",{"access_point_type_configs":["list",["object",{"type":"string","uuid":"string"}]],"description":"string","href":"string","name":"string","type":"string","uuid":"string"}]],"provider_connection_id":"string","router":["set",["object",{"href":"string","uuid":"string"}]],"seller_region":"string","type":"string","virtual_device":["set",["object",{"href":"string","name":"string","type":"string","uuid":"string"}]]}]],"additional_info":["list",["object",{"key":"string","value":"string"}]],"service_token":["set",["object",{"description":"string","href":"string","type":"string","uuid":"string"}]]}]],"description":"Destination or Provider side connection configuration object of the multi-segment connection","description_kind":"plain","computed":true}},"description":"Fabric V4 API compatible data resource that allow user to fetch connection for a given UUID","description_kind":"plain"}},"equinix_fabric_network":{"version":0,"block":{"attributes":{"change":{"type":["set",["object",{"href":"string","type":"string","uuid":"string"}]],"description":"Information on asset change operation","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"A permanent record of asset creation, modification, or deletion","description_kind":"plain","computed":true},"connections_count":{"type":"number","description":"Number of connections associated with this network","description_kind":"plain","computed":true},"href":{"type":"string","description":"Fabric Network URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"location":{"type":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"description":"Fabric Network location","description_kind":"plain","computed":true},"name":{"type":"string","description":"Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","computed":true},"notifications":{"type":["list",["object",{"emails":["list","string"],"send_interval":"string","type":"string"}]],"description":"Preferences for notifications on Fabric Network configuration or status changes","description_kind":"plain","computed":true},"operation":{"type":["set",["object",{"equinix_status":"string"}]],"description":"Network operation information that is associated with this Fabric Network","description_kind":"plain","computed":true},"project":{"type":["set",["object",{"project_id":"string"}]],"description":"Fabric Network project","description_kind":"plain","computed":true},"scope":{"type":"string","description":"Fabric Network scope","description_kind":"plain","computed":true},"state":{"type":"string","description":"Fabric Network overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Supported Network types - EVPLAN, EPLAN, IPWAN","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned network identifier","description_kind":"plain","required":true}},"description":"Fabric V4 API compatible data resource that allow user to fetch Fabric Network for a given UUID","description_kind":"plain"}},"equinix_fabric_port":{"version":0,"block":{"attributes":{"account":{"type":["set",["object",{"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"}]],"description":"Customer account information that is associated with this port","description_kind":"plain","computed":true},"available_bandwidth":{"type":"number","description":"Port available bandwidth in Mbps","description_kind":"plain","computed":true},"bandwidth":{"type":"number","description":"Port bandwidth in Mbps","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures port lifecycle change information","description_kind":"plain","computed":true},"description":{"type":"string","description":"Port description","description_kind":"plain","computed":true},"device":{"type":["set",["object",{"name":"string","redundancy":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]]}]],"description":"Port device","description_kind":"plain","computed":true},"encapsulation":{"type":["set",["object",{"tag_protocol_id":"string","type":"string"}]],"description":"Port encapsulation protocol","description_kind":"plain","computed":true},"href":{"type":"string","description":"Port URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lag_enabled":{"type":"bool","description":"Port Lag","description_kind":"plain","computed":true},"location":{"type":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"description":"Port location information","description_kind":"plain","computed":true},"name":{"type":"string","description":"Port name","description_kind":"plain","computed":true},"operation":{"type":["set",["object",{"connection_count":"number","op_status_changed_at":"string","operational_status":"string"}]],"description":"Port specific operational data","description_kind":"plain","computed":true},"redundancy":{"type":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]],"description":"Port redundancy information","description_kind":"plain","computed":true},"service_type":{"type":"string","description":"Port service type","description_kind":"plain","computed":true},"state":{"type":"string","description":"Port state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Port type","description_kind":"plain","computed":true},"used_bandwidth":{"type":"number","description":"Port used bandwidth in Mbps","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned port identifier","description_kind":"plain","required":true}},"description":"Fabric V4 API compatible data resource that allow user to fetch port by uuid","description_kind":"plain"}},"equinix_fabric_ports":{"version":0,"block":{"attributes":{"data":{"type":["list",["object",{"account":["set",["object",{"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"}]],"available_bandwidth":"number","bandwidth":"number","change_log":["set",["object",{"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"}]],"description":"string","device":["set",["object",{"name":"string","redundancy":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]]}]],"encapsulation":["set",["object",{"tag_protocol_id":"string","type":"string"}]],"href":"string","lag_enabled":"bool","location":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"name":"string","operation":["set",["object",{"connection_count":"number","op_status_changed_at":"string","operational_status":"string"}]],"redundancy":["set",["object",{"enabled":"bool","group":"string","priority":"string"}]],"service_type":"string","state":"string","type":"string","used_bandwidth":"number","uuid":"string"}]],"description":"List of Ports","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"filters":{"nesting_mode":"set","block":{"attributes":{"name":{"type":"string","description":"Query Parameter to Get Ports By Name","description_kind":"plain","required":true}},"description":"name","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Fabric V4 API compatible data resource that allow user to fetch port by name","description_kind":"plain"}},"equinix_fabric_routing_protocol":{"version":0,"block":{"attributes":{"bfd":{"type":["set",["object",{"enabled":"bool","interval":"string"}]],"description":"Bidirectional Forwarding Detection","description_kind":"plain","computed":true},"bgp_auth_key":{"type":"string","description":"BGP authorization key","description_kind":"plain","computed":true},"bgp_ipv4":{"type":["set",["object",{"customer_peer_ip":"string","enabled":"bool","equinix_peer_ip":"string"}]],"description":"Routing Protocol BGP IPv4","description_kind":"plain","computed":true},"bgp_ipv6":{"type":["set",["object",{"customer_peer_ip":"string","enabled":"bool","equinix_peer_ip":"string"}]],"description":"Routing Protocol BGP IPv6","description_kind":"plain","computed":true},"change":{"type":["set",["object",{"href":"string","type":"string","uuid":"string"}]],"description":"Routing Protocol configuration Changes","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures Routing Protocol lifecycle change information","description_kind":"plain","computed":true},"connection_uuid":{"type":"string","description":"Connection URI associated with Routing Protocol","description_kind":"plain","required":true},"customer_asn":{"type":"number","description":"Customer-provided ASN","description_kind":"plain","computed":true},"description":{"type":"string","description":"Customer-provided Fabric Routing Protocol description","description_kind":"plain","computed":true},"direct_ipv4":{"type":["set",["object",{"equinix_iface_ip":"string"}]],"description":"Routing Protocol Direct IPv4","description_kind":"plain","computed":true},"direct_ipv6":{"type":["set",["object",{"equinix_iface_ip":"string"}]],"description":"Routing Protocol Direct IPv6","description_kind":"plain","computed":true},"equinix_asn":{"type":"number","description":"Equinix ASN","description_kind":"plain","computed":true},"href":{"type":"string","description":"Routing Protocol URI information","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Routing Protocol name. An alpha-numeric 24 characters string which can include only hyphens and underscores","description_kind":"plain","computed":true},"operation":{"type":["set",["object",{"errors":["list",["object",{"additional_info":["list",["object",{"property":"string","reason":"string"}]],"correlation_id":"string","details":"string","error_code":"string","error_message":"string","help":"string"}]]}]],"description":"Routing Protocol type-specific operational data","description_kind":"plain","computed":true},"state":{"type":"string","description":"Routing Protocol overall state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Defines the routing protocol type like BGP or DIRECT","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix-assigned routing protocol identifier","description_kind":"plain","required":true}},"description":"Fabric V4 API compatible data resource that allow user to fetch routing protocol for a given UUID","description_kind":"plain"}},"equinix_fabric_service_profile":{"version":0,"block":{"attributes":{"access_point_type_configs":{"type":["list",["object",{"allow_bandwidth_auto_approval":"bool","allow_bandwidth_upgrade":"bool","allow_custom_bandwidth":"bool","allow_remote_connections":"bool","api_config":["set",["object",{"allow_over_subscription":"bool","api_available":"bool","bandwidth_from_api":"bool","equinix_managed_port":"bool","equinix_managed_vlan":"bool","integration_id":"string","over_subscription_limit":"number"}]],"authentication_key":["set",["object",{"description":"string","label":"string","required":"bool"}]],"bandwidth_alert_threshold":"number","connection_label":"string","connection_redundancy_required":"bool","enable_auto_generate_service_key":"bool","link_protocol_config":["set",["object",{"encapsulation":"string","encapsulation_strategy":"string","reuse_vlan_s_tag":"bool"}]],"supported_bandwidths":["list","number"],"type":"string","uuid":"string"}]],"description":"Access point config information","description_kind":"plain","computed":true},"account":{"type":["set",["object",{"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"}]],"description":"Service Profile Owner Account Information","description_kind":"plain","computed":true},"allowed_emails":{"type":["list","string"],"description":"Array of contact emails","description_kind":"plain","computed":true},"change_log":{"type":["set",["object",{"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"}]],"description":"Captures connection lifecycle change information","description_kind":"plain","computed":true},"custom_fields":{"type":["list",["object",{"capture_in_email":"bool","data_type":"string","description":"string","label":"string","options":["list","string"],"required":"bool"}]],"description":"Custom Fields","description_kind":"plain","computed":true},"description":{"type":"string","description":"User-provided service description","description_kind":"plain","computed":true},"href":{"type":"string","description":"Service Profile URI response attribute","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"marketing_info":{"type":["set",["object",{"logo":"string","process_step":["list",["object",{"description":"string","sub_title":"string","title":"string"}]],"promotion":"bool"}]],"description":"Marketing Info","description_kind":"plain","computed":true},"metros":{"type":["list",["object",{"code":"string","display_name":"string","ibxs":["list","string"],"in_trail":"bool","name":"string","seller_regions":["map","string"]}]],"description":"Access point config information","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer-assigned service profile name","description_kind":"plain","computed":true},"notifications":{"type":["list",["object",{"emails":["list","string"],"send_interval":"string","type":"string"}]],"description":"Preferences for notifications on connection configuration or status changes","description_kind":"plain","computed":true},"ports":{"type":["list",["object",{"cross_connect_id":"string","location":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"seller_region":"string","seller_region_description":"string","type":"string","uuid":"string"}]],"description":"Ports","description_kind":"plain","computed":true},"project":{"type":["set",["object",{"href":"string","project_id":"string"}]],"description":"Project information","description_kind":"plain","computed":true},"self_profile":{"type":"bool","description":"Self Profile indicating if the profile is created for customer's self use","description_kind":"plain","computed":true},"state":{"type":"string","description":"Service profile state - ACTIVE, PENDING_APPROVAL, DELETED, REJECTED","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Tags attached to the connection","description_kind":"plain","computed":true},"type":{"type":"string","description":"Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Equinix assigned service profile identifier","description_kind":"plain","required":true},"virtual_devices":{"type":["list",["object",{"interface_uuid":"string","location":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"type":"string","uuid":"string"}]],"description":"Virtual Devices","description_kind":"plain","computed":true},"visibility":{"type":"string","description":"Service profile visibility - PUBLIC, PRIVATE","description_kind":"plain","computed":true}},"description":"Fabric V4 API compatible data resource that allow user to fetch Service Profile by UUID filter criteria","description_kind":"plain"}},"equinix_fabric_service_profiles":{"version":0,"block":{"attributes":{"data":{"type":["list",["object",{"access_point_type_configs":["list",["object",{"allow_bandwidth_auto_approval":"bool","allow_bandwidth_upgrade":"bool","allow_custom_bandwidth":"bool","allow_remote_connections":"bool","api_config":["set",["object",{"allow_over_subscription":"bool","api_available":"bool","bandwidth_from_api":"bool","equinix_managed_port":"bool","equinix_managed_vlan":"bool","integration_id":"string","over_subscription_limit":"number"}]],"authentication_key":["set",["object",{"description":"string","label":"string","required":"bool"}]],"bandwidth_alert_threshold":"number","connection_label":"string","connection_redundancy_required":"bool","enable_auto_generate_service_key":"bool","link_protocol_config":["set",["object",{"encapsulation":"string","encapsulation_strategy":"string","reuse_vlan_s_tag":"bool"}]],"supported_bandwidths":["list","number"],"type":"string","uuid":"string"}]],"account":["set",["object",{"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"}]],"allowed_emails":["list","string"],"change_log":["set",["object",{"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"}]],"custom_fields":["list",["object",{"capture_in_email":"bool","data_type":"string","description":"string","label":"string","options":["list","string"],"required":"bool"}]],"description":"string","href":"string","marketing_info":["set",["object",{"logo":"string","process_step":["list",["object",{"description":"string","sub_title":"string","title":"string"}]],"promotion":"bool"}]],"metros":["list",["object",{"code":"string","display_name":"string","ibxs":["list","string"],"in_trail":"bool","name":"string","seller_regions":["map","string"]}]],"name":"string","notifications":["list",["object",{"emails":["list","string"],"send_interval":"string","type":"string"}]],"ports":["list",["object",{"cross_connect_id":"string","location":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"seller_region":"string","seller_region_description":"string","type":"string","uuid":"string"}]],"project":["set",["object",{"href":"string","project_id":"string"}]],"self_profile":"bool","state":"string","tags":["list","string"],"type":"string","uuid":"string","virtual_devices":["list",["object",{"interface_uuid":"string","location":["set",["object",{"ibx":"string","metro_code":"string","metro_name":"string","region":"string"}]],"type":"string","uuid":"string"}]],"visibility":"string"}]],"description":"List of Service Profiles","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"view_point":{"type":"string","description":"flips view between buyer and seller representation. Available values : aSide, zSide. Default value : aSide","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"operator":{"type":"string","description":"Possible operator to use on filters = - equal","description_kind":"plain","optional":true},"property":{"type":"string","description":"Search Criteria for Service Profile - /name, /uuid, /state, /metros/code, /visibility, /type","description_kind":"plain","optional":true},"values":{"type":["list","string"],"description":"Values","description_kind":"plain","optional":true}},"description":"Service Profile Search Filter","description_kind":"plain"},"max_items":1},"sort":{"nesting_mode":"list","block":{"attributes":{"direction":{"type":"string","description":"Priority type- DESC, ASC","description_kind":"plain","optional":true},"property":{"type":"string","description":"Search operation sort criteria /name /state /changeLog/createdDateTime /changeLog/updatedDateTime","description_kind":"plain","optional":true}},"description":"Service Profile Sort criteria for Search Request response payload","description_kind":"plain"}}},"description":"Fabric V4 API compatible data resource that allow user to fetch Service Profile by name filter criteria","description_kind":"plain"}},"equinix_metal_connection":{"version":0,"block":{"attributes":{"connection_id":{"type":"string","description":"ID of the connection to lookup","description_kind":"plain","required":true},"contact_email":{"type":"string","description":"The preferred email used for communication and notifications about the Equinix Fabric interconnection","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the connection resource","description_kind":"plain","computed":true},"facility":{"type":"string","description":"Facility which the connection is scoped to","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description":"The unique identifier of the resource","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro which the connection is scoped to","description_kind":"plain","computed":true},"mode":{"type":"string","description":"Connection mode - standard or tunnel","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the connection resource","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"ID of organization to which the connection is scoped to","description_kind":"plain","computed":true},"ports":{"type":["list",["object",{"id":"string","link_status":"string","name":"string","role":"string","speed":"number","status":"string","virtual_circuit_ids":["list","string"]}]],"description":"List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`)","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of project to which the connection belongs","description_kind":"plain","computed":true},"redundancy":{"type":"string","description":"Connection redundancy - redundant or primary","description_kind":"plain","computed":true},"service_token_type":{"type":"string","description":"Only used with shared connection. Type of service token to use for the connection, a_side or z_side","description_kind":"plain","computed":true},"service_tokens":{"type":["list",["object",{"expires_at":"string","id":"string","max_allowed_speed":"string","role":"string","state":"string","type":"string"}]],"description":"Only used with shared connection. List of service tokens required to continue the setup process with [equinix_ecx_l2_connection](https://registry.terraform.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard)","description_kind":"plain","computed":true},"speed":{"type":"string","description":"Connection speed - Values will be in the format '\u003cnumber\u003eMbps' or '\u003cnumber\u003eGpbs', for example '100Mbps`, '50Gbps', etc.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Status of the connection resource","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Tags attached to the connection","description_kind":"plain","computed":true},"token":{"type":"string","description":"Only used with shared connection. Fabric Token required to continue the setup process with [equinix_ecx_l2_connection](https://registry.terraform.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard)","description_kind":"plain","deprecated":true,"computed":true},"type":{"type":"string","description":"Connection type - dedicated or shared","description_kind":"plain","computed":true},"vlans":{"type":["list","number"],"description":"Attached vlans, only in shared connection","description_kind":"plain","computed":true},"vrfs":{"type":["list","string"],"description":"Attached vrfs, only in shared connection","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_device":{"version":0,"block":{"attributes":{"access_private_ipv4":{"type":"string","description":"The ipv4 private IP assigned to the device","description_kind":"plain","computed":true},"access_public_ipv4":{"type":"string","description":"The ipv4 management IP assigned to the device","description_kind":"plain","computed":true},"access_public_ipv6":{"type":"string","description":"The ipv6 management IP assigned to the device","description_kind":"plain","computed":true},"always_pxe":{"type":"bool","description_kind":"plain","computed":true},"billing_cycle":{"type":"string","description":"The billing cycle of the device (monthly or hourly)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description string for the device","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"Device ID","description_kind":"plain","optional":true,"computed":true},"facility":{"type":"string","description":"The facility where the device is deployed","description_kind":"plain","deprecated":true,"computed":true},"hardware_reservation_id":{"type":"string","description":"The id of hardware reservation which this device occupies","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"The device name","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipxe_script_url":{"type":"string","description_kind":"plain","computed":true},"metro":{"type":"string","description":"The metro where the device is deployed","description_kind":"plain","computed":true},"network":{"type":["list",["object",{"address":"string","cidr":"number","family":"number","gateway":"string","public":"bool"}]],"description":"The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 networks: ublic IPv4 at equinix_metal_device.name.network.0, IPv6 at equinix_metal_device.name.network.1 and private IPv4 at equinix_metal_device.name.network.2. Elastic addresses then stack by type - an assigned public IPv4 will go after the management public IPv4 (to index 1), and will then shift the indices of the IPv6 and private IPv4. Assigned private IPv4 will go after the management private IPv4 (to the end of the network list).","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"L2 network type of the device, one oflayer3, hybrid, layer2-individual, layer2-bonded","description_kind":"plain","computed":true},"operating_system":{"type":"string","description":"The operating system running on the device","description_kind":"plain","computed":true},"plan":{"type":"string","description":"The hardware config of the device","description_kind":"plain","computed":true},"ports":{"type":["list",["object",{"bonded":"bool","id":"string","mac":"string","name":"string","type":"string"}]],"description":"Ports assigned to the device","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The id of the project in which the devices exists","description_kind":"plain","optional":true,"computed":true},"root_password":{"type":"string","description":"Root password to the server (if still available)","description_kind":"plain","computed":true,"sensitive":true},"sos_hostname":{"type":"string","description":"The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device","description_kind":"plain","computed":true},"ssh_key_ids":{"type":["list","string"],"description":"List of IDs of SSH keys deployed in the device, can be both user or project SSH keys","description_kind":"plain","computed":true},"state":{"type":"string","description":"The state of the device","description_kind":"plain","computed":true},"storage":{"type":"string","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Tags attached to the device","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_device_bgp_neighbors":{"version":0,"block":{"attributes":{"bgp_neighbors":{"type":["list",["object",{"address_family":"number","customer_as":"number","customer_ip":"string","md5_enabled":"bool","md5_password":"string","multihop":"bool","peer_as":"number","peer_ips":["list","string"],"routes_in":["list",["object",{"exact":"bool","route":"string"}]],"routes_out":["list",["object",{"exact":"bool","route":"string"}]]}]],"description":"Array of BGP neighbor records","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"UUID of BGP-enabled device whose neighbors to list","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"equinix_metal_devices":{"version":0,"block":{"attributes":{"devices":{"type":["list",["object",{"access_private_ipv4":"string","access_public_ipv4":"string","access_public_ipv6":"string","always_pxe":"bool","billing_cycle":"string","description":"string","device_id":"string","facility":"string","hardware_reservation_id":"string","hostname":"string","ipxe_script_url":"string","metro":"string","network":["list",["object",{"address":"string","cidr":"number","family":"number","gateway":"string","public":"bool"}]],"network_type":"string","operating_system":"string","plan":"string","ports":["list",["object",{"bonded":"bool","id":"string","mac":"string","name":"string","type":"string"}]],"project_id":"string","root_password":"string","sos_hostname":"string","ssh_key_ids":["list","string"],"state":"string","storage":"string","tags":["list","string"]}]],"description":"List of devices that match specified filters","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The id of the organization to query for devices","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The id of the project to query for devices","description_kind":"plain","optional":true},"search":{"type":"string","description":"Search string to filter devices by hostname, description, short_id, reservation short_id, tags, plan name, plan slug, facility code, facility name, operating system name, operating system slug, IP addresses.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"all":{"type":"bool","description":"If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values","description_kind":"plain","optional":true},"attribute":{"type":"string","description":"The attribute used to filter. Filter attributes are case-sensitive","description_kind":"plain","required":true},"match_by":{"type":"string","description":"The type of comparison to apply. One of: in (default), re, substring, less_than, less_than_or_equal, greater_than, greater_than_or_equal","description_kind":"plain","optional":true},"values":{"type":["list","string"],"description":"The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values","description_kind":"plain","required":true}},"description":"One or more attribute/values pairs on which to filter results","description_kind":"plain"}},"sort":{"nesting_mode":"list","block":{"attributes":{"attribute":{"type":"string","description":"The attribute used to sort the results. Sort attributes are case-sensitive","description_kind":"plain","required":true},"direction":{"type":"string","description":"Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc","description_kind":"plain","optional":true}},"description":"One or more attribute/direction pairs on which to sort results. If multiple sorts are provided, they will be applied in order","description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_facility":{"version":0,"block":{"attributes":{"code":{"type":"string","description":"The code of the Facility to match","description_kind":"plain","required":true},"features":{"type":["list","string"],"description":"The features of this Facility","description_kind":"plain","computed":true},"features_required":{"type":["set","string"],"description":"Features which the facility needs to have","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"This facility's metro code","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of this Facility","description_kind":"plain","computed":true}},"block_types":{"capacity":{"nesting_mode":"list","block":{"attributes":{"plan":{"type":"string","description":"Plan which has to be available in selected location","description_kind":"plain","required":true},"quantity":{"type":"number","description_kind":"plain","optional":true}},"description":"Optional list of capacity specifications by plan","description_kind":"plain"}}},"description_kind":"plain","deprecated":true}},"equinix_metal_gateway":{"version":0,"block":{"attributes":{"gateway_id":{"type":"string","description":"UUID of the Metal Gateway to fetch","description_kind":"plain","required":true},"id":{"type":"string","description":"The unique identifier of the resource","description_kind":"plain","computed":true},"ip_reservation_id":{"type":"string","description":"UUID of the associated IP Reservation","description_kind":"plain","computed":true},"private_ipv4_subnet_size":{"type":"number","description":"Size of the private IPv4 subnet to create for this gateway","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"UUID of the Project where the Gateway is scoped to","description_kind":"plain","computed":true},"state":{"type":"string","description":"Status of the gateway resource","description_kind":"plain","computed":true},"vlan_id":{"type":"string","description":"UUID of the associated VLAN","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description":"UUID of the VRF associated with the IP Reservation","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_hardware_reservation":{"version":0,"block":{"attributes":{"device_id":{"type":"string","description":"UUID of device occupying the reservation","description_kind":"plain","optional":true,"computed":true},"facility":{"type":"string","description":"Facility for the reservation","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description":"ID of the hardware reservation to look up","description_kind":"plain","optional":true,"computed":true},"plan":{"type":"string","description":"Plan type for the reservation","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"UUID of project this reservation is scoped to","description_kind":"plain","computed":true},"provisionable":{"type":"bool","description":"Flag indicating whether the reserved server is provisionable or not. Spare devices can't be provisioned unless they are activated first","description_kind":"plain","computed":true},"short_id":{"type":"string","description":"Reservation short ID","description_kind":"plain","computed":true},"spare":{"type":"bool","description":"Flag indicating whether the Hardware Reservation is a spare. Spare Hardware Reservations are used when a Hardware Reservations requires service from Metal Equinix","description_kind":"plain","computed":true},"switch_uuid":{"type":"string","description":"Switch short ID, can be used to determine if two devices are connected to the same switch","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_ip_block_ranges":{"version":0,"block":{"attributes":{"facility":{"type":"string","description":"Facility code filtering the IP blocks. Global IPv4 blocks will be listed anyway. If you omit this and metro, all the block from the project will be listed","description_kind":"plain","deprecated":true,"optional":true},"global_ipv4":{"type":["list","string"],"description":"List of CIDR expressions for Global IPv4 blocks in the project","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv6":{"type":["list","string"],"description":"List of CIDR expressions for IPv6 blocks in the project","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro code filtering the IP blocks. Global IPv4 blocks will be listed anyway. If you omit this and facility, all the block from the project will be listed","description_kind":"plain","optional":true},"private_ipv4":{"type":["list","string"],"description":"List of CIDR expressions for Private IPv4 blocks in the project","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the project from which to list the blocks","description_kind":"plain","required":true},"public_ipv4":{"type":["list","string"],"description":"List of CIDR expressions for Public IPv4 blocks in the project","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_metro":{"version":0,"block":{"attributes":{"code":{"type":"string","description":"The code of the Metro to match","description_kind":"plain","required":true},"country":{"type":"string","description":"The country of this Metro","description_kind":"plain","computed":true},"id":{"type":"string","description":"The ID of this Metro","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of this Metro","description_kind":"plain","computed":true}},"block_types":{"capacity":{"nesting_mode":"list","block":{"attributes":{"plan":{"type":"string","description":"Plan which has to be available in selected location","description_kind":"plain","required":true},"quantity":{"type":"number","description_kind":"plain","optional":true}},"description":"Optional list of capacity specifications by plan","description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_operating_system":{"version":0,"block":{"attributes":{"distro":{"type":"string","description":"Name of the OS distribution","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name or part of the name of the distribution. Case insensitive","description_kind":"plain","optional":true},"provisionable_on":{"type":"string","description":"Plan name","description_kind":"plain","optional":true},"slug":{"type":"string","description":"Operating system slug (same as id)","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of the distribution","description_kind":"plain","optional":true}},"description_kind":"plain"}},"equinix_metal_organization":{"version":0,"block":{"attributes":{"address":{"type":["list",["object",{"address":"string","city":"string","country":"string","state":"string","zip_code":"string"}]],"description":"Business' address","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description string","description_kind":"plain","optional":true},"id":{"type":"string","description":"The unique identifier of the resource","description_kind":"plain","computed":true},"logo":{"type":"string","description":"Logo URL","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the Organization","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The UUID of the organization resource","description_kind":"plain","optional":true,"computed":true},"project_ids":{"type":["list","string"],"description":"UUIDs of project resources which belong to this organization","description_kind":"plain","computed":true},"twitter":{"type":"string","description":"Twitter handle","description_kind":"plain","computed":true},"website":{"type":"string","description":"Website link","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_plans":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plans":{"type":["list",["object",{"available_in":["set","string"],"available_in_metros":["set","string"],"class":"string","deployment_types":["set","string"],"description":"string","id":"string","legacy":"bool","line":"string","name":"string","pricing_hour":"number","pricing_month":"number","slug":"string"}]],"description":"Sorted list of available server plans that match the specified filters","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"all":{"type":"bool","description":"If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values","description_kind":"plain","optional":true},"attribute":{"type":"string","description":"The attribute used to filter. Filter attributes are case-sensitive","description_kind":"plain","required":true},"match_by":{"type":"string","description":"The type of comparison to apply. One of: in (default), re, substring, less_than, less_than_or_equal, greater_than, greater_than_or_equal","description_kind":"plain","optional":true},"values":{"type":["list","string"],"description":"The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values","description_kind":"plain","required":true}},"description":"One or more attribute/values pairs on which to filter results","description_kind":"plain"}},"sort":{"nesting_mode":"list","block":{"attributes":{"attribute":{"type":"string","description":"The attribute used to sort the results. Sort attributes are case-sensitive","description_kind":"plain","required":true},"direction":{"type":"string","description":"Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc","description_kind":"plain","optional":true}},"description":"One or more attribute/direction pairs on which to sort results. If multiple sorts are provided, they will be applied in order","description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_port":{"version":0,"block":{"attributes":{"bond_id":{"type":"string","description":"UUID of the bond port","description_kind":"plain","computed":true},"bond_name":{"type":"string","description":"Name of the bond port","description_kind":"plain","computed":true},"bonded":{"type":"bool","description":"Flag indicating whether the port is bonded","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"Device UUID where to lookup the port","description_kind":"plain","optional":true},"disbond_supported":{"type":"bool","description":"Flag indicating whether the port can be removed from a bond","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"layer2":{"type":"bool","description":"Flag indicating whether the port is in layer2 (or layer3) mode","description_kind":"plain","computed":true},"mac":{"type":"string","description":"MAC address of the port","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the port to look up, e.g. bond0, eth1","description_kind":"plain","optional":true,"computed":true},"native_vlan_id":{"type":"string","description":"UUID of native VLAN of the port","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"One of layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded","description_kind":"plain","computed":true},"port_id":{"type":"string","description":"UUID of the port to lookup","description_kind":"plain","optional":true},"type":{"type":"string","description":"Port type","description_kind":"plain","computed":true},"vlan_ids":{"type":["list","string"],"description":"UUIDs of attached VLANs","description_kind":"plain","computed":true},"vxlan_ids":{"type":["list","number"],"description":"UUIDs of attached VLANs","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_precreated_ip_block":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"address_family":{"type":"number","description":"4 or 6, depending on which block you are looking for.","description_kind":"plain","required":true},"cidr":{"type":"number","description":"Length of CIDR prefix of the block as integer","description_kind":"plain","computed":true},"cidr_notation":{"type":"string","description":"CIDR notation of the looked up block.","description_kind":"plain","computed":true},"facility":{"type":"string","description":"Facility of the searched block. (for non-global blocks).","description_kind":"plain","optional":true},"gateway":{"type":"string","description_kind":"plain","computed":true},"global":{"type":"bool","description":"Whether to look for global block. Default is false for backward compatibility.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manageable":{"type":"bool","description_kind":"plain","computed":true},"management":{"type":"bool","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro of the searched block (for non-global blocks).","description_kind":"plain","optional":true},"netmask":{"type":"string","description":"Mask in decimal notation, e.g. 255.255.255.0","description_kind":"plain","computed":true},"network":{"type":"string","description":"Network IP address portion of the block specification","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the project where the searched block should be.","description_kind":"plain","required":true},"public":{"type":"bool","description":"Whether to look for public or private block.","description_kind":"plain","required":true},"quantity":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_project":{"version":0,"block":{"attributes":{"backend_transfer":{"type":"bool","description":"Whether Backend Transfer is enabled for this project","description_kind":"plain","computed":true},"bgp_config":{"type":["list",["object",{"asn":"number","deployment_type":"string","max_prefix":"number","md5":"string","status":"string"}]],"description":"Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/)","description_kind":"plain","computed":true},"created":{"type":"string","description":"The timestamp for when the project was created","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique identifier of the resource","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the connection resource","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The UUID of this project's parent organization","description_kind":"plain","computed":true},"payment_method_id":{"type":"string","description":"The UUID of payment method for this project","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of project to which the connection belongs","description_kind":"plain","optional":true,"computed":true},"updated":{"type":"string","description":"The timestamp for the last time the project was updated","description_kind":"plain","computed":true},"user_ids":{"type":["list","string"],"description":"List of UUIDs of user accounts which belong to this project","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_project_ssh_key":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The timestamp for when the SSH key was created","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the SSH Key","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The label of the Equinix Metal SSH Key","description_kind":"plain","computed":true},"owner_id":{"type":"string","description":"The UUID of the Equinix Metal API User who owns this key","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The ID of parent project","description_kind":"plain","required":true},"public_key":{"type":"string","description":"The public key","description_kind":"plain","computed":true},"search":{"type":"string","description":"The name, fingerprint, id, or public_key of the SSH Key to search for in the Equinix Metal project","description_kind":"plain","optional":true},"updated":{"type":"string","description":"The timestamp for the last time the SSH key was updated","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_reserved_ip_block":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"address_family":{"type":"number","description":"4 or 6","description_kind":"plain","computed":true},"cidr":{"type":"number","description":"Length of CIDR prefix of the block as integer","description_kind":"plain","computed":true},"cidr_notation":{"type":"string","description":"CIDR notation of the looked up block","description_kind":"plain","computed":true},"facility":{"type":"string","description":"Facility of the block. (for non-global blocks)","description_kind":"plain","deprecated":true,"computed":true},"gateway":{"type":"string","description":"IP address of gateway for the block","description_kind":"plain","computed":true},"global":{"type":"bool","description":"Addresses from block are attachable in all locations","description_kind":"plain","computed":true},"id":{"type":"string","description":"ID of the block to look up","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"Find block containing this IP address in given project","description_kind":"plain","optional":true},"manageable":{"type":"bool","description_kind":"plain","computed":true},"management":{"type":"bool","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro of the block (for non-global blocks)","description_kind":"plain","computed":true},"netmask":{"type":"string","description":"Mask in decimal notation, e.g. 255.255.255.0","description_kind":"plain","computed":true},"network":{"type":"string","description":"Network IP address portion of the block specification","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the project where the searched block should be","description_kind":"plain","optional":true,"computed":true},"public":{"type":"bool","description":"Addresses from public block are routeable from the Internet","description_kind":"plain","computed":true},"quantity":{"type":"number","description_kind":"plain","computed":true},"type":{"type":"string","description":"Address type, one of public_ipv4, public_ipv6, private_ipv4, global_ipv4, and vrf","description_kind":"plain","computed":true},"vrf_id":{"type":"number","description":"VRF ID of the block when type=vrf","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_spot_market_price":{"version":0,"block":{"attributes":{"facility":{"type":"string","description":"Name of the facility","description_kind":"plain","deprecated":true,"optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro":{"type":"string","description":"Name of the metro","description_kind":"plain","optional":true},"plan":{"type":"string","description":"Name of the plan","description_kind":"plain","required":true},"price":{"type":"number","description":"Current spot market price for given plan in given facility","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_spot_market_request":{"version":0,"block":{"attributes":{"device_ids":{"type":["list","string"],"description":"List of IDs of devices spawned by the referenced Spot Market Request","description_kind":"plain","computed":true},"devices_max":{"type":"number","description":"Maximum number devices to be created","description_kind":"plain","computed":true},"devices_min":{"type":"number","description":"Miniumum number devices to be created","description_kind":"plain","computed":true},"end_at":{"type":"string","description":"Date and time When the spot market request will be ended.","description_kind":"plain","computed":true},"facilities":{"type":["list","string"],"description":"Facility IDs where devices should be created","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_bid_price":{"type":"number","description":"Maximum price user is willing to pay per hour per device","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro where devices should be created.","description_kind":"plain","computed":true},"plan":{"type":"string","description":"The device plan slug.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project ID","description_kind":"plain","computed":true},"request_id":{"type":"string","description":"The id of the Spot Market Request","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"equinix_metal_virtual_circuit":{"version":0,"block":{"attributes":{"connection_id":{"type":"string","description":"UUID of Connection where the VC is scoped to","description_kind":"plain","computed":true},"customer_ip":{"type":"string","description":"The Customer IP address which the CSR switch will peer with. Will default to the other usable IP in the subnet.","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the virtual circuit","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"md5":{"type":"string","description":"The password that can be set for the VRF BGP peer","description_kind":"plain","computed":true,"sensitive":true},"metal_ip":{"type":"string","description":"The Metal IP address for the SVI (Switch Virtual Interface) of the VirtualCircuit. Will default to the first usable IP in the subnet.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the virtual circuit","description_kind":"plain","computed":true},"nni_vlan":{"type":"number","description":"Nni VLAN parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"nni_vnid":{"type":"number","description":"Nni VLAN ID parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"peer_asn":{"type":"number","description":"The BGP ASN of the peer. The same ASN may be the used across several VCs, but it cannot be the same as the local_asn of the VRF.","description_kind":"plain","computed":true},"port_id":{"type":"string","description":"UUID of the Connection Port where the VC is scoped to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"ID of the projct to which the virtual circuit belongs","description_kind":"plain","computed":true},"speed":{"type":"string","description":"Description of the Virtual Circuit speed. This is for information purposes and is computed when the connection type is shared.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Status of the virtual circuit","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"A subnet from one of the IP blocks associated with the VRF that we will help create an IP reservation for. Can only be either a /30 or /31.\n\t\t\t\t * For a /31 block, it will only have two IP addresses, which will be used for the metal_ip and customer_ip.\n\t\t\t\t * For a /30 block, it will have four IP addresses, but the first and last IP addresses are not usable. We will default to the first usable IP address for the metal_ip.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Tags attached to the virtual circuit","description_kind":"plain","computed":true},"virtual_circuit_id":{"type":"string","description":"ID of the virtual circuit to lookup","description_kind":"plain","required":true},"vlan_id":{"type":"string","description":"UUID of the associated VLAN","description_kind":"plain","computed":true},"vnid":{"type":"number","description":"VNID VLAN parameter, see https://metal.equinix.com/developers/docs/networking/fabric/","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description":"UUID of the associated VRF","description_kind":"plain","computed":true}},"description_kind":"plain"}},"equinix_metal_vlan":{"version":0,"block":{"attributes":{"assigned_devices_ids":{"type":["list","string"],"description":"List of device IDs to which this VLAN is assigned","description_kind":"plain","computed":true},"description":{"type":"string","description":"VLAN description text","description_kind":"plain","computed":true},"facility":{"type":"string","description":"Facility where the VLAN is deployed","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"id":{"type":"string","description":"The unique identifier for this Metal Vlan","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro where the VLAN is deployed","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"ID of parent project of the VLAN. Use together with vxlan and metro or facility","description_kind":"plain","optional":true,"computed":true},"vlan_id":{"type":"string","description":"Metal UUID of the VLAN resource","description_kind":"plain","optional":true,"computed":true},"vxlan":{"type":"number","description":"VXLAN numner of the VLAN. Unique in a project and facility or metro. Use with project_id","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"equinix_metal_vrf":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Description of the VRF","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_ranges":{"type":["set","string"],"description":"All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.","description_kind":"plain","computed":true},"local_asn":{"type":"number","description":"The 4-byte ASN set on the VRF.","description_kind":"plain","computed":true},"metro":{"type":"string","description":"Metro Code","description_kind":"plain","computed":true},"name":{"type":"string","description":"User-supplied name of the VRF, unique to the project","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project ID","description_kind":"plain","computed":true},"vrf_id":{"type":"string","description":"ID of the VRF to lookup","description_kind":"plain","required":true}},"description_kind":"plain"}},"equinix_network_account":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_code":{"type":"string","description":"Account location metro cod","description_kind":"plain","required":true},"name":{"type":"string","description":"Account name for filtering","description_kind":"plain","optional":true,"computed":true},"number":{"type":"string","description":"Account unique number","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The unique identifier of Project Resource to which billing account is scoped to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Account status for filtering. Possible values are Active, Processing, Submitted, Staged","description_kind":"plain","optional":true,"computed":true},"ucm_id":{"type":"string","description":"Account unique identifier","description_kind":"plain","computed":true}},"description":"Use this data source to get number and identifier of Equinix Network Edge billing account in a given metro location","description_kind":"plain"}},"equinix_network_device":{"version":0,"block":{"attributes":{"account_number":{"type":"string","description":"Device billing account number","description_kind":"plain","computed":true},"acl_template_id":{"type":"string","description":"Unique identifier of applied ACL template","description_kind":"plain","computed":true},"additional_bandwidth":{"type":"number","description":"Additional Internet bandwidth, in Mbps, that will be allocated to the device","description_kind":"plain","computed":true},"asn":{"type":"number","description":"Autonomous system number","description_kind":"plain","computed":true},"byol":{"type":"bool","description":"Boolean value that determines device licensing mode: bring your own license or subscription (default)","description_kind":"plain","computed":true},"cluster_details":{"type":["list",["object",{"cluster_id":"string","cluster_name":"string","node0":["list",["object",{"license_file_id":"string","license_token":"string","name":"string","uuid":"string","vendor_configuration":["list",["object",{"activation_key":"string","admin_password":"string","controller1":"string","controller_fqdn":"string","hostname":"string","root_password":"string"}]]}]],"node1":["list",["object",{"license_file_id":"string","license_token":"string","name":"string","uuid":"string","vendor_configuration":["list",["object",{"activation_key":"string","admin_password":"string","controller1":"string","controller_fqdn":"string","hostname":"string","root_password":"string"}]]}]],"num_of_nodes":"number"}]],"description":"An object that has the cluster details","description_kind":"plain","computed":true},"connectivity":{"type":"string","description":"Parameter to identify internet access for device. Supported Values: INTERNET-ACCESS(default) or PRIVATE or INTERNET-ACCESS-WITH-PRVT-MGMT","description_kind":"plain","computed":true},"core_count":{"type":"number","description":"Number of CPU cores used by device","description_kind":"plain","computed":true},"diverse_device_id":{"type":"string","description":"Unique ID of an existing device","description_kind":"plain","computed":true},"diverse_device_name":{"type":"string","description":"Diverse Device Name of an existing device","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Device hostname prefix","description_kind":"plain","computed":true},"ibx":{"type":"string","description":"Device location Equinix Business Exchange name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface":{"type":["list",["object",{"assigned_type":"string","id":"number","ip_address":"string","mac_address":"string","name":"string","operational_status":"string","status":"string","type":"string"}]],"description":"List of device interfaces","description_kind":"plain","computed":true},"interface_count":{"type":"number","description":"Number of network interfaces on a device. If not specified, default number for a given device type will be used","description_kind":"plain","computed":true},"license_file":{"type":"string","description":"Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode","description_kind":"plain","computed":true},"license_file_id":{"type":"string","description":"Unique identifier of applied license file","description_kind":"plain","computed":true},"license_status":{"type":"string","description":"Device license registration status","description_kind":"plain","computed":true},"license_token":{"type":"string","description":"License Token applicable for some device types in BYOL licensing mode","description_kind":"plain","computed":true},"metro_code":{"type":"string","description":"Device location metro code","description_kind":"plain","computed":true},"mgmt_acl_template_uuid":{"type":"string","description":"Unique identifier of applied MGMT ACL template","description_kind":"plain","computed":true},"name":{"type":"string","description":"Device name","description_kind":"plain","optional":true,"computed":true},"notifications":{"type":["set","string"],"description":"List of email addresses that will receive device status notifications","description_kind":"plain","computed":true},"order_reference":{"type":"string","description":"Name/number used to identify device order on the invoice","description_kind":"plain","computed":true},"package_code":{"type":"string","description":"Device software package code","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The unique identifier of Project Resource to which device is scoped to","description_kind":"plain","computed":true},"purchase_order_number":{"type":"string","description":"Purchase order number associated with a device order","description_kind":"plain","computed":true},"redundancy_type":{"type":"string","description":"Device redundancy type applicable for HA devices, either primary or secondary","description_kind":"plain","computed":true},"redundant_id":{"type":"string","description":"Unique identifier for a redundant device, applicable for HA device","description_kind":"plain","computed":true},"region":{"type":"string","description":"Device location region","description_kind":"plain","computed":true},"secondary_device":{"type":["list",["object",{"account_number":"string","acl_template_id":"string","additional_bandwidth":"number","asn":"number","cloud_init_file_id":"string","hostname":"string","ibx":"string","interface":["list",["object",{"assigned_type":"string","id":"number","ip_address":"string","mac_address":"string","name":"string","operational_status":"string","status":"string","type":"string"}]],"license_file":"string","license_file_id":"string","license_status":"string","license_token":"string","metro_code":"string","mgmt_acl_template_uuid":"string","name":"string","notifications":["set","string"],"project_id":"string","redundancy_type":"string","redundant_id":"string","region":"string","ssh_ip_address":"string","ssh_ip_fqdn":"string","ssh_key":["set",["object",{"key_name":"string","username":"string"}]],"status":"string","uuid":"string","vendor_configuration":["map","string"],"wan_interface_id":"string","zone_code":"string"}]],"description":"Definition of secondary device applicable for HA setup","description_kind":"plain","computed":true},"self_managed":{"type":"bool","description":"Boolean value that determines device management mode: self-managed or subscription (default)","description_kind":"plain","computed":true},"ssh_ip_address":{"type":"string","description":"IP address of SSH enabled interface on the device","description_kind":"plain","computed":true},"ssh_ip_fqdn":{"type":"string","description":"FQDN of SSH enabled interface on the device","description_kind":"plain","computed":true},"ssh_key":{"type":["set",["object",{"key_name":"string","username":"string"}]],"description":"Definition of SSH key that will be provisioned on a device","description_kind":"plain","computed":true},"status":{"type":"string","description":"Device provisioning status","description_kind":"plain","computed":true},"term_length":{"type":"number","description":"Device term length","description_kind":"plain","computed":true},"throughput":{"type":"number","description":"Device license throughput","description_kind":"plain","computed":true},"throughput_unit":{"type":"string","description":"Device license throughput unit (Mbps or Gbps)","description_kind":"plain","computed":true},"type_code":{"type":"string","description":"Device type code","description_kind":"plain","computed":true},"uuid":{"type":"string","description":"Device unique identifier","description_kind":"plain","optional":true,"computed":true},"valid_status_list":{"type":"string","description":"Comma Separated List of states to be considered valid when searching by name","description_kind":"plain","optional":true},"vendor_configuration":{"type":["map","string"],"description":"Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress)","description_kind":"plain","computed":true},"version":{"type":"string","description":"Device software software version","description_kind":"plain","computed":true},"wan_interface_id":{"type":"string","description":"device interface id picked for WAN","description_kind":"plain","computed":true},"zone_code":{"type":"string","description":"Device location zone code","description_kind":"plain","computed":true}},"description":"Use this data source to get details of Equinix Network Edge network device with a given Name or UUID","description_kind":"plain"}},"equinix_network_device_platform":{"version":0,"block":{"attributes":{"core_count":{"type":"number","description":"Number of CPU cores used to limit platform search results","description_kind":"plain","optional":true,"computed":true},"device_type":{"type":"string","description":"Device type code","description_kind":"plain","required":true},"flavor":{"type":"string","description":"Device platform flavor that determines number of CPU cores and memory. Supported values: small, medium, large, xlarge","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"license_options":{"type":["set","string"],"description":"List of device licensing options to limit platform search result. Supported values: BYOL (Bring Your Own License), Sub (license subscription)","description_kind":"plain","optional":true,"computed":true},"management_types":{"type":["set","string"],"description":"List of device management types to limit platform search results. Supported values: EQUINIX-CONFIGURED, SELF-CONFIGURED","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description":"The amount of memory provided by device platform","description_kind":"plain","computed":true},"memory_unit":{"type":"string","description":"Unit of memory provider by device platform","description_kind":"plain","computed":true},"packages":{"type":["set","string"],"description":"List of software package codes to limit platform search results","description_kind":"plain","optional":true,"computed":true}},"description":"Use this data source to get Equinix Network Edge device platform configuration details for a given device type","description_kind":"plain"}},"equinix_network_device_software":{"version":0,"block":{"attributes":{"date":{"type":"string","description":"Version release date","description_kind":"plain","computed":true},"device_type":{"type":"string","description":"Code of a device type","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_name":{"type":"string","description":"Software image name","description_kind":"plain","computed":true},"most_recent":{"type":"bool","description":"Boolean value to indicate that most recent version should be used, in case when more than one result is returned","description_kind":"plain","optional":true},"packages":{"type":["set","string"],"description":"Limits returned versions to those that are supported by given software package codes","description_kind":"plain","optional":true,"computed":true},"release_notes_link":{"type":"string","description":"Link to version release notes","description_kind":"plain","computed":true},"stable":{"type":"bool","description":"Boolean value to limit query results to stable versions only","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Version status","description_kind":"plain","computed":true},"version":{"type":"string","description":"Software version","description_kind":"plain","computed":true},"version_regex":{"type":"string","description":"A regex string to apply on returned versions and filter search results","description_kind":"plain","optional":true}},"description":"Use this data source to get Equinix Network Edge device software details for a given device type.","description_kind":"plain"}},"equinix_network_device_type":{"version":0,"block":{"attributes":{"category":{"type":"string","description":"Device type category, one of: Router, Firewall, SDWAN","description_kind":"plain","optional":true,"computed":true},"code":{"type":"string","description":"Device type short code, unique identifier of a network device type","description_kind":"plain","computed":true},"description":{"type":"string","description":"Device type textual description","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metro_codes":{"type":["set","string"],"description":"List of metro codes where device type has to be available","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Device type name","description_kind":"plain","optional":true,"computed":true},"vendor":{"type":"string","description":"Device type vendor i.e. Cisco, Juniper Networks, VERSA Networks","description_kind":"plain","optional":true,"computed":true}},"description":"Use this data source to get Equinix Network Edge device type details","description_kind":"plain"}}}}}} diff --git a/examples-generated/network/acltemplate.yaml b/examples-generated/network/acltemplate.yaml index c1f4155..7b11377 100644 --- a/examples-generated/network/acltemplate.yaml +++ b/examples-generated/network/acltemplate.yaml @@ -20,6 +20,7 @@ spec: srcPort: any subnet: 172.16.25.0/24 name: test + projectId: a86d7112-d740-4758-9c9c-31e66373746b --- diff --git a/examples-generated/network/devicelink.yaml b/examples-generated/network/devicelink.yaml index 853acb3..fd620e1 100644 --- a/examples-generated/network/devicelink.yaml +++ b/examples-generated/network/devicelink.yaml @@ -24,6 +24,7 @@ spec: throughput: "50" throughputUnit: Mbps name: test-link + projectId: a86d7112-d740-4758-9c9c-31e66373746b subnet: 192.168.40.64/27 --- diff --git a/examples-generated/network/sshkey.yaml b/examples-generated/network/sshkey.yaml index 64aeac2..7ade369 100644 --- a/examples-generated/network/sshkey.yaml +++ b/examples-generated/network/sshkey.yaml @@ -9,6 +9,7 @@ metadata: spec: forProvider: name: johnKent + projectId: a86d7112-d740-4758-9c9c-31e66373746b publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDpXGdxljAyPp9vH97436U171cX type: RSA diff --git a/internal/controller/fabric/network/zz_controller.go b/internal/controller/fabric/network/zz_controller.go new file mode 100755 index 0000000..174a1af --- /dev/null +++ b/internal/controller/fabric/network/zz_controller.go @@ -0,0 +1,63 @@ +/* +Copyright 2021 The Crossplane Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package network + +import ( + "time" + + "github.com/crossplane/crossplane-runtime/pkg/connection" + "github.com/crossplane/crossplane-runtime/pkg/event" + "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" + "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" + xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/fabric/v1alpha1" +) + +// Setup adds a controller that reconciles Network managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Network_GroupVersionKind.String()) + var initializers managed.InitializerChain + cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} + if o.SecretStoreConfigGVK != nil { + cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK)) + } + r := managed.NewReconciler(mgr, + xpresource.ManagedKind(v1alpha1.Network_GroupVersionKind), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_fabric_network"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Network_GroupVersionKind))), + )), + managed.WithLogger(o.Logger.WithValues("controller", name)), + managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), + managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), + managed.WithTimeout(3*time.Minute), + managed.WithInitializers(initializers), + managed.WithConnectionPublishers(cps...), + managed.WithPollInterval(o.PollInterval), + ) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + For(&v1alpha1.Network{}). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index a10fd7a..9470b56 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -14,6 +14,7 @@ import ( l2serviceprofile "github.com/crossplane-contrib/provider-jet-equinix/internal/controller/ecx/l2serviceprofile" cloudrouter "github.com/crossplane-contrib/provider-jet-equinix/internal/controller/fabric/cloudrouter" connection "github.com/crossplane-contrib/provider-jet-equinix/internal/controller/fabric/connection" + network "github.com/crossplane-contrib/provider-jet-equinix/internal/controller/fabric/network" routingprotocol "github.com/crossplane-contrib/provider-jet-equinix/internal/controller/fabric/routingprotocol" serviceprofile "github.com/crossplane-contrib/provider-jet-equinix/internal/controller/fabric/serviceprofile" bgpsession "github.com/crossplane-contrib/provider-jet-equinix/internal/controller/metal/bgpsession" @@ -55,6 +56,7 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { l2serviceprofile.Setup, cloudrouter.Setup, connection.Setup, + network.Setup, routingprotocol.Setup, serviceprofile.Setup, bgpsession.Setup, diff --git a/package/crds/fabric.equinix.jet.crossplane.io_cloudrouters.yaml b/package/crds/fabric.equinix.jet.crossplane.io_cloudrouters.yaml index 3bb9576..6ce3e5b 100644 --- a/package/crds/fabric.equinix.jet.crossplane.io_cloudrouters.yaml +++ b/package/crds/fabric.equinix.jet.crossplane.io_cloudrouters.yaml @@ -76,6 +76,9 @@ spec: description: description: Customer-provided Fabric Cloud Router description type: string + href: + description: Fabric Cloud Router URI information + type: string location: description: Fabric Cloud Router location items: @@ -127,13 +130,19 @@ spec: billingTier: description: Billing tier for connection bandwidth type: string + orderId: + description: Order Identification + type: string + orderNumber: + description: Order Reference Number + type: string purchaseOrderNumber: description: Purchase order number type: string type: object type: array package: - description: Fabric Cloud Router location + description: Fabric Cloud Router Package Type items: properties: code: @@ -144,7 +153,9 @@ spec: type: object type: array project: - description: Fabric Cloud Router project + description: 'Customer resource hierarchy project information.Applicable + to customers onboarded to Equinix Identity and Access Management. + For more information see Identity and Access Management: Projects' items: properties: href: @@ -156,13 +167,19 @@ spec: type: object type: array type: - description: Defines the FCR type like XF_ROUTER + description: Defines the FCR type like; XF_ROUTER + type: string + uuid: + description: Equinix-assigned Fabric Cloud Router identifier type: string required: + - account - location - name - notifications + - order - package + - project - type type: object providerConfigRef: @@ -342,12 +359,12 @@ spec: atProvider: properties: bgpIpv4RoutesCount: - description: Access point used and maximum number of IPv4 BGP - routes + description: Number of IPv4 BGP routes in use (including non-distinct + prefixes) type: number bgpIpv6RoutesCount: - description: Access point used and maximum number of IPv6 BGP - routes + description: Number of IPv6 BGP routes in use (including non-distinct + prefixes) type: number changeLog: description: Captures Fabric Cloud Router lifecycle change information @@ -380,29 +397,20 @@ spec: type: object type: array connectionsCount: - description: Number of connections associated with this Access - point + description: Number of connections associated with this Fabric + Cloud Router instance + type: number + distinctIpv4PrefixesCount: + description: Number of distinct IPv4 routes + type: number + distinctIpv6PrefixesCount: + description: Number of distinct IPv6 routes type: number equinixAsn: description: Equinix ASN type: number - href: - description: Fabric Cloud Router URI information - type: string id: type: string - order: - description: Order information related to this Fabric Cloud Router - items: - properties: - orderId: - description: Order Identification - type: string - orderNumber: - description: Order Reference Number - type: string - type: object - type: array state: description: Fabric Cloud Router overall state type: string diff --git a/package/crds/fabric.equinix.jet.crossplane.io_connections.yaml b/package/crds/fabric.equinix.jet.crossplane.io_connections.yaml index 4c217b9..9d76af5 100644 --- a/package/crds/fabric.equinix.jet.crossplane.io_connections.yaml +++ b/package/crds/fabric.equinix.jet.crossplane.io_connections.yaml @@ -82,7 +82,8 @@ spec: connections type: string gateway: - description: Cloud Router access point information + description: '**Deprecated** `gateway` Use `router` + attribute instead' items: properties: uuid: @@ -95,6 +96,9 @@ spec: description: Virtual device interface items: properties: + id: + description: id + type: number type: description: Interface type type: string @@ -187,6 +191,7 @@ spec: type: string router: description: Cloud Router access point information + that replaces `gateway` items: properties: uuid: @@ -195,22 +200,6 @@ spec: type: string type: object type: array - routingProtocols: - description: Access point routing protocols configuration - items: - properties: - state: - description: Routing protocol instance state - type: string - type: - description: Routing Protocol type - type: string - uuid: - description: Equinix-assigned Routing protocol - identifier - type: string - type: object - type: array sellerRegion: description: Access point seller region type: string @@ -277,6 +266,9 @@ spec: bandwidth: description: Connection bandwidth in Mbps type: number + description: + description: Customer-provided connection description + type: string name: description: Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores @@ -304,12 +296,18 @@ spec: type: object type: array order: - description: Order related to this connection information + description: Order details items: properties: billingTier: description: Billing tier for connection bandwidth type: string + orderId: + description: Order Identification + type: string + orderNumber: + description: Order Reference Number + type: string purchaseOrderNumber: description: Purchase order number type: string @@ -318,23 +316,31 @@ spec: project: description: Project information items: + properties: + projectId: + description: Project Id + type: string type: object type: array redundancy: - description: Redundancy Information + description: Connection Redundancy Configuration items: properties: group: - description: Redundancy group identifier + description: Redundancy group identifier (Use the redundancy.0.group + UUID of primary connection; e.g. one(equinix_fabric_connection.primary_port_connection.redundancy).group + or equinix_fabric_connection.primary_port_connection.redundancy.0.group) type: string priority: - description: Priority type- PRIMARY, SECONDARY + description: Connection priority in redundancy group - PRIMARY, + SECONDARY type: string type: object type: array type: - description: Defines the connection type like VG_VC, EVPL_VC, - EPL_VC, EC_VC, IP_VC, IPWAN_VC,ACCESS_EPL_VC + description: Defines the connection type like EVPL_VC, EPL_VC, + IPWAN_VC, IP_VC, ACCESS_EPL_VC, EVPLAN_VC, EPLAN_VC, EIA_VC, + EC_VC type: string zSide: description: Destination or Provider side connection configuration @@ -355,7 +361,8 @@ spec: connections type: string gateway: - description: Cloud Router access point information + description: '**Deprecated** `gateway` Use `router` + attribute instead' items: properties: uuid: @@ -368,6 +375,9 @@ spec: description: Virtual device interface items: properties: + id: + description: id + type: number type: description: Interface type type: string @@ -460,6 +470,7 @@ spec: type: string router: description: Cloud Router access point information + that replaces `gateway` items: properties: uuid: @@ -468,22 +479,6 @@ spec: type: string type: object type: array - routingProtocols: - description: Access point routing protocols configuration - items: - properties: - state: - description: Routing protocol instance state - type: string - type: - description: Routing Protocol type - type: string - uuid: - description: Equinix-assigned Routing protocol - identifier - type: string - type: object - type: array sellerRegion: description: Access point seller region type: string @@ -545,6 +540,7 @@ spec: - bandwidth - name - notifications + - order - type - zSide type: object @@ -738,30 +734,39 @@ spec: items: properties: accountName: - description: Account Name + description: Legal name of the accountholder. type: string accountNumber: - description: Account Number + description: Equinix-assigned account number. type: number globalCustId: - description: Global Customer organization identifier + description: Equinix-assigned ID of the subscriber's + parent organization. type: string globalOrgId: - description: Global organization identifier + description: Equinix-assigned ID of the subscriber's + parent organization. type: string globalOrganizationName: - description: Global organization name + description: Equinix-assigned name of the subscriber's + parent organization. type: string orgId: - description: Customer organization identifier + description: Equinix-assigned ID of the subscriber's + organization. type: number organizationName: - description: Customer organization name + description: Equinix-assigned name of the subscriber's + organization. + type: string + ucmId: + description: Enterprise datastore id type: string type: object type: array gateway: - description: Cloud Router access point information + description: '**Deprecated** `gateway` Use `router` + attribute instead' items: properties: href: @@ -769,15 +774,6 @@ spec: type: string type: object type: array - interface: - description: Virtual device interface - items: - properties: - id: - description: id - type: number - type: object - type: array network: description: network access point information items: @@ -801,6 +797,10 @@ spec: description: Redundancy Information items: properties: + enabled: + type: boolean + group: + type: string priority: type: string type: object @@ -835,6 +835,7 @@ spec: type: array router: description: Cloud Router access point information + that replaces `gateway` items: properties: href: @@ -891,6 +892,8 @@ spec: type: number organizationName: type: string + ucmId: + type: string type: object type: array changeLog: @@ -969,18 +972,6 @@ spec: type: string type: object type: array - order: - description: Order related to this connection information - items: - properties: - orderId: - description: Order Identification - type: string - orderNumber: - description: Order Reference Number - type: string - type: object - type: array project: description: Project information items: @@ -988,14 +979,14 @@ spec: href: description: Unique Resource URL type: string - projectId: - description: Project Id - type: string type: object type: array state: description: Connection overall state type: string + uuid: + description: Equinix-assigned connection identifier + type: string zSide: description: Destination or Provider side connection configuration object of the multi-segment connection @@ -1010,30 +1001,39 @@ spec: items: properties: accountName: - description: Account Name + description: Legal name of the accountholder. type: string accountNumber: - description: Account Number + description: Equinix-assigned account number. type: number globalCustId: - description: Global Customer organization identifier + description: Equinix-assigned ID of the subscriber's + parent organization. type: string globalOrgId: - description: Global organization identifier + description: Equinix-assigned ID of the subscriber's + parent organization. type: string globalOrganizationName: - description: Global organization name + description: Equinix-assigned name of the subscriber's + parent organization. type: string orgId: - description: Customer organization identifier + description: Equinix-assigned ID of the subscriber's + organization. type: number organizationName: - description: Customer organization name + description: Equinix-assigned name of the subscriber's + organization. + type: string + ucmId: + description: Enterprise datastore id type: string type: object type: array gateway: - description: Cloud Router access point information + description: '**Deprecated** `gateway` Use `router` + attribute instead' items: properties: href: @@ -1041,15 +1041,6 @@ spec: type: string type: object type: array - interface: - description: Virtual device interface - items: - properties: - id: - description: id - type: number - type: object - type: array network: description: network access point information items: @@ -1073,6 +1064,10 @@ spec: description: Redundancy Information items: properties: + enabled: + type: boolean + group: + type: string priority: type: string type: object @@ -1107,6 +1102,7 @@ spec: type: array router: description: Cloud Router access point information + that replaces `gateway` items: properties: href: diff --git a/package/crds/fabric.equinix.jet.crossplane.io_networks.yaml b/package/crds/fabric.equinix.jet.crossplane.io_networks.yaml new file mode 100644 index 0000000..e9c24f7 --- /dev/null +++ b/package/crds/fabric.equinix.jet.crossplane.io_networks.yaml @@ -0,0 +1,423 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.8.0 + creationTimestamp: null + name: networks.fabric.equinix.jet.crossplane.io +spec: + group: fabric.equinix.jet.crossplane.io + names: + categories: + - crossplane + - managed + - equinix + kind: Network + listKind: NetworkList + plural: networks + singular: network + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Network is the Schema for the Networks API. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NetworkSpec defines the desired state of Network + properties: + deletionPolicy: + default: Delete + description: DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + location: + description: Fabric Network location + items: + properties: + ibx: + description: IBX Code + type: string + metroCode: + description: Access point metro code + type: string + metroName: + description: Access point metro name + type: string + region: + description: Access point region + type: string + type: object + type: array + name: + description: Fabric Network name. An alpha-numeric 24 characters + string which can include only hyphens and underscores + type: string + notifications: + description: Preferences for notifications on Fabric Network configuration + or status changes + items: + properties: + emails: + description: Array of contact emails + items: + type: string + type: array + sendInterval: + description: Send interval + type: string + type: + description: Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, + NOTIFICATIONS + type: string + required: + - emails + - type + type: object + type: array + project: + description: Fabric Network project + items: + properties: + projectId: + description: Customer project identifier + type: string + required: + - projectId + type: object + type: array + scope: + description: Fabric Network scope + type: string + type: + description: Supported Network types - EVPLAN, EPLAN, IPWAN + type: string + required: + - name + - notifications + - project + - scope + - type + type: object + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + providerRef: + description: 'ProviderReference specifies the provider that will be + used to create, observe, update, and delete this managed resource. + Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: NetworkStatus defines the observed state of Network. + properties: + atProvider: + properties: + change: + description: Information on asset change operation + items: + properties: + href: + type: string + type: + type: string + uuid: + type: string + type: object + type: array + changeLog: + description: A permanent record of asset creation, modification, + or deletion + items: + properties: + createdBy: + type: string + createdByEmail: + type: string + createdByFullName: + type: string + createdDateTime: + type: string + deletedBy: + type: string + deletedByEmail: + type: string + deletedByFullName: + type: string + deletedDateTime: + type: string + updatedBy: + type: string + updatedByEmail: + type: string + updatedByFullName: + type: string + updatedDateTime: + type: string + type: object + type: array + connectionsCount: + description: Number of connections associated with this network + type: number + href: + description: Fabric Network URI information + type: string + id: + type: string + operation: + description: Network operation information that is associated + with this Fabric Network + items: + properties: + equinixStatus: + type: string + type: object + type: array + state: + description: Fabric Network overall state + type: string + uuid: + description: Equinix-assigned network identifier + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/package/crds/fabric.equinix.jet.crossplane.io_serviceprofiles.yaml b/package/crds/fabric.equinix.jet.crossplane.io_serviceprofiles.yaml index a619edd..57fb492 100644 --- a/package/crds/fabric.equinix.jet.crossplane.io_serviceprofiles.yaml +++ b/package/crds/fabric.equinix.jet.crossplane.io_serviceprofiles.yaml @@ -95,11 +95,14 @@ spec: default is false type: boolean apiAvailable: - description: Setting indicating whether the API is - available (true) or not (false) + description: Indicates if it's possible to establish + connections based on the given service profile using + the Equinix Fabric API. type: boolean bandwidthFromApi: - description: Bandwidth from api + description: Indicates if the connection bandwidth + can be obtained directly from the cloud service + provider. type: boolean equinixManagedPort: description: Setting indicating that the port is managed @@ -110,10 +113,18 @@ spec: by Equinix (true) or not (false) type: boolean integrationId: - description: Integration id + description: A unique identifier issued during onboarding + and used to integrate the customer's service profile + with the Equinix Fabric API. type: string overSubscriptionLimit: - description: A cap on over subscription + description: Port bandwidth multiplier that determines + the total bandwidth that can be allocated to users + creating connections to your services. For example, + a 10 Gbps port combined with an overSubscriptionLimit + parameter value of 10 allows your subscribers to + create connections with a total bandwidth of 100 + Gbps. type: number type: object type: array @@ -122,13 +133,15 @@ spec: items: properties: description: - description: Description + description: Description of authorization key type: string label: - description: Label + description: Name of the parameter that must be provided + to authorize the connection. type: string required: - description: Required + description: Requirement to configure an authentication + key. type: boolean type: object type: array @@ -150,13 +163,20 @@ spec: items: properties: encapsulation: - description: Port Encapsulation + description: Data frames encapsulation standard.UNTAGGED + - Untagged encapsulation for EPL connections. DOT1Q + - DOT1Q encapsulation standard. QINQ - QINQ encapsulation + standard. type: string encapsulationStrategy: - description: Encapsulation strategy + description: Additional tagging information required + by the seller profile. type: string reuseVlanSTag: - description: Reuse vlan sTag + description: Automatically accept subsequent DOT1Q + to QINQ connections that use the same authentication + key. These connections will have the same VLAN S-tag + assigned as the initial connection. type: boolean type: object type: array @@ -172,36 +192,6 @@ spec: - type type: object type: array - account: - description: Account - items: - properties: - accountName: - description: Account Name - type: string - accountNumber: - description: Account Number - type: number - globalCustId: - description: Global Customer organization identifier - type: string - globalOrgId: - description: Global organization identifier - type: string - globalOrganizationName: - description: Global organization name - type: string - orgId: - description: Customer organization identifier - type: number - organizationName: - description: Customer organization name - type: string - ucmId: - description: Enterprise datastore id - type: string - type: object - type: array allowedEmails: description: Array of contact emails items: @@ -366,10 +356,15 @@ spec: project: description: Project information items: + properties: + projectId: + description: Project Id + type: string type: object type: array selfProfile: - description: Self Profile + description: Self Profile indicating if the profile is created + for customer's self use type: boolean state: description: Service profile state - ACTIVE, PENDING_APPROVAL, @@ -613,6 +608,28 @@ spec: type: string type: object type: array + account: + description: Service Profile Owner Account Information + items: + properties: + accountName: + type: string + accountNumber: + type: number + globalCustId: + type: string + globalOrgId: + type: string + globalOrganizationName: + type: string + orgId: + type: number + organizationName: + type: string + ucmId: + type: string + type: object + type: array changeLog: description: Captures connection lifecycle change information items: @@ -655,9 +672,6 @@ spec: href: description: Unique Resource URL type: string - projectId: - description: Project Id - type: string type: object type: array uuid: diff --git a/package/crds/metal.equinix.jet.crossplane.io_connections.yaml b/package/crds/metal.equinix.jet.crossplane.io_connections.yaml index b994d4b..833c2fc 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_connections.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_connections.yaml @@ -69,9 +69,7 @@ spec: a Project API key. Optional and defaults to the primary user email address when using a User API key. The preferred email used for communication and notifications about the Equinix Fabric - interconnection. Required when using a Project API key. Optional - and defaults to the primary user email address when using a - User API key + interconnection type: string description: description: Description for the connection resource. Description @@ -261,10 +259,14 @@ spec: token to use for the connection, a_side or z_side type: string speed: - description: Connection speed - one of 50Mbps, 200Mbps, 500Mbps, - 1Gbps, 2Gbps, 5Gbps, 10Gbps. Port speed. Required for a_side - connections. Allowed values are 50Mbps, 200Mbps, 500Mbps, 1Gbps, - 2Gbps, 5Gbps, 10Gbps + description: Connection speed - Values must be in the format + 'Mbps' or 'Gpbs', for example '100Mbps' or '50Gbps'. Actual + supported values will depend on the connection type and whether + the connection uses VLANs or VRF. Connection speed - Values + must be in the format 'Mbps' or 'Gpbs', for + example '100Mbps' or '50Gbps'. Actual supported values will + depend on the connection type and whether the connection uses + VLANs or VRF. type: string tags: description: String list of tags. Tags attached to the connection @@ -284,6 +286,13 @@ spec: items: type: number type: array + vrfs: + description: Only used with shared connection. VRFs to attach. + Pass one VRF for Primary/Single connection and two VRFs for + Redundant connection + items: + type: string + type: array required: - name - redundancy @@ -485,8 +494,10 @@ spec: role: type: string speed: - description: Connection speed - one of 50Mbps, 200Mbps, - 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. + description: Connection speed - Values must be in the format + 'Mbps' or 'Gpbs', for example '100Mbps' or '50Gbps'. Actual + supported values will depend on the connection type and + whether the connection uses VLANs or VRF. type: number status: description: Status of the connection resource. @@ -513,8 +524,10 @@ spec: id: type: string maxAllowedSpeed: - description: Connection speed - one of 50Mbps, 200Mbps, - 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. + description: Connection speed - Values must be in the format + 'Mbps' or 'Gpbs', for example '100Mbps' or '50Gbps'. Actual + supported values will depend on the connection type and + whether the connection uses VLANs or VRF. type: string role: type: string diff --git a/package/crds/metal.equinix.jet.crossplane.io_devices.yaml b/package/crds/metal.equinix.jet.crossplane.io_devices.yaml index 23656fc..984e9fb 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_devices.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_devices.yaml @@ -198,6 +198,17 @@ spec: is in the Custom iPXE doc. URL pointing to a hosted iPXE script. More type: string + locked: + description: Whether the device is locked or unlocked. Locking + a device prevents you from deleting or reinstalling the device + or performing a firmware update on the device, and it prevents + an instance with a termination time set from being reclaimed, + even if the termination time was reached Whether the device + is locked or unlocked. Locking a device prevents you from deleting + or reinstalling the device or performing a firmware update on + the device, and it prevents an instance with a termination time + set from being reclaimed, even if the termination time was reached + type: boolean metro: description: Metro area for the new device. Conflicts with facilities. Metro area for the new device. Conflicts with facilities @@ -631,10 +642,6 @@ spec: id: description: The ID of the device. type: string - locked: - description: Whether the device is locked. Whether the device - is locked - type: boolean network: description: 'The device''s private and public IP (v4 and v6) network details. See Network Attribute below for more details. diff --git a/package/crds/metal.equinix.jet.crossplane.io_gateways.yaml b/package/crds/metal.equinix.jet.crossplane.io_gateways.yaml index 8376fde..773e79a 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_gateways.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_gateways.yaml @@ -67,8 +67,7 @@ spec: description: UUID of Public or VRF IP Reservation to associate with the gateway, the reservation must be in the same metro as the VLAN, conflicts with private_ipv4_subnet_size. UUID of - the Public or VRF IP Reservation to associate, must be in the - same metro as the VLAN + the Public or VRF IP Reservation to associate type: string ipReservationIdRef: description: Reference to a ReservedIPBlock to populate ipReservationId. @@ -147,7 +146,7 @@ spec: description: Size of the private IPv4 subnet to create for this metal gateway, must be one of 8, 16, 32, 64, 128. Conflicts with ip_reservation_id. Size of the private IPv4 subnet to create - for this gateway, one of [8 16 32 64 128] + for this gateway type: number projectId: description: UUID of the project where the gateway is scoped to. diff --git a/package/crds/metal.equinix.jet.crossplane.io_organizations.yaml b/package/crds/metal.equinix.jet.crossplane.io_organizations.yaml index d04d461..26bada5 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_organizations.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_organizations.yaml @@ -108,7 +108,6 @@ spec: description: Website link. Website link type: string required: - - address - name type: object providerConfigRef: diff --git a/package/crds/metal.equinix.jet.crossplane.io_projects.yaml b/package/crds/metal.equinix.jet.crossplane.io_projects.yaml index c9727c5..7588ce7 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_projects.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_projects.yaml @@ -70,8 +70,7 @@ spec: type: boolean bgpConfig: description: Optional BGP settings. Refer to Equinix Metal guide - for BGP. Optional BGP settings. Refer to [Equinix Metal guide - for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/) + for BGP. Address information block items: properties: asn: @@ -81,9 +80,10 @@ spec: deploymentType: description: local or global, the local is likely to be usable immediately, the global will need to be reviewed - by Equinix Metal engineers. "local" or "global", the local - is likely to be usable immediately, the global will need - to be review by Equinix Metal engineers + by Equinix Metal engineers. The BGP deployment type, either + 'local' or 'global'. The local is likely to be usable + immediately, the global will need to be review by Equinix + Metal engineers type: string md5SecretRef: description: Password for BGP session in plaintext (not @@ -111,16 +111,14 @@ spec: type: array name: description: The name of the project. The maximum length is 80 - characters The name of the project. The maximum length is 80 - characters. + characters The name of the project. The maximum length is 80 + characters type: string organizationId: description: The UUID of organization under which you want to create the project. If you leave it out, the project will be created under your the default organization of your account. - The UUID of organization under which you want to create the - project. If you leave it out, the project will be create under - your the default organization of your account + The UUID of organization under which the project is created type: string organizationIdRef: description: Reference to a Organization to populate organizationId. @@ -384,8 +382,7 @@ spec: properties: bgpConfig: description: Optional BGP settings. Refer to Equinix Metal guide - for BGP. Optional BGP settings. Refer to [Equinix Metal guide - for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/) + for BGP. Address information block items: properties: maxPrefix: diff --git a/package/crds/metal.equinix.jet.crossplane.io_projectsshkeys.yaml b/package/crds/metal.equinix.jet.crossplane.io_projectsshkeys.yaml index 3dbc5da..9f61c26 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_projectsshkeys.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_projectsshkeys.yaml @@ -145,8 +145,7 @@ spec: type: object publicKey: description: The public key. If this is a file, it can be read - using the file interpolation function. The public key. If this - is a file, it + using the file interpolation function. The public key type: string required: - name diff --git a/package/crds/metal.equinix.jet.crossplane.io_sshkeys.yaml b/package/crds/metal.equinix.jet.crossplane.io_sshkeys.yaml index 8fe83c5..8e0e7b7 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_sshkeys.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_sshkeys.yaml @@ -69,8 +69,7 @@ spec: type: string publicKey: description: The public key. If this is a file, it can be read - using the file interpolation function The public key. If this - is a file, it + using the file interpolation function The public key type: string required: - name diff --git a/package/crds/network.equinix.jet.crossplane.io_acltemplates.yaml b/package/crds/network.equinix.jet.crossplane.io_acltemplates.yaml index 39d4fc3..9eaf2c8 100644 --- a/package/crds/network.equinix.jet.crossplane.io_acltemplates.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_acltemplates.yaml @@ -121,6 +121,13 @@ spec: name: description: ACL template name. ACL template name type: string + projectId: + description: Unique Identifier for the project resource where + the acl template is scoped to.If you leave it out, the ACL template + will be created under the default project id of your organization. + The unique identifier of Project Resource to which ACL template + is scoped to + type: string required: - inboundRule - name diff --git a/package/crds/network.equinix.jet.crossplane.io_devicelinks.yaml b/package/crds/network.equinix.jet.crossplane.io_devicelinks.yaml index 269e164..65ce9cf 100644 --- a/package/crds/network.equinix.jet.crossplane.io_devicelinks.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_devicelinks.yaml @@ -129,6 +129,12 @@ spec: name: description: device link name. name type: string + projectId: + description: Unique Identifier for the project resource where + the device link is scoped to.If you leave it out, the device + link will be created under the default project id of your organization. + project_id + type: string subnet: description: device link subnet in CIDR format. Not required for link between self configured devices. subnet diff --git a/package/crds/network.equinix.jet.crossplane.io_devices.yaml b/package/crds/network.equinix.jet.crossplane.io_devices.yaml index 747c195..1d5b3bd 100644 --- a/package/crds/network.equinix.jet.crossplane.io_devices.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_devices.yaml @@ -354,9 +354,18 @@ spec: or INTERNET-ACCESS-WITH-PRVT-MGMT' type: string coreCount: - description: Number of CPU cores used by device. Number of CPU - cores used by device + description: 'Number of CPU cores used by device. (NOTE: Use this + field to resize your device. When resizing your HA devices, + primary device will be upgraded first. If the upgrade failed, + device will be automatically rolled back to the previous state + with original core number.) Number of CPU cores used by device' type: number + diverseDeviceId: + description: Unique ID of an existing device. Use this field to + let Equinix know if you want your new device to be in a different + location from any existing virtual device. This field is only + meaningful for single devices. Unique ID of an existing device + type: string hostname: description: Device hostname prefix. Device hostname prefix type: string @@ -409,6 +418,13 @@ spec: description: Device software package code. Device software package code type: string + projectId: + description: Unique Identifier for the project resource where + the device is scoped to.If you leave it out, the device will + be created under the default project id of your organization. + The unique identifier of Project Resource to which device is + scoped to + type: string purchaseOrderNumber: description: Purchase order number associated with a device order. Purchase order number associated with a device order @@ -809,6 +825,12 @@ spec: type: number type: object type: array + diverseDeviceName: + description: Name of the device with diverse device UUID. This + field is returned in device details if the device is created + by passing diverse_device_id. Diverse Device Name of an existing + device + type: string ibx: description: Device location Equinix Business Exchange name. Device location Equinix Business Exchange name @@ -845,7 +867,8 @@ spec: description: Device provisioning status. Possible values are INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, - FAILED, PROVISIONED, DEPROVISIONING, DEPROVISIONED. + FAILED, PROVISIONED, DEPROVISIONING, DEPROVISIONED, RESOURCE_UPGRADE_IN_PROGRESS, + RESOURCE_UPGRADE_FAILED. type: string type: description: interface type. @@ -915,7 +938,8 @@ spec: values are INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, - DEPROVISIONING, DEPROVISIONED. + DEPROVISIONING, DEPROVISIONED, RESOURCE_UPGRADE_IN_PROGRESS, + RESOURCE_UPGRADE_FAILED. type: string type: description: interface type. @@ -927,6 +951,13 @@ spec: values are APPLYING_LICENSE, REGISTERED, APPLIED, WAITING_FOR_CLUSTER_SETUP, REGISTRATION_FAILED. Device license registration status type: string + projectId: + description: Unique Identifier for the project resource + where the device is scoped to.If you leave it out, the + device will be created under the default project id of + your organization. The unique identifier of Project Resource + to which device is scoped to + type: string redundancyType: description: Device redundancy type applicable for HA devices, either primary or secondary. Device redundancy type applicable @@ -952,8 +983,8 @@ spec: description: Device provisioning status. Possible values are INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, - FAILED, PROVISIONED, DEPROVISIONING, DEPROVISIONED. Device - provisioning status + FAILED, PROVISIONED, DEPROVISIONING, DEPROVISIONED, RESOURCE_UPGRADE_IN_PROGRESS, + RESOURCE_UPGRADE_FAILED. Device provisioning status type: string uuid: description: Device unique identifier. Device unique identifier @@ -976,7 +1007,8 @@ spec: description: Device provisioning status. Possible values are INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, DEPROVISIONING, - DEPROVISIONED. Device provisioning status + DEPROVISIONED, RESOURCE_UPGRADE_IN_PROGRESS, RESOURCE_UPGRADE_FAILED. + Device provisioning status type: string uuid: description: Device unique identifier. Device unique identifier diff --git a/package/crds/network.equinix.jet.crossplane.io_sshkeys.yaml b/package/crds/network.equinix.jet.crossplane.io_sshkeys.yaml index 5ea7ab8..2d2b203 100644 --- a/package/crds/network.equinix.jet.crossplane.io_sshkeys.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_sshkeys.yaml @@ -67,6 +67,13 @@ spec: description: The name of SSH key used for identification. The name of SSH key used for identification type: string + projectId: + description: 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. + The unique identifier of Project Resource to which ssh key is + scoped to + type: string publicKey: description: The SSH public key. If this is a file, it can be read using the file interpolation function. The SSH public key.