import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as enums from "../types/enums";
export declare namespace fabric {
    interface CloudRouterAccount {
        /**
         * Account Number
         */
        accountNumber: pulumi.Input<number>;
    }
    interface CloudRouterChangeLog {
        /**
         * Created by User Key
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Created by User Email Address
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Created by User Full Name
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Created by Date and Time
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * Deleted by User Key
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Deleted by User Email Address
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Deleted by User Full Name
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deleted by Date and Time
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * Updated by User Key
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Updated by User Email Address
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Updated by User Full Name
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Updated by Date and Time
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface CloudRouterLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface CloudRouterMarketplaceSubscription {
        /**
         * Marketplace Subscription type like; AWS*MARKETPLACE*SUBSCRIPTION
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned Marketplace Subscription identifier
         */
        uuid: pulumi.Input<string>;
    }
    interface CloudRouterNotification {
        /**
         * Array of contact emails
         */
        emails: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Send interval
         */
        sendInterval?: pulumi.Input<string>;
        /**
         * Notification Type - ALL,CONNECTION*APPROVAL,SALES*REP_NOTIFICATIONS, NOTIFICATIONS
         */
        type: pulumi.Input<string>;
    }
    interface CloudRouterOrder {
        /**
         * Billing tier for connection bandwidth
         */
        billingTier?: pulumi.Input<string>;
        /**
         * Order Identification
         */
        orderId?: pulumi.Input<string>;
        /**
         * Order Reference Number
         */
        orderNumber?: pulumi.Input<string>;
        /**
         * Purchase order number
         */
        purchaseOrderNumber?: pulumi.Input<string>;
        /**
         * Term length in months; valid values are 1, 12, 24, 36 where 1 is the default value (for on-demand case)
         */
        termLength?: pulumi.Input<number>;
    }
    interface CloudRouterPackage {
        /**
         * Fabric Cloud Router package code
         */
        code: pulumi.Input<string>;
    }
    interface CloudRouterProject {
        /**
         * Unique Resource URL
         */
        href?: pulumi.Input<string>;
        /**
         * Project Id
         */
        projectId?: pulumi.Input<string>;
    }
    interface ConnectionASide {
        /**
         * Point of access details
         */
        accessPoint?: pulumi.Input<inputs.fabric.ConnectionASideAccessPoint>;
        /**
         * Connection side additional information
         */
        additionalInfo?: pulumi.Input<pulumi.Input<inputs.fabric.ConnectionASideAdditionalInfo>[]>;
        /**
         * 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
         */
        serviceToken?: pulumi.Input<inputs.fabric.ConnectionASideServiceToken>;
    }
    interface ConnectionASideAccessPoint {
        /**
         * Account
         */
        account?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointAccount>;
        /**
         * Authentication key for provider based connections or Metal-Fabric Integration connections
         */
        authenticationKey?: pulumi.Input<string>;
        /**
         * **Deprecated** `gateway` Use `router` attribute instead
         *
         * @deprecated use router attribute instead; gateway is no longer a part of the supported backend
         */
        gateway?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointGateway>;
        /**
         * Virtual device interface
         */
        interface?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointInterface>;
        /**
         * Connection link protocol
         */
        linkProtocol?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointLinkProtocol>;
        /**
         * Access point location
         */
        location?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointLocation>;
        /**
         * network access point information
         */
        network?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointNetwork>;
        /**
         * Peering Type- PRIVATE,MICROSOFT,PUBLIC, MANUAL
         */
        peeringType?: pulumi.Input<string | enums.fabric.AccessPointPeeringType>;
        /**
         * Port access point information
         */
        port?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointPort>;
        /**
         * Service Profile
         */
        profile?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointProfile>;
        /**
         * Provider assigned Connection Id
         */
        providerConnectionId?: pulumi.Input<string>;
        /**
         * Cloud Router access point information that replaces `gateway`
         */
        router?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointRouter>;
        /**
         * Access point seller region
         */
        sellerRegion?: pulumi.Input<string>;
        /**
         * Access point type - COLO, VD, VG, SP, IGW, SUBNET, CLOUD*ROUTER, NETWORK, METAL*NETWORK
         */
        type?: pulumi.Input<string | enums.fabric.AccessPointType>;
        /**
         * Virtual device
         */
        virtualDevice?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointVirtualDevice>;
    }
    interface ConnectionASideAccessPointAccount {
        /**
         * Legal name of the accountholder.
         */
        accountName?: pulumi.Input<string>;
        /**
         * Equinix-assigned account number.
         */
        accountNumber?: pulumi.Input<number>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalCustId?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalOrgId?: pulumi.Input<string>;
        /**
         * Equinix-assigned name of the subscriber's parent organization.
         */
        globalOrganizationName?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's organization.
         */
        orgId?: pulumi.Input<number>;
        /**
         * Equinix-assigned name of the subscriber's organization.
         */
        organizationName?: pulumi.Input<string>;
        /**
         * Enterprise datastore id
         */
        ucmId?: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointGateway {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Equinix-assigned virtual gateway identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointInterface {
        /**
         * id
         */
        id?: pulumi.Input<number>;
        /**
         * Interface type
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned interface identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointLinkProtocol {
        /**
         * Type of the link protocol - UNTAGGED, DOT1Q, QINQ, EVPN_VXLAN
         */
        type?: pulumi.Input<string | enums.fabric.AccessPointLinkProtocolType>;
        /**
         * Vlan Customer Tag information, vlanCTag value specified for QINQ connections
         */
        vlanCTag?: pulumi.Input<number>;
        /**
         * Vlan Provider Tag information, vlanSTag value specified for QINQ connections
         */
        vlanSTag?: pulumi.Input<number>;
        /**
         * Vlan Tag information, vlanTag value specified for DOT1Q connections
         */
        vlanTag?: pulumi.Input<number>;
    }
    interface ConnectionASideAccessPointLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string | enums.Metro>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointNetwork {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Equinix-assigned Network identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointPort {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Port name
         */
        name?: pulumi.Input<string>;
        /**
         * Redundancy Information
         */
        redundancy?: pulumi.Input<inputs.fabric.ConnectionASideAccessPointPortRedundancy>;
        /**
         * Equinix-assigned Port identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointPortRedundancy {
        /**
         * Access point redundancy
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * Port redundancy group
         */
        group?: pulumi.Input<string>;
        /**
         * Priority type-Primary or Secondary
         */
        priority?: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointProfile {
        /**
         * Access point config information
         */
        accessPointTypeConfigs?: pulumi.Input<pulumi.Input<inputs.fabric.ConnectionASideAccessPointProfileAccessPointTypeConfig>[]>;
        /**
         * User-provided service description
         */
        description?: pulumi.Input<string>;
        /**
         * Service Profile URI response attribute
         */
        href?: pulumi.Input<string>;
        /**
         * Customer-assigned service profile name
         */
        name?: pulumi.Input<string>;
        /**
         * Service profile type - L2*PROFILE, L3*PROFILE, ECIA*PROFILE, ECMC*PROFILE, IA_PROFILE
         */
        type: pulumi.Input<string | enums.fabric.ProfileType>;
        /**
         * Equinix assigned service profile identifier
         */
        uuid: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointProfileAccessPointTypeConfig {
        /**
         * Type of access point type config - VD, COLO
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned access point type config identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointRouter {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Equinix-assigned virtual gateway identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionASideAccessPointVirtualDevice {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Customer-assigned Virtual Device Name
         */
        name?: pulumi.Input<string>;
        /**
         * Virtual Device type
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned Virtual Device identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionASideAdditionalInfo {
        /**
         * Additional information key
         */
        key?: pulumi.Input<string>;
        /**
         * Additional information value
         */
        value?: pulumi.Input<string>;
    }
    interface ConnectionASideServiceToken {
        /**
         * Service token description
         */
        description?: pulumi.Input<string>;
        /**
         * An absolute URL that is the subject of the link's context
         */
        href?: pulumi.Input<string>;
        /**
         * Token type - VC_TOKEN
         */
        type?: pulumi.Input<string | enums.fabric.ServiceTokenType>;
        /**
         * Equinix-assigned service token identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionAccount {
        /**
         * Legal name of the accountholder.
         */
        accountName?: pulumi.Input<string>;
        /**
         * Equinix-assigned account number.
         */
        accountNumber?: pulumi.Input<number>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalCustId?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalOrgId?: pulumi.Input<string>;
        /**
         * Equinix-assigned name of the subscriber's parent organization.
         */
        globalOrganizationName?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's organization.
         */
        orgId?: pulumi.Input<number>;
        /**
         * Equinix-assigned name of the subscriber's organization.
         */
        organizationName?: pulumi.Input<string>;
        /**
         * Enterprise datastore id
         */
        ucmId?: pulumi.Input<string>;
    }
    interface ConnectionChangeLog {
        /**
         * Created by User Key
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Created by User Email Address
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Created by User Full Name
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Created by Date and Time
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * Deleted by User Key
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Deleted by User Email Address
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Deleted by User Full Name
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deleted by Date and Time
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * Updated by User Key
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Updated by User Email Address
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Updated by User Full Name
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Updated by Date and Time
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface ConnectionNotification {
        /**
         * Array of contact emails
         */
        emails: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Send interval
         */
        sendInterval?: pulumi.Input<string>;
        /**
         * Notification Type - ALL,CONNECTION*APPROVAL,SALES*REP_NOTIFICATIONS, NOTIFICATIONS
         */
        type: pulumi.Input<string | enums.fabric.NotificationsType>;
    }
    interface ConnectionOperation {
        /**
         * Connection status
         */
        equinixStatus?: pulumi.Input<string>;
        /**
         * Errors occurred
         */
        errors?: pulumi.Input<pulumi.Input<inputs.fabric.ConnectionOperationError>[]>;
        /**
         * Connection provider readiness status
         */
        providerStatus?: pulumi.Input<string>;
    }
    interface ConnectionOperationError {
        /**
         * Pricing error additional Info
         */
        additionalInfo?: pulumi.Input<pulumi.Input<inputs.fabric.ConnectionOperationErrorAdditionalInfo>[]>;
        /**
         * CorrelationId
         */
        correlationId?: pulumi.Input<string>;
        /**
         * Details
         */
        details?: pulumi.Input<string>;
        /**
         * Error  code
         */
        errorCode?: pulumi.Input<string>;
        /**
         * Error Message
         */
        errorMessage?: pulumi.Input<string>;
        /**
         * Help
         */
        help?: pulumi.Input<string>;
    }
    interface ConnectionOperationErrorAdditionalInfo {
        /**
         * Property at which the error potentially occurred
         */
        property?: pulumi.Input<string>;
        /**
         * Reason for the error
         */
        reason?: pulumi.Input<string>;
    }
    interface ConnectionOrder {
        /**
         * Billing tier for connection bandwidth
         */
        billingTier?: pulumi.Input<string>;
        /**
         * Order Identification
         */
        orderId?: pulumi.Input<string>;
        /**
         * Order Reference Number
         */
        orderNumber?: pulumi.Input<string>;
        /**
         * Purchase order number
         */
        purchaseOrderNumber?: pulumi.Input<string>;
        /**
         * Term length in months; valid values are 1, 12, 24, 36 where 1 is the default value (for on-demand case)
         */
        termLength?: pulumi.Input<number>;
    }
    interface ConnectionProject {
        /**
         * Unique Resource URL
         */
        href?: pulumi.Input<string>;
        /**
         * Project Id
         */
        projectId?: pulumi.Input<string>;
    }
    interface ConnectionRedundancy {
        /**
         * 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)
         */
        group?: pulumi.Input<string>;
        /**
         * Connection priority in redundancy group - PRIMARY, SECONDARY
         */
        priority?: pulumi.Input<string>;
    }
    interface ConnectionRouteAggregationTimeouts {
        /**
         * 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).
         */
        create?: pulumi.Input<string>;
        /**
         * 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.
         */
        delete?: pulumi.Input<string>;
        /**
         * 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). Read operations occur during any refresh or planning operation when refresh is enabled.
         */
        read?: pulumi.Input<string>;
        /**
         * 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).
         */
        update?: pulumi.Input<string>;
    }
    interface ConnectionZSide {
        /**
         * Point of access details
         */
        accessPoint?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPoint>;
        /**
         * Connection side additional information
         */
        additionalInfo?: pulumi.Input<pulumi.Input<inputs.fabric.ConnectionZSideAdditionalInfo>[]>;
        /**
         * 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
         */
        serviceToken?: pulumi.Input<inputs.fabric.ConnectionZSideServiceToken>;
    }
    interface ConnectionZSideAccessPoint {
        /**
         * Account
         */
        account?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointAccount>;
        /**
         * Authentication key for provider based connections or Metal-Fabric Integration connections
         */
        authenticationKey?: pulumi.Input<string>;
        /**
         * **Deprecated** `gateway` Use `router` attribute instead
         *
         * @deprecated use router attribute instead; gateway is no longer a part of the supported backend
         */
        gateway?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointGateway>;
        /**
         * Virtual device interface
         */
        interface?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointInterface>;
        /**
         * Connection link protocol
         */
        linkProtocol?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointLinkProtocol>;
        /**
         * Access point location
         */
        location?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointLocation>;
        /**
         * network access point information
         */
        network?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointNetwork>;
        /**
         * Peering Type- PRIVATE,MICROSOFT,PUBLIC, MANUAL
         */
        peeringType?: pulumi.Input<string | enums.fabric.AccessPointPeeringType>;
        /**
         * Port access point information
         */
        port?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointPort>;
        /**
         * Service Profile
         */
        profile?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointProfile>;
        /**
         * Provider assigned Connection Id
         */
        providerConnectionId?: pulumi.Input<string>;
        /**
         * Cloud Router access point information that replaces `gateway`
         */
        router?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointRouter>;
        /**
         * Access point seller region
         */
        sellerRegion?: pulumi.Input<string>;
        /**
         * Access point type - COLO, VD, VG, SP, IGW, SUBNET, CLOUD*ROUTER, NETWORK, METAL*NETWORK
         */
        type?: pulumi.Input<string | enums.fabric.AccessPointType>;
        /**
         * Virtual device
         */
        virtualDevice?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointVirtualDevice>;
    }
    interface ConnectionZSideAccessPointAccount {
        /**
         * Legal name of the accountholder.
         */
        accountName?: pulumi.Input<string>;
        /**
         * Equinix-assigned account number.
         */
        accountNumber?: pulumi.Input<number>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalCustId?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalOrgId?: pulumi.Input<string>;
        /**
         * Equinix-assigned name of the subscriber's parent organization.
         */
        globalOrganizationName?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's organization.
         */
        orgId?: pulumi.Input<number>;
        /**
         * Equinix-assigned name of the subscriber's organization.
         */
        organizationName?: pulumi.Input<string>;
        /**
         * Enterprise datastore id
         */
        ucmId?: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointGateway {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Equinix-assigned virtual gateway identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointInterface {
        /**
         * id
         */
        id?: pulumi.Input<number>;
        /**
         * Interface type
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned interface identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointLinkProtocol {
        /**
         * Type of the link protocol - UNTAGGED, DOT1Q, QINQ, EVPN_VXLAN
         */
        type?: pulumi.Input<string | enums.fabric.AccessPointLinkProtocolType>;
        /**
         * Vlan Customer Tag information, vlanCTag value specified for QINQ connections
         */
        vlanCTag?: pulumi.Input<number>;
        /**
         * Vlan Provider Tag information, vlanSTag value specified for QINQ connections
         */
        vlanSTag?: pulumi.Input<number>;
        /**
         * Vlan Tag information, vlanTag value specified for DOT1Q connections
         */
        vlanTag?: pulumi.Input<number>;
    }
    interface ConnectionZSideAccessPointLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string | enums.Metro>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointNetwork {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Equinix-assigned Network identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointPort {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Port name
         */
        name?: pulumi.Input<string>;
        /**
         * Redundancy Information
         */
        redundancy?: pulumi.Input<inputs.fabric.ConnectionZSideAccessPointPortRedundancy>;
        /**
         * Equinix-assigned Port identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointPortRedundancy {
        /**
         * Access point redundancy
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * Port redundancy group
         */
        group?: pulumi.Input<string>;
        /**
         * Priority type-Primary or Secondary
         */
        priority?: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointProfile {
        /**
         * Access point config information
         */
        accessPointTypeConfigs?: pulumi.Input<pulumi.Input<inputs.fabric.ConnectionZSideAccessPointProfileAccessPointTypeConfig>[]>;
        /**
         * User-provided service description
         */
        description?: pulumi.Input<string>;
        /**
         * Service Profile URI response attribute
         */
        href?: pulumi.Input<string>;
        /**
         * Customer-assigned service profile name
         */
        name?: pulumi.Input<string>;
        /**
         * Service profile type - L2*PROFILE, L3*PROFILE, ECIA*PROFILE, ECMC*PROFILE, IA_PROFILE
         */
        type: pulumi.Input<string | enums.fabric.ProfileType>;
        /**
         * Equinix assigned service profile identifier
         */
        uuid: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointProfileAccessPointTypeConfig {
        /**
         * Type of access point type config - VD, COLO
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned access point type config identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointRouter {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Equinix-assigned virtual gateway identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionZSideAccessPointVirtualDevice {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Customer-assigned Virtual Device Name
         */
        name?: pulumi.Input<string>;
        /**
         * Virtual Device type
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned Virtual Device identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ConnectionZSideAdditionalInfo {
        /**
         * Additional information key
         */
        key?: pulumi.Input<string>;
        /**
         * Additional information value
         */
        value?: pulumi.Input<string>;
    }
    interface ConnectionZSideServiceToken {
        /**
         * Service token description
         */
        description?: pulumi.Input<string>;
        /**
         * An absolute URL that is the subject of the link's context
         */
        href?: pulumi.Input<string>;
        /**
         * Token type - VC_TOKEN
         */
        type?: pulumi.Input<string | enums.fabric.ServiceTokenType>;
        /**
         * Equinix-assigned service token identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface GetCloudRoutersFilter {
        /**
         * Possible operators to use on the filter property. Can be one of the following: [= - equal, != - not equal, > - greater than, >= - greater than or equal to, < - less than, <= - less than or equal to, [NOT] BETWEEN - (not) between, [NOT] LIKE - (not) like, [NOT] IN - (not) in
         */
        operator: string;
        /**
         * Boolean flag indicating whether this filter is included in the OR group. There can only be one OR group and it can have a maximum of 3 filters. The OR group only counts as 1 of the 8 possible filters
         */
        or?: boolean;
        /**
         * The API response property which you want to filter your request on. Can be one of the following: "/project/projectId", "/name", "/uuid", "/state", "/location/metroCode", "/location/metroName", "/package/code", "/*"
         */
        property: string;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: string[];
    }
    interface GetCloudRoutersFilterArgs {
        /**
         * Possible operators to use on the filter property. Can be one of the following: [= - equal, != - not equal, > - greater than, >= - greater than or equal to, < - less than, <= - less than or equal to, [NOT] BETWEEN - (not) between, [NOT] LIKE - (not) like, [NOT] IN - (not) in
         */
        operator: pulumi.Input<string>;
        /**
         * Boolean flag indicating whether this filter is included in the OR group. There can only be one OR group and it can have a maximum of 3 filters. The OR group only counts as 1 of the 8 possible filters
         */
        or?: pulumi.Input<boolean>;
        /**
         * The API response property which you want to filter your request on. Can be one of the following: "/project/projectId", "/name", "/uuid", "/state", "/location/metroCode", "/location/metroName", "/package/code", "/*"
         */
        property: pulumi.Input<string>;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetCloudRoutersPagination {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: number;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: number;
    }
    interface GetCloudRoutersPaginationArgs {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: pulumi.Input<number>;
    }
    interface GetCloudRoutersSort {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: string;
        /**
         * The property name to use in sorting. Can be one of the following: [/name, /uuid, /state, /location/metroCode, /location/metroName, /package/code, /changeLog/createdDateTime, /changeLog/updatedDateTime], Defaults to /changeLog/updatedDateTime
         */
        property?: string;
    }
    interface GetCloudRoutersSortArgs {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: pulumi.Input<string>;
        /**
         * The property name to use in sorting. Can be one of the following: [/name, /uuid, /state, /location/metroCode, /location/metroName, /package/code, /changeLog/createdDateTime, /changeLog/updatedDateTime], Defaults to /changeLog/updatedDateTime
         */
        property?: pulumi.Input<string>;
    }
    interface GetConnectionRouteAggregationsPagination {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: number;
        /**
         * The URL relative to the next item in the response
         */
        next?: string;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: number;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: string;
        /**
         * The total number of connection route aggregations available to the user making the request
         */
        total?: number;
    }
    interface GetConnectionRouteAggregationsPaginationArgs {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The URL relative to the next item in the response
         */
        next?: pulumi.Input<string>;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: pulumi.Input<number>;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: pulumi.Input<string>;
        /**
         * The total number of connection route aggregations available to the user making the request
         */
        total?: pulumi.Input<number>;
    }
    interface GetConnectionsFilter {
        /**
         * Optional custom id parameter to assign this filter to an inner AND or OR group. Group id must be prefixed with AND_ or OR_. Ensure intended grouped elements have the same given id. Ungrouped filters will be placed in the filter list group by themselves.
         */
        group?: string;
        /**
         * Operators to use on your filtered field with the values given. One of [ =, !=, >, >=, <, <=, BETWEEN, NOT BETWEEN, LIKE, NOT LIKE, IN, NOT IN, IS NOT NULL, IS NULL]
         */
        operator: string;
        /**
         * Possible field names to use on filters. One of [/isRemote /name /uuid /type /geoScope /account/orgId /aSide/accessPoint/account/accountName /aSide/accessPoint/account/accountNumber /aSide/accessPoint/router/uuid /aSide/accessPoint/linkProtocol/vlanCTag /aSide/accessPoint/linkProtocol/vlanSTag /aSide/accessPoint/linkProtocol/vlanTagMin /aSide/accessPoint/linkProtocol/vlanTagMax /aSide/accessPoint/location/metroCode /aSide/accessPoint/location/metroName /aSide/accessPoint/name /aSide/accessPoint/port/uuid /aSide/accessPoint/port/name /aSide/accessPoint/type /aSide/accessPoint/virtualDevice/name /aSide/accessPoint/virtualDevice/uuid /aSide/serviceToken/uuid /change/status /operation/equinixStatus /operation/providerStatus /project/projectId /redundancy/group /redundancy/priority /zSide/accessPoint/account/accountName /zSide/accessPoint/authenticationKey /zSide/accessPoint/linkProtocol/vlanCTag /zSide/accessPoint/linkProtocol/vlanSTag /zSide/accessPoint/linkProtocol/vlanTagMin /zSide/accessPoint/linkProtocol/vlanTagMax /zSide/accessPoint/location/metroCode /zSide/accessPoint/location/metroName /zSide/accessPoint/name /zSide/accessPoint/port/uuid /zSide/accessPoint/network/uuid /zSide/accessPoint/port/name /zSide/accessPoint/profile/uuid /zSide/accessPoint/type /zSide/accessPoint/virtualDevice/name /zSide/accessPoint/virtualDevice/uuid /zSide/serviceToken/uuid /zSide/internetAccess/uuid *]
         */
        property: string;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: string[];
    }
    interface GetConnectionsFilterArgs {
        /**
         * Optional custom id parameter to assign this filter to an inner AND or OR group. Group id must be prefixed with AND_ or OR_. Ensure intended grouped elements have the same given id. Ungrouped filters will be placed in the filter list group by themselves.
         */
        group?: pulumi.Input<string>;
        /**
         * Operators to use on your filtered field with the values given. One of [ =, !=, >, >=, <, <=, BETWEEN, NOT BETWEEN, LIKE, NOT LIKE, IN, NOT IN, IS NOT NULL, IS NULL]
         */
        operator: pulumi.Input<string>;
        /**
         * Possible field names to use on filters. One of [/isRemote /name /uuid /type /geoScope /account/orgId /aSide/accessPoint/account/accountName /aSide/accessPoint/account/accountNumber /aSide/accessPoint/router/uuid /aSide/accessPoint/linkProtocol/vlanCTag /aSide/accessPoint/linkProtocol/vlanSTag /aSide/accessPoint/linkProtocol/vlanTagMin /aSide/accessPoint/linkProtocol/vlanTagMax /aSide/accessPoint/location/metroCode /aSide/accessPoint/location/metroName /aSide/accessPoint/name /aSide/accessPoint/port/uuid /aSide/accessPoint/port/name /aSide/accessPoint/type /aSide/accessPoint/virtualDevice/name /aSide/accessPoint/virtualDevice/uuid /aSide/serviceToken/uuid /change/status /operation/equinixStatus /operation/providerStatus /project/projectId /redundancy/group /redundancy/priority /zSide/accessPoint/account/accountName /zSide/accessPoint/authenticationKey /zSide/accessPoint/linkProtocol/vlanCTag /zSide/accessPoint/linkProtocol/vlanSTag /zSide/accessPoint/linkProtocol/vlanTagMin /zSide/accessPoint/linkProtocol/vlanTagMax /zSide/accessPoint/location/metroCode /zSide/accessPoint/location/metroName /zSide/accessPoint/name /zSide/accessPoint/port/uuid /zSide/accessPoint/network/uuid /zSide/accessPoint/port/name /zSide/accessPoint/profile/uuid /zSide/accessPoint/type /zSide/accessPoint/virtualDevice/name /zSide/accessPoint/virtualDevice/uuid /zSide/serviceToken/uuid /zSide/internetAccess/uuid *]
         */
        property: pulumi.Input<string>;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetConnectionsPagination {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: number;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: number;
    }
    interface GetConnectionsPaginationArgs {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: pulumi.Input<number>;
    }
    interface GetConnectionsSort {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: string;
        /**
         * The property name to use in sorting. One of [/name /direction /aSide/accessPoint/name /aSide/accessPoint/type /aSide/accessPoint/account/accountName /aSide/accessPoint/location/metroName /aSide/accessPoint/location/metroCode /aSide/accessPoint/linkProtocol/vlanCTag /aSide/accessPoint/linkProtocol/vlanSTag /zSide/accessPoint/name /zSide/accessPoint/type /zSide/accessPoint/account/accountName /zSide/accessPoint/location/metroName /zSide/accessPoint/location/metroCode /zSide/accessPoint/linkProtocol/vlanCTag /zSide/accessPoint/linkProtocol/vlanSTag /zSide/accessPoint/authenticationKey /bandwidth /geoScope /uuid /changeLog/createdDateTime /changeLog/updatedDateTime /operation/equinixStatus /operation/providerStatus /redundancy/priority]. Defaults to /changeLog/updatedDateTime
         */
        property?: string;
    }
    interface GetConnectionsSortArgs {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: pulumi.Input<string>;
        /**
         * The property name to use in sorting. One of [/name /direction /aSide/accessPoint/name /aSide/accessPoint/type /aSide/accessPoint/account/accountName /aSide/accessPoint/location/metroName /aSide/accessPoint/location/metroCode /aSide/accessPoint/linkProtocol/vlanCTag /aSide/accessPoint/linkProtocol/vlanSTag /zSide/accessPoint/name /zSide/accessPoint/type /zSide/accessPoint/account/accountName /zSide/accessPoint/location/metroName /zSide/accessPoint/location/metroCode /zSide/accessPoint/linkProtocol/vlanCTag /zSide/accessPoint/linkProtocol/vlanSTag /zSide/accessPoint/authenticationKey /bandwidth /geoScope /uuid /changeLog/createdDateTime /changeLog/updatedDateTime /operation/equinixStatus /operation/providerStatus /redundancy/priority]. Defaults to /changeLog/updatedDateTime
         */
        property?: pulumi.Input<string>;
    }
    interface GetMetrosPagination {
        /**
         * Maximum number of search results returned per page.
         */
        limit?: number;
        /**
         * URL relative to the next item in the response.
         */
        next?: string;
        /**
         * Index of the first item returned in the response.
         */
        offset?: number;
        /**
         * URL relative to the previous item in the response.
         */
        previous?: string;
        /**
         * The total number of metro returned
         */
        total?: number;
    }
    interface GetMetrosPaginationArgs {
        /**
         * Maximum number of search results returned per page.
         */
        limit?: pulumi.Input<number>;
        /**
         * URL relative to the next item in the response.
         */
        next?: pulumi.Input<string>;
        /**
         * Index of the first item returned in the response.
         */
        offset?: pulumi.Input<number>;
        /**
         * URL relative to the previous item in the response.
         */
        previous?: pulumi.Input<string>;
        /**
         * The total number of metro returned
         */
        total?: pulumi.Input<number>;
    }
    interface GetNetworksFilter {
        /**
         * Optional custom id parameter to assign this filter to an inner AND or OR group. Group id must be prefixed with AND_ or OR_. Ensure intended grouped elements have the same given id. Ungrouped filters will be placed in the filter list group by themselves.
         */
        group?: string;
        /**
         * Operators to use on your filtered field with the values given. One of [ =, !=, >, >=, <, <=, BETWEEN, NOT BETWEEN, LIKE, NOT LIKE, ILIKE, NOT ILIKE, IN, NOT IN]
         */
        operator: string;
        /**
         * Possible field names to use on filters. One of [/name /uuid /scope /type /operation/equinixStatus /location/region /project/projectId /account/globalCustId /account/orgId /deletedDate /_*]
         */
        property: string;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: string[];
    }
    interface GetNetworksFilterArgs {
        /**
         * Optional custom id parameter to assign this filter to an inner AND or OR group. Group id must be prefixed with AND_ or OR_. Ensure intended grouped elements have the same given id. Ungrouped filters will be placed in the filter list group by themselves.
         */
        group?: pulumi.Input<string>;
        /**
         * Operators to use on your filtered field with the values given. One of [ =, !=, >, >=, <, <=, BETWEEN, NOT BETWEEN, LIKE, NOT LIKE, ILIKE, NOT ILIKE, IN, NOT IN]
         */
        operator: pulumi.Input<string>;
        /**
         * Possible field names to use on filters. One of [/name /uuid /scope /type /operation/equinixStatus /location/region /project/projectId /account/globalCustId /account/orgId /deletedDate /_*]
         */
        property: pulumi.Input<string>;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetNetworksPagination {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: number;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: number;
    }
    interface GetNetworksPaginationArgs {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: pulumi.Input<number>;
    }
    interface GetNetworksSort {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: string;
        /**
         * The property name to use in sorting. One of [/name /uuid /scope /operation/equinixStatus /location/region /changeLog/createdDateTime /changeLog/updatedDateTime]. Defaults to /changeLog/updatedDateTime
         */
        property?: string;
    }
    interface GetNetworksSortArgs {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: pulumi.Input<string>;
        /**
         * The property name to use in sorting. One of [/name /uuid /scope /operation/equinixStatus /location/region /changeLog/createdDateTime /changeLog/updatedDateTime]. Defaults to /changeLog/updatedDateTime
         */
        property?: pulumi.Input<string>;
    }
    interface GetPortsFilter {
        /**
         * Query Parameter to Get Ports By Name
         */
        name: string;
    }
    interface GetPortsFilterArgs {
        /**
         * Query Parameter to Get Ports By Name
         */
        name: pulumi.Input<string>;
    }
    interface GetPrecisionTimeServiceNtpAdvancedConfiguration {
        /**
         * The plaintext authentication key. For ASCII type, the key\
         * \ must contain printable ASCII characters, range 10-20 characters. For\
         * \ HEX type, range should be 10-40 characters
         */
        key?: string;
        /**
         * The authentication Key ID
         */
        keyNumber?: number;
        /**
         * md5 Authentication type
         */
        type?: string;
    }
    interface GetPrecisionTimeServiceNtpAdvancedConfigurationArgs {
        /**
         * The plaintext authentication key. For ASCII type, the key\
         * \ must contain printable ASCII characters, range 10-20 characters. For\
         * \ HEX type, range should be 10-40 characters
         */
        key?: pulumi.Input<string>;
        /**
         * The authentication Key ID
         */
        keyNumber?: pulumi.Input<number>;
        /**
         * md5 Authentication type
         */
        type?: pulumi.Input<string>;
    }
    interface GetPrecisionTimeServiceProject {
        /**
         * Equinix Subscriber-assigned project ID
         */
        projectId: string;
    }
    interface GetPrecisionTimeServiceProjectArgs {
        /**
         * Equinix Subscriber-assigned project ID
         */
        projectId: pulumi.Input<string>;
    }
    interface GetPrecisionTimeServicePtpAdvancedConfiguration {
        /**
         * The PTP domain value
         */
        domain?: number;
        /**
         * Unicast Grant Time in seconds. For Multicast and Hybrid transport modes, grant time defaults to 300 seconds. For Unicast mode, grant time can be between 30 to 7200
         */
        grantTime?: number;
        /**
         * Logarithmic value that controls the rate of PTP Announce packets from the PTP time server. Default is 1 (1 packet every 2 seconds), Unit packets/second
         */
        logAnnounceInterval?: number;
        /**
         * Logarithmic value that controls the rate of PTP DelayReq packets. Default is -4 (16 packets per second), Unit packets/second..
         */
        logDelayReqInterval?: number;
        /**
         * Logarithmic value that controls the rate of PTP Sync packets. Default is -4 (16 packets per second), Unit packets/second..
         */
        logSyncInterval?: number;
        /**
         * The priority1 value determines the best primary clock, Lower value indicates higher priority
         */
        priority1?: number;
        /**
         * The priority2 value differentiates and prioritizes the primary clock to avoid confusion when priority1-value is the same for different primary clocks in a network
         */
        priority2?: number;
        /**
         * Time Scale value, ARB denotes Arbitrary and PTP denotes Precision Time Protocol
         */
        timeScale?: string;
        /**
         * ptp transport mode
         */
        transportMode?: string;
    }
    interface GetPrecisionTimeServicePtpAdvancedConfigurationArgs {
        /**
         * The PTP domain value
         */
        domain?: pulumi.Input<number>;
        /**
         * Unicast Grant Time in seconds. For Multicast and Hybrid transport modes, grant time defaults to 300 seconds. For Unicast mode, grant time can be between 30 to 7200
         */
        grantTime?: pulumi.Input<number>;
        /**
         * Logarithmic value that controls the rate of PTP Announce packets from the PTP time server. Default is 1 (1 packet every 2 seconds), Unit packets/second
         */
        logAnnounceInterval?: pulumi.Input<number>;
        /**
         * Logarithmic value that controls the rate of PTP DelayReq packets. Default is -4 (16 packets per second), Unit packets/second..
         */
        logDelayReqInterval?: pulumi.Input<number>;
        /**
         * Logarithmic value that controls the rate of PTP Sync packets. Default is -4 (16 packets per second), Unit packets/second..
         */
        logSyncInterval?: pulumi.Input<number>;
        /**
         * The priority1 value determines the best primary clock, Lower value indicates higher priority
         */
        priority1?: pulumi.Input<number>;
        /**
         * The priority2 value differentiates and prioritizes the primary clock to avoid confusion when priority1-value is the same for different primary clocks in a network
         */
        priority2?: pulumi.Input<number>;
        /**
         * Time Scale value, ARB denotes Arbitrary and PTP denotes Precision Time Protocol
         */
        timeScale?: pulumi.Input<string>;
        /**
         * ptp transport mode
         */
        transportMode?: pulumi.Input<string>;
    }
    interface GetPrecisionTimeServicesFilter {
        /**
         * Operation applied to the values of the filter
         */
        operator: string;
        /**
         * Boolean value to specify if this filter is a part of the OR group. Has a maximum of 3 and only counts for 1 of the 8 possible filters
         */
        or?: boolean;
        /**
         * Property to apply the filter to
         */
        property: string;
        /**
         * List of values to apply the operation to for the specified property
         */
        values: string[];
    }
    interface GetPrecisionTimeServicesFilterArgs {
        /**
         * Operation applied to the values of the filter
         */
        operator: pulumi.Input<string>;
        /**
         * Boolean value to specify if this filter is a part of the OR group. Has a maximum of 3 and only counts for 1 of the 8 possible filters
         */
        or?: pulumi.Input<boolean>;
        /**
         * Property to apply the filter to
         */
        property: pulumi.Input<string>;
        /**
         * List of values to apply the operation to for the specified property
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetPrecisionTimeServicesPagination {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: number;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: number;
    }
    interface GetPrecisionTimeServicesPaginationArgs {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: pulumi.Input<number>;
    }
    interface GetPrecisionTimeServicesSort {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: string;
        /**
         * The property name to use in sorting. One of [/name /uuid /state /type /package/code /changeLog/createdDateTime /changeLog/updatedDateTime] Defaults to /name
         */
        property?: string;
    }
    interface GetPrecisionTimeServicesSortArgs {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: pulumi.Input<string>;
        /**
         * The property name to use in sorting. One of [/name /uuid /state /type /package/code /changeLog/createdDateTime /changeLog/updatedDateTime] Defaults to /name
         */
        property?: pulumi.Input<string>;
    }
    interface GetRouteAggregationRulesPagination {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: number;
        /**
         * The URL relative to the next item in the response
         */
        next?: string;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: number;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: string;
        /**
         * The total number of route agrgegation rules available to the user making the request
         */
        total?: number;
    }
    interface GetRouteAggregationRulesPaginationArgs {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The URL relative to the next item in the response
         */
        next?: pulumi.Input<string>;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: pulumi.Input<number>;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: pulumi.Input<string>;
        /**
         * The total number of route agrgegation rules available to the user making the request
         */
        total?: pulumi.Input<number>;
    }
    interface GetRouteAggregationsFilter {
        /**
         * Operators to use on your filtered field with the values given. One of [ =, !=, >, >=, <, <=, BETWEEN, NOT BETWEEN, LIKE, NOT LIKE, IN, NOT IN, IS NOT NULL, IS NULL]
         */
        operator: string;
        /**
         * possible field names to use on filters. One of [/type /name /project/projectId /uuid /state]
         */
        property: string;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: string[];
    }
    interface GetRouteAggregationsFilterArgs {
        /**
         * Operators to use on your filtered field with the values given. One of [ =, !=, >, >=, <, <=, BETWEEN, NOT BETWEEN, LIKE, NOT LIKE, IN, NOT IN, IS NOT NULL, IS NULL]
         */
        operator: pulumi.Input<string>;
        /**
         * possible field names to use on filters. One of [/type /name /project/projectId /uuid /state]
         */
        property: pulumi.Input<string>;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetRouteAggregationsPagination {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: number;
        /**
         * The URL relative to the next item in the response
         */
        next?: string;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: number;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: string;
        /**
         * The total number of route aggregations available to the user making the request
         */
        total?: number;
    }
    interface GetRouteAggregationsPaginationArgs {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The URL relative to the next item in the response
         */
        next?: pulumi.Input<string>;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: pulumi.Input<number>;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: pulumi.Input<string>;
        /**
         * The total number of route aggregations available to the user making the request
         */
        total?: pulumi.Input<number>;
    }
    interface GetRouteAggregationsSort {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: string;
        /**
         * The property name to use in sorting. One of [/type /name /project/projectId /uuid /state] Defaults to /name
         */
        property?: string;
    }
    interface GetRouteAggregationsSortArgs {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: pulumi.Input<string>;
        /**
         * The property name to use in sorting. One of [/type /name /project/projectId /uuid /state] Defaults to /name
         */
        property?: pulumi.Input<string>;
    }
    interface GetRouteFiltersFilter {
        /**
         * Possible operators to use on the filter property. Can be one of the following: [ "=", "!=", "[NOT] LIKE", "[NOT] IN", "ILIKE" ]
         */
        operator: string;
        /**
         * The API response property which you want to filter your request on. Can be one of the following: "/type", "/name", "/project/projectId", "/uuid", "/state"
         */
        property: string;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: string[];
    }
    interface GetRouteFiltersFilterArgs {
        /**
         * Possible operators to use on the filter property. Can be one of the following: [ "=", "!=", "[NOT] LIKE", "[NOT] IN", "ILIKE" ]
         */
        operator: pulumi.Input<string>;
        /**
         * The API response property which you want to filter your request on. Can be one of the following: "/type", "/name", "/project/projectId", "/uuid", "/state"
         */
        property: pulumi.Input<string>;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetRouteFiltersPagination {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: number;
        /**
         * URL relative to the last item in the response.
         */
        next?: string;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: number;
        /**
         * URL relative to the first item in the response.
         */
        previous?: string;
        /**
         * Total number of elements returned.
         */
        total?: number;
    }
    interface GetRouteFiltersPaginationArgs {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * URL relative to the last item in the response.
         */
        next?: pulumi.Input<string>;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: pulumi.Input<number>;
        /**
         * URL relative to the first item in the response.
         */
        previous?: pulumi.Input<string>;
        /**
         * Total number of elements returned.
         */
        total?: pulumi.Input<number>;
    }
    interface GetRouteFiltersSort {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: string;
        /**
         * The property name to use in sorting. Can be one of the following: [/type, /uuid, /name, /project/projectId, /state, /notMatchedRuleAction, /connectionsCount, /changeLog/createdDateTime, /changeLog/updatedDateTime], Defaults to /changeLog/updatedDateTime
         */
        property?: string;
    }
    interface GetRouteFiltersSortArgs {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: pulumi.Input<string>;
        /**
         * The property name to use in sorting. Can be one of the following: [/type, /uuid, /name, /project/projectId, /state, /notMatchedRuleAction, /connectionsCount, /changeLog/createdDateTime, /changeLog/updatedDateTime], Defaults to /changeLog/updatedDateTime
         */
        property?: pulumi.Input<string>;
    }
    interface GetServiceProfilesFilter {
        /**
         * Operators to use on your filtered field with the values given. One of [=]
         */
        operator: string;
        /**
         * Property to apply operator and values to. One of [/name /uuid /state /metros/code /visibility /type /project/projectId]
         */
        property: string;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: string[];
    }
    interface GetServiceProfilesFilterArgs {
        /**
         * Operators to use on your filtered field with the values given. One of [=]
         */
        operator: pulumi.Input<string>;
        /**
         * Property to apply operator and values to. One of [/name /uuid /state /metros/code /visibility /type /project/projectId]
         */
        property: pulumi.Input<string>;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetServiceProfilesPagination {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: number;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: number;
    }
    interface GetServiceProfilesPaginationArgs {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: pulumi.Input<number>;
    }
    interface GetServiceProfilesSort {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: string;
        /**
         * The property name to use in sorting. One of [/name /uuid /state /location/metroCode /location/metroName /package/code /changeLog/createdDateTime /changeLog/updatedDateTime]. Defaults to /changeLog/updatedDateTime
         */
        property?: string;
    }
    interface GetServiceProfilesSortArgs {
        /**
         * The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC
         */
        direction?: pulumi.Input<string>;
        /**
         * The property name to use in sorting. One of [/name /uuid /state /location/metroCode /location/metroName /package/code /changeLog/createdDateTime /changeLog/updatedDateTime]. Defaults to /changeLog/updatedDateTime
         */
        property?: pulumi.Input<string>;
    }
    interface GetServiceTokensFilter {
        /**
         * Possible operators to use on the filter property. Can be one of the following: [ "=", "!=", "[NOT] LIKE", "[NOT] IN", "ILIKE" ]
         */
        operator: string;
        /**
         * The API response property which you want to filter your request on. Can be one of the following: "/type", "/name", "/project/projectId", "/uuid", "/state"
         */
        property: string;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: string[];
    }
    interface GetServiceTokensFilterArgs {
        /**
         * Possible operators to use on the filter property. Can be one of the following: [ "=", "!=", "[NOT] LIKE", "[NOT] IN", "ILIKE" ]
         */
        operator: pulumi.Input<string>;
        /**
         * The API response property which you want to filter your request on. Can be one of the following: "/type", "/name", "/project/projectId", "/uuid", "/state"
         */
        property: pulumi.Input<string>;
        /**
         * The values that you want to apply the property+operator combination to in order to filter your data search
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetServiceTokensPagination {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: number;
        /**
         * URL relative to the last item in the response.
         */
        next?: string;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: number;
        /**
         * URL relative to the first item in the response.
         */
        previous?: string;
        /**
         * Total number of elements returned.
         */
        total?: number;
    }
    interface GetServiceTokensPaginationArgs {
        /**
         * Number of elements to be requested per page. Number must be between 1 and 100. Default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * URL relative to the last item in the response.
         */
        next?: pulumi.Input<string>;
        /**
         * The page offset for the pagination request. Index of the first element. Default is 0.
         */
        offset?: pulumi.Input<number>;
        /**
         * URL relative to the first item in the response.
         */
        previous?: pulumi.Input<string>;
        /**
         * Total number of elements returned.
         */
        total?: pulumi.Input<number>;
    }
    interface GetStreamAttachmentsFilter {
        /**
         * Operation applied to the values of the filter
         */
        operator: string;
        /**
         * Boolean value to specify if this filter is a part of the OR group. Has a maximum of 3 and only counts for 1 of the 8 possible filters
         */
        or?: boolean;
        /**
         * Property to apply the filter to
         */
        property: string;
        /**
         * List of values to apply the operation to for the specified property
         */
        values: string[];
    }
    interface GetStreamAttachmentsFilterArgs {
        /**
         * Operation applied to the values of the filter
         */
        operator: pulumi.Input<string>;
        /**
         * Boolean value to specify if this filter is a part of the OR group. Has a maximum of 3 and only counts for 1 of the 8 possible filters
         */
        or?: pulumi.Input<boolean>;
        /**
         * Property to apply the filter to
         */
        property: pulumi.Input<string>;
        /**
         * List of values to apply the operation to for the specified property
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetStreamAttachmentsPagination {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: number;
        /**
         * The URL relative to the next item in the response
         */
        next?: string;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: number;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: string;
        /**
         * The total number of streams available to the user making the request
         */
        total?: number;
    }
    interface GetStreamAttachmentsPaginationArgs {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The URL relative to the next item in the response
         */
        next?: pulumi.Input<string>;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: pulumi.Input<number>;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: pulumi.Input<string>;
        /**
         * The total number of streams available to the user making the request
         */
        total?: pulumi.Input<number>;
    }
    interface GetStreamAttachmentsSort {
        /**
         * The sorting direction of the property chosen. ASC or DESC
         */
        direction: string;
        /**
         * The field name the sorting is performed on
         */
        property: string;
    }
    interface GetStreamAttachmentsSortArgs {
        /**
         * The sorting direction of the property chosen. ASC or DESC
         */
        direction: pulumi.Input<string>;
        /**
         * The field name the sorting is performed on
         */
        property: pulumi.Input<string>;
    }
    interface GetStreamSubscriptionsPagination {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: number;
        /**
         * The URL relative to the next item in the response
         */
        next?: string;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: number;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: string;
        /**
         * The total number of streams available to the user making the request
         */
        total?: number;
    }
    interface GetStreamSubscriptionsPaginationArgs {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The URL relative to the next item in the response
         */
        next?: pulumi.Input<string>;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: pulumi.Input<number>;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: pulumi.Input<string>;
        /**
         * The total number of streams available to the user making the request
         */
        total?: pulumi.Input<number>;
    }
    interface GetStreamsPagination {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: number;
        /**
         * The URL relative to the next item in the response
         */
        next?: string;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: number;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: string;
        /**
         * The total number of streams available to the user making the request
         */
        total?: number;
    }
    interface GetStreamsPaginationArgs {
        /**
         * Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20
         */
        limit?: pulumi.Input<number>;
        /**
         * The URL relative to the next item in the response
         */
        next?: pulumi.Input<string>;
        /**
         * Index of the first item returned in the response. The default is 0
         */
        offset?: pulumi.Input<number>;
        /**
         * The URL relative to the previous item in the response
         */
        previous?: pulumi.Input<string>;
        /**
         * The total number of streams available to the user making the request
         */
        total?: pulumi.Input<number>;
    }
    interface NetworkChange {
        /**
         * Absolute URL that returns the details of the given change.
         * Example: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784
         */
        href?: pulumi.Input<string>;
        /**
         * Asset instance change request type.: NETWORK_CREATION, NETWORK_UPDATE, NETWORK_DELETION
         */
        type?: pulumi.Input<string>;
        /**
         * Asset change request identifier.
         */
        uuid?: pulumi.Input<string>;
    }
    interface NetworkChangeLog {
        /**
         * Created by User Key
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Created by User Email Address
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Created by User Full Name
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Created by Date and Time
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * Deleted by User Key
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Deleted by User Email Address
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Deleted by User Full Name
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deleted by Date and Time
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * Updated by User Key
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Updated by User Email Address
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Updated by User Full Name
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Updated by Date and Time
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface NetworkLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface NetworkNotification {
        /**
         * Array of contact emails
         */
        emails: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Send interval
         */
        sendInterval?: pulumi.Input<string>;
        /**
         * Notification Type - ALL,CONNECTION*APPROVAL,SALES*REP_NOTIFICATIONS, NOTIFICATIONS
         */
        type: pulumi.Input<string>;
    }
    interface NetworkOperation {
        /**
         * Progress towards provisioning a given asset.
         */
        equinixStatus?: pulumi.Input<string>;
    }
    interface NetworkProject {
        /**
         * Customer project identifier
         */
        projectId: pulumi.Input<string>;
    }
    interface PrecisionTimeServiceAccount {
        /**
         * Account Name
         */
        accountName?: pulumi.Input<string>;
        /**
         * Equinix Account Number
         */
        accountNumber?: pulumi.Input<number>;
        /**
         * Global Customer Id
         */
        globalCustId?: pulumi.Input<string>;
        /**
         * Customer organization naidentifierme
         */
        globalOrgId?: pulumi.Input<string>;
        /**
         * Global organization name
         */
        globalOrganizationName?: pulumi.Input<string>;
        /**
         * Customer organization identifier
         */
        orgId?: pulumi.Input<number>;
        /**
         * Customer organization name
         */
        organizationName?: pulumi.Input<string>;
        /**
         * Reseller account name
         */
        resellerAccountName?: pulumi.Input<string>;
        /**
         * Reseller account number
         */
        resellerAccountNumber?: pulumi.Input<number>;
        /**
         * Reseller customer organization identifier
         */
        resellerOrgId?: pulumi.Input<number>;
        /**
         * Reseller account ucmId
         */
        resellerUcmId?: pulumi.Input<string>;
        /**
         * Global organization name
         */
        ucmId?: pulumi.Input<string>;
    }
    interface PrecisionTimeServiceChangeLog {
        /**
         * User name of creator of the route aggregation resource
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Email of creator of the route aggregation resource
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Legal name of creator of the route aggregation resource
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Creation time of the route aggregation resource
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * User name of deleter of the route aggregation resource
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Email of deleter of the route aggregation resource
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of deleter of the route aggregation resource
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deletion time of the route aggregation resource
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * User name of last updater of the route aggregation resource
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Email of last updater of the route aggregation resource
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of last updater of the route aggregation resource
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Last update time of the route aggregation resource
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface PrecisionTimeServiceConnection {
        /**
         * Link to the Equinix Fabric Connection associated with the Precision Time Service
         */
        href?: pulumi.Input<string>;
        /**
         * Type of the Equinix Fabric Connection associated with the Precision Time Service
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix Fabric Connection UUID; Precision Time Service will be connected with it
         */
        uuid: pulumi.Input<string>;
    }
    interface PrecisionTimeServiceIpv4 {
        /**
         * IPv4 address that establishes the Routing Interface where traffic is directed. It serves as the next hop in the Network.
         */
        defaultGateway: pulumi.Input<string>;
        /**
         * IPv4 address that defines the range of consecutive subnets in the network.
         */
        networkMask: pulumi.Input<string>;
        /**
         * IPv4 address for the Primary Timing Master Server.
         */
        primary: pulumi.Input<string>;
        /**
         * IPv4 address for the Secondary Timing Master Server.
         */
        secondary: pulumi.Input<string>;
    }
    interface PrecisionTimeServiceNtpAdvancedConfiguration {
        /**
         * The plaintext authentication key. For ASCII type, the key\
         * \ must contain printable ASCII characters, range 10-20 characters. For\
         * \ HEX type, range should be 10-40 characters
         */
        key?: pulumi.Input<string>;
        /**
         * The authentication Key ID
         */
        keyNumber?: pulumi.Input<number>;
        /**
         * md5 Authentication type
         */
        type?: pulumi.Input<string>;
    }
    interface PrecisionTimeServiceOrder {
        /**
         * Customer reference number
         */
        customerReferenceNumber?: pulumi.Input<string>;
        /**
         * Order reference number
         */
        orderNumber?: pulumi.Input<string>;
        /**
         * Purchase order number
         */
        purchaseOrderNumber?: pulumi.Input<string>;
    }
    interface PrecisionTimeServicePackage {
        /**
         * Time Precision Package Code for the desired billing package
         */
        code: pulumi.Input<string>;
        /**
         * Time Precision Package HREF link to corresponding resource in Equinix Portal
         */
        href?: pulumi.Input<string>;
    }
    interface PrecisionTimeServicePrecisionTimePrice {
        /**
         * offering price charge
         */
        charges?: pulumi.Input<pulumi.Input<inputs.fabric.PrecisionTimeServicePrecisionTimePriceCharge>[]>;
        /**
         * Offering price currency
         */
        currency?: pulumi.Input<string>;
    }
    interface PrecisionTimeServicePrecisionTimePriceCharge {
        /**
         * Offering price
         */
        price?: pulumi.Input<number>;
        /**
         * Price charge type; MONTHLY*RECURRING, NON*RECURRING
         */
        type?: pulumi.Input<string>;
    }
    interface PrecisionTimeServiceProject {
        /**
         * Equinix Subscriber-assigned project ID
         */
        projectId?: pulumi.Input<string>;
    }
    interface PrecisionTimeServicePtpAdvancedConfiguration {
        /**
         * The PTP domain value
         */
        domain?: pulumi.Input<number>;
        /**
         * Unicast Grant Time in seconds. For Multicast and Hybrid transport modes, grant time defaults to 300 seconds. For Unicast mode, grant time can be between 30 to 7200
         */
        grantTime?: pulumi.Input<number>;
        /**
         * Logarithmic value that controls the rate of PTP Announce packets from the PTP time server. Default is 1 (1 packet every 2 seconds), Unit packets/second
         */
        logAnnounceInterval?: pulumi.Input<number>;
        /**
         * Logarithmic value that controls the rate of PTP DelayReq packets. Default is -4 (16 packets per second), Unit packets/second..
         */
        logDelayReqInterval?: pulumi.Input<number>;
        /**
         * Logarithmic value that controls the rate of PTP Sync packets. Default is -4 (16 packets per second), Unit packets/second..
         */
        logSyncInterval?: pulumi.Input<number>;
        /**
         * The priority1 value determines the best primary clock, Lower value indicates higher priority
         */
        priority1?: pulumi.Input<number>;
        /**
         * The priority2 value differentiates and prioritizes the primary clock to avoid confusion when priority1-value is the same for different primary clocks in a network
         */
        priority2?: pulumi.Input<number>;
        /**
         * Time Scale value, ARB denotes Arbitrary and PTP denotes Precision Time Protocol
         */
        timeScale?: pulumi.Input<string>;
        /**
         * ptp transport mode
         */
        transportMode?: pulumi.Input<string>;
    }
    interface PrecisionTimeServiceTimeouts {
        /**
         * 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).
         */
        create?: pulumi.Input<string>;
        /**
         * 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.
         */
        delete?: pulumi.Input<string>;
        /**
         * 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). Read operations occur during any refresh or planning operation when refresh is enabled.
         */
        read?: pulumi.Input<string>;
        /**
         * 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).
         */
        update?: pulumi.Input<string>;
    }
    interface RouteAggregationChange {
        /**
         * Equinix auto generated URI to the route aggregation change
         */
        href: pulumi.Input<string>;
        /**
         * Equinix defined Route Aggregation Change Type
         */
        type: pulumi.Input<string>;
        /**
         * Equinix-assigned unique id for a change
         */
        uuid: pulumi.Input<string>;
    }
    interface RouteAggregationChangeLog {
        /**
         * User name of creator of the route aggregation resource
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Email of creator of the route aggregation resource
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Legal name of creator of the route aggregation resource
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Creation time of the route aggregation resource
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * User name of deleter of the route aggregation resource
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Email of deleter of the route aggregation resource
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of deleter of the route aggregation resource
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deletion time of the route aggregation resource
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * User name of last updater of the route aggregation resource
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Email of last updater of the route aggregation resource
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of last updater of the route aggregation resource
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Last update time of the route aggregation resource
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface RouteAggregationProject {
        /**
         * Equinix Subscriber-assigned project ID
         */
        projectId: pulumi.Input<string>;
    }
    interface RouteAggregationRuleChange {
        /**
         * Equinix auto generated URI to the route aggregation change
         */
        href?: pulumi.Input<string>;
        /**
         * Equinix defined Route Aggregation Change Type
         */
        type: pulumi.Input<string>;
        /**
         * Equinix-assigned unique id for a change
         */
        uuid: pulumi.Input<string>;
    }
    interface RouteAggregationRuleChangeLog {
        /**
         * User name of creator of the stream resource
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Email of creator of the stream resource
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Legal name of creator of the stream resource
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Creation time of the stream resource
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * User name of deleter of the stream resource
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Email of deleter of the stream resource
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of deleter of the stream resource
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deletion time of the stream resource
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * User name of last updater of the stream resource
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Email of last updater of the stream resource
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of last updater of the stream resource
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Last update time of the stream resource
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface RouteAggregationRuleTimeouts {
        /**
         * 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).
         */
        create?: pulumi.Input<string>;
        /**
         * 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.
         */
        delete?: pulumi.Input<string>;
        /**
         * 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). Read operations occur during any refresh or planning operation when refresh is enabled.
         */
        read?: pulumi.Input<string>;
        /**
         * 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).
         */
        update?: pulumi.Input<string>;
    }
    interface RouteAggregationTimeouts {
        /**
         * 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).
         */
        create?: pulumi.Input<string>;
        /**
         * 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.
         */
        delete?: pulumi.Input<string>;
        /**
         * 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). Read operations occur during any refresh or planning operation when refresh is enabled.
         */
        read?: pulumi.Input<string>;
        /**
         * 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).
         */
        update?: pulumi.Input<string>;
    }
    interface RouteFilterChange {
        /**
         * The URI of the previous Route Filter Change
         */
        href?: pulumi.Input<string>;
        /**
         * Type of change. One of [ "BGP_IPv4_PREFIX_FILTER_UPDATE","BGP_IPv4_PREFIX_FILTER_CREATION","BGP_IPv4_PREFIX_FILTER_DELETION","BGP_IPv6_PREFIX_FILTER_UPDATE","BGP_IPv6_PREFIX_FILTER_CREATION","BGP_IPv6_PREFIX_FILTER_DELETION" ]
         */
        type?: pulumi.Input<string>;
        /**
         * Unique identifier for the previous change
         */
        uuid?: pulumi.Input<string>;
    }
    interface RouteFilterChangeLog {
        /**
         * Created by User Key
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Created by User Email Address
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Created by User Full Name
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Created by Date and Time
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * Deleted by User Key
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Deleted by User Email Address
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Deleted by User Full Name
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deleted by Date and Time
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * Updated by User Key
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Updated by User Email Address
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Updated by User Full Name
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Updated by Date and Time
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface RouteFilterProject {
        /**
         * URI of the Fabric Project
         */
        href?: pulumi.Input<string>;
        /**
         * Project id associated with Fabric Project
         */
        projectId: pulumi.Input<string>;
    }
    interface RouteFilterRuleChange {
        /**
         * The URI of the previous Route Filter Rule Change
         */
        href?: pulumi.Input<string>;
        /**
         * Type of change. One of [ "BGP_IPv4_PREFIX_FILTER_RULE_UPDATE","BGP_IPv4_PREFIX_FILTER_RULE_CREATION","BGP_IPv4_PREFIX_FILTER_RULE_DELETION","BGP_IPv6_PREFIX_FILTER_RULE_UPDATE","BGP_IPv6_PREFIX_FILTER_RULE_CREATION","BGP_IPv6_PREFIX_FILTER_RULE_DELETION" ]
         */
        type?: pulumi.Input<string>;
        /**
         * Unique identifier for the previous change
         */
        uuid?: pulumi.Input<string>;
    }
    interface RouteFilterRuleChangeLog {
        /**
         * Created by User Key
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Created by User Email Address
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Created by User Full Name
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Created by Date and Time
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * Deleted by User Key
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Deleted by User Email Address
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Deleted by User Full Name
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deleted by Date and Time
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * Updated by User Key
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Updated by User Email Address
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Updated by User Full Name
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Updated by Date and Time
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface RoutingProtocolBfd {
        /**
         * Bidirectional Forwarding Detection enablement
         */
        enabled: pulumi.Input<boolean>;
        /**
         * Interval range between the received BFD control packets
         */
        interval?: pulumi.Input<string>;
    }
    interface RoutingProtocolBgpIpv4 {
        /**
         * Customer side peering ip
         */
        customerPeerIp: pulumi.Input<string>;
        /**
         * Admin status for the BGP session
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * Equinix side peering ip
         */
        equinixPeerIp?: pulumi.Input<string>;
        /**
         * Inbound Multi Exit Discriminator attribute
         */
        inboundMed?: pulumi.Input<number>;
        /**
         * AS path prepend count. One of: 0, 1, 3, 5
         */
        outboundAsPrependCount?: pulumi.Input<string>;
        /**
         * Outbound Multi Exit Discriminator attribute
         */
        outboundMed?: pulumi.Input<number>;
    }
    interface RoutingProtocolBgpIpv6 {
        /**
         * Customer side peering ip
         */
        customerPeerIp: pulumi.Input<string>;
        /**
         * Admin status for the BGP session
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * Equinix side peering ip
         */
        equinixPeerIp?: pulumi.Input<string>;
        /**
         * Inbound Multi Exit Discriminator attribute
         */
        inboundMed?: pulumi.Input<number>;
        /**
         * AS path prepend count. One of: 0, 1, 3, 5
         */
        outboundAsPrependCount?: pulumi.Input<string>;
        /**
         * Outbound Multi Exit Discriminator attribute
         */
        outboundMed?: pulumi.Input<number>;
    }
    interface RoutingProtocolChange {
        /**
         * Routing Protocol Change URI
         */
        href?: pulumi.Input<string>;
        /**
         * Type of change
         */
        type?: pulumi.Input<string>;
        /**
         * Uniquely identifies a change
         */
        uuid?: pulumi.Input<string>;
    }
    interface RoutingProtocolChangeLog {
        /**
         * Created by User Key
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Created by User Email Address
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Created by User Full Name
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Created by Date and Time
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * Deleted by User Key
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Deleted by User Email Address
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Deleted by User Full Name
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deleted by Date and Time
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * Updated by User Key
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Updated by User Email Address
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Updated by User Full Name
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Updated by Date and Time
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface RoutingProtocolDirectIpv4 {
        /**
         * Equinix side Interface IP address
         */
        equinixIfaceIp: pulumi.Input<string>;
    }
    interface RoutingProtocolDirectIpv6 {
        /**
         * Equinix side Interface IP address
         */
        equinixIfaceIp?: pulumi.Input<string>;
    }
    interface RoutingProtocolOperation {
        /**
         * Errors occurred
         */
        errors?: pulumi.Input<pulumi.Input<inputs.fabric.RoutingProtocolOperationError>[]>;
    }
    interface RoutingProtocolOperationError {
        /**
         * Pricing error additional Info
         */
        additionalInfos?: pulumi.Input<pulumi.Input<inputs.fabric.RoutingProtocolOperationErrorAdditionalInfo>[]>;
        /**
         * CorrelationId
         */
        correlationId?: pulumi.Input<string>;
        /**
         * Details
         */
        details?: pulumi.Input<string>;
        /**
         * Error  code
         */
        errorCode?: pulumi.Input<string>;
        /**
         * Error Message
         */
        errorMessage?: pulumi.Input<string>;
        /**
         * Help
         */
        help?: pulumi.Input<string>;
    }
    interface RoutingProtocolOperationErrorAdditionalInfo {
        /**
         * Property at which the error potentially occurred
         */
        property?: pulumi.Input<string>;
        /**
         * Reason for the error
         */
        reason?: pulumi.Input<string>;
    }
    interface ServiceProfileAccessPointTypeConfig {
        /**
         * Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller
         */
        allowBandwidthAutoApproval?: pulumi.Input<boolean>;
        /**
         * Availability of a bandwidth upgrade. The default is false
         */
        allowBandwidthUpgrade?: pulumi.Input<boolean>;
        /**
         * Setting to enable or disable the ability of the buyer to customize the bandwidth
         */
        allowCustomBandwidth?: pulumi.Input<boolean>;
        /**
         * Setting to allow or prohibit remote connections to the service profile
         */
        allowRemoteConnections?: pulumi.Input<boolean>;
        /**
         * Api configuration details
         */
        apiConfig?: pulumi.Input<inputs.fabric.ServiceProfileAccessPointTypeConfigApiConfig>;
        /**
         * Authentication key details
         */
        authenticationKey?: pulumi.Input<inputs.fabric.ServiceProfileAccessPointTypeConfigAuthenticationKey>;
        /**
         * Percentage of port bandwidth at which an allocation alert is generated
         */
        bandwidthAlertThreshold?: pulumi.Input<number>;
        /**
         * Custom name for Connection
         */
        connectionLabel?: pulumi.Input<string>;
        /**
         * Mandate redundant connections
         */
        connectionRedundancyRequired?: pulumi.Input<boolean>;
        /**
         * Enable auto generate service key
         */
        enableAutoGenerateServiceKey?: pulumi.Input<boolean>;
        /**
         * Link protocol configuration details
         */
        linkProtocolConfig?: pulumi.Input<inputs.fabric.ServiceProfileAccessPointTypeConfigLinkProtocolConfig>;
        /**
         * Supported bandwidths
         */
        supportedBandwidths?: pulumi.Input<pulumi.Input<number>[]>;
        /**
         * Type of access point type config - VD, COLO
         */
        type: pulumi.Input<string | enums.fabric.ProfileAccessPointType>;
        /**
         * Colo/Port Uuid
         */
        uuid?: pulumi.Input<string>;
    }
    interface ServiceProfileAccessPointTypeConfigApiConfig {
        /**
         * Setting showing that oversubscription support is available (true) or not (false). The default is false
         */
        allowOverSubscription?: pulumi.Input<boolean>;
        /**
         * Indicates if it's possible to establish connections based on the given service profile using the Equinix Fabric API.
         */
        apiAvailable?: pulumi.Input<boolean>;
        /**
         * Indicates if the connection bandwidth can be obtained directly from the cloud service provider.
         */
        bandwidthFromApi?: pulumi.Input<boolean>;
        /**
         * Setting indicating that the port is managed by Equinix (true) or not (false)
         */
        equinixManagedPort?: pulumi.Input<boolean>;
        /**
         * Setting indicating that the VLAN is managed by Equinix (true) or not (false)
         */
        equinixManagedVlan?: pulumi.Input<boolean>;
        /**
         * A unique identifier issued during onboarding and used to integrate the customer's service profile with the Equinix Fabric API.
         */
        integrationId?: pulumi.Input<string>;
        /**
         * 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.
         */
        overSubscriptionLimit?: pulumi.Input<number>;
    }
    interface ServiceProfileAccessPointTypeConfigAuthenticationKey {
        /**
         * Description of authorization key
         */
        description?: pulumi.Input<string>;
        /**
         * Name of the parameter that must be provided to authorize the connection.
         */
        label?: pulumi.Input<string>;
        /**
         * Requirement to configure an authentication key.
         */
        required?: pulumi.Input<boolean>;
    }
    interface ServiceProfileAccessPointTypeConfigLinkProtocolConfig {
        /**
         * Data frames encapsulation standard.UNTAGGED - Untagged encapsulation for EPL connections. DOT1Q - DOT1Q encapsulation standard. QINQ - QINQ encapsulation standard.
         */
        encapsulation?: pulumi.Input<string>;
        /**
         * Additional tagging information required by the seller profile.
         */
        encapsulationStrategy?: pulumi.Input<string>;
        /**
         * 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.
         */
        reuseVlanSTag?: pulumi.Input<boolean>;
    }
    interface ServiceProfileAccount {
        /**
         * Legal name of the accountholder.
         */
        accountName?: pulumi.Input<string>;
        /**
         * Equinix-assigned account number.
         */
        accountNumber?: pulumi.Input<number>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalCustId?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalOrgId?: pulumi.Input<string>;
        /**
         * Equinix-assigned name of the subscriber's parent organization.
         */
        globalOrganizationName?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's organization.
         */
        orgId?: pulumi.Input<number>;
        /**
         * Equinix-assigned name of the subscriber's organization.
         */
        organizationName?: pulumi.Input<string>;
        /**
         * Enterprise datastore id
         */
        ucmId?: pulumi.Input<string>;
    }
    interface ServiceProfileChangeLog {
        /**
         * Created by User Key
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Created by User Email Address
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Created by User Full Name
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Created by Date and Time
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * Deleted by User Key
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Deleted by User Email Address
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Deleted by User Full Name
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deleted by Date and Time
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * Updated by User Key
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Updated by User Email Address
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Updated by User Full Name
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Updated by Date and Time
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface ServiceProfileCustomField {
        /**
         * Required field
         */
        captureInEmail?: pulumi.Input<boolean>;
        /**
         * Data type
         */
        dataType: pulumi.Input<string>;
        /**
         * Description
         */
        description?: pulumi.Input<string>;
        /**
         * Label
         */
        label: pulumi.Input<string>;
        /**
         * Options
         */
        options?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Required field
         */
        required: pulumi.Input<boolean>;
    }
    interface ServiceProfileMarketingInfo {
        /**
         * Logo
         */
        logo?: pulumi.Input<string>;
        /**
         * Process Step
         */
        processSteps?: pulumi.Input<pulumi.Input<inputs.fabric.ServiceProfileMarketingInfoProcessStep>[]>;
        /**
         * Promotion
         */
        promotion?: pulumi.Input<boolean>;
    }
    interface ServiceProfileMarketingInfoProcessStep {
        /**
         * Description
         */
        description?: pulumi.Input<string>;
        /**
         * Sub Title
         */
        subTitle?: pulumi.Input<string>;
        /**
         * Title
         */
        title?: pulumi.Input<string>;
    }
    interface ServiceProfileMetro {
        /**
         * Metro Code - Example SV
         */
        code?: pulumi.Input<string>;
        /**
         * Display Name
         */
        displayName?: pulumi.Input<string>;
        /**
         * IBX- Equinix International Business Exchange list
         */
        ibxs?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * In Trail
         */
        inTrail?: pulumi.Input<boolean>;
        /**
         * Metro Name
         */
        name?: pulumi.Input<string>;
        /**
         * Seller Regions
         */
        sellerRegions?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
    }
    interface ServiceProfileNotification {
        /**
         * Array of contact emails
         */
        emails: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Send interval
         */
        sendInterval?: pulumi.Input<string>;
        /**
         * Notification Type - ALL,CONNECTION*APPROVAL,SALES*REP_NOTIFICATIONS, NOTIFICATIONS
         */
        type: pulumi.Input<string | enums.fabric.NotificationsType>;
    }
    interface ServiceProfilePort {
        /**
         * Cross Connect Id
         */
        crossConnectId?: pulumi.Input<string>;
        /**
         * Colo/Port Location
         */
        location?: pulumi.Input<inputs.fabric.ServiceProfilePortLocation>;
        /**
         * Seller Region
         */
        sellerRegion?: pulumi.Input<string>;
        /**
         * Seller Region details
         */
        sellerRegionDescription?: pulumi.Input<string>;
        /**
         * Colo/Port Type
         */
        type: pulumi.Input<string>;
        /**
         * Colo/Port Uuid
         */
        uuid: pulumi.Input<string>;
    }
    interface ServiceProfilePortLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface ServiceProfileProject {
        /**
         * Unique Resource URL
         */
        href?: pulumi.Input<string>;
        /**
         * Project Id
         */
        projectId?: pulumi.Input<string>;
    }
    interface ServiceProfileVirtualDevice {
        /**
         * Device Interface Uuid
         */
        interfaceUuid?: pulumi.Input<string>;
        /**
         * Device Location
         */
        location?: pulumi.Input<inputs.fabric.ServiceProfileVirtualDeviceLocation>;
        /**
         * Virtual Device Type
         */
        type: pulumi.Input<string>;
        /**
         * Virtual Device Uuid
         */
        uuid: pulumi.Input<string>;
    }
    interface ServiceProfileVirtualDeviceLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface ServiceTokenAccount {
        /**
         * Legal name of the accountholder.
         */
        accountName?: pulumi.Input<string>;
        /**
         * Equinix-assigned account number.
         */
        accountNumber?: pulumi.Input<number>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalCustId?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's parent organization.
         */
        globalOrgId?: pulumi.Input<string>;
        /**
         * Equinix-assigned name of the subscriber's parent organization.
         */
        globalOrganizationName?: pulumi.Input<string>;
        /**
         * Equinix-assigned ID of the subscriber's organization.
         */
        orgId?: pulumi.Input<number>;
        /**
         * Equinix-assigned name of the subscriber's organization.
         */
        organizationName?: pulumi.Input<string>;
        /**
         * Enterprise datastore id
         */
        ucmId?: pulumi.Input<string>;
    }
    interface ServiceTokenChangeLog {
        /**
         * Created by User Key
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Created by User Email Address
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Created by User Full Name
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Created by Date and Time
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * Deleted by User Key
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Deleted by User Email Address
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Deleted by User Full Name
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deleted by Date and Time
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * Updated by User Key
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Updated by User Email Address
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Updated by User Full Name
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Updated by Date and Time
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface ServiceTokenNotification {
        /**
         * Array of contact emails
         */
        emails: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * Send interval
         */
        sendInterval?: pulumi.Input<string>;
        /**
         * Notification Type - ALL,CONNECTION*APPROVAL,SALES*REP_NOTIFICATIONS, NOTIFICATIONS
         */
        type: pulumi.Input<string>;
    }
    interface ServiceTokenProject {
        /**
         * Unique Resource URL
         */
        href?: pulumi.Input<string>;
        /**
         * Project Id
         */
        projectId?: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnection {
        /**
         * A-Side Connection link protocol,virtual device or network configuration
         */
        aSides?: pulumi.Input<pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionASide>[]>;
        /**
         * Allow custom bandwidth value
         */
        allowCustomBandwidth?: pulumi.Input<boolean>;
        /**
         * Authorization to connect remotely
         */
        allowRemoteConnection?: pulumi.Input<boolean>;
        /**
         * Connection bandwidth limit in Mbps
         */
        bandwidthLimit?: pulumi.Input<number>;
        /**
         * List of permitted bandwidths'; For Port-based Service Tokens, the maximum allowable bandwidth is 50 Gbps, while for Virtual Device-based Service Tokens, it is limited to 10 Gbps
         */
        supportedBandwidths?: pulumi.Input<pulumi.Input<number>[]>;
        /**
         * Type of Connection supported by Service Token you will create; EVPL*VC, EVPLAN*VC, EPLAN*VC, IPWAN*VC
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned connection identifier
         */
        uuid?: pulumi.Input<string>;
        /**
         * Z-Side Connection link protocol,virtual device or network configuration
         */
        zSides?: pulumi.Input<pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionZSide>[]>;
    }
    interface ServiceTokenServiceTokenConnectionASide {
        /**
         * List of criteria for selecting network access points with optimal efficiency, security, compatibility, and availability
         */
        accessPointSelectors: pulumi.Input<pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionASideAccessPointSelector>[]>;
    }
    interface ServiceTokenServiceTokenConnectionASideAccessPointSelector {
        /**
         * Virtual Device Interface Configuration
         */
        interface?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionASideAccessPointSelectorInterface>;
        /**
         * Link protocol Configuration
         */
        linkProtocol?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionASideAccessPointSelectorLinkProtocol>;
        /**
         * Network Configuration
         */
        network?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionASideAccessPointSelectorNetwork>;
        /**
         * Port Configuration
         */
        port?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionASideAccessPointSelectorPort>;
        /**
         * Type of Access point; COLO, VD, NETWORK
         */
        type?: pulumi.Input<string>;
        /**
         * Virtual Device Configuration
         */
        virtualDevice?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionASideAccessPointSelectorVirtualDevice>;
    }
    interface ServiceTokenServiceTokenConnectionASideAccessPointSelectorInterface {
        /**
         * id
         */
        id?: pulumi.Input<number>;
        /**
         * Interface type
         */
        type: pulumi.Input<string>;
        /**
         * Equinix-assigned interface identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionASideAccessPointSelectorLinkProtocol {
        /**
         * Type of the link protocol - UNTAGGED, DOT1Q, QINQ, EVPN_VXLAN
         */
        type?: pulumi.Input<string>;
        /**
         * Vlan Customer Tag information, vlanCTag value specified for QINQ connections
         */
        vlanCTag?: pulumi.Input<number>;
        /**
         * Vlan Provider Tag information, vlanSTag value specified for QINQ connections
         */
        vlanSTag?: pulumi.Input<number>;
        /**
         * Vlan Tag information, vlanTag value specified for DOT1Q connections
         */
        vlanTag?: pulumi.Input<number>;
    }
    interface ServiceTokenServiceTokenConnectionASideAccessPointSelectorNetwork {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Location
         */
        locations?: pulumi.Input<pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionASideAccessPointSelectorNetworkLocation>[]>;
        /**
         * Network Name
         */
        name?: pulumi.Input<string>;
        /**
         * Scope of Network
         */
        scope?: pulumi.Input<string>;
        /**
         * Type of Network
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned Network identifier
         */
        uuid: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionASideAccessPointSelectorNetworkLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionASideAccessPointSelectorPort {
        /**
         * Account Name
         */
        accountName?: pulumi.Input<string>;
        /**
         * Port Bandwidth
         */
        bandwidth?: pulumi.Input<number>;
        /**
         * Customer virtual port Id
         */
        cvpId?: pulumi.Input<number>;
        /**
         * Port Encapsulation
         */
        encapsulationProtocolType?: pulumi.Input<string>;
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Port Location
         */
        locations?: pulumi.Input<pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionASideAccessPointSelectorPortLocation>[]>;
        /**
         * Port Name
         */
        portName?: pulumi.Input<string>;
        /**
         * Port Priority
         */
        priority?: pulumi.Input<string>;
        /**
         * Type of Port
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned Port identifier
         */
        uuid: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionASideAccessPointSelectorPortLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionASideAccessPointSelectorVirtualDevice {
        /**
         * Virtual Device Cluster Information
         */
        cluster?: pulumi.Input<string>;
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Customer-assigned Virtual Device Name
         */
        name?: pulumi.Input<string>;
        /**
         * Virtual Device type
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned Virtual Device identifier
         */
        uuid: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionZSide {
        /**
         * List of criteria for selecting network access points with optimal efficiency, security, compatibility, and availability
         */
        accessPointSelectors: pulumi.Input<pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionZSideAccessPointSelector>[]>;
    }
    interface ServiceTokenServiceTokenConnectionZSideAccessPointSelector {
        /**
         * Virtual Device Interface Configuration
         */
        interface?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionZSideAccessPointSelectorInterface>;
        /**
         * Link protocol Configuration
         */
        linkProtocol?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionZSideAccessPointSelectorLinkProtocol>;
        /**
         * Network Configuration
         */
        network?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionZSideAccessPointSelectorNetwork>;
        /**
         * Port Configuration
         */
        port?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionZSideAccessPointSelectorPort>;
        /**
         * Type of Access point; COLO, VD, NETWORK
         */
        type?: pulumi.Input<string>;
        /**
         * Virtual Device Configuration
         */
        virtualDevice?: pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionZSideAccessPointSelectorVirtualDevice>;
    }
    interface ServiceTokenServiceTokenConnectionZSideAccessPointSelectorInterface {
        /**
         * id
         */
        id?: pulumi.Input<number>;
        /**
         * Interface type
         */
        type: pulumi.Input<string>;
        /**
         * Equinix-assigned interface identifier
         */
        uuid?: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionZSideAccessPointSelectorLinkProtocol {
        /**
         * Type of the link protocol - UNTAGGED, DOT1Q, QINQ, EVPN_VXLAN
         */
        type?: pulumi.Input<string>;
        /**
         * Vlan Customer Tag information, vlanCTag value specified for QINQ connections
         */
        vlanCTag?: pulumi.Input<number>;
        /**
         * Vlan Provider Tag information, vlanSTag value specified for QINQ connections
         */
        vlanSTag?: pulumi.Input<number>;
        /**
         * Vlan Tag information, vlanTag value specified for DOT1Q connections
         */
        vlanTag?: pulumi.Input<number>;
    }
    interface ServiceTokenServiceTokenConnectionZSideAccessPointSelectorNetwork {
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Location
         */
        locations?: pulumi.Input<pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionZSideAccessPointSelectorNetworkLocation>[]>;
        /**
         * Network Name
         */
        name?: pulumi.Input<string>;
        /**
         * Scope of Network
         */
        scope?: pulumi.Input<string>;
        /**
         * Type of Network
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned Network identifier
         */
        uuid: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionZSideAccessPointSelectorNetworkLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionZSideAccessPointSelectorPort {
        /**
         * Account Name
         */
        accountName?: pulumi.Input<string>;
        /**
         * Port Bandwidth
         */
        bandwidth?: pulumi.Input<number>;
        /**
         * Customer virtual port Id
         */
        cvpId?: pulumi.Input<number>;
        /**
         * Port Encapsulation
         */
        encapsulationProtocolType?: pulumi.Input<string>;
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Port Location
         */
        locations?: pulumi.Input<pulumi.Input<inputs.fabric.ServiceTokenServiceTokenConnectionZSideAccessPointSelectorPortLocation>[]>;
        /**
         * Port Name
         */
        portName?: pulumi.Input<string>;
        /**
         * Port Priority
         */
        priority?: pulumi.Input<string>;
        /**
         * Type of Port
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned Port identifier
         */
        uuid: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionZSideAccessPointSelectorPortLocation {
        /**
         * IBX Code
         */
        ibx?: pulumi.Input<string>;
        /**
         * Access point metro code
         */
        metroCode?: pulumi.Input<string>;
        /**
         * Access point metro name
         */
        metroName?: pulumi.Input<string>;
        /**
         * Access point region
         */
        region?: pulumi.Input<string>;
    }
    interface ServiceTokenServiceTokenConnectionZSideAccessPointSelectorVirtualDevice {
        /**
         * Virtual Device Cluster Information
         */
        cluster?: pulumi.Input<string>;
        /**
         * Unique Resource Identifier
         */
        href?: pulumi.Input<string>;
        /**
         * Customer-assigned Virtual Device Name
         */
        name?: pulumi.Input<string>;
        /**
         * Virtual Device type
         */
        type?: pulumi.Input<string>;
        /**
         * Equinix-assigned Virtual Device identifier
         */
        uuid: pulumi.Input<string>;
    }
    interface StreamAttachmentTimeouts {
        /**
         * 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).
         */
        create?: pulumi.Input<string>;
        /**
         * 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.
         */
        delete?: pulumi.Input<string>;
        /**
         * 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). Read operations occur during any refresh or planning operation when refresh is enabled.
         */
        read?: pulumi.Input<string>;
        /**
         * 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).
         */
        update?: pulumi.Input<string>;
    }
    interface StreamChangeLog {
        /**
         * User name of creator of the stream resource
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Email of creator of the stream resource
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Legal name of creator of the stream resource
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Creation time of the stream resource
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * User name of deleter of the stream resource
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Email of deleter of the stream resource
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of deleter of the stream resource
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deletion time of the stream resource
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * User name of last updater of the stream resource
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Email of last updater of the stream resource
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of last updater of the stream resource
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Last update time of the stream resource
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface StreamProject {
        /**
         * Equinix Subscriber-assigned project ID
         */
        projectId: pulumi.Input<string>;
    }
    interface StreamSubscriptionChangeLog {
        /**
         * User name of creator of the stream resource
         */
        createdBy?: pulumi.Input<string>;
        /**
         * Email of creator of the stream resource
         */
        createdByEmail?: pulumi.Input<string>;
        /**
         * Legal name of creator of the stream resource
         */
        createdByFullName?: pulumi.Input<string>;
        /**
         * Creation time of the stream resource
         */
        createdDateTime?: pulumi.Input<string>;
        /**
         * User name of deleter of the stream resource
         */
        deletedBy?: pulumi.Input<string>;
        /**
         * Email of deleter of the stream resource
         */
        deletedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of deleter of the stream resource
         */
        deletedByFullName?: pulumi.Input<string>;
        /**
         * Deletion time of the stream resource
         */
        deletedDateTime?: pulumi.Input<string>;
        /**
         * User name of last updater of the stream resource
         */
        updatedBy?: pulumi.Input<string>;
        /**
         * Email of last updater of the stream resource
         */
        updatedByEmail?: pulumi.Input<string>;
        /**
         * Legal name of last updater of the stream resource
         */
        updatedByFullName?: pulumi.Input<string>;
        /**
         * Last update time of the stream resource
         */
        updatedDateTime?: pulumi.Input<string>;
    }
    interface StreamSubscriptionEventSelector {
        /**
         * List of events to exclude
         */
        excepts?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * List of events to include
         */
        includes: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface StreamSubscriptionMetricSelector {
        /**
         * List of metrics to exclude
         */
        excepts?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * List of metrics to include
         */
        includes: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface StreamSubscriptionSink {
        /**
         * Boolean switch enabling batch delivery of data
         */
        batchEnabled?: pulumi.Input<boolean>;
        /**
         * Maximum size of the batch delivery if enabled
         */
        batchSizeMax?: pulumi.Input<number>;
        /**
         * Maximum time to wait for batch delivery if enabled
         */
        batchWaitTimeMax?: pulumi.Input<number>;
        /**
         * Access details for the specified sink type
         */
        credential?: pulumi.Input<inputs.fabric.StreamSubscriptionSinkCredential>;
        /**
         * Known hostname of certain data stream subscription products. Not to be confused with a variable URI
         */
        host?: pulumi.Input<string>;
        /**
         * Stream subscription sink settings
         */
        settings?: pulumi.Input<inputs.fabric.StreamSubscriptionSinkSettings>;
        /**
         * Type of the subscriber
         */
        type: pulumi.Input<string>;
        /**
         * Publicly reachable http endpoint destination for data stream
         */
        uri?: pulumi.Input<string>;
    }
    interface StreamSubscriptionSinkCredential {
        /**
         * Passed as Authorization header value
         */
        accessToken?: pulumi.Input<string>;
        /**
         * Passed as Authorization header value
         */
        apiKey?: pulumi.Input<string>;
        /**
         * Passed as Authorization header value
         */
        integrationKey?: pulumi.Input<string>;
        /**
         * Passed as Authorization header value
         */
        password?: pulumi.Input<string>;
        /**
         * Type of the credential being passed
         */
        type: pulumi.Input<string>;
        /**
         * Passed as Authorization header value
         */
        username?: pulumi.Input<string>;
    }
    interface StreamSubscriptionSinkSettings {
        applicationKey?: pulumi.Input<string>;
        eventIndex?: pulumi.Input<string>;
        eventUri?: pulumi.Input<string>;
        metricIndex?: pulumi.Input<string>;
        metricUri?: pulumi.Input<string>;
        source?: pulumi.Input<string>;
    }
    interface StreamSubscriptionTimeouts {
        /**
         * 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).
         */
        create?: pulumi.Input<string>;
        /**
         * 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.
         */
        delete?: pulumi.Input<string>;
        /**
         * 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). Read operations occur during any refresh or planning operation when refresh is enabled.
         */
        read?: pulumi.Input<string>;
        /**
         * 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).
         */
        update?: pulumi.Input<string>;
    }
    interface StreamTimeouts {
        /**
         * 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).
         */
        create?: pulumi.Input<string>;
        /**
         * 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.
         */
        delete?: pulumi.Input<string>;
        /**
         * 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). Read operations occur during any refresh or planning operation when refresh is enabled.
         */
        read?: pulumi.Input<string>;
        /**
         * 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).
         */
        update?: pulumi.Input<string>;
    }
}
export declare namespace metal {
    interface DeviceBehavior {
        /**
         * List of attributes that are allowed to change without recreating the instance. Supported attributes: `customData`, `userData`
         */
        allowChanges?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface DeviceIpAddress {
        /**
         * CIDR suffix for IP block assigned to this device
         */
        cidr?: pulumi.Input<number>;
        /**
         * IDs of reservations to pick the blocks from
         */
        reservationIds?: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * one of public*ipv4,private*ipv4,public_ipv6
         */
        type: pulumi.Input<string>;
    }
    interface DeviceNetwork {
        /**
         * IPv4 or IPv6 address string
         */
        address?: pulumi.Input<string>;
        /**
         * CIDR suffix for IP address block to be assigned, i.e. amount of addresses
         */
        cidr?: pulumi.Input<number>;
        /**
         * IP version - "4" or "6"
         */
        family?: pulumi.Input<number>;
        /**
         * Address of router
         */
        gateway?: pulumi.Input<string>;
        /**
         * Whether the address is routable from the Internet
         */
        public?: pulumi.Input<boolean>;
    }
    interface DevicePort {
        /**
         * Whether this port is part of a bond in bonded network setup
         */
        bonded?: pulumi.Input<boolean>;
        /**
         * The ID of the device
         */
        id?: pulumi.Input<string>;
        /**
         * MAC address assigned to the port
         */
        mac?: pulumi.Input<string>;
        /**
         * Name of the port (e.g. eth0, or bond0)
         */
        name?: pulumi.Input<string>;
        /**
         * One of [private_ipv4, public_ipv4, publicIpv6]
         */
        type?: pulumi.Input<string>;
    }
    interface DeviceReinstall {
        /**
         * Whether the OS disk should be filled with `00h` bytes before reinstall
         */
        deprovisionFast?: pulumi.Input<boolean>;
        /**
         * Whether the device should be reinstalled instead of destroyed
         */
        enabled?: pulumi.Input<boolean>;
        /**
         * Whether the non-OS disks should be kept or wiped during reinstall
         */
        preserveData?: pulumi.Input<boolean>;
    }
    interface GatewayTimeouts {
        /**
         * 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.
         */
        delete?: pulumi.Input<string>;
    }
    interface GetDevicesFilter {
        /**
         * If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.
         *
         * All fields in the `devices` block defined below can be used as attribute for both `sort` and `filter` blocks.
         */
        all?: boolean;
        /**
         * The attribute used to filter. Filter attributes are case-sensitive
         */
        attribute: string;
        /**
         * The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.
         */
        matchBy?: string;
        /**
         * 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
         */
        values: string[];
    }
    interface GetDevicesFilterArgs {
        /**
         * If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.
         *
         * All fields in the `devices` block defined below can be used as attribute for both `sort` and `filter` blocks.
         */
        all?: pulumi.Input<boolean>;
        /**
         * The attribute used to filter. Filter attributes are case-sensitive
         */
        attribute: pulumi.Input<string>;
        /**
         * The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.
         */
        matchBy?: pulumi.Input<string>;
        /**
         * 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
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetDevicesSort {
        /**
         * The attribute used to sort the results. Sort attributes are case-sensitive
         */
        attribute: string;
        /**
         * Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc
         */
        direction?: string;
    }
    interface GetDevicesSortArgs {
        /**
         * The attribute used to sort the results. Sort attributes are case-sensitive
         */
        attribute: pulumi.Input<string>;
        /**
         * Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc
         */
        direction?: pulumi.Input<string>;
    }
    interface GetFacilityCapacity {
        /**
         * Device plan that must be available in selected location.
         */
        plan: string;
        /**
         * Minimun number of devices that must be available in selected location. Default is `1`.
         */
        quantity?: number;
    }
    interface GetFacilityCapacityArgs {
        /**
         * Device plan that must be available in selected location.
         */
        plan: pulumi.Input<string>;
        /**
         * Minimun number of devices that must be available in selected location. Default is `1`.
         */
        quantity?: pulumi.Input<number>;
    }
    interface GetMetroCapacity {
        /**
         * Device plan that must be available in selected location.
         */
        plan: string;
        /**
         * Minimum number of devices that must be available in selected location. Default is `1`.
         */
        quantity?: number;
    }
    interface GetMetroCapacityArgs {
        /**
         * Device plan that must be available in selected location.
         */
        plan: pulumi.Input<string>;
        /**
         * Minimum number of devices that must be available in selected location. Default is `1`.
         */
        quantity?: pulumi.Input<number>;
    }
    interface GetPlansFilter {
        /**
         * If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.
         *
         * All fields in the `plans` block defined below can be used as attribute for both `sort` and `filter` blocks.
         */
        all?: boolean;
        /**
         * The attribute used to filter. Filter attributes are case-sensitive
         */
        attribute: string;
        /**
         * The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.
         */
        matchBy?: string;
        /**
         * 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
         */
        values: string[];
    }
    interface GetPlansFilterArgs {
        /**
         * If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.
         *
         * All fields in the `plans` block defined below can be used as attribute for both `sort` and `filter` blocks.
         */
        all?: pulumi.Input<boolean>;
        /**
         * The attribute used to filter. Filter attributes are case-sensitive
         */
        attribute: pulumi.Input<string>;
        /**
         * The type of comparison to apply. One of: `in` , `re`, `substring`, `lessThan`, `lessThanOrEqual`, `greaterThan`, `greaterThanOrEqual`. Default is `in`.
         */
        matchBy?: pulumi.Input<string>;
        /**
         * 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
         */
        values: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface GetPlansSort {
        /**
         * The attribute used to sort the results. Sort attributes are case-sensitive
         */
        attribute: string;
        /**
         * Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc
         */
        direction?: string;
    }
    interface GetPlansSortArgs {
        /**
         * The attribute used to sort the results. Sort attributes are case-sensitive
         */
        attribute: pulumi.Input<string>;
        /**
         * Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc
         */
        direction?: pulumi.Input<string>;
    }
    interface InterconnectionPort {
        id: pulumi.Input<string>;
        linkStatus: pulumi.Input<string>;
        name: pulumi.Input<string>;
        role: pulumi.Input<string>;
        speed: pulumi.Input<number>;
        status: pulumi.Input<string>;
        virtualCircuitIds: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface InterconnectionServiceToken {
        expiresAt: pulumi.Input<string>;
        id: pulumi.Input<string>;
        maxAllowedSpeed: pulumi.Input<string>;
        role: pulumi.Input<string>;
        state: pulumi.Input<string>;
        type: pulumi.Input<string>;
    }
    interface OrganizationAddress {
        /**
         * Postal address.
         */
        address: pulumi.Input<string>;
        /**
         * City name.
         */
        city: pulumi.Input<string>;
        /**
         * Two letter country code (ISO 3166-1 alpha-2), e.g. US.
         */
        country: pulumi.Input<string>;
        /**
         * State name.
         */
        state?: pulumi.Input<string>;
        /**
         * Zip Code.
         */
        zipCode: pulumi.Input<string>;
    }
    interface ProjectBgpConfig {
        /**
         * Autonomous System Number for local BGP deployment.
         */
        asn: pulumi.Input<number>;
        /**
         * `local` or `global`, the `local` is likely to be usable immediately, the `global` will need to be reviewed by Equinix Metal engineers.
         */
        deploymentType: pulumi.Input<string>;
        /**
         * The maximum number of route filters allowed per server.
         */
        maxPrefix?: pulumi.Input<number>;
        /**
         * Password for BGP session in plaintext (not a checksum).
         */
        md5?: pulumi.Input<string>;
        /**
         * status of BGP configuration in the project.
         */
        status?: pulumi.Input<string>;
    }
    interface SpotMarketRequestInstanceParameters {
        alwaysPxe?: pulumi.Input<boolean>;
        billingCycle: pulumi.Input<string>;
        customdata?: pulumi.Input<string>;
        description?: pulumi.Input<string>;
        features?: pulumi.Input<pulumi.Input<string>[]>;
        hostname: pulumi.Input<string>;
        ipxeScriptUrl?: pulumi.Input<string>;
        /**
         * Blocks deletion of the SpotMarketRequest device until the lock is disabled.
         */
        locked?: pulumi.Input<boolean>;
        operatingSystem: pulumi.Input<string>;
        plan: pulumi.Input<string>;
        projectSshKeys?: pulumi.Input<pulumi.Input<string>[]>;
        tags?: pulumi.Input<pulumi.Input<string>[]>;
        terminationTime?: pulumi.Input<string>;
        /**
         * @deprecated Use instance_parameters.termination_time instead
         */
        termintationTime?: pulumi.Input<string>;
        userSshKeys?: pulumi.Input<pulumi.Input<string>[]>;
        userdata?: pulumi.Input<string>;
    }
}
export declare namespace networkedge {
    interface AclTemplateDeviceDetail {
        /**
         * Device ACL provisioning status where template was applied. One of `PROVISIONING`, `PROVISIONED`.
         */
        aclStatus?: pulumi.Input<string>;
        /**
         * ACL template name.
         */
        name?: pulumi.Input<string>;
        /**
         * Device uuid.
         */
        uuid?: pulumi.Input<string>;
    }
    interface AclTemplateInboundRule {
        /**
         * Inbound rule description, up to 200 characters.
         */
        description?: pulumi.Input<string>;
        /**
         * Inbound traffic destination ports. Allowed values are a comma separated list of ports, e.g., `20,22,23`, port range, e.g., `1023-1040` or word `any`.
         */
        dstPort: pulumi.Input<string>;
        /**
         * Inbound traffic protocol. One of `IP`, `TCP`, `UDP`.
         */
        protocol: pulumi.Input<string | enums.networkedge.AclRuleProtocolType>;
        /**
         * Inbound rule sequence number
         */
        sequenceNumber?: pulumi.Input<number>;
        /**
         * Type of traffic source used in a given inbound rule
         *
         * @deprecated Source Type will not be returned
         */
        sourceType?: pulumi.Input<string>;
        /**
         * Inbound traffic source ports. Allowed values are a comma separated list of ports, e.g., `20,22,23`, port range, e.g., `1023-1040` or word `any`.
         */
        srcPort: pulumi.Input<string>;
        /**
         * Inbound traffic source IP subnet in CIDR format.
         */
        subnet?: pulumi.Input<string>;
        /**
         * Inbound traffic source IP subnets in CIDR format.
         *
         * @deprecated Use Subnet instead
         */
        subnets?: pulumi.Input<pulumi.Input<string>[]>;
    }
    interface DeviceClusterDetails {
        /**
         * The ID of the cluster.
         */
        clusterId?: pulumi.Input<string>;
        /**
         * The name of the cluster device
         */
        clusterName: pulumi.Input<string>;
        /**
         * An object that has `node0` configuration. See Cluster Details - Nodes below for more details.
         */
        node0: pulumi.Input<inputs.networkedge.DeviceClusterDetailsNode0>;
        /**
         * An object that has `node1` configuration. See Cluster Details - Nodes below for more details.
         */
        node1: pulumi.Input<inputs.networkedge.DeviceClusterDetailsNode1>;
        /**
         * The number of nodes in the cluster.
         */
        numOfNodes?: pulumi.Input<number>;
    }
    interface DeviceClusterDetailsNode0 {
        /**
         * License file id. This is necessary for Fortinet and Juniper clusters.
         */
        licenseFileId?: pulumi.Input<string>;
        /**
         * License token. This is necessary for Palo Alto clusters.
         */
        licenseToken?: pulumi.Input<string>;
        /**
         * Device name.
         */
        name?: pulumi.Input<string>;
        /**
         * Device unique identifier.
         */
        uuid?: pulumi.Input<string>;
        /**
         * An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
         */
        vendorConfiguration?: pulumi.Input<inputs.networkedge.DeviceClusterDetailsNode0VendorConfiguration>;
    }
    interface DeviceClusterDetailsNode0VendorConfiguration {
        /**
         * Activation key. This is required for Velocloud clusters.
         */
        activationKey?: pulumi.Input<string>;
        /**
         * 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.
         */
        adminPassword?: pulumi.Input<string>;
        /**
         * System IP Address. Mandatory for the Fortinet SDWAN cluster device.
         */
        controller1?: pulumi.Input<string>;
        /**
         * Controller fqdn. This is required for Velocloud clusters.
         */
        controllerFqdn?: pulumi.Input<string>;
        /**
         * Gateway IP. This field is relevant only for the Infoblox devices.
         */
        gatewayIp?: pulumi.Input<string>;
        /**
         * Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
         */
        hostname?: pulumi.Input<string>;
        /**
         * IP Address. This field is relevant only for the Infoblox devices.
         */
        ipAddress?: pulumi.Input<string>;
        /**
         * License id. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        licenseId?: pulumi.Input<string>;
        /**
         * License key. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        licenseKey?: pulumi.Input<string>;
        /**
         * Management Type. This field is relevant only for Cisco FTD Firewall devices
         */
        managementType?: pulumi.Input<string>;
        /**
         * Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
         */
        panoramaAuthKey?: pulumi.Input<string>;
        /**
         * Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
         */
        panoramaIpAddress?: pulumi.Input<string>;
        /**
         * Private address. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        privateAddress?: pulumi.Input<string>;
        /**
         * Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        privateCidrMask?: pulumi.Input<string>;
        /**
         * Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        privateGateway?: pulumi.Input<string>;
        /**
         * The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
         */
        rootPassword?: pulumi.Input<string>;
        /**
         * Subnet Mask IP. This field is relevant only for the Infoblox devices.
         */
        subnetMaskIp?: pulumi.Input<string>;
    }
    interface DeviceClusterDetailsNode1 {
        /**
         * License file id. This is necessary for Fortinet and Juniper clusters.
         */
        licenseFileId?: pulumi.Input<string>;
        /**
         * License token. This is necessary for Palo Alto clusters.
         */
        licenseToken?: pulumi.Input<string>;
        /**
         * Device name.
         */
        name?: pulumi.Input<string>;
        /**
         * Device unique identifier.
         */
        uuid?: pulumi.Input<string>;
        /**
         * An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.
         */
        vendorConfiguration?: pulumi.Input<inputs.networkedge.DeviceClusterDetailsNode1VendorConfiguration>;
    }
    interface DeviceClusterDetailsNode1VendorConfiguration {
        /**
         * Activation key. This is required for Velocloud clusters.
         */
        activationKey?: pulumi.Input<string>;
        /**
         * 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.
         */
        adminPassword?: pulumi.Input<string>;
        /**
         * System IP Address. Mandatory for the Fortinet SDWAN cluster device.
         */
        controller1?: pulumi.Input<string>;
        /**
         * Controller fqdn. This is required for Velocloud clusters.
         */
        controllerFqdn?: pulumi.Input<string>;
        /**
         * Gateway IP. This field is relevant only for the Infoblox devices.
         */
        gatewayIp?: pulumi.Input<string>;
        /**
         * Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.
         */
        hostname?: pulumi.Input<string>;
        /**
         * IP Address. This field is relevant only for the Infoblox devices.
         */
        ipAddress?: pulumi.Input<string>;
        /**
         * License id. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        licenseId?: pulumi.Input<string>;
        /**
         * License key. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        licenseKey?: pulumi.Input<string>;
        /**
         * Management Type. This field is relevant only for Cisco FTD Firewall devices
         */
        managementType?: pulumi.Input<string>;
        /**
         * Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
         */
        panoramaAuthKey?: pulumi.Input<string>;
        /**
         * Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.
         */
        panoramaIpAddress?: pulumi.Input<string>;
        /**
         * Private address. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        privateAddress?: pulumi.Input<string>;
        /**
         * Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        privateCidrMask?: pulumi.Input<string>;
        /**
         * Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server
         */
        privateGateway?: pulumi.Input<string>;
        /**
         * The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.
         */
        rootPassword?: pulumi.Input<string>;
        /**
         * Subnet Mask IP. This field is relevant only for the Infoblox devices.
         */
        subnetMaskIp?: pulumi.Input<string>;
    }
    interface DeviceInterface {
        /**
         * interface management type (Equinix Managed or empty).
         */
        assignedType?: pulumi.Input<string>;
        /**
         * interface identifier.
         */
        id?: pulumi.Input<number>;
        /**
         * interface IP address.
         */
        ipAddress?: pulumi.Input<string>;
        /**
         * interface MAC address.
         */
        macAddress?: pulumi.Input<string>;
        /**
         * Device name.
         */
        name?: pulumi.Input<string>;
        /**
         * interface operational status. One of `up`, `down`.
         */
        operationalStatus?: pulumi.Input<string>;
        /**
         * interface status. One of `AVAILABLE`, `RESERVED`, `ASSIGNED`.
         */
        status?: pulumi.Input<string>;
        /**
         * interface type.
         */
        type?: pulumi.Input<string>;
    }
    interface DeviceLinkDevice {
        /**
         * Device ASN number. Not required for self configured devices.
         */
        asn?: pulumi.Input<number>;
        /**
         * Device identifier.
         */
        id: pulumi.Input<string>;
        /**
         * Device network interface identifier to use for device link connection.
         */
        interfaceId?: pulumi.Input<number>;
        /**
         * IP address from device link subnet that was assigned to the device
         */
        ipAddress?: pulumi.Input<string>;
        /**
         * device link provisioning status on a given device. One of `PROVISIONING`, `PROVISIONED`, `DEPROVISIONING`, `DEPROVISIONED`, `FAILED`.
         */
        status?: pulumi.Input<string>;
    }
    interface DeviceLinkLink {
        /**
         * billing account number to be used for connection charges
         */
        accountNumber: pulumi.Input<string>;
        /**
         * connection destination metro code.
         */
        dstMetroCode: pulumi.Input<string>;
        /**
         * connection destination zone code is not required.
         *
         * @deprecated DestinationZoneCode is not required
         */
        dstZoneCode?: pulumi.Input<string>;
        /**
         * connection source metro code.
         */
        srcMetroCode: pulumi.Input<string>;
        /**
         * connection source zone code is not required.
         *
         * @deprecated SourceZoneCode is not required
         */
        srcZoneCode?: pulumi.Input<string>;
        /**
         * connection throughput.
         */
        throughput: pulumi.Input<string>;
        /**
         * connection throughput unit (Mbps or Gbps).
         */
        throughputUnit: pulumi.Input<string>;
    }
    interface DeviceLinkMetroLink {
        /**
         * billing account number to be used for connection charges
         */
        accountNumber: pulumi.Input<string>;
        /**
         * connection metro code.
         */
        metroCode: pulumi.Input<string>;
        /**
         * connection throughput.
         */
        throughput: pulumi.Input<string>;
        /**
         * connection throughput unit (Mbps or Gbps).
         */
        throughputUnit: pulumi.Input<string>;
    }
    interface DeviceSecondaryDevice {
        /**
         * Billing account number for secondary device.
         */
        accountNumber: pulumi.Input<string>;
        /**
         * Identifier of a WAN interface ACL template that will be applied on a secondary device.
         */
        aclTemplateId?: pulumi.Input<string>;
        /**
         * Additional Internet bandwidth, in Mbps, for a secondary device.
         */
        additionalBandwidth?: pulumi.Input<number>;
        /**
         * (Autonomous System Number) Unique identifier for a network on the internet.
         */
        asn?: pulumi.Input<number>;
        /**
         * Identifier of a cloud init file that will be applied on a secondary device.
         */
        cloudInitFileId?: pulumi.Input<string>;
        /**
         * Secondary device hostname.
         */
        hostname?: pulumi.Input<string>;
        /**
         * Device location Equinix Business Exchange name.
         */
        ibx?: pulumi.Input<string>;
        /**
         * List of device interfaces. See Interface Attribute below for more details.
         */
        interfaces?: pulumi.Input<pulumi.Input<inputs.networkedge.DeviceSecondaryDeviceInterface>[]>;
        /**
         * Path to the license file that will be uploaded and applied on a secondary device. Applicable for some device types in BYOL licensing mode.
         */
        licenseFile?: pulumi.Input<string>;
        /**
         * Identifier of a license file that will be applied on a secondary device.
         */
        licenseFileId?: pulumi.Input<string>;
        /**
         * Device license registration status. Possible values are `APPLYING_LICENSE`, `REGISTERED`, `APPLIED`, `WAITING_FOR_CLUSTER_SETUP`, `REGISTRATION_FAILED`.
         */
        licenseStatus?: pulumi.Input<string>;
        /**
         * License Token can be provided for some device types o the device.
         */
        licenseToken?: pulumi.Input<string>;
        /**
         * Metro location of a secondary device.
         */
        metroCode: pulumi.Input<string>;
        /**
         * Identifier of an MGMT interface ACL template that will be applied on a secondary device.
         * * `ssh-key` - (Optional) Up to one definition of SSH key that will be provisioned on a secondary device.
         */
        mgmtAclTemplateUuid?: pulumi.Input<string>;
        /**
         * Secondary device name.
         */
        name: pulumi.Input<string>;
        /**
         * List of email addresses that will receive notifications about secondary device.
         */
        notifications: pulumi.Input<pulumi.Input<string>[]>;
        /**
         * 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.
         */
        projectId?: pulumi.Input<string>;
        /**
         * Device redundancy type applicable for HA devices, either primary or secondary.
         */
        redundancyType?: pulumi.Input<string>;
        /**
         * Unique identifier for a redundant device applicable for HA devices.
         */
        redundantId?: pulumi.Input<string>;
        /**
         * Device location region.
         */
        region?: pulumi.Input<string>;
        /**
         * IP address of SSH enabled interface on the device.
         */
        sshIpAddress?: pulumi.Input<string>;
        /**
         * FQDN of SSH enabled interface on the device.
         */
        sshIpFqdn?: pulumi.Input<string>;
        /**
         * Definition of SSH key that will be provisioned on a device
         */
        sshKey?: pulumi.Input<inputs.networkedge.DeviceSecondaryDeviceSshKey>;
        /**
         * interface status. One of `AVAILABLE`, `RESERVED`, `ASSIGNED`.
         */
        status?: pulumi.Input<string>;
        /**
         * Device unique identifier.
         */
        uuid?: pulumi.Input<string>;
        /**
         * Key/Value pairs of vendor specific configuration parameters for a secondary device. Key values are `controller1`, `activationKey`, `managementType`, `siteId`, `systemIpAddress`, `privateAddress`, `privateCidrMask`, `privateGateway`, `licenseKey`, `licenseId`, `panoramaAuthKey`, `panoramaIpAddress`, `ipAddress`, `subnetMaskIp`, `gatewayIp`.
         */
        vendorConfiguration?: pulumi.Input<{
            [key: string]: pulumi.Input<string>;
        }>;
        /**
         * device interface id picked for WAN
         */
        wanInterfaceId?: pulumi.Input<string>;
        /**
         * Device location zone code.
         */
        zoneCode?: pulumi.Input<string>;
    }
    interface DeviceSecondaryDeviceInterface {
        /**
         * interface management type (Equinix Managed or empty).
         */
        assignedType?: pulumi.Input<string>;
        /**
         * interface identifier.
         */
        id?: pulumi.Input<number>;
        /**
         * interface IP address.
         */
        ipAddress?: pulumi.Input<string>;
        /**
         * interface MAC address.
         */
        macAddress?: pulumi.Input<string>;
        /**
         * Device name.
         */
        name?: pulumi.Input<string>;
        /**
         * interface operational status. One of `up`, `down`.
         */
        operationalStatus?: pulumi.Input<string>;
        /**
         * interface status. One of `AVAILABLE`, `RESERVED`, `ASSIGNED`.
         */
        status?: pulumi.Input<string>;
        /**
         * interface type.
         */
        type?: pulumi.Input<string>;
    }
    interface DeviceSecondaryDeviceSshKey {
        /**
         * Reference by name to previously provisioned public SSH key
         */
        keyName?: pulumi.Input<string>;
        /**
         * username associated with given key.
         */
        username: pulumi.Input<string>;
    }
    interface DeviceSshKey {
        /**
         * Reference by name to previously provisioned public SSH key
         */
        keyName?: pulumi.Input<string>;
        /**
         * username associated with given key.
         */
        username: pulumi.Input<string>;
    }
}
