equinix_fabric_port (Resource)
Fabric V4 API compatible resource allows creation and management of Equinix Fabric Ports
Additional Documentation:
- Getting Started: https://docs.equinix.com/fabric/ports/fabric-order-port/
- API: https://docs.equinix.com/api-catalog/fabricv4/#operation/createPort
~> ** NOTE:** This resource is in beta and is subject to change. Please use with caution. Experimental resource may contain bugs and is not recommended for production use.
- There are no guarantees that a Port Reservation will occur after creating a port order through Terraform
- If a Port Reservation does not occur then the Port Order is not complete and the Terraform resource will not be able to be used as a dependency
- Port Deletions are not a short process and can take 2-5 business days to complete
- Please be advised that a re-run of the Terraform resource with the same settings may not result in an available Port for Reservation even if the previous one was Completed
Example Usage
resource "equinix_fabric_port" "order" {
type = "XF_PORT"
connectivity_source_type = "COLO"
location = {
metro_code = "TR"
}
settings = {
package_type = "STANDARD"
shared_port_type = false
}
encapsulation = {
type = "DOT1Q"
tag_protocol_id = "0x8100"
}
account = {
account_number = "<account_number>"
}
project = {
project_id = "<project_id>"
}
redundancy = {
priority = "PRIMARY"
}
lag_enabled = true
physical_ports = [
{
type = "XF_PHYSICAL_PORT"
demarcation_point = {
ibx = "TR2"
cage_unique_space_id = "TR2:01:002087"
cabinet_unique_space_id = "Demarc"
patch_panel = "PP:Demarc:00002087"
connector_type = "SC"
}
}
]
physical_ports_speed = 1000
physical_ports_type = "1000BASE_LX"
physical_ports_count = 1
demarcation_point_ibx = "TR2"
notifications = [
{
type = "TECHNICAL"
registered_users = [
"<username>"
]
},
{
type = "NOTIFICATION"
registered_users = [
"<username>"
]
}
]
additional_info = [
{
key = "lagType"
value = "New"
}
]
}
Schema
Required
account(Attributes) Port order account details (see below for nested schema)connectivity_source_type(String) Connection type that is used from the port after creationdemarcation_point_ibx(String) IBX code where the port will be locatedencapsulation(Attributes) Port encapsulation settings (see below for nested schema)lag_enabled(Boolean) Boolean value to enable the created port with Link Aggregation Groupslocation(Attributes) Location details for the port order (see below for nested schema)notifications(Attributes List) List of notification types and the registered users to receive those notification types (see below for nested schema)physical_ports(Attributes List) Physical ports that will implement this port order (see below for nested schema)physical_ports_count(Number) Number of physical ports in the Port Orderphysical_ports_speed(Number) Physical Ports Speed in Mbpsphysical_ports_type(String) Physical Ports Typeproject(Attributes) Port order project details (see below for nested schema)redundancy(Attributes) Port redundancy settings (see below for nested schema)settings(Attributes) Port order configuration settings (see below for nested schema)type(String) Type of the port order request
Optional
additional_info(Attributes List) List of key/value objects to provide additional context to the Port order (see below for nested schema)device(Attributes) Port device configuration (see below for nested schema)name(String) Designated name of the portorder(Attributes) Details of the Port Order such as purchaseOrder details and signature (see below for nested schema)timeouts(Attributes) (see below for nested schema)
Read-Only
change_log(Attributes) Details of the last change on the port resource (see below for nested schema)href(String) Equinix assigned URI of the port resourceid(String) The unique identifier of the resourcestate(String) Value representing provisioning status for the port resourceuuid(String) Equinix assigned unique identifier of the port resource
Nested Schema for account
Required:
account_number(Number) Account number the port will be created for
Read-Only:
account_name(String) Legal name of the accountholder.ucm_id(String) Enterprise datastore id
Nested Schema for encapsulation
Required:
tag_protocol_id(String) Port encapsulation tag protocol identifiertype(String) Port encapsulation protocol type
Nested Schema for location
Required:
metro_code(String) Metro code the port will be created in
Nested Schema for notifications
Required:
registered_users(List of String) Array of registered users that will receive this notification type on the porttype(String) Notification Type
Nested Schema for physical_ports
Required:
demarcation_point(Attributes) Customer physical port (see below for nested schema)type(String) Physical Port type
Optional:
interface(Attributes) Physical port interface (see below for nested schema)
Nested Schema for physical_ports.demarcation_point
Required:
cabinet_unique_space_id(String) Port cabinet unique space idcage_unique_space_id(String) Port cage unique space idconnector_type(String) Port connector typeibx(String) IBX Metro code for the physical portpatch_panel(String) Port patch panel
Nested Schema for physical_ports.interface
Optional:
type(String) Interface type for the physical port
Nested Schema for project
Required:
project_id(String) Project id the port will be created in
Nested Schema for redundancy
Required:
priority(String) Port redundancy priority value
Nested Schema for settings
Required:
package_type(String) Billing package for the port being orderedshared_port_type(Boolean) Indicates whether this is a dedicated customer cage or a shared neutral cage
Nested Schema for additional_info
Required:
key(String) The key name of the key/value pairvalue(String) The value of the key/value pair
Nested Schema for device
Optional:
name(String) Device name for the portredundancy(Attributes) Device redundancy configuration (see below for nested schema)
Nested Schema for device.redundancy
Optional:
group(String) Redundancy group identifierpriority(String) Redundancy priority (PRIMARY or SECONDARY)
Nested Schema for order
Optional:
customer_reference_id(String) Customer order reference Idpurchase_order(Attributes) Purchase order details (see below for nested schema)signature(Attributes) Port order confirmation signature details (see below for nested schema)
Read-Only:
order_id(String) Order Identificationorder_number(String) Order Reference Numberuuid(String) Equinix-assigned order identifier, this is a derived response attribute
Nested Schema for order.purchase_order
Read-Only:
amount(String) purchase order amountattachment_id(String) purchase order attachment idend_date(String) purchase order end datenumber(String) purchase order numberstart_date(String) purchase order start datetype(String) purchase order type
Nested Schema for order.signature
Required:
delegate(Attributes) delegate order details (see below for nested schema)signatory(String) Port signature Type
Nested Schema for order.signature.delegate
Required:
email(String) Email of the signatory
Optional:
first_name(String) First name of the signatorylast_name(String) Last name of the signatory
Nested Schema for timeouts
Optional:
create(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).delete(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.read(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.update(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Nested Schema for change_log
Read-Only:
created_by(String) User name of creator of the port resourcecreated_by_email(String) Email of creator of the port resourcecreated_by_full_name(String) Legal name of creator of the port resourcecreated_date_time(String) Creation time of the port resourcedeleted_by(String) User name of deleter of the port resourcedeleted_by_email(String) Email of deleter of the port resourcedeleted_by_full_name(String) Legal name of deleter of the port resourcedeleted_date_time(String) Deletion time of the port resourceupdated_by(String) User name of last updater of the port resourceupdated_by_email(String) Email of last updater of the port resourceupdated_by_full_name(String) Legal name of last updater of the port resourceupdated_date_time(String) Last update time of the port resource