# equinix\_fabric\_port (Recurso)
El recurso compatible con Fabric V4 API permite la creación y gestión de puertos Equinix Fabric
Documentación adicional:
* Cómo empezar:
* API:
\~> \*\* NOTA:\*\* Este recurso está en versión beta y está sujeto a cambios. Utilice con precaución. El recurso experimental puede contener errores y no se recomienda para su uso en producción.
* No hay garantías de que se produzca una reserva de puerto después de crear un pedido de puerto a través de Terraform
* Si no se produce una reserva de puerto, el pedido de puerto no está completo y el recurso Terraform no podrá utilizarse como dependencia
* La eliminación de puertos no es un proceso corto y puede tardar de 2 a 5 días laborables en completarse
* Por favor, tenga en cuenta que una nueva ejecución del recurso Terraform con la misma configuración puede no resultar en un Puerto disponible para Reserva incluso si el anterior fue Completado
## Ejemplo de uso
```
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 = ""
}
project = {
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 = [
""
]
},
{
type = "NOTIFICATION"
registered_users = [
""
]
}
]
additional_info = [
{
key = "lagType"
value = "New"
}
]
}
```
## Esquema
### Obligatorio
* `account` (Atributos) Detalles de la cuenta de pedido de puerto (ver [a continuación para ver el esquema anidado](#nestedatt--account) )
* `connectivity_source_type` (String) Tipo de conexión que se utiliza desde el puerto después de la creación
* `demarcation_point_ibx` (String) Código IBX donde se ubicará el puerto
* `encapsulation` (Atributos) Configuración de encapsulación del puerto (ver [a continuación para ver el esquema anidado](#nestedatt--encapsulation) )
* `lag_enabled` (Booleano) Valor booleano para habilitar el puerto creado con grupos de agregación de enlaces
* `location` (Atributos) Detalles de la ubicación del pedido de puerto (ver [a continuación para ver el esquema anidado](#nestedatt--location) )
* `notifications` (Lista de atributos) Lista de los tipos de notificación y de los usuarios registrados que recibirán esos tipos de notificación (véase [a continuación el esquema anidado](#nestedatt--notifications) )
* `physical_ports` (Lista de atributos) Puertos físicos que implementarán este pedido de puertos (consulte [a continuación el esquema anidado](#nestedatt--physical_ports) )
* `physical_ports_count` (Número) Número de puertos físicos en el pedido de puerto
* `physical_ports_speed` (Número) Velocidad de los puertos físicos en Mbps
* `physical_ports_type` (String) Tipo de puertos físicos
* `project` (Atributos) Detalles del proyecto del pedido de puertos (ver [a continuación para ver el esquema anidado](#nestedatt--project) )
* `redundancy` (Atributos) Configuración de redundancia de puertos (consulte [a continuación el esquema anidado](#nestedatt--redundancy) )
* `type` (String) Tipo de solicitud de pedido de puerto
### Opcional
* `order` (Atributos) Detalles del pedido de puerto, como los detalles de la orden de compra y la firma (consulte [a continuación el esquema anidado](#nestedatt--order) )
* `timeouts` (Atributos) (ver [a continuación para el esquema anidado](#nestedatt--timeouts) )
### Sólo lectura
* `additional_info` (Lista de atributos) Lista de objetos clave/valor para proporcionar contexto adicional al pedido de puerto (consulte [a continuación el esquema anidado](#nestedatt--additional_info) )
* `change_log` (Atributos) Detalles del último cambio en el recurso del puerto (ver [a continuación para ver el esquema anidado](#nestedatt--change_log) )
* `device` (Atributos) Configuración del dispositivo del puerto (consulte [a continuación el esquema anidado](#nestedatt--device) )
* `href` (String) Equinix asignó el URI del recurso del puerto
* `id` (String) El identificador único del recurso
* `name` (String) Nombre designado del puerto
* `state` (String) Valor que representa el estado del aprovisionamiento para el recurso del puerto
* `uuid` (String) Equinix asignó un identificador único del recurso del puerto
[]()
### Esquema anidado para `account`
Necesario:
* `account_number` (Número) Número de cuenta para el que se creará el puerto
Sólo lectura:
* `account_name` (String) Nombre legal del titular de la cuenta.
* `ucm_id` (String) ID de almacén de datos empresarial
[]()
### Esquema anidado para `encapsulation`
Necesario:
* `tag_protocol_id` (String) Identificador de protocolo de etiqueta de encapsulación de puertos
* `type` (String) Tipo de protocolo de encapsulación de puertos
[]()
### Esquema anidado para `location`
Necesario:
* `metro_code` (String) Código metropolitano en el que se creará el puerto
[]()
### Esquema anidado para `notifications`
Necesario:
* `registered_users` (Lista de cadenas) Array de usuarios registrados que recibirán este tipo de notificación en el puerto
* `type` (String) Tipo de notificación
[]()
### Esquema anidado para `physical_ports`
Necesario:
* `demarcation_point` (Atributos) Puerto físico del cliente (ver [a continuación para ver el esquema anidado](#nestedatt--physical_ports--demarcation_point) )
* `type` (String) Tipo de puerto físico
Opcional:
* `interface` (Atributos) Interfaz del puerto físico (ver [a continuación para ver el esquema anidado](#nestedatt--physical_ports--interface) )
[]()
### Esquema anidado para `physical_ports.demarcation_point`
Necesario:
* `cabinet_unique_space_id` (String) ID de espacio único del cabinet del puerto
* `cage_unique_space_id` (String) ID de espacio único de la jaula del puerto
* `connector_type` (String) Tipo de conector de puerto
* `ibx` (String) Código metropolitano IBX para el puerto físico
* `patch_panel` (String) Panel de conexión del puerto
[]()
### Esquema anidado para `physical_ports.interface`
Opcional:
* `type` (String) Tipo de interfaz para el puerto físico
[]()
### Esquema anidado para `project`
Necesario:
* `project_id` (String) ID del proyecto en el que se creará el puerto
[]()
### Esquema anidado para `redundancy`
Necesario:
* `priority` (String) Valor de prioridad de redundancia de puertos
[]()
### Esquema anidado para `order`
Opcional:
* `customer_reference_id` (String) ID de referencia del pedido del cliente
* `purchase_order` (Atributos) Detalles de la orden de compra (ver [a continuación para ver el esquema anidado](#nestedatt--order--purchase_order) )
* `signature` (Atributos) Detalles de la firma de confirmación del pedido de puerto (ver [a continuación para ver el esquema anidado](#nestedatt--order--signature) )
[]()
### Esquema anidado para `order.purchase_order`
Sólo lectura:
* `amount` (String) Cantidad de la orden de compra
* `attachment_id` (String) ID de archivo adjunto de la orden de compra
* `end_date` (String) Fecha de finalización de la orden de compra
* `number` (String) Número de orden de compra
* `start_date` (String) Fecha de inicio de la orden de compra
* `type` (String) Tipo de orden de compra
[]()
### Esquema anidado para `order.signature`
Necesario:
* `delegate` (Atributos) Delegar detalles del pedido (ver [a continuación para ver esquema anidado](#nestedatt--order--signature--delegate) )
* `signatory` (String) Tipo de firma de puerto
[]()
### Esquema anidado para `order.signature.delegate`
Necesario:
* `email` (String) Correo electrónico del firmante
Opcional:
* `first_name` (String) Nombre del firmante
* `last_name` (String) Apellidos del firmante
[]()
### Esquema anidado para `timeouts`
Opcional:
* `create` (String) Una cadena que se puede [analizar como una duración](https://pkg.go.dev/time#ParseDuration) que consta de números y sufijos de unidades, como "30s" o "2h45m". Las unidades de tiempo válidas son "s" (segundos), "m" (minutos), "h" (horas).
* `delete` (String) Una cadena que se puede [analizar como una duración](https://pkg.go.dev/time#ParseDuration) que consta de números y sufijos de unidades, como "30s" o "2h45m". Las unidades de tiempo válidas son "s" (segundos), "m" (minutos), "h" (horas). Establecer un tiempo de espera para una operación Eliminar solo es aplicable si los cambios se guardan en estado antes de que se produzca la operación de destrucción.
* `read` (String) Una cadena que se puede [analizar como una duración](https://pkg.go.dev/time#ParseDuration) que consta de números y sufijos de unidades, como "30s" o "2h45m". Las unidades de tiempo válidas son "s" (segundos), "m" (minutos), "h" (horas). Las operaciones de lectura se producen durante cualquier operación de actualización o planificación cuando la actualización está habilitada.
* `update` (String) Una cadena que se puede [analizar como una duración](https://pkg.go.dev/time#ParseDuration) que consta de números y sufijos de unidades, como "30s" o "2h45m". Las unidades de tiempo válidas son "s" (segundos), "m" (minutos), "h" (horas).
[]()
### Esquema anidado para `additional_info`
Sólo lectura:
* `key` (String) El nombre clave del par clave/valor
* `value` (String) El valor del par clave/valor
[]()
### Esquema anidado para `change_log`
Sólo lectura:
* `created_by` (String) Nombre de usuario del creador del recurso del puerto
* `created_by_email` (String) Correo electrónico del creador del recurso del puerto
* `created_by_full_name` (String) Nombre legal del creador del recurso del puerto
* `created_date_time` (String) Tiempo de creación del recurso del puerto
* `deleted_by` (String) Nombre de usuario del eliminador del recurso del puerto
* `deleted_by_email` (String) Correo electrónico del eliminador del recurso del puerto
* `deleted_by_full_name` (String) Nombre legal del eliminador del recurso del puerto
* `deleted_date_time` (String) Tiempo de eliminación del recurso del puerto
* `updated_by` (String) Nombre de usuario del último actualizador del recurso del puerto
* `updated_by_email` (String) Correo electrónico del último actualizador del recurso del puerto
* `updated_by_full_name` (String) Nombre legal del último actualizador del recurso del puerto
* `updated_date_time` (String) Última hora de actualización del recurso del puerto
[]()
### Esquema anidado para `device`
Sólo lectura:
* `name` (String) Nombre del dispositivo del puerto
* `redundancy` (Atributos) Configuración de redundancia del dispositivo (consulte [a continuación el esquema anidado](#nestedatt--device--redundancy) )
[]()
### Esquema anidado para `device.redundancy`
Opcional:
* `group` (String) Identificador de grupo de redundancia
* `priority` Prioridad de redundancia (string) (PRINCIPAL o SECUNDARIA)