UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

398 lines (397 loc) 23 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface NetworkServicesLbRouteExtensionConfig extends cdktf.TerraformMetaArguments { /** * A human-readable description of the resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#description NetworkServicesLbRouteExtension#description} */ readonly description?: string; /** * A list of references to the forwarding rules to which this service extension is attached to. * At least one forwarding rule is required. There can be only one LbRouteExtension resource per forwarding rule. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#forwarding_rules NetworkServicesLbRouteExtension#forwarding_rules} */ readonly forwardingRules: string[]; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#id NetworkServicesLbRouteExtension#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; /** * Set of labels associated with the LbRouteExtension resource. * * **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_services_lb_route_extension#labels NetworkServicesLbRouteExtension#labels} */ readonly labels?: { [key: string]: string; }; /** * All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. * For more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and * [Supported application load balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values: ["INTERNAL_MANAGED", "EXTERNAL_MANAGED"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#load_balancing_scheme NetworkServicesLbRouteExtension#load_balancing_scheme} */ readonly loadBalancingScheme: string; /** * The location of the route extension * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#location NetworkServicesLbRouteExtension#location} */ readonly location: string; /** * Name of the LbRouteExtension resource in the following format: projects/{project}/locations/{location}/lbRouteExtensions/{lbRouteExtension} * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#name NetworkServicesLbRouteExtension#name} */ readonly name: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#project NetworkServicesLbRouteExtension#project} */ readonly project?: string; /** * extension_chains block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#extension_chains NetworkServicesLbRouteExtension#extension_chains} */ readonly extensionChains: NetworkServicesLbRouteExtensionExtensionChains[] | cdktf.IResolvable; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#timeouts NetworkServicesLbRouteExtension#timeouts} */ readonly timeouts?: NetworkServicesLbRouteExtensionTimeouts; } export interface NetworkServicesLbRouteExtensionExtensionChainsExtensions { /** * The :authority header in the gRPC request sent from Envoy to the extension service. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#authority NetworkServicesLbRouteExtension#authority} */ readonly authority?: string; /** * Determines how the proxy behaves if the call to the extension fails or times out. * When set to TRUE, request or response processing continues without error. * Any subsequent extensions in the extension chain are also executed. * When set to FALSE: * If response headers have not been delivered to the downstream client, * a generic 500 error is returned to the client. The error response can be tailored by * configuring a custom error response in the load balancer. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#fail_open NetworkServicesLbRouteExtension#fail_open} */ readonly failOpen?: boolean | cdktf.IResolvable; /** * List of the HTTP headers to forward to the extension (from the client or backend). * If omitted, all headers are sent. Each element is a string indicating the header name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#forward_headers NetworkServicesLbRouteExtension#forward_headers} */ readonly forwardHeaders?: string[]; /** * The name for this extension. The name is logged as part of the HTTP request logs. * The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, * and can have a maximum length of 63 characters. Additionally, the first character must be a letter * and the last a letter or a number. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#name NetworkServicesLbRouteExtension#name} */ readonly name: string; /** * The reference to the service that runs the extension. Must be a reference to a backend service * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#service NetworkServicesLbRouteExtension#service} */ readonly service: string; /** * Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds. * A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#timeout NetworkServicesLbRouteExtension#timeout} */ readonly timeout?: string; } export declare function networkServicesLbRouteExtensionExtensionChainsExtensionsToTerraform(struct?: NetworkServicesLbRouteExtensionExtensionChainsExtensions | cdktf.IResolvable): any; export declare function networkServicesLbRouteExtensionExtensionChainsExtensionsToHclTerraform(struct?: NetworkServicesLbRouteExtensionExtensionChainsExtensions | cdktf.IResolvable): any; export declare class NetworkServicesLbRouteExtensionExtensionChainsExtensionsOutputReference 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(): NetworkServicesLbRouteExtensionExtensionChainsExtensions | cdktf.IResolvable | undefined; set internalValue(value: NetworkServicesLbRouteExtensionExtensionChainsExtensions | cdktf.IResolvable | undefined); private _authority?; get authority(): string; set authority(value: string); resetAuthority(): void; get authorityInput(): string | undefined; private _failOpen?; get failOpen(): boolean | cdktf.IResolvable; set failOpen(value: boolean | cdktf.IResolvable); resetFailOpen(): void; get failOpenInput(): boolean | cdktf.IResolvable | undefined; private _forwardHeaders?; get forwardHeaders(): string[]; set forwardHeaders(value: string[]); resetForwardHeaders(): void; get forwardHeadersInput(): string[] | undefined; private _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; private _service?; get service(): string; set service(value: string); get serviceInput(): string | undefined; private _timeout?; get timeout(): string; set timeout(value: string); resetTimeout(): void; get timeoutInput(): string | undefined; } export declare class NetworkServicesLbRouteExtensionExtensionChainsExtensionsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: NetworkServicesLbRouteExtensionExtensionChainsExtensions[] | 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): NetworkServicesLbRouteExtensionExtensionChainsExtensionsOutputReference; } export interface NetworkServicesLbRouteExtensionExtensionChainsMatchCondition { /** * A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#cel_expression NetworkServicesLbRouteExtension#cel_expression} */ readonly celExpression: string; } export declare function networkServicesLbRouteExtensionExtensionChainsMatchConditionToTerraform(struct?: NetworkServicesLbRouteExtensionExtensionChainsMatchConditionOutputReference | NetworkServicesLbRouteExtensionExtensionChainsMatchCondition): any; export declare function networkServicesLbRouteExtensionExtensionChainsMatchConditionToHclTerraform(struct?: NetworkServicesLbRouteExtensionExtensionChainsMatchConditionOutputReference | NetworkServicesLbRouteExtensionExtensionChainsMatchCondition): any; export declare class NetworkServicesLbRouteExtensionExtensionChainsMatchConditionOutputReference 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(): NetworkServicesLbRouteExtensionExtensionChainsMatchCondition | undefined; set internalValue(value: NetworkServicesLbRouteExtensionExtensionChainsMatchCondition | undefined); private _celExpression?; get celExpression(): string; set celExpression(value: string); get celExpressionInput(): string | undefined; } export interface NetworkServicesLbRouteExtensionExtensionChains { /** * The name for this extension chain. The name is logged as part of the HTTP request logs. * The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, * and can have a maximum length of 63 characters. Additionally, the first character must be a letter * and the last character must be a letter or a number. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#name NetworkServicesLbRouteExtension#name} */ readonly name: string; /** * extensions block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#extensions NetworkServicesLbRouteExtension#extensions} */ readonly extensions: NetworkServicesLbRouteExtensionExtensionChainsExtensions[] | cdktf.IResolvable; /** * match_condition block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#match_condition NetworkServicesLbRouteExtension#match_condition} */ readonly matchCondition: NetworkServicesLbRouteExtensionExtensionChainsMatchCondition; } export declare function networkServicesLbRouteExtensionExtensionChainsToTerraform(struct?: NetworkServicesLbRouteExtensionExtensionChains | cdktf.IResolvable): any; export declare function networkServicesLbRouteExtensionExtensionChainsToHclTerraform(struct?: NetworkServicesLbRouteExtensionExtensionChains | cdktf.IResolvable): any; export declare class NetworkServicesLbRouteExtensionExtensionChainsOutputReference 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(): NetworkServicesLbRouteExtensionExtensionChains | cdktf.IResolvable | undefined; set internalValue(value: NetworkServicesLbRouteExtensionExtensionChains | cdktf.IResolvable | undefined); private _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; private _extensions; get extensions(): NetworkServicesLbRouteExtensionExtensionChainsExtensionsList; putExtensions(value: NetworkServicesLbRouteExtensionExtensionChainsExtensions[] | cdktf.IResolvable): void; get extensionsInput(): cdktf.IResolvable | NetworkServicesLbRouteExtensionExtensionChainsExtensions[] | undefined; private _matchCondition; get matchCondition(): NetworkServicesLbRouteExtensionExtensionChainsMatchConditionOutputReference; putMatchCondition(value: NetworkServicesLbRouteExtensionExtensionChainsMatchCondition): void; get matchConditionInput(): NetworkServicesLbRouteExtensionExtensionChainsMatchCondition | undefined; } export declare class NetworkServicesLbRouteExtensionExtensionChainsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: NetworkServicesLbRouteExtensionExtensionChains[] | 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): NetworkServicesLbRouteExtensionExtensionChainsOutputReference; } export interface NetworkServicesLbRouteExtensionTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#create NetworkServicesLbRouteExtension#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#delete NetworkServicesLbRouteExtension#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#update NetworkServicesLbRouteExtension#update} */ readonly update?: string; } export declare function networkServicesLbRouteExtensionTimeoutsToTerraform(struct?: NetworkServicesLbRouteExtensionTimeouts | cdktf.IResolvable): any; export declare function networkServicesLbRouteExtensionTimeoutsToHclTerraform(struct?: NetworkServicesLbRouteExtensionTimeouts | cdktf.IResolvable): any; export declare class NetworkServicesLbRouteExtensionTimeoutsOutputReference 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(): NetworkServicesLbRouteExtensionTimeouts | cdktf.IResolvable | undefined; set internalValue(value: NetworkServicesLbRouteExtensionTimeouts | 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_services_lb_route_extension google_network_services_lb_route_extension} */ export declare class NetworkServicesLbRouteExtension extends cdktf.TerraformResource { static readonly tfResourceType = "google_network_services_lb_route_extension"; /** * Generates CDKTF code for importing a NetworkServicesLbRouteExtension 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 NetworkServicesLbRouteExtension to import * @param importFromId The id of the existing NetworkServicesLbRouteExtension that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_route_extension#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the NetworkServicesLbRouteExtension 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_services_lb_route_extension google_network_services_lb_route_extension} 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 NetworkServicesLbRouteExtensionConfig */ constructor(scope: Construct, id: string, config: NetworkServicesLbRouteExtensionConfig); private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string | undefined; private _effectiveLabels; get effectiveLabels(): cdktf.StringMap; private _forwardingRules?; get forwardingRules(): string[]; set forwardingRules(value: string[]); get forwardingRulesInput(): string[] | undefined; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string | undefined; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; } | undefined; private _loadBalancingScheme?; get loadBalancingScheme(): string; set loadBalancingScheme(value: string); get loadBalancingSchemeInput(): string | undefined; private _location?; get location(): string; set location(value: string); get locationInput(): string | undefined; private _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; private _project?; get project(): string; set project(value: string); resetProject(): void; get projectInput(): string | undefined; private _terraformLabels; get terraformLabels(): cdktf.StringMap; private _extensionChains; get extensionChains(): NetworkServicesLbRouteExtensionExtensionChainsList; putExtensionChains(value: NetworkServicesLbRouteExtensionExtensionChains[] | cdktf.IResolvable): void; get extensionChainsInput(): cdktf.IResolvable | NetworkServicesLbRouteExtensionExtensionChains[] | undefined; private _timeouts; get timeouts(): NetworkServicesLbRouteExtensionTimeoutsOutputReference; putTimeouts(value: NetworkServicesLbRouteExtensionTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | NetworkServicesLbRouteExtensionTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }