@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
507 lines (506 loc) • 27.1 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ComputeInterconnectConfig extends cdktf.TerraformMetaArguments {
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#admin_enabled ComputeInterconnect#admin_enabled}
*/
readonly adminEnabled?: boolean | cdktf.IResolvable;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#customer_name ComputeInterconnect#customer_name}
*/
readonly customerName?: string;
/**
* An optional description of this resource. Provide this property when you create the resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#description ComputeInterconnect#description}
*/
readonly description?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#id ComputeInterconnect#id}
*
* Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
* If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
*/
readonly id?: 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: ["DEDICATED", "PARTNER", "IT_PRIVATE"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#interconnect_type ComputeInterconnect#interconnect_type}
*/
readonly interconnectType: 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 'effective_labels' for all of the labels present on the resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#labels ComputeInterconnect#labels}
*/
readonly labels?: {
[key: string]: 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. Possible values: ["LINK_TYPE_ETHERNET_10G_LR", "LINK_TYPE_ETHERNET_100G_LR"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#link_type ComputeInterconnect#link_type}
*/
readonly linkType: string;
/**
* URL of the InterconnectLocation object that represents where this connection is to be provisioned.
* Specifies the location inside Google's Networks, should not be passed in case of cross-cloud interconnect.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#location ComputeInterconnect#location}
*/
readonly location?: string;
/**
* Enable or disable MACsec on this Interconnect connection.
* MACsec enablement fails if the MACsec object is not specified.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#macsec_enabled ComputeInterconnect#macsec_enabled}
*/
readonly macsecEnabled?: boolean | cdktf.IResolvable;
/**
* 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]([-a-z0-9]*[a-z0-9])?' 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#name ComputeInterconnect#name}
*/
readonly name: 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#noc_contact_email ComputeInterconnect#noc_contact_email}
*/
readonly nocContactEmail?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#project ComputeInterconnect#project}
*/
readonly project?: 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#remote_location ComputeInterconnect#remote_location}
*/
readonly remoteLocation?: 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. Possible values: ["MACSEC", "IF_MACSEC"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#requested_features ComputeInterconnect#requested_features}
*/
readonly requestedFeatures?: string[];
/**
* Target number of physical links in the link bundle, as requested by the customer.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#requested_link_count ComputeInterconnect#requested_link_count}
*/
readonly requestedLinkCount: number;
/**
* macsec block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#macsec ComputeInterconnect#macsec}
*/
readonly macsec?: ComputeInterconnectMacsec;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#timeouts ComputeInterconnect#timeouts}
*/
readonly timeouts?: ComputeInterconnectTimeouts;
}
export interface ComputeInterconnectCircuitInfos {
}
export declare function computeInterconnectCircuitInfosToTerraform(struct?: ComputeInterconnectCircuitInfos): any;
export declare function computeInterconnectCircuitInfosToHclTerraform(struct?: ComputeInterconnectCircuitInfos): any;
export declare class ComputeInterconnectCircuitInfosOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ComputeInterconnectCircuitInfos | undefined;
set internalValue(value: ComputeInterconnectCircuitInfos | undefined);
get customerDemarcId(): string;
get googleCircuitId(): string;
get googleDemarcId(): string;
}
export declare class ComputeInterconnectCircuitInfosList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ComputeInterconnectCircuitInfosOutputReference;
}
export interface ComputeInterconnectExpectedOutages {
}
export declare function computeInterconnectExpectedOutagesToTerraform(struct?: ComputeInterconnectExpectedOutages): any;
export declare function computeInterconnectExpectedOutagesToHclTerraform(struct?: ComputeInterconnectExpectedOutages): any;
export declare class ComputeInterconnectExpectedOutagesOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ComputeInterconnectExpectedOutages | undefined;
set internalValue(value: ComputeInterconnectExpectedOutages | undefined);
get affectedCircuits(): string[];
get description(): string;
get endTime(): string;
get issueType(): string;
get name(): string;
get source(): string;
get startTime(): string;
get state(): string;
}
export declare class ComputeInterconnectExpectedOutagesList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ComputeInterconnectExpectedOutagesOutputReference;
}
export interface ComputeInterconnectMacsecPreSharedKeys {
/**
* If set to true, the Interconnect connection is configured with a should-secure
* MACsec security policy, that allows the Google router to fallback to cleartext
* traffic if the MKA session cannot be established. By default, the Interconnect
* connection is configured with a must-secure security policy that drops all traffic
* if the MKA session cannot be established with your router.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#fail_open ComputeInterconnect#fail_open}
*/
readonly failOpen?: boolean | cdktf.IResolvable;
/**
* A name for this pre-shared key. 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]([-a-z0-9]*[a-z0-9])?' 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#name ComputeInterconnect#name}
*/
readonly name: string;
/**
* A RFC3339 timestamp on or after which the key is valid. startTime can be in the
* future. If the keychain has a single key, startTime can be omitted. If the keychain
* has multiple keys, startTime is mandatory for each key. The start times of keys must
* be in increasing order. The start times of two consecutive keys must be at least 6
* hours apart.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#start_time ComputeInterconnect#start_time}
*/
readonly startTime?: string;
}
export declare function computeInterconnectMacsecPreSharedKeysToTerraform(struct?: ComputeInterconnectMacsecPreSharedKeys | cdktf.IResolvable): any;
export declare function computeInterconnectMacsecPreSharedKeysToHclTerraform(struct?: ComputeInterconnectMacsecPreSharedKeys | cdktf.IResolvable): any;
export declare class ComputeInterconnectMacsecPreSharedKeysOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ComputeInterconnectMacsecPreSharedKeys | cdktf.IResolvable | undefined;
set internalValue(value: ComputeInterconnectMacsecPreSharedKeys | cdktf.IResolvable | undefined);
private _failOpen?;
get failOpen(): boolean | cdktf.IResolvable;
set failOpen(value: boolean | cdktf.IResolvable);
resetFailOpen(): void;
get failOpenInput(): boolean | cdktf.IResolvable | undefined;
private _name?;
get name(): string;
set name(value: string);
get nameInput(): string | undefined;
private _startTime?;
get startTime(): string;
set startTime(value: string);
resetStartTime(): void;
get startTimeInput(): string | undefined;
}
export declare class ComputeInterconnectMacsecPreSharedKeysList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ComputeInterconnectMacsecPreSharedKeys[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ComputeInterconnectMacsecPreSharedKeysOutputReference;
}
export interface ComputeInterconnectMacsec {
/**
* If set to true, the Interconnect connection is configured with a should-secure
* MACsec security policy, that allows the Google router to fallback to cleartext
* traffic if the MKA session cannot be established. By default, the Interconnect
* connection is configured with a must-secure security policy that drops all traffic
* if the MKA session cannot be established with your router.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#fail_open ComputeInterconnect#fail_open}
*/
readonly failOpen?: boolean | cdktf.IResolvable;
/**
* pre_shared_keys block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#pre_shared_keys ComputeInterconnect#pre_shared_keys}
*/
readonly preSharedKeys: ComputeInterconnectMacsecPreSharedKeys[] | cdktf.IResolvable;
}
export declare function computeInterconnectMacsecToTerraform(struct?: ComputeInterconnectMacsecOutputReference | ComputeInterconnectMacsec): any;
export declare function computeInterconnectMacsecToHclTerraform(struct?: ComputeInterconnectMacsecOutputReference | ComputeInterconnectMacsec): any;
export declare class ComputeInterconnectMacsecOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
get internalValue(): ComputeInterconnectMacsec | undefined;
set internalValue(value: ComputeInterconnectMacsec | undefined);
private _failOpen?;
get failOpen(): boolean | cdktf.IResolvable;
set failOpen(value: boolean | cdktf.IResolvable);
resetFailOpen(): void;
get failOpenInput(): boolean | cdktf.IResolvable | undefined;
private _preSharedKeys;
get preSharedKeys(): ComputeInterconnectMacsecPreSharedKeysList;
putPreSharedKeys(value: ComputeInterconnectMacsecPreSharedKeys[] | cdktf.IResolvable): void;
get preSharedKeysInput(): cdktf.IResolvable | ComputeInterconnectMacsecPreSharedKeys[] | undefined;
}
export interface ComputeInterconnectTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#create ComputeInterconnect#create}
*/
readonly create?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#delete ComputeInterconnect#delete}
*/
readonly delete?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#update ComputeInterconnect#update}
*/
readonly update?: string;
}
export declare function computeInterconnectTimeoutsToTerraform(struct?: ComputeInterconnectTimeouts | cdktf.IResolvable): any;
export declare function computeInterconnectTimeoutsToHclTerraform(struct?: ComputeInterconnectTimeouts | cdktf.IResolvable): any;
export declare class ComputeInterconnectTimeoutsOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
get internalValue(): ComputeInterconnectTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: ComputeInterconnectTimeouts | cdktf.IResolvable | undefined);
private _create?;
get create(): string;
set create(value: string);
resetCreate(): void;
get createInput(): string | undefined;
private _delete?;
get delete(): string;
set delete(value: string);
resetDelete(): void;
get deleteInput(): string | undefined;
private _update?;
get update(): string;
set update(value: string);
resetUpdate(): void;
get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect google_compute_interconnect}
*/
export declare class ComputeInterconnect extends cdktf.TerraformResource {
static readonly tfResourceType = "google_compute_interconnect";
/**
* Generates CDKTF code for importing a ComputeInterconnect resource upon running "cdktf plan <stack-name>"
* @param scope The scope in which to define this construct
* @param importToId The construct id used in the generated config for the ComputeInterconnect to import
* @param importFromId The id of the existing ComputeInterconnect that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the ComputeInterconnect to import is found
*/
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect google_compute_interconnect} Resource
*
* @param scope The scope in which to define this construct
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
* @param options ComputeInterconnectConfig
*/
constructor(scope: Construct, id: string, config: ComputeInterconnectConfig);
private _adminEnabled?;
get adminEnabled(): boolean | cdktf.IResolvable;
set adminEnabled(value: boolean | cdktf.IResolvable);
resetAdminEnabled(): void;
get adminEnabledInput(): boolean | cdktf.IResolvable | undefined;
get availableFeatures(): string[];
private _circuitInfos;
get circuitInfos(): ComputeInterconnectCircuitInfosList;
get creationTimestamp(): string;
private _customerName?;
get customerName(): string;
set customerName(value: string);
resetCustomerName(): void;
get customerNameInput(): string | undefined;
private _description?;
get description(): string;
set description(value: string);
resetDescription(): void;
get descriptionInput(): string | undefined;
private _effectiveLabels;
get effectiveLabels(): cdktf.StringMap;
private _expectedOutages;
get expectedOutages(): ComputeInterconnectExpectedOutagesList;
get googleIpAddress(): string;
get googleReferenceId(): string;
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string | undefined;
get interconnectAttachments(): string[];
private _interconnectType?;
get interconnectType(): string;
set interconnectType(value: string);
get interconnectTypeInput(): string | undefined;
get labelFingerprint(): string;
private _labels?;
get labels(): {
[key: string]: string;
};
set labels(value: {
[key: string]: string;
});
resetLabels(): void;
get labelsInput(): {
[key: string]: string;
} | undefined;
private _linkType?;
get linkType(): string;
set linkType(value: string);
get linkTypeInput(): string | undefined;
private _location?;
get location(): string;
set location(value: string);
resetLocation(): void;
get locationInput(): string | undefined;
private _macsecEnabled?;
get macsecEnabled(): boolean | cdktf.IResolvable;
set macsecEnabled(value: boolean | cdktf.IResolvable);
resetMacsecEnabled(): void;
get macsecEnabledInput(): boolean | cdktf.IResolvable | undefined;
private _name?;
get name(): string;
set name(value: string);
get nameInput(): string | undefined;
private _nocContactEmail?;
get nocContactEmail(): string;
set nocContactEmail(value: string);
resetNocContactEmail(): void;
get nocContactEmailInput(): string | undefined;
get operationalStatus(): string;
get peerIpAddress(): string;
private _project?;
get project(): string;
set project(value: string);
resetProject(): void;
get projectInput(): string | undefined;
get provisionedLinkCount(): number;
private _remoteLocation?;
get remoteLocation(): string;
set remoteLocation(value: string);
resetRemoteLocation(): void;
get remoteLocationInput(): string | undefined;
private _requestedFeatures?;
get requestedFeatures(): string[];
set requestedFeatures(value: string[]);
resetRequestedFeatures(): void;
get requestedFeaturesInput(): string[] | undefined;
private _requestedLinkCount?;
get requestedLinkCount(): number;
set requestedLinkCount(value: number);
get requestedLinkCountInput(): number | undefined;
get satisfiesPzs(): cdktf.IResolvable;
get state(): string;
private _terraformLabels;
get terraformLabels(): cdktf.StringMap;
private _macsec;
get macsec(): ComputeInterconnectMacsecOutputReference;
putMacsec(value: ComputeInterconnectMacsec): void;
resetMacsec(): void;
get macsecInput(): ComputeInterconnectMacsec | undefined;
private _timeouts;
get timeouts(): ComputeInterconnectTimeoutsOutputReference;
putTimeouts(value: ComputeInterconnectTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): cdktf.IResolvable | ComputeInterconnectTimeouts | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}