UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

426 lines (425 loc) 23.2 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ComputeRegionNetworkEndpointGroupConfig extends cdktf.TerraformMetaArguments { /** * 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_region_network_endpoint_group#description ComputeRegionNetworkEndpointGroup#description} */ readonly description?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#id ComputeRegionNetworkEndpointGroup#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; /** * 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_region_network_endpoint_group#name ComputeRegionNetworkEndpointGroup#name} */ readonly name: string; /** * This field is only used for PSC and INTERNET NEGs. * * The URL of the network to which all network endpoints in the NEG belong. Uses * "default" project network if unspecified. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#network ComputeRegionNetworkEndpointGroup#network} */ readonly network?: string; /** * Type of network endpoints in this network endpoint group. Defaults to SERVERLESS. Default value: "SERVERLESS" Possible values: ["SERVERLESS", "PRIVATE_SERVICE_CONNECT", "INTERNET_IP_PORT", "INTERNET_FQDN_PORT", "GCE_VM_IP_PORTMAP"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#network_endpoint_type ComputeRegionNetworkEndpointGroup#network_endpoint_type} */ readonly networkEndpointType?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#project ComputeRegionNetworkEndpointGroup#project} */ readonly project?: string; /** * This field is only used for PSC and INTERNET NEGs. * * The target service url used to set up private service connection to * a Google API or a PSC Producer Service Attachment. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#psc_target_service ComputeRegionNetworkEndpointGroup#psc_target_service} */ readonly pscTargetService?: string; /** * A reference to the region where the regional NEGs reside. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#region ComputeRegionNetworkEndpointGroup#region} */ readonly region: string; /** * This field is only used for PSC NEGs. * * Optional URL of the subnetwork to which all network endpoints in the NEG belong. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#subnetwork ComputeRegionNetworkEndpointGroup#subnetwork} */ readonly subnetwork?: string; /** * app_engine block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#app_engine ComputeRegionNetworkEndpointGroup#app_engine} */ readonly appEngine?: ComputeRegionNetworkEndpointGroupAppEngine; /** * cloud_function block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#cloud_function ComputeRegionNetworkEndpointGroup#cloud_function} */ readonly cloudFunction?: ComputeRegionNetworkEndpointGroupCloudFunction; /** * cloud_run block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#cloud_run ComputeRegionNetworkEndpointGroup#cloud_run} */ readonly cloudRun?: ComputeRegionNetworkEndpointGroupCloudRun; /** * psc_data block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#psc_data ComputeRegionNetworkEndpointGroup#psc_data} */ readonly pscData?: ComputeRegionNetworkEndpointGroupPscData; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#timeouts ComputeRegionNetworkEndpointGroup#timeouts} */ readonly timeouts?: ComputeRegionNetworkEndpointGroupTimeouts; } export interface ComputeRegionNetworkEndpointGroupAppEngine { /** * Optional serving service. * The service name must be 1-63 characters long, and comply with RFC1035. * Example value: "default", "my-service". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#service ComputeRegionNetworkEndpointGroup#service} */ readonly service?: string; /** * A template to parse service and version fields from a request URL. * URL mask allows for routing to multiple App Engine services without * having to create multiple Network Endpoint Groups and backend services. * * For example, the request URLs "foo1-dot-appname.appspot.com/v1" and * "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG with * URL mask "-dot-appname.appspot.com/". The URL mask will parse * them to { service = "foo1", version = "v1" } and { service = "foo1", version = "v2" } respectively. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#url_mask ComputeRegionNetworkEndpointGroup#url_mask} */ readonly urlMask?: string; /** * Optional serving version. * The version must be 1-63 characters long, and comply with RFC1035. * Example value: "v1", "v2". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#version ComputeRegionNetworkEndpointGroup#version} */ readonly version?: string; } export declare function computeRegionNetworkEndpointGroupAppEngineToTerraform(struct?: ComputeRegionNetworkEndpointGroupAppEngineOutputReference | ComputeRegionNetworkEndpointGroupAppEngine): any; export declare function computeRegionNetworkEndpointGroupAppEngineToHclTerraform(struct?: ComputeRegionNetworkEndpointGroupAppEngineOutputReference | ComputeRegionNetworkEndpointGroupAppEngine): any; export declare class ComputeRegionNetworkEndpointGroupAppEngineOutputReference 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(): ComputeRegionNetworkEndpointGroupAppEngine | undefined; set internalValue(value: ComputeRegionNetworkEndpointGroupAppEngine | undefined); private _service?; get service(): string; set service(value: string); resetService(): void; get serviceInput(): string | undefined; private _urlMask?; get urlMask(): string; set urlMask(value: string); resetUrlMask(): void; get urlMaskInput(): string | undefined; private _version?; get version(): string; set version(value: string); resetVersion(): void; get versionInput(): string | undefined; } export interface ComputeRegionNetworkEndpointGroupCloudFunction { /** * A user-defined name of the Cloud Function. * The function name is case-sensitive and must be 1-63 characters long. * Example value: "func1". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#function ComputeRegionNetworkEndpointGroup#function} */ readonly function?: string; /** * A template to parse function field from a request URL. URL mask allows * for routing to multiple Cloud Functions without having to create * multiple Network Endpoint Groups and backend services. * * For example, request URLs "mydomain.com/function1" and "mydomain.com/function2" * can be backed by the same Serverless NEG with URL mask "/". The URL mask * will parse them to { function = "function1" } and { function = "function2" } respectively. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#url_mask ComputeRegionNetworkEndpointGroup#url_mask} */ readonly urlMask?: string; } export declare function computeRegionNetworkEndpointGroupCloudFunctionToTerraform(struct?: ComputeRegionNetworkEndpointGroupCloudFunctionOutputReference | ComputeRegionNetworkEndpointGroupCloudFunction): any; export declare function computeRegionNetworkEndpointGroupCloudFunctionToHclTerraform(struct?: ComputeRegionNetworkEndpointGroupCloudFunctionOutputReference | ComputeRegionNetworkEndpointGroupCloudFunction): any; export declare class ComputeRegionNetworkEndpointGroupCloudFunctionOutputReference 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(): ComputeRegionNetworkEndpointGroupCloudFunction | undefined; set internalValue(value: ComputeRegionNetworkEndpointGroupCloudFunction | undefined); private _function?; get function(): string; set function(value: string); resetFunction(): void; get functionInput(): string | undefined; private _urlMask?; get urlMask(): string; set urlMask(value: string); resetUrlMask(): void; get urlMaskInput(): string | undefined; } export interface ComputeRegionNetworkEndpointGroupCloudRun { /** * Cloud Run service is the main resource of Cloud Run. * The service must be 1-63 characters long, and comply with RFC1035. * Example value: "run-service". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#service ComputeRegionNetworkEndpointGroup#service} */ readonly service?: string; /** * Cloud Run tag represents the "named-revision" to provide * additional fine-grained traffic routing information. * The tag must be 1-63 characters long, and comply with RFC1035. * Example value: "revision-0010". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#tag ComputeRegionNetworkEndpointGroup#tag} */ readonly tag?: string; /** * A template to parse service and tag fields from a request URL. * URL mask allows for routing to multiple Run services without having * to create multiple network endpoint groups and backend services. * * For example, request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" * an be backed by the same Serverless Network Endpoint Group (NEG) with * URL mask ".domain.com/". The URL mask will parse them to { service="bar1", tag="foo1" } * and { service="bar2", tag="foo2" } respectively. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#url_mask ComputeRegionNetworkEndpointGroup#url_mask} */ readonly urlMask?: string; } export declare function computeRegionNetworkEndpointGroupCloudRunToTerraform(struct?: ComputeRegionNetworkEndpointGroupCloudRunOutputReference | ComputeRegionNetworkEndpointGroupCloudRun): any; export declare function computeRegionNetworkEndpointGroupCloudRunToHclTerraform(struct?: ComputeRegionNetworkEndpointGroupCloudRunOutputReference | ComputeRegionNetworkEndpointGroupCloudRun): any; export declare class ComputeRegionNetworkEndpointGroupCloudRunOutputReference 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(): ComputeRegionNetworkEndpointGroupCloudRun | undefined; set internalValue(value: ComputeRegionNetworkEndpointGroupCloudRun | undefined); private _service?; get service(): string; set service(value: string); resetService(): void; get serviceInput(): string | undefined; private _tag?; get tag(): string; set tag(value: string); resetTag(): void; get tagInput(): string | undefined; private _urlMask?; get urlMask(): string; set urlMask(value: string); resetUrlMask(): void; get urlMaskInput(): string | undefined; } export interface ComputeRegionNetworkEndpointGroupPscData { /** * The PSC producer port to use when consumer PSC NEG connects to a producer. If * this flag isn't specified for a PSC NEG with endpoint type * private-service-connect, then PSC NEG will be connected to a first port in the * available PSC producer port range. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#producer_port ComputeRegionNetworkEndpointGroup#producer_port} */ readonly producerPort?: string; } export declare function computeRegionNetworkEndpointGroupPscDataToTerraform(struct?: ComputeRegionNetworkEndpointGroupPscDataOutputReference | ComputeRegionNetworkEndpointGroupPscData): any; export declare function computeRegionNetworkEndpointGroupPscDataToHclTerraform(struct?: ComputeRegionNetworkEndpointGroupPscDataOutputReference | ComputeRegionNetworkEndpointGroupPscData): any; export declare class ComputeRegionNetworkEndpointGroupPscDataOutputReference 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(): ComputeRegionNetworkEndpointGroupPscData | undefined; set internalValue(value: ComputeRegionNetworkEndpointGroupPscData | undefined); private _producerPort?; get producerPort(): string; set producerPort(value: string); resetProducerPort(): void; get producerPortInput(): string | undefined; } export interface ComputeRegionNetworkEndpointGroupTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#create ComputeRegionNetworkEndpointGroup#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#delete ComputeRegionNetworkEndpointGroup#delete} */ readonly delete?: string; } export declare function computeRegionNetworkEndpointGroupTimeoutsToTerraform(struct?: ComputeRegionNetworkEndpointGroupTimeouts | cdktf.IResolvable): any; export declare function computeRegionNetworkEndpointGroupTimeoutsToHclTerraform(struct?: ComputeRegionNetworkEndpointGroupTimeouts | cdktf.IResolvable): any; export declare class ComputeRegionNetworkEndpointGroupTimeoutsOutputReference 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(): ComputeRegionNetworkEndpointGroupTimeouts | cdktf.IResolvable | undefined; set internalValue(value: ComputeRegionNetworkEndpointGroupTimeouts | 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; } /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group google_compute_region_network_endpoint_group} */ export declare class ComputeRegionNetworkEndpointGroup extends cdktf.TerraformResource { static readonly tfResourceType = "google_compute_region_network_endpoint_group"; /** * Generates CDKTF code for importing a ComputeRegionNetworkEndpointGroup 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 ComputeRegionNetworkEndpointGroup to import * @param importFromId The id of the existing ComputeRegionNetworkEndpointGroup that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_network_endpoint_group#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ComputeRegionNetworkEndpointGroup 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_region_network_endpoint_group google_compute_region_network_endpoint_group} 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 ComputeRegionNetworkEndpointGroupConfig */ constructor(scope: Construct, id: string, config: ComputeRegionNetworkEndpointGroupConfig); private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string | undefined; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string | undefined; private _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; private _network?; get network(): string; set network(value: string); resetNetwork(): void; get networkInput(): string | undefined; private _networkEndpointType?; get networkEndpointType(): string; set networkEndpointType(value: string); resetNetworkEndpointType(): void; get networkEndpointTypeInput(): string | undefined; private _project?; get project(): string; set project(value: string); resetProject(): void; get projectInput(): string | undefined; private _pscTargetService?; get pscTargetService(): string; set pscTargetService(value: string); resetPscTargetService(): void; get pscTargetServiceInput(): string | undefined; private _region?; get region(): string; set region(value: string); get regionInput(): string | undefined; get selfLink(): string; private _subnetwork?; get subnetwork(): string; set subnetwork(value: string); resetSubnetwork(): void; get subnetworkInput(): string | undefined; private _appEngine; get appEngine(): ComputeRegionNetworkEndpointGroupAppEngineOutputReference; putAppEngine(value: ComputeRegionNetworkEndpointGroupAppEngine): void; resetAppEngine(): void; get appEngineInput(): ComputeRegionNetworkEndpointGroupAppEngine | undefined; private _cloudFunction; get cloudFunction(): ComputeRegionNetworkEndpointGroupCloudFunctionOutputReference; putCloudFunction(value: ComputeRegionNetworkEndpointGroupCloudFunction): void; resetCloudFunction(): void; get cloudFunctionInput(): ComputeRegionNetworkEndpointGroupCloudFunction | undefined; private _cloudRun; get cloudRun(): ComputeRegionNetworkEndpointGroupCloudRunOutputReference; putCloudRun(value: ComputeRegionNetworkEndpointGroupCloudRun): void; resetCloudRun(): void; get cloudRunInput(): ComputeRegionNetworkEndpointGroupCloudRun | undefined; private _pscData; get pscData(): ComputeRegionNetworkEndpointGroupPscDataOutputReference; putPscData(value: ComputeRegionNetworkEndpointGroupPscData): void; resetPscData(): void; get pscDataInput(): ComputeRegionNetworkEndpointGroupPscData | undefined; private _timeouts; get timeouts(): ComputeRegionNetworkEndpointGroupTimeoutsOutputReference; putTimeouts(value: ComputeRegionNetworkEndpointGroupTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | ComputeRegionNetworkEndpointGroupTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }