UNPKG

@cuemby/equinix

Version:

A Pulumi package for creating and managing equinix cloud resources.

529 lines (528 loc) 22.4 kB
import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "./types"; /** * Resource `equinix.ECXL2Serviceprofile` is used to manage layer 2 service profiles * in Equinix Fabric. * * This resource relies on the Equinix Fabric API. The parameters * and attributes available map to the fields described at * <https://developer.equinix.com/catalog/sellerv3#operation/getProfileByIdOrNameUsingGET>. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as equinix from "@pulumi/equinix"; * * const private_profile = new equinix.ECXL2Serviceprofile("private-profile", { * bandwidthThresholdNotifications: [ * "John.Doe@example.com", * "Marry.Doe@example.com", * ], * connectionNameLabel: "Connection", * description: "my private profile", * features: { * allowRemoteConnections: true, * testProfile: false, * }, * ports: [ * { * metroCode: "NY", * uuid: "a867f685-422f-22f7-6de0-320a5c00abdd", * }, * { * metroCode: "NY", * uuid: "a867f685-4231-2317-6de0-320a5c00abdd", * }, * ], * private: true, * privateUserEmails: [ * "John.Doe@example.com", * "Marry.Doe@example.com", * ], * profileStatuschangeNotifications: [ * "John.Doe@example.com", * "Marry.Doe@example.com", * ], * speedBands: [ * { * speed: 1000, * speedUnit: "MB", * }, * { * speed: 500, * speedUnit: "MB", * }, * { * speed: 100, * speedUnit: "MB", * }, * ], * vcStatuschangeNotifications: [ * "John.Doe@example.com", * "Marry.Doe@example.com", * ], * }); * ``` * * ## Import * * This resource can be imported using an existing ID * * ```sh * $ pulumi import equinix:index/eCXL2Serviceprofile:ECXL2Serviceprofile example {existing_id} * ``` */ export declare class ECXL2Serviceprofile extends pulumi.CustomResource { /** * Get an existing ECXL2Serviceprofile resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ECXL2ServiceprofileState, opts?: pulumi.CustomResourceOptions): ECXL2Serviceprofile; /** * Returns true if the given object is an instance of ECXL2Serviceprofile. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is ECXL2Serviceprofile; /** * Boolean value that determines if API integration is enabled. It * allows you to complete connection provisioning in less than five minutes. Without API Integration, * additional manual steps will be required and the provisioning will likely take longer. */ readonly apiIntegration: pulumi.Output<boolean | undefined>; /** * Name of the authentication key label to be used by the * Authentication Key service. It allows Service Providers with QinQ ports to accept groups of * connections or VLANs from Dot1q customers. This is similar to S-Tag/C-Tag capabilities. */ readonly authkeyLabel: pulumi.Output<string | undefined>; /** * Specifies the port bandwidth threshold percentage. If * the bandwidth limit is met or exceeded, an alert is sent to the seller. */ readonly bandwidthAlertThreshold: pulumi.Output<number | undefined>; /** * A list of email addresses that will receive * notifications about bandwidth thresholds. */ readonly bandwidthThresholdNotifications: pulumi.Output<string[]>; /** * Custom name used for calling a connections * e.g. `circuit`. Defaults to `Connection`. */ readonly connectionNameLabel: pulumi.Output<string | undefined>; /** * C-Tag/Inner-Tag label name for the connections. */ readonly ctagLabel: pulumi.Output<string | undefined>; /** * Description of the service profile. */ readonly description: pulumi.Output<string | undefined>; /** * Applicable when `apiIntegration` is set to `true`. It * indicates whether the port and VLAN details are managed by Equinix. */ readonly equinixManagedPortVlan: pulumi.Output<boolean | undefined>; /** * Block of profile features configuration. See Features below * for more details. */ readonly features: pulumi.Output<outputs.ECXL2ServiceprofileFeatures>; /** * Specifies the API integration ID that was provided to the customer * during onboarding. You can validate your API integration ID using the validateIntegrationId API. */ readonly integrationId: pulumi.Output<string | undefined>; /** * Name of the service profile. An alpha-numeric 50 characters string which can * include only hyphens and underscores. */ readonly name: pulumi.Output<string>; /** * You can set an alert for when a percentage of your profile has * been sold. Service providers like to use this functionality to alert them when they need to add * more ports or when they need to create a new service profile. Required with * `oversubscriptionAllowed`, defaults to `1x`. */ readonly oversubscription: pulumi.Output<string | undefined>; /** * Boolean value that determines if, regardless of the * utilization, Equinix Fabric will continue to add connections to your links until we reach the * oversubscription limit. By selecting this service, you acknowledge that you will manage decisions * on when to increase capacity on these link. */ readonly oversubscriptionAllowed: pulumi.Output<boolean | undefined>; /** * One or more definitions of ports residing in locations, from which your * customers will be able to access services using this service profile. See Port below for * more details. */ readonly ports: pulumi.Output<outputs.ECXL2ServiceprofilePort[]>; /** * Boolean value that indicates whether or not this is a private profile, * i.e. not public like AWS/Azure/Oracle/Google, etc. If private, it can only be available for * creating connections if correct permissions are granted. */ readonly private: pulumi.Output<boolean | undefined>; /** * An array of users email ids who have permission to access this * service profile. Argument is required when profile is set as private. */ readonly privateUserEmails: pulumi.Output<string[] | undefined>; /** * A list of email addresses that will receive * notifications about profile status changes. */ readonly profileStatuschangeNotifications: pulumi.Output<string[]>; /** * Boolean value that determines if your connections will require * redundancy. if yes, then users need to create a secondary redundant connection. */ readonly redundancyRequired: pulumi.Output<boolean | undefined>; /** * Indicates whether the VLAN ID of. the secondary * connection is the same as the primary connection. */ readonly secondaryVlanFromPrimary: pulumi.Output<boolean | undefined>; /** * Boolean value that indicates whether multiple connections * can be created with the same authorization key to connect to this service profile after the first * connection has been approved by the seller. */ readonly servicekeyAutogenerated: pulumi.Output<boolean | undefined>; /** * One or more definitions of supported speed/bandwidth. Argument is * required when `speedFromApi` is set to `false`. See Speed Band below for more * details. */ readonly speedBands: pulumi.Output<outputs.ECXL2ServiceprofileSpeedBand[] | undefined>; /** * Boolean value that determines if customer is allowed * to enter a custom connection speed. */ readonly speedCustomizationAllowed: pulumi.Output<boolean | undefined>; /** * Boolean valuta that determines if connection speed will be derived * from an API call. Argument has to be specified when `apiIntegration` is enabled. */ readonly speedFromApi: pulumi.Output<boolean | undefined>; /** * Service profile provisioning status. */ readonly state: pulumi.Output<string>; /** * Specifies additional tagging information required by the seller profile * for Dot1Q to QinQ translation. See [Enhance Dot1q to QinQ translation support](https://docs.equinix.com/es/Content/Interconnection/Fabric/layer-2/Fabric-Create-Layer2-Service-Profile.htm#:~:text=Enhance%20Dot1q%20to%20QinQ%20translation%20support) * for additional information. Valid values are: */ readonly tagType: pulumi.Output<string | undefined>; /** * Unique identifier of the port. */ readonly uuid: pulumi.Output<string>; /** * A list of email addresses that will receive * notifications about connections approvals and rejections. */ readonly vcStatuschangeNotifications: pulumi.Output<string[]>; /** * Create a ECXL2Serviceprofile resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ECXL2ServiceprofileArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ECXL2Serviceprofile resources. */ export interface ECXL2ServiceprofileState { /** * Boolean value that determines if API integration is enabled. It * allows you to complete connection provisioning in less than five minutes. Without API Integration, * additional manual steps will be required and the provisioning will likely take longer. */ apiIntegration?: pulumi.Input<boolean>; /** * Name of the authentication key label to be used by the * Authentication Key service. It allows Service Providers with QinQ ports to accept groups of * connections or VLANs from Dot1q customers. This is similar to S-Tag/C-Tag capabilities. */ authkeyLabel?: pulumi.Input<string>; /** * Specifies the port bandwidth threshold percentage. If * the bandwidth limit is met or exceeded, an alert is sent to the seller. */ bandwidthAlertThreshold?: pulumi.Input<number>; /** * A list of email addresses that will receive * notifications about bandwidth thresholds. */ bandwidthThresholdNotifications?: pulumi.Input<pulumi.Input<string>[]>; /** * Custom name used for calling a connections * e.g. `circuit`. Defaults to `Connection`. */ connectionNameLabel?: pulumi.Input<string>; /** * C-Tag/Inner-Tag label name for the connections. */ ctagLabel?: pulumi.Input<string>; /** * Description of the service profile. */ description?: pulumi.Input<string>; /** * Applicable when `apiIntegration` is set to `true`. It * indicates whether the port and VLAN details are managed by Equinix. */ equinixManagedPortVlan?: pulumi.Input<boolean>; /** * Block of profile features configuration. See Features below * for more details. */ features?: pulumi.Input<inputs.ECXL2ServiceprofileFeatures>; /** * Specifies the API integration ID that was provided to the customer * during onboarding. You can validate your API integration ID using the validateIntegrationId API. */ integrationId?: pulumi.Input<string>; /** * Name of the service profile. An alpha-numeric 50 characters string which can * include only hyphens and underscores. */ name?: pulumi.Input<string>; /** * You can set an alert for when a percentage of your profile has * been sold. Service providers like to use this functionality to alert them when they need to add * more ports or when they need to create a new service profile. Required with * `oversubscriptionAllowed`, defaults to `1x`. */ oversubscription?: pulumi.Input<string>; /** * Boolean value that determines if, regardless of the * utilization, Equinix Fabric will continue to add connections to your links until we reach the * oversubscription limit. By selecting this service, you acknowledge that you will manage decisions * on when to increase capacity on these link. */ oversubscriptionAllowed?: pulumi.Input<boolean>; /** * One or more definitions of ports residing in locations, from which your * customers will be able to access services using this service profile. See Port below for * more details. */ ports?: pulumi.Input<pulumi.Input<inputs.ECXL2ServiceprofilePort>[]>; /** * Boolean value that indicates whether or not this is a private profile, * i.e. not public like AWS/Azure/Oracle/Google, etc. If private, it can only be available for * creating connections if correct permissions are granted. */ private?: pulumi.Input<boolean>; /** * An array of users email ids who have permission to access this * service profile. Argument is required when profile is set as private. */ privateUserEmails?: pulumi.Input<pulumi.Input<string>[]>; /** * A list of email addresses that will receive * notifications about profile status changes. */ profileStatuschangeNotifications?: pulumi.Input<pulumi.Input<string>[]>; /** * Boolean value that determines if your connections will require * redundancy. if yes, then users need to create a secondary redundant connection. */ redundancyRequired?: pulumi.Input<boolean>; /** * Indicates whether the VLAN ID of. the secondary * connection is the same as the primary connection. */ secondaryVlanFromPrimary?: pulumi.Input<boolean>; /** * Boolean value that indicates whether multiple connections * can be created with the same authorization key to connect to this service profile after the first * connection has been approved by the seller. */ servicekeyAutogenerated?: pulumi.Input<boolean>; /** * One or more definitions of supported speed/bandwidth. Argument is * required when `speedFromApi` is set to `false`. See Speed Band below for more * details. */ speedBands?: pulumi.Input<pulumi.Input<inputs.ECXL2ServiceprofileSpeedBand>[]>; /** * Boolean value that determines if customer is allowed * to enter a custom connection speed. */ speedCustomizationAllowed?: pulumi.Input<boolean>; /** * Boolean valuta that determines if connection speed will be derived * from an API call. Argument has to be specified when `apiIntegration` is enabled. */ speedFromApi?: pulumi.Input<boolean>; /** * Service profile provisioning status. */ state?: pulumi.Input<string>; /** * Specifies additional tagging information required by the seller profile * for Dot1Q to QinQ translation. See [Enhance Dot1q to QinQ translation support](https://docs.equinix.com/es/Content/Interconnection/Fabric/layer-2/Fabric-Create-Layer2-Service-Profile.htm#:~:text=Enhance%20Dot1q%20to%20QinQ%20translation%20support) * for additional information. Valid values are: */ tagType?: pulumi.Input<string>; /** * Unique identifier of the port. */ uuid?: pulumi.Input<string>; /** * A list of email addresses that will receive * notifications about connections approvals and rejections. */ vcStatuschangeNotifications?: pulumi.Input<pulumi.Input<string>[]>; } /** * The set of arguments for constructing a ECXL2Serviceprofile resource. */ export interface ECXL2ServiceprofileArgs { /** * Boolean value that determines if API integration is enabled. It * allows you to complete connection provisioning in less than five minutes. Without API Integration, * additional manual steps will be required and the provisioning will likely take longer. */ apiIntegration?: pulumi.Input<boolean>; /** * Name of the authentication key label to be used by the * Authentication Key service. It allows Service Providers with QinQ ports to accept groups of * connections or VLANs from Dot1q customers. This is similar to S-Tag/C-Tag capabilities. */ authkeyLabel?: pulumi.Input<string>; /** * Specifies the port bandwidth threshold percentage. If * the bandwidth limit is met or exceeded, an alert is sent to the seller. */ bandwidthAlertThreshold?: pulumi.Input<number>; /** * A list of email addresses that will receive * notifications about bandwidth thresholds. */ bandwidthThresholdNotifications: pulumi.Input<pulumi.Input<string>[]>; /** * Custom name used for calling a connections * e.g. `circuit`. Defaults to `Connection`. */ connectionNameLabel?: pulumi.Input<string>; /** * C-Tag/Inner-Tag label name for the connections. */ ctagLabel?: pulumi.Input<string>; /** * Description of the service profile. */ description?: pulumi.Input<string>; /** * Applicable when `apiIntegration` is set to `true`. It * indicates whether the port and VLAN details are managed by Equinix. */ equinixManagedPortVlan?: pulumi.Input<boolean>; /** * Block of profile features configuration. See Features below * for more details. */ features: pulumi.Input<inputs.ECXL2ServiceprofileFeatures>; /** * Specifies the API integration ID that was provided to the customer * during onboarding. You can validate your API integration ID using the validateIntegrationId API. */ integrationId?: pulumi.Input<string>; /** * Name of the service profile. An alpha-numeric 50 characters string which can * include only hyphens and underscores. */ name?: pulumi.Input<string>; /** * You can set an alert for when a percentage of your profile has * been sold. Service providers like to use this functionality to alert them when they need to add * more ports or when they need to create a new service profile. Required with * `oversubscriptionAllowed`, defaults to `1x`. */ oversubscription?: pulumi.Input<string>; /** * Boolean value that determines if, regardless of the * utilization, Equinix Fabric will continue to add connections to your links until we reach the * oversubscription limit. By selecting this service, you acknowledge that you will manage decisions * on when to increase capacity on these link. */ oversubscriptionAllowed?: pulumi.Input<boolean>; /** * One or more definitions of ports residing in locations, from which your * customers will be able to access services using this service profile. See Port below for * more details. */ ports: pulumi.Input<pulumi.Input<inputs.ECXL2ServiceprofilePort>[]>; /** * Boolean value that indicates whether or not this is a private profile, * i.e. not public like AWS/Azure/Oracle/Google, etc. If private, it can only be available for * creating connections if correct permissions are granted. */ private?: pulumi.Input<boolean>; /** * An array of users email ids who have permission to access this * service profile. Argument is required when profile is set as private. */ privateUserEmails?: pulumi.Input<pulumi.Input<string>[]>; /** * A list of email addresses that will receive * notifications about profile status changes. */ profileStatuschangeNotifications: pulumi.Input<pulumi.Input<string>[]>; /** * Boolean value that determines if your connections will require * redundancy. if yes, then users need to create a secondary redundant connection. */ redundancyRequired?: pulumi.Input<boolean>; /** * Indicates whether the VLAN ID of. the secondary * connection is the same as the primary connection. */ secondaryVlanFromPrimary?: pulumi.Input<boolean>; /** * Boolean value that indicates whether multiple connections * can be created with the same authorization key to connect to this service profile after the first * connection has been approved by the seller. */ servicekeyAutogenerated?: pulumi.Input<boolean>; /** * One or more definitions of supported speed/bandwidth. Argument is * required when `speedFromApi` is set to `false`. See Speed Band below for more * details. */ speedBands?: pulumi.Input<pulumi.Input<inputs.ECXL2ServiceprofileSpeedBand>[]>; /** * Boolean value that determines if customer is allowed * to enter a custom connection speed. */ speedCustomizationAllowed?: pulumi.Input<boolean>; /** * Boolean valuta that determines if connection speed will be derived * from an API call. Argument has to be specified when `apiIntegration` is enabled. */ speedFromApi?: pulumi.Input<boolean>; /** * Specifies additional tagging information required by the seller profile * for Dot1Q to QinQ translation. See [Enhance Dot1q to QinQ translation support](https://docs.equinix.com/es/Content/Interconnection/Fabric/layer-2/Fabric-Create-Layer2-Service-Profile.htm#:~:text=Enhance%20Dot1q%20to%20QinQ%20translation%20support) * for additional information. Valid values are: */ tagType?: pulumi.Input<string>; /** * A list of email addresses that will receive * notifications about connections approvals and rejections. */ vcStatuschangeNotifications: pulumi.Input<pulumi.Input<string>[]>; }