<filename>sdk/dotnet/Outputs/ECXL2ConnectionSecondaryConnection.cs// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace Cuemby.Equinix.Outputs
{

    [OutputType]
    public sealed class ECXL2ConnectionSecondaryConnection
    {
        /// <summary>
        /// One or more pending actions to complete connection provisioning.
        /// </summary>
        public readonly ImmutableArray<Outputs.ECXL2ConnectionSecondaryConnectionAction> Actions;
        /// <summary>
        /// Unique identifier authorizing Equinix to provision a connection
        /// towards a cloud service provider. If not specified primary `authorization_key` will be used. However,
        /// some service providers may require different keys for each connection. More information on
        /// [Equinix Fabric how to guide](https://developer.equinix.com/docs/ecx-how-to-guide).
        /// </summary>
        public readonly string? AuthorizationKey;
        /// <summary>
        /// Applicable with `device_uuid`, identifier of network interface
        /// on a given device. If not specified then first available interface will be selected.
        /// </summary>
        public readonly int? DeviceInterfaceId;
        /// <summary>
        /// Applicable with primary `device_uuid`. Identifier of the Network Edge
        /// virtual device from which the secondary connection would originate. If not specified primary
        /// `device_uuid` will be used.
        /// </summary>
        public readonly string? DeviceUuid;
        /// <summary>
        /// secondary connection name
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Applicable with primary `port_uuid`. Identifier of the Equinix Fabric Port from
        /// which the secondary connection would originate. If not specified primary `port_uuid` will be used.
        /// </summary>
        public readonly string? PortUuid;
        /// <summary>
        /// Unique identifier of the service provider's profile.
        /// </summary>
        public readonly string? ProfileUuid;
        /// <summary>
        /// Connection provisioning status on service provider's side.
        /// </summary>
        public readonly string? ProviderStatus;
        /// <summary>
        /// Unique identifier of group containing a primary and secondary connection.
        /// </summary>
        public readonly string? RedundancyGroup;
        /// <summary>
        /// Connection redundancy type, applicable for HA connections. Valid values are
        /// `PRIMARY`, `SECONDARY`.
        /// </summary>
        public readonly string? RedundancyType;
        /// <summary>
        /// Unique identifier of the redundant connection, applicable for HA connections.
        /// </summary>
        public readonly string? RedundantUuid;
        /// <summary>
        /// The metro code that denotes the secondary connection’s
        /// destination (Z side). .
        /// </summary>
        public readonly string? SellerMetroCode;
        /// <summary>
        /// The region in which the seller port resides. If not specified
        /// primary `seller_region` will be used.
        /// </summary>
        public readonly string? SellerRegion;
        /// <summary>
        /// Required with primary `service_token`. Unique Equinix Fabric key
        /// given by a provider that grants you authorization to enable connectivity from an Equinix Fabric Port or
        /// virtual device. Each connection (primary and secondary) requires a separate token.
        /// More details in [Fabric Service Tokens](https://docs.equinix.com/en-us/Content/Interconnection/Fabric/service%20tokens/Fabric-Service-Tokens.htm).
        /// </summary>
        public readonly string? ServiceToken;
        /// <summary>
        /// Speed/Bandwidth to be allocated to the secondary connection. If not
        /// specified primary `speed` will be used.
        /// </summary>
        public readonly int? Speed;
        /// <summary>
        /// Unit of the speed/bandwidth to be allocated to the secondary
        /// connection. If not specified primary `speed_unit` will be used.
        /// </summary>
        public readonly string? SpeedUnit;
        /// <summary>
        /// Connection provisioning status on Equinix Fabric side.
        /// </summary>
        public readonly string? Status;
        /// <summary>
        /// Unique identifier of the connection.
        /// </summary>
        public readonly string? Uuid;
        /// <summary>
        /// The Equinix Fabric Token the connection was created with. Applicable if the
        /// connection was created with a `service_token` (a-side) or `zside_service_token` (z-side).
        /// * `secondary_connection`:
        /// * `zside_port_uuid`
        /// * `zside_vlan_stag`
        /// * `zside_vlan_ctag`
        /// * `redundancy_type`
        /// * `redundancy_group`
        /// * `vendor_token`
        /// </summary>
        public readonly string? VendorToken;
        /// <summary>
        /// Applicable with `port_uuid`. C-Tag/Inner-Tag of the secondary
        /// connection, a numeric character ranging from 2 - 4094.
        /// </summary>
        public readonly int? VlanCtag;
        /// <summary>
        /// S-Tag/Outer-Tag of the secondary connection, a
        /// numeric character ranging from 2 - 4094.
        /// </summary>
        public readonly int? VlanStag;
        /// <summary>
        /// Unique identifier of the port on the remote/destination side
        /// (z-side). Allows you to connect between your own ports or virtual devices across your company's
        /// Equinix Fabric deployment, with no need for a private service profile.
        /// </summary>
        public readonly string? ZsidePortUuid;
        /// <summary>
        /// C-Tag/Inner-Tag of the connection on the remote/destination
        /// side (z-side) - a numeric character ranging from 2 - 4094.
        /// `secondary_connection` is defined it will internally use same `zside_vlan_ctag` for the secondary
        /// connection.
        /// </summary>
        public readonly int? ZsideVlanCtag;
        /// <summary>
        /// S-Tag/Outer-Tag of the connection on the remote/destination
        /// side (z-side) - a numeric character ranging from 2 - 4094.
        /// </summary>
        public readonly int? ZsideVlanStag;

        [OutputConstructor]
        private ECXL2ConnectionSecondaryConnection(
            ImmutableArray<Outputs.ECXL2ConnectionSecondaryConnectionAction> actions,

            string? authorizationKey,

            int? deviceInterfaceId,

            string? deviceUuid,

            string name,

            string? portUuid,

            string? profileUuid,

            string? providerStatus,

            string? redundancyGroup,

            string? redundancyType,

            string? redundantUuid,

            string? sellerMetroCode,

            string? sellerRegion,

            string? serviceToken,

            int? speed,

            string? speedUnit,

            string? status,

            string? uuid,

            string? vendorToken,

            int? vlanCtag,

            int? vlanStag,

            string? zsidePortUuid,

            int? zsideVlanCtag,

            int? zsideVlanStag)
        {
            Actions = actions;
            AuthorizationKey = authorizationKey;
            DeviceInterfaceId = deviceInterfaceId;
            DeviceUuid = deviceUuid;
            Name = name;
            PortUuid = portUuid;
            ProfileUuid = profileUuid;
            ProviderStatus = providerStatus;
            RedundancyGroup = redundancyGroup;
            RedundancyType = redundancyType;
            RedundantUuid = redundantUuid;
            SellerMetroCode = sellerMetroCode;
            SellerRegion = sellerRegion;
            ServiceToken = serviceToken;
            Speed = speed;
            SpeedUnit = speedUnit;
            Status = status;
            Uuid = uuid;
            VendorToken = vendorToken;
            VlanCtag = vlanCtag;
            VlanStag = vlanStag;
            ZsidePortUuid = zsidePortUuid;
            ZsideVlanCtag = zsideVlanCtag;
            ZsideVlanStag = zsideVlanStag;
        }
    }
}
