UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

390 lines (389 loc) 21.4 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ComputeInterconnectAttachmentConfig extends cdktf.TerraformMetaArguments { /** * Whether the VLAN attachment is enabled or disabled. When using * PARTNER type this will Pre-Activate the interconnect attachment * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#admin_enabled ComputeInterconnectAttachment#admin_enabled} */ readonly adminEnabled?: boolean | cdktf.IResolvable; /** * Provisioned bandwidth capacity for the interconnect attachment. * For attachments of type DEDICATED, the user can set the bandwidth. * For attachments of type PARTNER, the Google Partner that is operating the interconnect must set the bandwidth. * Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, * Defaults to BPS_10G Possible values: ["BPS_50M", "BPS_100M", "BPS_200M", "BPS_300M", "BPS_400M", "BPS_500M", "BPS_1G", "BPS_2G", "BPS_5G", "BPS_10G", "BPS_20G", "BPS_50G"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#bandwidth ComputeInterconnectAttachment#bandwidth} */ readonly bandwidth?: string; /** * Up to 16 candidate prefixes that can be used to restrict the allocation * of cloudRouterIpAddress and customerRouterIpAddress for this attachment. * All prefixes must be within link-local address space (169.254.0.0/16) * and must be /29 or shorter (/28, /27, etc). Google will attempt to select * an unused /29 from the supplied candidate prefix(es). The request will * fail if all possible /29s are in use on Google's edge. If not supplied, * Google will randomly select an unused /29 from all of link-local space. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#candidate_subnets ComputeInterconnectAttachment#candidate_subnets} */ readonly candidateSubnets?: string[]; /** * An optional description of this resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#description ComputeInterconnectAttachment#description} */ readonly description?: string; /** * Desired availability domain for the attachment. Only available for type * PARTNER, at creation time. For improved reliability, customers should * configure a pair of attachments with one per availability domain. The * selected availability domain will be provided to the Partner via the * pairing key so that the provisioned circuit will lie in the specified * domain. If not specified, the value will default to AVAILABILITY_DOMAIN_ANY. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#edge_availability_domain ComputeInterconnectAttachment#edge_availability_domain} */ readonly edgeAvailabilityDomain?: string; /** * Indicates the user-supplied encryption option of this interconnect * attachment. Can only be specified at attachment creation for PARTNER or * DEDICATED attachments. * * NONE - This is the default value, which means that the VLAN attachment * carries unencrypted traffic. VMs are able to send traffic to, or receive * traffic from, such a VLAN attachment. * * IPSEC - The VLAN attachment carries only encrypted traffic that is * encrypted by an IPsec device, such as an HA VPN gateway or third-party * IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, * such a VLAN attachment. To use HA VPN over Cloud Interconnect, the VLAN * attachment must be created with this option. Default value: "NONE" Possible values: ["NONE", "IPSEC"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#encryption ComputeInterconnectAttachment#encryption} */ readonly encryption?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#id ComputeInterconnectAttachment#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; /** * URL of the underlying Interconnect object that this attachment's * traffic will traverse through. Required if type is DEDICATED, must not * be set if type is PARTNER. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#interconnect ComputeInterconnectAttachment#interconnect} */ readonly interconnect?: string; /** * URL of addresses that have been reserved for the interconnect attachment, * Used only for interconnect attachment that has the encryption option as * IPSEC. * The addresses must be RFC 1918 IP address ranges. When creating HA VPN * gateway over the interconnect attachment, if the attachment is configured * to use an RFC 1918 IP address, then the VPN gateway's IP address will be * allocated from the IP address range specified here. * For example, if the HA VPN gateway's interface 0 is paired to this * interconnect attachment, then an RFC 1918 IP address for the VPN gateway * interface 0 will be allocated from the IP address specified for this * interconnect attachment. * If this field is not specified for interconnect attachment that has * encryption option as IPSEC, later on when creating HA VPN gateway on this * interconnect attachment, the HA VPN gateway's IP address will be * allocated from regional external IP address pool. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#ipsec_internal_addresses ComputeInterconnectAttachment#ipsec_internal_addresses} */ readonly ipsecInternalAddresses?: string[]; /** * Maximum Transmission Unit (MTU), in bytes, of packets passing through * this interconnect attachment. Currently, only 1440 and 1500 are allowed. If not specified, the value will default to 1440. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#mtu ComputeInterconnectAttachment#mtu} */ readonly mtu?: string; /** * 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_attachment#name ComputeInterconnectAttachment#name} */ readonly name: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#project ComputeInterconnectAttachment#project} */ readonly project?: string; /** * Region where the regional interconnect attachment resides. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#region ComputeInterconnectAttachment#region} */ readonly region?: string; /** * URL of the cloud router to be used for dynamic routing. This router must be in * the same region as this InterconnectAttachment. The InterconnectAttachment will * automatically connect the Interconnect to the network & region within which the * Cloud Router is configured. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#router ComputeInterconnectAttachment#router} */ readonly router: string; /** * The stack type for this interconnect attachment to identify whether the IPv6 * feature is enabled or not. If not specified, IPV4_ONLY will be used. * This field can be both set at interconnect attachments creation and update * interconnect attachment operations. Possible values: ["IPV4_IPV6", "IPV4_ONLY"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#stack_type ComputeInterconnectAttachment#stack_type} */ readonly stackType?: string; /** * Length of the IPv4 subnet mask. Allowed values: 29 (default), 30. The default value is 29, * except for Cross-Cloud Interconnect connections that use an InterconnectRemoteLocation with a * constraints.subnetLengthRange.min equal to 30. For example, connections that use an Azure * remote location fall into this category. In these cases, the default value is 30, and * requesting 29 returns an error. Where both 29 and 30 are allowed, 29 is preferred, because it * gives Google Cloud Support more debugging visibility. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#subnet_length ComputeInterconnectAttachment#subnet_length} */ readonly subnetLength?: number; /** * The type of InterconnectAttachment you wish to create. Defaults to * DEDICATED. Possible values: ["DEDICATED", "PARTNER", "PARTNER_PROVIDER"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#type ComputeInterconnectAttachment#type} */ readonly type?: string; /** * The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. When * using PARTNER type this will be managed upstream. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#vlan_tag8021q ComputeInterconnectAttachment#vlan_tag8021q} */ readonly vlanTag8021Q?: number; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#timeouts ComputeInterconnectAttachment#timeouts} */ readonly timeouts?: ComputeInterconnectAttachmentTimeouts; } export interface ComputeInterconnectAttachmentPrivateInterconnectInfo { } export declare function computeInterconnectAttachmentPrivateInterconnectInfoToTerraform(struct?: ComputeInterconnectAttachmentPrivateInterconnectInfo): any; export declare function computeInterconnectAttachmentPrivateInterconnectInfoToHclTerraform(struct?: ComputeInterconnectAttachmentPrivateInterconnectInfo): any; export declare class ComputeInterconnectAttachmentPrivateInterconnectInfoOutputReference 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(): ComputeInterconnectAttachmentPrivateInterconnectInfo | undefined; set internalValue(value: ComputeInterconnectAttachmentPrivateInterconnectInfo | undefined); get tag8021Q(): number; } export declare class ComputeInterconnectAttachmentPrivateInterconnectInfoList 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): ComputeInterconnectAttachmentPrivateInterconnectInfoOutputReference; } export interface ComputeInterconnectAttachmentTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#create ComputeInterconnectAttachment#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#delete ComputeInterconnectAttachment#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#update ComputeInterconnectAttachment#update} */ readonly update?: string; } export declare function computeInterconnectAttachmentTimeoutsToTerraform(struct?: ComputeInterconnectAttachmentTimeouts | cdktf.IResolvable): any; export declare function computeInterconnectAttachmentTimeoutsToHclTerraform(struct?: ComputeInterconnectAttachmentTimeouts | cdktf.IResolvable): any; export declare class ComputeInterconnectAttachmentTimeoutsOutputReference 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(): ComputeInterconnectAttachmentTimeouts | cdktf.IResolvable | undefined; set internalValue(value: ComputeInterconnectAttachmentTimeouts | 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_attachment google_compute_interconnect_attachment} */ export declare class ComputeInterconnectAttachment extends cdktf.TerraformResource { static readonly tfResourceType = "google_compute_interconnect_attachment"; /** * Generates CDKTF code for importing a ComputeInterconnectAttachment 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 ComputeInterconnectAttachment to import * @param importFromId The id of the existing ComputeInterconnectAttachment that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_interconnect_attachment#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ComputeInterconnectAttachment 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_attachment google_compute_interconnect_attachment} 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 ComputeInterconnectAttachmentConfig */ constructor(scope: Construct, id: string, config: ComputeInterconnectAttachmentConfig); private _adminEnabled?; get adminEnabled(): boolean | cdktf.IResolvable; set adminEnabled(value: boolean | cdktf.IResolvable); resetAdminEnabled(): void; get adminEnabledInput(): boolean | cdktf.IResolvable | undefined; private _bandwidth?; get bandwidth(): string; set bandwidth(value: string); resetBandwidth(): void; get bandwidthInput(): string | undefined; private _candidateSubnets?; get candidateSubnets(): string[]; set candidateSubnets(value: string[]); resetCandidateSubnets(): void; get candidateSubnetsInput(): string[] | undefined; get cloudRouterIpAddress(): string; get cloudRouterIpv6Address(): string; get creationTimestamp(): string; get customerRouterIpAddress(): string; get customerRouterIpv6Address(): string; private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string | undefined; private _edgeAvailabilityDomain?; get edgeAvailabilityDomain(): string; set edgeAvailabilityDomain(value: string); resetEdgeAvailabilityDomain(): void; get edgeAvailabilityDomainInput(): string | undefined; private _encryption?; get encryption(): string; set encryption(value: string); resetEncryption(): void; get encryptionInput(): string | undefined; get googleReferenceId(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string | undefined; private _interconnect?; get interconnect(): string; set interconnect(value: string); resetInterconnect(): void; get interconnectInput(): string | undefined; private _ipsecInternalAddresses?; get ipsecInternalAddresses(): string[]; set ipsecInternalAddresses(value: string[]); resetIpsecInternalAddresses(): void; get ipsecInternalAddressesInput(): string[] | undefined; private _mtu?; get mtu(): string; set mtu(value: string); resetMtu(): void; get mtuInput(): string | undefined; private _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; get pairingKey(): string; get partnerAsn(): string; private _privateInterconnectInfo; get privateInterconnectInfo(): ComputeInterconnectAttachmentPrivateInterconnectInfoList; private _project?; get project(): string; set project(value: string); resetProject(): void; get projectInput(): string | undefined; private _region?; get region(): string; set region(value: string); resetRegion(): void; get regionInput(): string | undefined; private _router?; get router(): string; set router(value: string); get routerInput(): string | undefined; get selfLink(): string; private _stackType?; get stackType(): string; set stackType(value: string); resetStackType(): void; get stackTypeInput(): string | undefined; get state(): string; private _subnetLength?; get subnetLength(): number; set subnetLength(value: number); resetSubnetLength(): void; get subnetLengthInput(): number | undefined; private _type?; get type(): string; set type(value: string); resetType(): void; get typeInput(): string | undefined; private _vlanTag8021Q?; get vlanTag8021Q(): number; set vlanTag8021Q(value: number); resetVlanTag8021Q(): void; get vlanTag8021QInput(): number | undefined; private _timeouts; get timeouts(): ComputeInterconnectAttachmentTimeoutsOutputReference; putTimeouts(value: ComputeInterconnectAttachmentTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | ComputeInterconnectAttachmentTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }