UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

413 lines (412 loc) 24.2 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface NetworkServicesLbTrafficExtensionConfig 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_traffic_extension#description NetworkServicesLbTrafficExtension#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 LBTrafficExtension resource per forwarding rule. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#forwarding_rules NetworkServicesLbTrafficExtension#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_traffic_extension#id NetworkServicesLbTrafficExtension#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 LbTrafficExtension 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_traffic_extension#labels NetworkServicesLbTrafficExtension#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_traffic_extension#load_balancing_scheme NetworkServicesLbTrafficExtension#load_balancing_scheme} */ readonly loadBalancingScheme?: string; /** * The location of the traffic extension * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#location NetworkServicesLbTrafficExtension#location} */ readonly location: string; /** * Name of the LbTrafficExtension resource in the following format: projects/{project}/locations/{location}/lbTrafficExtensions/{lbTrafficExtension}. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#name NetworkServicesLbTrafficExtension#name} */ readonly name: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#project NetworkServicesLbTrafficExtension#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_traffic_extension#extension_chains NetworkServicesLbTrafficExtension#extension_chains} */ readonly extensionChains: NetworkServicesLbTrafficExtensionExtensionChains[] | cdktf.IResolvable; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#timeouts NetworkServicesLbTrafficExtension#timeouts} */ readonly timeouts?: NetworkServicesLbTrafficExtensionTimeouts; } export interface NetworkServicesLbTrafficExtensionExtensionChainsExtensions { /** * 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_traffic_extension#authority NetworkServicesLbTrafficExtension#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_traffic_extension#fail_open NetworkServicesLbTrafficExtension#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_traffic_extension#forward_headers NetworkServicesLbTrafficExtension#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_traffic_extension#name NetworkServicesLbTrafficExtension#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_traffic_extension#service NetworkServicesLbTrafficExtension#service} */ readonly service: string; /** * A set of events during request or response processing for which this extension is called. * This field is required for the LbTrafficExtension resource. It's not relevant for the LbRouteExtension * resource. Possible values:'EVENT_TYPE_UNSPECIFIED', 'REQUEST_HEADERS', 'REQUEST_BODY', 'RESPONSE_HEADERS', * 'RESPONSE_BODY', 'RESPONSE_BODY' and 'RESPONSE_BODY'. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#supported_events NetworkServicesLbTrafficExtension#supported_events} */ readonly supportedEvents?: 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_traffic_extension#timeout NetworkServicesLbTrafficExtension#timeout} */ readonly timeout?: string; } export declare function networkServicesLbTrafficExtensionExtensionChainsExtensionsToTerraform(struct?: NetworkServicesLbTrafficExtensionExtensionChainsExtensions | cdktf.IResolvable): any; export declare function networkServicesLbTrafficExtensionExtensionChainsExtensionsToHclTerraform(struct?: NetworkServicesLbTrafficExtensionExtensionChainsExtensions | cdktf.IResolvable): any; export declare class NetworkServicesLbTrafficExtensionExtensionChainsExtensionsOutputReference 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(): NetworkServicesLbTrafficExtensionExtensionChainsExtensions | cdktf.IResolvable | undefined; set internalValue(value: NetworkServicesLbTrafficExtensionExtensionChainsExtensions | 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 _supportedEvents?; get supportedEvents(): string[]; set supportedEvents(value: string[]); resetSupportedEvents(): void; get supportedEventsInput(): string[] | undefined; private _timeout?; get timeout(): string; set timeout(value: string); resetTimeout(): void; get timeoutInput(): string | undefined; } export declare class NetworkServicesLbTrafficExtensionExtensionChainsExtensionsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: NetworkServicesLbTrafficExtensionExtensionChainsExtensions[] | 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): NetworkServicesLbTrafficExtensionExtensionChainsExtensionsOutputReference; } export interface NetworkServicesLbTrafficExtensionExtensionChainsMatchCondition { /** * 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_traffic_extension#cel_expression NetworkServicesLbTrafficExtension#cel_expression} */ readonly celExpression: string; } export declare function networkServicesLbTrafficExtensionExtensionChainsMatchConditionToTerraform(struct?: NetworkServicesLbTrafficExtensionExtensionChainsMatchConditionOutputReference | NetworkServicesLbTrafficExtensionExtensionChainsMatchCondition): any; export declare function networkServicesLbTrafficExtensionExtensionChainsMatchConditionToHclTerraform(struct?: NetworkServicesLbTrafficExtensionExtensionChainsMatchConditionOutputReference | NetworkServicesLbTrafficExtensionExtensionChainsMatchCondition): any; export declare class NetworkServicesLbTrafficExtensionExtensionChainsMatchConditionOutputReference 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(): NetworkServicesLbTrafficExtensionExtensionChainsMatchCondition | undefined; set internalValue(value: NetworkServicesLbTrafficExtensionExtensionChainsMatchCondition | undefined); private _celExpression?; get celExpression(): string; set celExpression(value: string); get celExpressionInput(): string | undefined; } export interface NetworkServicesLbTrafficExtensionExtensionChains { /** * 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 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_traffic_extension#name NetworkServicesLbTrafficExtension#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_traffic_extension#extensions NetworkServicesLbTrafficExtension#extensions} */ readonly extensions: NetworkServicesLbTrafficExtensionExtensionChainsExtensions[] | 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_traffic_extension#match_condition NetworkServicesLbTrafficExtension#match_condition} */ readonly matchCondition: NetworkServicesLbTrafficExtensionExtensionChainsMatchCondition; } export declare function networkServicesLbTrafficExtensionExtensionChainsToTerraform(struct?: NetworkServicesLbTrafficExtensionExtensionChains | cdktf.IResolvable): any; export declare function networkServicesLbTrafficExtensionExtensionChainsToHclTerraform(struct?: NetworkServicesLbTrafficExtensionExtensionChains | cdktf.IResolvable): any; export declare class NetworkServicesLbTrafficExtensionExtensionChainsOutputReference 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(): NetworkServicesLbTrafficExtensionExtensionChains | cdktf.IResolvable | undefined; set internalValue(value: NetworkServicesLbTrafficExtensionExtensionChains | cdktf.IResolvable | undefined); private _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; private _extensions; get extensions(): NetworkServicesLbTrafficExtensionExtensionChainsExtensionsList; putExtensions(value: NetworkServicesLbTrafficExtensionExtensionChainsExtensions[] | cdktf.IResolvable): void; get extensionsInput(): cdktf.IResolvable | NetworkServicesLbTrafficExtensionExtensionChainsExtensions[] | undefined; private _matchCondition; get matchCondition(): NetworkServicesLbTrafficExtensionExtensionChainsMatchConditionOutputReference; putMatchCondition(value: NetworkServicesLbTrafficExtensionExtensionChainsMatchCondition): void; get matchConditionInput(): NetworkServicesLbTrafficExtensionExtensionChainsMatchCondition | undefined; } export declare class NetworkServicesLbTrafficExtensionExtensionChainsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: NetworkServicesLbTrafficExtensionExtensionChains[] | 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): NetworkServicesLbTrafficExtensionExtensionChainsOutputReference; } export interface NetworkServicesLbTrafficExtensionTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#create NetworkServicesLbTrafficExtension#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#delete NetworkServicesLbTrafficExtension#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#update NetworkServicesLbTrafficExtension#update} */ readonly update?: string; } export declare function networkServicesLbTrafficExtensionTimeoutsToTerraform(struct?: NetworkServicesLbTrafficExtensionTimeouts | cdktf.IResolvable): any; export declare function networkServicesLbTrafficExtensionTimeoutsToHclTerraform(struct?: NetworkServicesLbTrafficExtensionTimeouts | cdktf.IResolvable): any; export declare class NetworkServicesLbTrafficExtensionTimeoutsOutputReference 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(): NetworkServicesLbTrafficExtensionTimeouts | cdktf.IResolvable | undefined; set internalValue(value: NetworkServicesLbTrafficExtensionTimeouts | 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_traffic_extension google_network_services_lb_traffic_extension} */ export declare class NetworkServicesLbTrafficExtension extends cdktf.TerraformResource { static readonly tfResourceType = "google_network_services_lb_traffic_extension"; /** * Generates CDKTF code for importing a NetworkServicesLbTrafficExtension 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 NetworkServicesLbTrafficExtension to import * @param importFromId The id of the existing NetworkServicesLbTrafficExtension that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/network_services_lb_traffic_extension#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the NetworkServicesLbTrafficExtension 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_traffic_extension google_network_services_lb_traffic_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 NetworkServicesLbTrafficExtensionConfig */ constructor(scope: Construct, id: string, config: NetworkServicesLbTrafficExtensionConfig); 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); resetLoadBalancingScheme(): void; 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(): NetworkServicesLbTrafficExtensionExtensionChainsList; putExtensionChains(value: NetworkServicesLbTrafficExtensionExtensionChains[] | cdktf.IResolvable): void; get extensionChainsInput(): cdktf.IResolvable | NetworkServicesLbTrafficExtensionExtensionChains[] | undefined; private _timeouts; get timeouts(): NetworkServicesLbTrafficExtensionTimeoutsOutputReference; putTimeouts(value: NetworkServicesLbTrafficExtensionTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | NetworkServicesLbTrafficExtensionTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }