@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
426 lines (425 loc) • 23.2 kB
TypeScript
/**
* 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;
};
}