@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
287 lines (286 loc) • 14.9 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface NetworkConnectivityInternalRangeConfig extends cdktf.TerraformMetaArguments {
/**
* An optional description of this resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#description NetworkConnectivityInternalRange#description}
*/
readonly description?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#id NetworkConnectivityInternalRange#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;
/**
* The IP range that this internal range defines.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#ip_cidr_range NetworkConnectivityInternalRange#ip_cidr_range}
*/
readonly ipCidrRange?: string;
/**
* User-defined labels.
*
*
* **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/network_connectivity_internal_range#labels NetworkConnectivityInternalRange#labels}
*/
readonly labels?: {
[key: string]: string;
};
/**
* The name of the policy based route.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#name NetworkConnectivityInternalRange#name}
*/
readonly name: string;
/**
* Fully-qualified URL of the network that this route applies to, for example: projects/my-project/global/networks/my-network.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#network NetworkConnectivityInternalRange#network}
*/
readonly network: string;
/**
* Optional. Types of resources that are allowed to overlap with the current internal range. Possible values: ["OVERLAP_ROUTE_RANGE", "OVERLAP_EXISTING_SUBNET_RANGE"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#overlaps NetworkConnectivityInternalRange#overlaps}
*/
readonly overlaps?: string[];
/**
* The type of peering set for this internal range. Possible values: ["FOR_SELF", "FOR_PEER", "NOT_SHARED"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#peering NetworkConnectivityInternalRange#peering}
*/
readonly peering: string;
/**
* An alternate to ipCidrRange. Can be set when trying to create a reservation that automatically finds a free range of the given size.
* If both ipCidrRange and prefixLength are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#prefix_length NetworkConnectivityInternalRange#prefix_length}
*/
readonly prefixLength?: number;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#project NetworkConnectivityInternalRange#project}
*/
readonly project?: string;
/**
* Optional. Can be set to narrow down or pick a different address space while searching for a free range.
* If not set, defaults to the "10.0.0.0/8" address space. This can be used to search in other rfc-1918 address spaces like "172.16.0.0/12" and "192.168.0.0/16" or non-rfc-1918 address spaces used in the VPC.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#target_cidr_range NetworkConnectivityInternalRange#target_cidr_range}
*/
readonly targetCidrRange?: string[];
/**
* The type of usage set for this InternalRange. Possible values: ["FOR_VPC", "EXTERNAL_TO_VPC", "FOR_MIGRATION"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#usage NetworkConnectivityInternalRange#usage}
*/
readonly usage: string;
/**
* migration block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#migration NetworkConnectivityInternalRange#migration}
*/
readonly migration?: NetworkConnectivityInternalRangeMigration;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#timeouts NetworkConnectivityInternalRange#timeouts}
*/
readonly timeouts?: NetworkConnectivityInternalRangeTimeouts;
}
export interface NetworkConnectivityInternalRangeMigration {
/**
* Resource path as an URI of the source resource, for example a subnet.
* The project for the source resource should match the project for the
* InternalRange.
* An example /projects/{project}/regions/{region}/subnetworks/{subnet}
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#source NetworkConnectivityInternalRange#source}
*/
readonly source: string;
/**
* Resource path of the target resource. The target project can be
* different, as in the cases when migrating to peer networks. The resource
* may not exist yet.
* For example /projects/{project}/regions/{region}/subnetworks/{subnet}
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#target NetworkConnectivityInternalRange#target}
*/
readonly target: string;
}
export declare function networkConnectivityInternalRangeMigrationToTerraform(struct?: NetworkConnectivityInternalRangeMigrationOutputReference | NetworkConnectivityInternalRangeMigration): any;
export declare function networkConnectivityInternalRangeMigrationToHclTerraform(struct?: NetworkConnectivityInternalRangeMigrationOutputReference | NetworkConnectivityInternalRangeMigration): any;
export declare class NetworkConnectivityInternalRangeMigrationOutputReference 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(): NetworkConnectivityInternalRangeMigration | undefined;
set internalValue(value: NetworkConnectivityInternalRangeMigration | undefined);
private _source?;
get source(): string;
set source(value: string);
get sourceInput(): string | undefined;
private _target?;
get target(): string;
set target(value: string);
get targetInput(): string | undefined;
}
export interface NetworkConnectivityInternalRangeTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#create NetworkConnectivityInternalRange#create}
*/
readonly create?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#delete NetworkConnectivityInternalRange#delete}
*/
readonly delete?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#update NetworkConnectivityInternalRange#update}
*/
readonly update?: string;
}
export declare function networkConnectivityInternalRangeTimeoutsToTerraform(struct?: NetworkConnectivityInternalRangeTimeouts | cdktf.IResolvable): any;
export declare function networkConnectivityInternalRangeTimeoutsToHclTerraform(struct?: NetworkConnectivityInternalRangeTimeouts | cdktf.IResolvable): any;
export declare class NetworkConnectivityInternalRangeTimeoutsOutputReference 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(): NetworkConnectivityInternalRangeTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: NetworkConnectivityInternalRangeTimeouts | 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/network_connectivity_internal_range google_network_connectivity_internal_range}
*/
export declare class NetworkConnectivityInternalRange extends cdktf.TerraformResource {
static readonly tfResourceType = "google_network_connectivity_internal_range";
/**
* Generates CDKTF code for importing a NetworkConnectivityInternalRange 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 NetworkConnectivityInternalRange to import
* @param importFromId The id of the existing NetworkConnectivityInternalRange that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_connectivity_internal_range#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the NetworkConnectivityInternalRange 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/network_connectivity_internal_range google_network_connectivity_internal_range} 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 NetworkConnectivityInternalRangeConfig
*/
constructor(scope: Construct, id: string, config: NetworkConnectivityInternalRangeConfig);
private _description?;
get description(): string;
set description(value: string);
resetDescription(): void;
get descriptionInput(): string | undefined;
private _effectiveLabels;
get effectiveLabels(): cdktf.StringMap;
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string | undefined;
private _ipCidrRange?;
get ipCidrRange(): string;
set ipCidrRange(value: string);
resetIpCidrRange(): void;
get ipCidrRangeInput(): string | undefined;
private _labels?;
get labels(): {
[key: string]: string;
};
set labels(value: {
[key: string]: string;
});
resetLabels(): void;
get labelsInput(): {
[key: string]: string;
} | undefined;
private _name?;
get name(): string;
set name(value: string);
get nameInput(): string | undefined;
private _network?;
get network(): string;
set network(value: string);
get networkInput(): string | undefined;
private _overlaps?;
get overlaps(): string[];
set overlaps(value: string[]);
resetOverlaps(): void;
get overlapsInput(): string[] | undefined;
private _peering?;
get peering(): string;
set peering(value: string);
get peeringInput(): string | undefined;
private _prefixLength?;
get prefixLength(): number;
set prefixLength(value: number);
resetPrefixLength(): void;
get prefixLengthInput(): number | undefined;
private _project?;
get project(): string;
set project(value: string);
resetProject(): void;
get projectInput(): string | undefined;
private _targetCidrRange?;
get targetCidrRange(): string[];
set targetCidrRange(value: string[]);
resetTargetCidrRange(): void;
get targetCidrRangeInput(): string[] | undefined;
private _terraformLabels;
get terraformLabels(): cdktf.StringMap;
private _usage?;
get usage(): string;
set usage(value: string);
get usageInput(): string | undefined;
get users(): string[];
private _migration;
get migration(): NetworkConnectivityInternalRangeMigrationOutputReference;
putMigration(value: NetworkConnectivityInternalRangeMigration): void;
resetMigration(): void;
get migrationInput(): NetworkConnectivityInternalRangeMigration | undefined;
private _timeouts;
get timeouts(): NetworkConnectivityInternalRangeTimeoutsOutputReference;
putTimeouts(value: NetworkConnectivityInternalRangeTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): cdktf.IResolvable | NetworkConnectivityInternalRangeTimeouts | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}