Module ecx_l2

Adapter for the equinix l2 services

  • License: Inmanta EULA

  • Version: 1.4.2

  • This module requires compiler version 2019.3 or higher

Typedefs

typedef ecx_l2::connection_name_type
  • Base type string

  • Type constraint /^[0-9a-zA-Z_\\-]{1,24}$/

typedef ecx_l2::connection_state_type
  • Base type string

  • Type constraint (self in ['PROVISIONING', 'PENDING_BGP_PEERING', 'PROVISIONED', 'DEPROVISIONING', 'DEPROVISIONED'])

typedef ecx_l2::speed_unit_type
  • Base type string

  • Type constraint (self == 'MB')

Entities

entity ecx_l2::Connection

Parents: std::PurgeableResource

Connection resource for Equinix

Provides facts: For each fact the prefix [primary|secondary] refers to the matching connection - primary_metroCode - primaru_metroDescription - primary_portName - primary_portUUID - primary_sellerMetroCode - primary_sellerOrganizationName - primary_sellerServiceName - primary_sellerServiceUUID - primary_uuid - primary_vlanCTag - primary_vlanSTag - primary_zsideEncapsulation - secondary_metroCode - secondary_metroDescription - secondary_portName - secondary_portUUID - secondary_sellerMetroCode - secondary_sellerOrganizationName - secondary_sellerServiceName - secondary_sellerServiceUUID - secondary_uuid - secondary_vlanCTag - secondary_vlanSTag - secondary_zsideEncapsulation

attribute std::uuid profile_uuid

Unique identifier of the provider’s service profile.

attribute string authorization_key

Connection credentials required to create a layer 2 connection. For example, account ID for AWS, service key for Azure, pairing key for Google, cloud ID for Oracle

attribute string metro_code

Seller metro code

attribute string purchase_order_number

An optional field to link the purchase order numbers to the connection on Equinix which would get reflected on the invoice.

attribute ecx_l2::speed_unit_type speed_unit

Unit of the speed or bandwidth you would like to allocation to the connection.

attribute number speed

Speed/Bandwidth you would like to allocate to the connection.

attribute std::email_str[] notification_email

An array of email ids you would like to notify when there are any updates on your connection.

attribute string agent_name
attribute bool fail_on_update=false
attribute bool purge_on_delete=false
relation ecx_l2::VLan primary_vlan [1]
relation ecx_l2::VLan secondary_vlan [1]
relation ecx_l2::Credentials credentials [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity ecx_l2::ConnectionState

Parents: std::PurgeableResource

attribute std::uuid profile_uuid
attribute string purchase_order_number
attribute string authorization_key
attribute string agent_name
attribute ecx_l2::connection_state_type[] desired=List()
attribute ecx_l2::connection_state_type[] failed=List()
attribute ecx_l2::connection_state_type[] skipped=List()
attribute bool send_event=true
attribute bool purge_on_delete=false
relation ecx_l2::VLan vlan [1]
relation ecx_l2::Credentials credentials [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity ecx_l2::Credentials

Parents: std::Entity

Credentials identity used for authorization

attribute string client_id_env_variable

Name of the environment variable with client id.

attribute string client_secret_env_variable

Name of the environment variable with client secret.

The following implements statements select implementations for this entity:

entity ecx_l2::VLan

Parents: std::Entity

Entity identifying VLan connection.

attribute ecx_l2::connection_name_type name

Name of the connection.

attribute std::uuid port_uuid

Unique identifier of the buyer port from which the connection would originate.

attribute net::vlan_id s_tag

S-Tag/Outer-Tag of the connection.

attribute net::vlan_id? c_tag=null

C-Tag/Inner-Tag of the connection.

The following implements statements select implementations for this entity:

Implementations

implementation ecx_l2::std_connection
implementation ecx_l2::std_ecx_connection_state

Plugins

ecx_l2.get_equinix_response_error() 'any'
ecx_l2.get_process_response() 'any'
ecx_l2.validate_ecx_connection_state_set(desired: 'list', skipped: 'list', failed: 'list', allstates: 'list')

Validates the correctness of defining: desired, skipped and failed states lists.:

  1. They are disjoint

  2. They union into allstates list

Parameters:
  • desired – “desired” state list

  • skipped – “skipped” state list

  • failed – “failed” state list

  • allstates – All possible states

Resources

class ecx_l2.Connection

Connection resource that represents Equinix layer 2 connection.

class ecx_l2.ConnectionState

Connection state for ECX Connection

Handlers

class ecx_l2.ConnectionHandler

Connection resource handler for Equinix.

class ecx_l2.ConnectionStateHandler