@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
616 lines (615 loc) • 30 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Represents an Interconnect resource. The Interconnect resource is a dedicated connection between
* Google's network and your on-premises network.
*
* To get more information about Interconnect, see:
*
* * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/interconnects)
* * How-to Guides
* * [Create a Dedicated Interconnect](https://cloud.google.com/network-connectivity/docs/interconnect/concepts/dedicated-overview)
*
* ## Example Usage
*
* ### Compute Interconnect Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const project = gcp.organizations.getProject({});
* const example_interconnect = new gcp.compute.Interconnect("example-interconnect", {
* name: "example-interconnect",
* customerName: "example_customer",
* interconnectType: "DEDICATED",
* linkType: "LINK_TYPE_ETHERNET_10G_LR",
* location: project.then(project => `https://www.googleapis.com/compute/v1/${project.id}/global/interconnectLocations/iad-zone1-1`),
* requestedLinkCount: 1,
* });
* ```
*
* ## Import
*
* Interconnect can be imported using any of these accepted formats:
*
* * `projects/{{project}}/global/interconnects/{{name}}`
*
* * `{{project}}/{{name}}`
*
* * `{{name}}`
*
* When using the `pulumi import` command, Interconnect can be imported using one of the formats above. For example:
*
* ```sh
* $ pulumi import gcp:compute/interconnect:Interconnect default projects/{{project}}/global/interconnects/{{name}}
* ```
*
* ```sh
* $ pulumi import gcp:compute/interconnect:Interconnect default {{project}}/{{name}}
* ```
*
* ```sh
* $ pulumi import gcp:compute/interconnect:Interconnect default {{name}}
* ```
*/
export declare class Interconnect extends pulumi.CustomResource {
/**
* Get an existing Interconnect 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?: InterconnectState, opts?: pulumi.CustomResourceOptions): Interconnect;
/**
* Returns true if the given object is an instance of Interconnect. 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 Interconnect;
/**
* Enable or disable the Application Aware Interconnect(AAI) feature on this interconnect.
*/
readonly aaiEnabled: pulumi.Output<boolean | undefined>;
/**
* Administrative status of the interconnect. When this is set to true, the Interconnect is
* functional and can carry traffic. When set to false, no packets can be carried over the
* interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
*/
readonly adminEnabled: pulumi.Output<boolean | undefined>;
/**
* Configuration that enables Media Access Control security (MACsec) on the Cloud
* Interconnect connection between Google and your on-premises router.
* Structure is documented below.
*/
readonly applicationAwareInterconnect: pulumi.Output<outputs.compute.InterconnectApplicationAwareInterconnect | undefined>;
/**
* interconnects.list of features available for this Interconnect connection. Can take the value:
* MACSEC. If present then the Interconnect connection is provisioned on MACsec capable hardware
* ports. If not present then the Interconnect connection is provisioned on non-MACsec capable
* ports and MACsec isn't supported and enabling MACsec fails).
*/
readonly availableFeatures: pulumi.Output<string[]>;
/**
* A list of CircuitInfo objects, that describe the individual circuits in this LAG.
* Structure is documented below.
*/
readonly circuitInfos: pulumi.Output<outputs.compute.InterconnectCircuitInfo[]>;
/**
* Creation timestamp in RFC3339 text format.
*/
readonly creationTimestamp: pulumi.Output<string>;
/**
* Customer name, to put in the Letter of Authorization as the party authorized to request a
* crossconnect. This field is required for Dedicated and Partner Interconnect, should not be specified
* for cross-cloud interconnect.
*/
readonly customerName: pulumi.Output<string | undefined>;
/**
* An optional description of this resource. Provide this property when you create the resource.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
*/
readonly effectiveLabels: pulumi.Output<{
[key: string]: string;
}>;
/**
* A list of outages expected for this Interconnect.
* Structure is documented below.
*/
readonly expectedOutages: pulumi.Output<outputs.compute.InterconnectExpectedOutage[]>;
/**
* IP address configured on the Google side of the Interconnect link.
* This can be used only for ping tests.
*/
readonly googleIpAddress: pulumi.Output<string>;
/**
* Google reference ID to be used when raising support tickets with Google or otherwise to debug
* backend connectivity issues.
*/
readonly googleReferenceId: pulumi.Output<string>;
/**
* A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
*/
readonly interconnectAttachments: pulumi.Output<string[]>;
/**
* URLs of InterconnectGroups that include this Interconnect.
* Order is arbitrary and items are unique.
*/
readonly interconnectGroups: pulumi.Output<string[]>;
/**
* Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
* Can take one of the following values:
* - PARTNER: A partner-managed interconnection shared between customers though a partner.
* - DEDICATED: A dedicated physical interconnection with the customer.
* Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
*/
readonly interconnectType: pulumi.Output<string>;
/**
* A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
* of the labels set used for optimistic locking. The fingerprint is initially generated by
* Compute Engine and changes after every request to modify or update labels.
* You must always provide an up-to-date fingerprint hash in order to update or change labels,
* otherwise the request will fail with error 412 conditionNotMet.
*/
readonly labelFingerprint: pulumi.Output<string>;
/**
* Labels for this resource. These can only be added or modified by the setLabels
* method. Each label key/value pair must comply with RFC1035. Label values may be empty.
*
* **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
* Please refer to the field `effectiveLabels` for all of the labels present on the resource.
*/
readonly labels: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Type of link requested. Note that this field indicates the speed of each of the links in the
* bundle, not the speed of the entire bundle. Can take one of the following values:
* - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
* - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
* - LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics
* Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`, `LINK_TYPE_ETHERNET_400G_LR4`.
*/
readonly linkType: pulumi.Output<string>;
/**
* URL of the InterconnectLocation object that represents where this connection is to be provisioned.
* Specifies the location inside Google's Networks.
*/
readonly location: pulumi.Output<string>;
/**
* Configuration that enables Media Access Control security (MACsec) on the Cloud
* Interconnect connection between Google and your on-premises router.
* Structure is documented below.
*/
readonly macsec: pulumi.Output<outputs.compute.InterconnectMacsec | undefined>;
/**
* Enable or disable MACsec on this Interconnect connection.
* MACsec enablement fails if the MACsec object is not specified.
*/
readonly macsecEnabled: pulumi.Output<boolean | undefined>;
/**
* Name of the resource. Provided by the client when the resource is created. The name must be
* 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
* long and match the regular expression `a-z?` which means the first
* character must be a lowercase letter, and all following characters must be a dash,
* lowercase letter, or digit, except the last character, which cannot be a dash.
*/
readonly name: pulumi.Output<string>;
/**
* Email address to contact the customer NOC for operations and maintenance notifications
* regarding this Interconnect. If specified, this will be used for notifications in addition to
* all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
* This field is required for users who sign up for Cloud Interconnect using workforce identity
* federation.
*/
readonly nocContactEmail: pulumi.Output<string | undefined>;
/**
* The current status of this Interconnect's functionality, which can take one of the following:
* - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to use. Attachments may
* be provisioned on this Interconnect.
* - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No attachments may be
* provisioned on this Interconnect.
* - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. No
* attachments may be provisioned or updated on this Interconnect.
*/
readonly operationalStatus: pulumi.Output<string>;
/**
* IP address configured on the customer side of the Interconnect link.
* The customer should configure this IP address during turnup when prompted by Google NOC.
* This can be used only for ping tests.
*/
readonly peerIpAddress: pulumi.Output<string>;
/**
* The ID of the project in which the resource belongs.
* If it is not provided, the provider project is used.
*/
readonly project: pulumi.Output<string>;
/**
* Number of links actually provisioned in this interconnect.
*/
readonly provisionedLinkCount: pulumi.Output<number>;
/**
* The combination of labels configured directly on the resource
* and default labels configured on the provider.
*/
readonly pulumiLabels: pulumi.Output<{
[key: string]: string;
}>;
/**
* Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
* of Google's network that the interconnect is connected to.
*/
readonly remoteLocation: pulumi.Output<string | undefined>;
/**
* interconnects.list of features requested for this Interconnect connection. Options: IF_MACSEC (
* If specified then the connection is created on MACsec capable hardware ports. If not
* specified, the default value is false, which allocates non-MACsec capable ports first if
* available). Note that MACSEC is still technically allowed for compatibility reasons, but it
* does not work with the API, and will be removed in an upcoming major version.
* Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
*/
readonly requestedFeatures: pulumi.Output<string[] | undefined>;
/**
* Target number of physical links in the link bundle, as requested by the customer.
*/
readonly requestedLinkCount: pulumi.Output<number>;
/**
* Reserved for future use.
*/
readonly satisfiesPzs: pulumi.Output<boolean>;
/**
* (Output)
* State of this notification. Note that the versions of this enum prefixed with "NS_" have
* been deprecated in favor of the unprefixed values. Can take one of the following values:
* - ACTIVE: This outage notification is active. The event could be in the past, present,
* or future. See startTime and endTime for scheduling.
* - CANCELLED: The outage associated with this notification was cancelled before the
* outage was due to start.
* - COMPLETED: The outage associated with this notification is complete.
*/
readonly state: pulumi.Output<string>;
/**
* A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be deleted if this list is non-empty.
*/
readonly wireGroups: pulumi.Output<string[]>;
/**
* Create a Interconnect 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: InterconnectArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Interconnect resources.
*/
export interface InterconnectState {
/**
* Enable or disable the Application Aware Interconnect(AAI) feature on this interconnect.
*/
aaiEnabled?: pulumi.Input<boolean>;
/**
* Administrative status of the interconnect. When this is set to true, the Interconnect is
* functional and can carry traffic. When set to false, no packets can be carried over the
* interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
*/
adminEnabled?: pulumi.Input<boolean>;
/**
* Configuration that enables Media Access Control security (MACsec) on the Cloud
* Interconnect connection between Google and your on-premises router.
* Structure is documented below.
*/
applicationAwareInterconnect?: pulumi.Input<inputs.compute.InterconnectApplicationAwareInterconnect>;
/**
* interconnects.list of features available for this Interconnect connection. Can take the value:
* MACSEC. If present then the Interconnect connection is provisioned on MACsec capable hardware
* ports. If not present then the Interconnect connection is provisioned on non-MACsec capable
* ports and MACsec isn't supported and enabling MACsec fails).
*/
availableFeatures?: pulumi.Input<pulumi.Input<string>[]>;
/**
* A list of CircuitInfo objects, that describe the individual circuits in this LAG.
* Structure is documented below.
*/
circuitInfos?: pulumi.Input<pulumi.Input<inputs.compute.InterconnectCircuitInfo>[]>;
/**
* Creation timestamp in RFC3339 text format.
*/
creationTimestamp?: pulumi.Input<string>;
/**
* Customer name, to put in the Letter of Authorization as the party authorized to request a
* crossconnect. This field is required for Dedicated and Partner Interconnect, should not be specified
* for cross-cloud interconnect.
*/
customerName?: pulumi.Input<string>;
/**
* An optional description of this resource. Provide this property when you create the resource.
*/
description?: pulumi.Input<string>;
/**
* All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
*/
effectiveLabels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* A list of outages expected for this Interconnect.
* Structure is documented below.
*/
expectedOutages?: pulumi.Input<pulumi.Input<inputs.compute.InterconnectExpectedOutage>[]>;
/**
* IP address configured on the Google side of the Interconnect link.
* This can be used only for ping tests.
*/
googleIpAddress?: pulumi.Input<string>;
/**
* Google reference ID to be used when raising support tickets with Google or otherwise to debug
* backend connectivity issues.
*/
googleReferenceId?: pulumi.Input<string>;
/**
* A list of the URLs of all InterconnectAttachments configured to use this Interconnect.
*/
interconnectAttachments?: pulumi.Input<pulumi.Input<string>[]>;
/**
* URLs of InterconnectGroups that include this Interconnect.
* Order is arbitrary and items are unique.
*/
interconnectGroups?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
* Can take one of the following values:
* - PARTNER: A partner-managed interconnection shared between customers though a partner.
* - DEDICATED: A dedicated physical interconnection with the customer.
* Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
*/
interconnectType?: pulumi.Input<string>;
/**
* A fingerprint for the labels being applied to this Interconnect, which is essentially a hash
* of the labels set used for optimistic locking. The fingerprint is initially generated by
* Compute Engine and changes after every request to modify or update labels.
* You must always provide an up-to-date fingerprint hash in order to update or change labels,
* otherwise the request will fail with error 412 conditionNotMet.
*/
labelFingerprint?: pulumi.Input<string>;
/**
* Labels for this resource. These can only be added or modified by the setLabels
* method. Each label key/value pair must comply with RFC1035. Label values may be empty.
*
* **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
* Please refer to the field `effectiveLabels` for all of the labels present on the resource.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Type of link requested. Note that this field indicates the speed of each of the links in the
* bundle, not the speed of the entire bundle. Can take one of the following values:
* - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
* - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
* - LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics
* Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`, `LINK_TYPE_ETHERNET_400G_LR4`.
*/
linkType?: pulumi.Input<string>;
/**
* URL of the InterconnectLocation object that represents where this connection is to be provisioned.
* Specifies the location inside Google's Networks.
*/
location?: pulumi.Input<string>;
/**
* Configuration that enables Media Access Control security (MACsec) on the Cloud
* Interconnect connection between Google and your on-premises router.
* Structure is documented below.
*/
macsec?: pulumi.Input<inputs.compute.InterconnectMacsec>;
/**
* Enable or disable MACsec on this Interconnect connection.
* MACsec enablement fails if the MACsec object is not specified.
*/
macsecEnabled?: pulumi.Input<boolean>;
/**
* Name of the resource. Provided by the client when the resource is created. The name must be
* 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
* long and match the regular expression `a-z?` which means the first
* character must be a lowercase letter, and all following characters must be a dash,
* lowercase letter, or digit, except the last character, which cannot be a dash.
*/
name?: pulumi.Input<string>;
/**
* Email address to contact the customer NOC for operations and maintenance notifications
* regarding this Interconnect. If specified, this will be used for notifications in addition to
* all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
* This field is required for users who sign up for Cloud Interconnect using workforce identity
* federation.
*/
nocContactEmail?: pulumi.Input<string>;
/**
* The current status of this Interconnect's functionality, which can take one of the following:
* - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to use. Attachments may
* be provisioned on this Interconnect.
* - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No attachments may be
* provisioned on this Interconnect.
* - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. No
* attachments may be provisioned or updated on this Interconnect.
*/
operationalStatus?: pulumi.Input<string>;
/**
* IP address configured on the customer side of the Interconnect link.
* The customer should configure this IP address during turnup when prompted by Google NOC.
* This can be used only for ping tests.
*/
peerIpAddress?: pulumi.Input<string>;
/**
* The ID of the project in which the resource belongs.
* If it is not provided, the provider project is used.
*/
project?: pulumi.Input<string>;
/**
* Number of links actually provisioned in this interconnect.
*/
provisionedLinkCount?: pulumi.Input<number>;
/**
* The combination of labels configured directly on the resource
* and default labels configured on the provider.
*/
pulumiLabels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
* of Google's network that the interconnect is connected to.
*/
remoteLocation?: pulumi.Input<string>;
/**
* interconnects.list of features requested for this Interconnect connection. Options: IF_MACSEC (
* If specified then the connection is created on MACsec capable hardware ports. If not
* specified, the default value is false, which allocates non-MACsec capable ports first if
* available). Note that MACSEC is still technically allowed for compatibility reasons, but it
* does not work with the API, and will be removed in an upcoming major version.
* Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
*/
requestedFeatures?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Target number of physical links in the link bundle, as requested by the customer.
*/
requestedLinkCount?: pulumi.Input<number>;
/**
* Reserved for future use.
*/
satisfiesPzs?: pulumi.Input<boolean>;
/**
* (Output)
* State of this notification. Note that the versions of this enum prefixed with "NS_" have
* been deprecated in favor of the unprefixed values. Can take one of the following values:
* - ACTIVE: This outage notification is active. The event could be in the past, present,
* or future. See startTime and endTime for scheduling.
* - CANCELLED: The outage associated with this notification was cancelled before the
* outage was due to start.
* - COMPLETED: The outage associated with this notification is complete.
*/
state?: pulumi.Input<string>;
/**
* A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be deleted if this list is non-empty.
*/
wireGroups?: pulumi.Input<pulumi.Input<string>[]>;
}
/**
* The set of arguments for constructing a Interconnect resource.
*/
export interface InterconnectArgs {
/**
* Enable or disable the Application Aware Interconnect(AAI) feature on this interconnect.
*/
aaiEnabled?: pulumi.Input<boolean>;
/**
* Administrative status of the interconnect. When this is set to true, the Interconnect is
* functional and can carry traffic. When set to false, no packets can be carried over the
* interconnect and no BGP routes are exchanged over it. By default, the status is set to true.
*/
adminEnabled?: pulumi.Input<boolean>;
/**
* Configuration that enables Media Access Control security (MACsec) on the Cloud
* Interconnect connection between Google and your on-premises router.
* Structure is documented below.
*/
applicationAwareInterconnect?: pulumi.Input<inputs.compute.InterconnectApplicationAwareInterconnect>;
/**
* Customer name, to put in the Letter of Authorization as the party authorized to request a
* crossconnect. This field is required for Dedicated and Partner Interconnect, should not be specified
* for cross-cloud interconnect.
*/
customerName?: pulumi.Input<string>;
/**
* An optional description of this resource. Provide this property when you create the resource.
*/
description?: pulumi.Input<string>;
/**
* Type of interconnect. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.
* Can take one of the following values:
* - PARTNER: A partner-managed interconnection shared between customers though a partner.
* - DEDICATED: A dedicated physical interconnection with the customer.
* Possible values are: `DEDICATED`, `PARTNER`, `IT_PRIVATE`.
*/
interconnectType: pulumi.Input<string>;
/**
* Labels for this resource. These can only be added or modified by the setLabels
* method. Each label key/value pair must comply with RFC1035. Label values may be empty.
*
* **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
* Please refer to the field `effectiveLabels` for all of the labels present on the resource.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Type of link requested. Note that this field indicates the speed of each of the links in the
* bundle, not the speed of the entire bundle. Can take one of the following values:
* - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics.
* - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.
* - LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics
* Possible values are: `LINK_TYPE_ETHERNET_10G_LR`, `LINK_TYPE_ETHERNET_100G_LR`, `LINK_TYPE_ETHERNET_400G_LR4`.
*/
linkType: pulumi.Input<string>;
/**
* URL of the InterconnectLocation object that represents where this connection is to be provisioned.
* Specifies the location inside Google's Networks.
*/
location: pulumi.Input<string>;
/**
* Configuration that enables Media Access Control security (MACsec) on the Cloud
* Interconnect connection between Google and your on-premises router.
* Structure is documented below.
*/
macsec?: pulumi.Input<inputs.compute.InterconnectMacsec>;
/**
* Enable or disable MACsec on this Interconnect connection.
* MACsec enablement fails if the MACsec object is not specified.
*/
macsecEnabled?: pulumi.Input<boolean>;
/**
* Name of the resource. Provided by the client when the resource is created. The name must be
* 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
* long and match the regular expression `a-z?` which means the first
* character must be a lowercase letter, and all following characters must be a dash,
* lowercase letter, or digit, except the last character, which cannot be a dash.
*/
name?: pulumi.Input<string>;
/**
* Email address to contact the customer NOC for operations and maintenance notifications
* regarding this Interconnect. If specified, this will be used for notifications in addition to
* all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications.
* This field is required for users who sign up for Cloud Interconnect using workforce identity
* federation.
*/
nocContactEmail?: pulumi.Input<string>;
/**
* The ID of the project in which the resource belongs.
* If it is not provided, the provider project is used.
*/
project?: pulumi.Input<string>;
/**
* Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside
* of Google's network that the interconnect is connected to.
*/
remoteLocation?: pulumi.Input<string>;
/**
* interconnects.list of features requested for this Interconnect connection. Options: IF_MACSEC (
* If specified then the connection is created on MACsec capable hardware ports. If not
* specified, the default value is false, which allocates non-MACsec capable ports first if
* available). Note that MACSEC is still technically allowed for compatibility reasons, but it
* does not work with the API, and will be removed in an upcoming major version.
* Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
*/
requestedFeatures?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Target number of physical links in the link bundle, as requested by the customer.
*/
requestedLinkCount: pulumi.Input<number>;
}