UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

360 lines (359 loc) 21.3 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface NetworkServicesEndpointPolicyConfig extends cdktf.TerraformMetaArguments { /** * This field specifies the URL of AuthorizationPolicy resource that applies authorization policies to the inbound traffic at the matched endpoints. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#authorization_policy NetworkServicesEndpointPolicy#authorization_policy} */ readonly authorizationPolicy?: string; /** * A URL referring to a ClientTlsPolicy resource. ClientTlsPolicy can be set to specify the authentication for traffic from the proxy to the actual endpoints. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#client_tls_policy NetworkServicesEndpointPolicy#client_tls_policy} */ readonly clientTlsPolicy?: string; /** * A free-text description of the resource. Max length 1024 characters. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#description NetworkServicesEndpointPolicy#description} */ readonly description?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#id NetworkServicesEndpointPolicy#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 label tags associated with the TcpRoute 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.36.0/docs/resources/network_services_endpoint_policy#labels NetworkServicesEndpointPolicy#labels} */ readonly labels?: { [key: string]: string; }; /** * Name of the EndpointPolicy resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#name NetworkServicesEndpointPolicy#name} */ readonly name: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#project NetworkServicesEndpointPolicy#project} */ readonly project?: string; /** * A URL referring to ServerTlsPolicy resource. ServerTlsPolicy is used to determine the authentication policy to be applied to terminate the inbound traffic at the identified backends. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#server_tls_policy NetworkServicesEndpointPolicy#server_tls_policy} */ readonly serverTlsPolicy?: string; /** * The type of endpoint policy. This is primarily used to validate the configuration. Possible values: ["SIDECAR_PROXY", "GRPC_SERVER"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#type NetworkServicesEndpointPolicy#type} */ readonly type: string; /** * endpoint_matcher block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#endpoint_matcher NetworkServicesEndpointPolicy#endpoint_matcher} */ readonly endpointMatcher: NetworkServicesEndpointPolicyEndpointMatcher; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#timeouts NetworkServicesEndpointPolicy#timeouts} */ readonly timeouts?: NetworkServicesEndpointPolicyTimeouts; /** * traffic_port_selector block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#traffic_port_selector NetworkServicesEndpointPolicy#traffic_port_selector} */ readonly trafficPortSelector?: NetworkServicesEndpointPolicyTrafficPortSelector; } export interface NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabels { /** * Required. Label name presented as key in xDS Node Metadata. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#label_name NetworkServicesEndpointPolicy#label_name} */ readonly labelName: string; /** * Required. Label value presented as value corresponding to the above key, in xDS Node Metadata. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#label_value NetworkServicesEndpointPolicy#label_value} */ readonly labelValue: string; } export declare function networkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabelsToTerraform(struct?: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabels | cdktf.IResolvable): any; export declare function networkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabelsToHclTerraform(struct?: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabels | cdktf.IResolvable): any; export declare class NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabelsOutputReference 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(): NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabels | cdktf.IResolvable | undefined; set internalValue(value: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabels | cdktf.IResolvable | undefined); private _labelName?; get labelName(): string; set labelName(value: string); get labelNameInput(): string | undefined; private _labelValue?; get labelValue(): string; set labelValue(value: string); get labelValueInput(): string | undefined; } export declare class NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabelsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabels[] | 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): NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabelsOutputReference; } export interface NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcher { /** * Specifies how matching should be done. Possible values: ["MATCH_ANY", "MATCH_ALL"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#metadata_label_match_criteria NetworkServicesEndpointPolicy#metadata_label_match_criteria} */ readonly metadataLabelMatchCriteria: string; /** * metadata_labels block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#metadata_labels NetworkServicesEndpointPolicy#metadata_labels} */ readonly metadataLabels?: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabels[] | cdktf.IResolvable; } export declare function networkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherToTerraform(struct?: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherOutputReference | NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcher): any; export declare function networkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherToHclTerraform(struct?: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherOutputReference | NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcher): any; export declare class NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherOutputReference 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(): NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcher | undefined; set internalValue(value: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcher | undefined); private _metadataLabelMatchCriteria?; get metadataLabelMatchCriteria(): string; set metadataLabelMatchCriteria(value: string); get metadataLabelMatchCriteriaInput(): string | undefined; private _metadataLabels; get metadataLabels(): NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabelsList; putMetadataLabels(value: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabels[] | cdktf.IResolvable): void; resetMetadataLabels(): void; get metadataLabelsInput(): cdktf.IResolvable | NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherMetadataLabels[] | undefined; } export interface NetworkServicesEndpointPolicyEndpointMatcher { /** * metadata_label_matcher block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#metadata_label_matcher NetworkServicesEndpointPolicy#metadata_label_matcher} */ readonly metadataLabelMatcher: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcher; } export declare function networkServicesEndpointPolicyEndpointMatcherToTerraform(struct?: NetworkServicesEndpointPolicyEndpointMatcherOutputReference | NetworkServicesEndpointPolicyEndpointMatcher): any; export declare function networkServicesEndpointPolicyEndpointMatcherToHclTerraform(struct?: NetworkServicesEndpointPolicyEndpointMatcherOutputReference | NetworkServicesEndpointPolicyEndpointMatcher): any; export declare class NetworkServicesEndpointPolicyEndpointMatcherOutputReference 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(): NetworkServicesEndpointPolicyEndpointMatcher | undefined; set internalValue(value: NetworkServicesEndpointPolicyEndpointMatcher | undefined); private _metadataLabelMatcher; get metadataLabelMatcher(): NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcherOutputReference; putMetadataLabelMatcher(value: NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcher): void; get metadataLabelMatcherInput(): NetworkServicesEndpointPolicyEndpointMatcherMetadataLabelMatcher | undefined; } export interface NetworkServicesEndpointPolicyTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#create NetworkServicesEndpointPolicy#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#delete NetworkServicesEndpointPolicy#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#update NetworkServicesEndpointPolicy#update} */ readonly update?: string; } export declare function networkServicesEndpointPolicyTimeoutsToTerraform(struct?: NetworkServicesEndpointPolicyTimeouts | cdktf.IResolvable): any; export declare function networkServicesEndpointPolicyTimeoutsToHclTerraform(struct?: NetworkServicesEndpointPolicyTimeouts | cdktf.IResolvable): any; export declare class NetworkServicesEndpointPolicyTimeoutsOutputReference 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(): NetworkServicesEndpointPolicyTimeouts | cdktf.IResolvable | undefined; set internalValue(value: NetworkServicesEndpointPolicyTimeouts | 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; } export interface NetworkServicesEndpointPolicyTrafficPortSelector { /** * List of ports. Can be port numbers or port range (example, [80-90] specifies all ports from 80 to 90, including 80 and 90) or named ports or * to specify all ports. If the list is empty, all ports are selected. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#ports NetworkServicesEndpointPolicy#ports} */ readonly ports: string[]; } export declare function networkServicesEndpointPolicyTrafficPortSelectorToTerraform(struct?: NetworkServicesEndpointPolicyTrafficPortSelectorOutputReference | NetworkServicesEndpointPolicyTrafficPortSelector): any; export declare function networkServicesEndpointPolicyTrafficPortSelectorToHclTerraform(struct?: NetworkServicesEndpointPolicyTrafficPortSelectorOutputReference | NetworkServicesEndpointPolicyTrafficPortSelector): any; export declare class NetworkServicesEndpointPolicyTrafficPortSelectorOutputReference 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(): NetworkServicesEndpointPolicyTrafficPortSelector | undefined; set internalValue(value: NetworkServicesEndpointPolicyTrafficPortSelector | undefined); private _ports?; get ports(): string[]; set ports(value: string[]); get portsInput(): string[] | undefined; } /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy google_network_services_endpoint_policy} */ export declare class NetworkServicesEndpointPolicy extends cdktf.TerraformResource { static readonly tfResourceType = "google_network_services_endpoint_policy"; /** * Generates CDKTF code for importing a NetworkServicesEndpointPolicy 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 NetworkServicesEndpointPolicy to import * @param importFromId The id of the existing NetworkServicesEndpointPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/network_services_endpoint_policy#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the NetworkServicesEndpointPolicy 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.36.0/docs/resources/network_services_endpoint_policy google_network_services_endpoint_policy} 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 NetworkServicesEndpointPolicyConfig */ constructor(scope: Construct, id: string, config: NetworkServicesEndpointPolicyConfig); private _authorizationPolicy?; get authorizationPolicy(): string; set authorizationPolicy(value: string); resetAuthorizationPolicy(): void; get authorizationPolicyInput(): string | undefined; private _clientTlsPolicy?; get clientTlsPolicy(): string; set clientTlsPolicy(value: string); resetClientTlsPolicy(): void; get clientTlsPolicyInput(): string | undefined; get createTime(): string; 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 _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 _project?; get project(): string; set project(value: string); resetProject(): void; get projectInput(): string | undefined; private _serverTlsPolicy?; get serverTlsPolicy(): string; set serverTlsPolicy(value: string); resetServerTlsPolicy(): void; get serverTlsPolicyInput(): string | undefined; private _terraformLabels; get terraformLabels(): cdktf.StringMap; private _type?; get type(): string; set type(value: string); get typeInput(): string | undefined; get updateTime(): string; private _endpointMatcher; get endpointMatcher(): NetworkServicesEndpointPolicyEndpointMatcherOutputReference; putEndpointMatcher(value: NetworkServicesEndpointPolicyEndpointMatcher): void; get endpointMatcherInput(): NetworkServicesEndpointPolicyEndpointMatcher | undefined; private _timeouts; get timeouts(): NetworkServicesEndpointPolicyTimeoutsOutputReference; putTimeouts(value: NetworkServicesEndpointPolicyTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | NetworkServicesEndpointPolicyTimeouts | undefined; private _trafficPortSelector; get trafficPortSelector(): NetworkServicesEndpointPolicyTrafficPortSelectorOutputReference; putTrafficPortSelector(value: NetworkServicesEndpointPolicyTrafficPortSelector): void; resetTrafficPortSelector(): void; get trafficPortSelectorInput(): NetworkServicesEndpointPolicyTrafficPortSelector | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }