/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface NetworkSecurityAuthzPolicyConfig extends cdktf.TerraformMetaArguments {
    /**
    * When the action is CUSTOM, customProvider must be specified.
    * When the action is ALLOW, only requests matching the policy will be allowed.
    * When the action is DENY, only requests matching the policy will be denied.
    *
    * When a request arrives, the policies are evaluated in the following order:
    * 1. If there is a CUSTOM policy that matches the request, the CUSTOM policy is evaluated using the custom authorization providers and the request is denied if the provider rejects the request.
    * 2. If there are any DENY policies that match the request, the request is denied.
    * 3. If there are no ALLOW policies for the resource or if any of the ALLOW policies match the request, the request is allowed.
    * 4. Else the request is denied by default if none of the configured AuthzPolicies with ALLOW action match the request. Possible values: ["ALLOW", "DENY", "CUSTOM"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#action NetworkSecurityAuthzPolicy#action}
    */
    readonly action: string;
    /**
    * A human-readable description of the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#description NetworkSecurityAuthzPolicy#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#id NetworkSecurityAuthzPolicy#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 AuthzExtension 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.25.0/docs/resources/network_security_authz_policy#labels NetworkSecurityAuthzPolicy#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The location of the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#location NetworkSecurityAuthzPolicy#location}
    */
    readonly location: string;
    /**
    * Identifier. Name of the AuthzPolicy resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#name NetworkSecurityAuthzPolicy#name}
    */
    readonly name: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#project NetworkSecurityAuthzPolicy#project}
    */
    readonly project?: string;
    /**
    * custom_provider block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#custom_provider NetworkSecurityAuthzPolicy#custom_provider}
    */
    readonly customProvider?: NetworkSecurityAuthzPolicyCustomProvider;
    /**
    * http_rules block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#http_rules NetworkSecurityAuthzPolicy#http_rules}
    */
    readonly httpRules?: NetworkSecurityAuthzPolicyHttpRules[] | cdktf.IResolvable;
    /**
    * target block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#target NetworkSecurityAuthzPolicy#target}
    */
    readonly target: NetworkSecurityAuthzPolicyTarget;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#timeouts NetworkSecurityAuthzPolicy#timeouts}
    */
    readonly timeouts?: NetworkSecurityAuthzPolicyTimeouts;
}
export interface NetworkSecurityAuthzPolicyCustomProviderAuthzExtension {
    /**
    * A list of references to authorization extensions that will be invoked for requests matching this policy. Limited to 1 custom provider.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#resources NetworkSecurityAuthzPolicy#resources}
    */
    readonly resources: string[];
}
export declare function networkSecurityAuthzPolicyCustomProviderAuthzExtensionToTerraform(struct?: NetworkSecurityAuthzPolicyCustomProviderAuthzExtensionOutputReference | NetworkSecurityAuthzPolicyCustomProviderAuthzExtension): any;
export declare function networkSecurityAuthzPolicyCustomProviderAuthzExtensionToHclTerraform(struct?: NetworkSecurityAuthzPolicyCustomProviderAuthzExtensionOutputReference | NetworkSecurityAuthzPolicyCustomProviderAuthzExtension): any;
export declare class NetworkSecurityAuthzPolicyCustomProviderAuthzExtensionOutputReference 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(): NetworkSecurityAuthzPolicyCustomProviderAuthzExtension | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyCustomProviderAuthzExtension | undefined);
    private _resources?;
    get resources(): string[];
    set resources(value: string[]);
    get resourcesInput(): string[] | undefined;
}
export interface NetworkSecurityAuthzPolicyCustomProviderCloudIap {
    /**
    * Enable Cloud IAP at the AuthzPolicy level.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#enabled NetworkSecurityAuthzPolicy#enabled}
    */
    readonly enabled: boolean | cdktf.IResolvable;
}
export declare function networkSecurityAuthzPolicyCustomProviderCloudIapToTerraform(struct?: NetworkSecurityAuthzPolicyCustomProviderCloudIapOutputReference | NetworkSecurityAuthzPolicyCustomProviderCloudIap): any;
export declare function networkSecurityAuthzPolicyCustomProviderCloudIapToHclTerraform(struct?: NetworkSecurityAuthzPolicyCustomProviderCloudIapOutputReference | NetworkSecurityAuthzPolicyCustomProviderCloudIap): any;
export declare class NetworkSecurityAuthzPolicyCustomProviderCloudIapOutputReference 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(): NetworkSecurityAuthzPolicyCustomProviderCloudIap | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyCustomProviderCloudIap | undefined);
    private _enabled?;
    get enabled(): boolean | cdktf.IResolvable;
    set enabled(value: boolean | cdktf.IResolvable);
    get enabledInput(): boolean | cdktf.IResolvable | undefined;
}
export interface NetworkSecurityAuthzPolicyCustomProvider {
    /**
    * authz_extension block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#authz_extension NetworkSecurityAuthzPolicy#authz_extension}
    */
    readonly authzExtension?: NetworkSecurityAuthzPolicyCustomProviderAuthzExtension;
    /**
    * cloud_iap block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#cloud_iap NetworkSecurityAuthzPolicy#cloud_iap}
    */
    readonly cloudIap?: NetworkSecurityAuthzPolicyCustomProviderCloudIap;
}
export declare function networkSecurityAuthzPolicyCustomProviderToTerraform(struct?: NetworkSecurityAuthzPolicyCustomProviderOutputReference | NetworkSecurityAuthzPolicyCustomProvider): any;
export declare function networkSecurityAuthzPolicyCustomProviderToHclTerraform(struct?: NetworkSecurityAuthzPolicyCustomProviderOutputReference | NetworkSecurityAuthzPolicyCustomProvider): any;
export declare class NetworkSecurityAuthzPolicyCustomProviderOutputReference 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(): NetworkSecurityAuthzPolicyCustomProvider | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyCustomProvider | undefined);
    private _authzExtension;
    get authzExtension(): NetworkSecurityAuthzPolicyCustomProviderAuthzExtensionOutputReference;
    putAuthzExtension(value: NetworkSecurityAuthzPolicyCustomProviderAuthzExtension): void;
    resetAuthzExtension(): void;
    get authzExtensionInput(): NetworkSecurityAuthzPolicyCustomProviderAuthzExtension | undefined;
    private _cloudIap;
    get cloudIap(): NetworkSecurityAuthzPolicyCustomProviderCloudIapOutputReference;
    putCloudIap(value: NetworkSecurityAuthzPolicyCustomProviderCloudIap): void;
    resetCloudIap(): void;
    get cloudIapInput(): NetworkSecurityAuthzPolicyCustomProviderCloudIap | undefined;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipals {
    /**
    * The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc.def
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#contains NetworkSecurityAuthzPolicy#contains}
    */
    readonly contains?: string;
    /**
    * The input string must match exactly the string specified here.
    * Examples:
    * * abc only matches the value abc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#exact NetworkSecurityAuthzPolicy#exact}
    */
    readonly exact?: string;
    /**
    * If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#ignore_case NetworkSecurityAuthzPolicy#ignore_case}
    */
    readonly ignoreCase?: boolean | cdktf.IResolvable;
    /**
    * The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value abc.xyz
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#prefix NetworkSecurityAuthzPolicy#prefix}
    */
    readonly prefix?: string;
    /**
    * The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#suffix NetworkSecurityAuthzPolicy#suffix}
    */
    readonly suffix?: string;
}
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipalsToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipals | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipalsToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipals | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipalsOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipals | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipals | cdktf.IResolvable | undefined);
    private _contains?;
    get contains(): string;
    set contains(value: string);
    resetContains(): void;
    get containsInput(): string | undefined;
    private _exact?;
    get exact(): string;
    set exact(value: string);
    resetExact(): void;
    get exactInput(): string | undefined;
    private _ignoreCase?;
    get ignoreCase(): boolean | cdktf.IResolvable;
    set ignoreCase(value: boolean | cdktf.IResolvable);
    resetIgnoreCase(): void;
    get ignoreCaseInput(): boolean | cdktf.IResolvable | undefined;
    private _prefix?;
    get prefix(): string;
    set prefix(value: string);
    resetPrefix(): void;
    get prefixInput(): string | undefined;
    private _suffix?;
    get suffix(): string;
    set suffix(value: string);
    resetSuffix(): void;
    get suffixInput(): string | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipalsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipals[] | 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): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipalsOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccount {
    /**
    * The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc.def
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#contains NetworkSecurityAuthzPolicy#contains}
    */
    readonly contains?: string;
    /**
    * The input string must match exactly the string specified here.
    * Examples:
    * * abc only matches the value abc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#exact NetworkSecurityAuthzPolicy#exact}
    */
    readonly exact?: string;
    /**
    * If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#ignore_case NetworkSecurityAuthzPolicy#ignore_case}
    */
    readonly ignoreCase?: boolean | cdktf.IResolvable;
    /**
    * The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value abc.xyz
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#prefix NetworkSecurityAuthzPolicy#prefix}
    */
    readonly prefix?: string;
    /**
    * The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#suffix NetworkSecurityAuthzPolicy#suffix}
    */
    readonly suffix?: string;
}
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccountToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccountOutputReference | NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccount): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccountToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccountOutputReference | NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccount): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccountOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccount | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccount | undefined);
    private _contains?;
    get contains(): string;
    set contains(value: string);
    resetContains(): void;
    get containsInput(): string | undefined;
    private _exact?;
    get exact(): string;
    set exact(value: string);
    resetExact(): void;
    get exactInput(): string | undefined;
    private _ignoreCase?;
    get ignoreCase(): boolean | cdktf.IResolvable;
    set ignoreCase(value: boolean | cdktf.IResolvable);
    resetIgnoreCase(): void;
    get ignoreCaseInput(): boolean | cdktf.IResolvable | undefined;
    private _prefix?;
    get prefix(): string;
    set prefix(value: string);
    resetPrefix(): void;
    get prefixInput(): string | undefined;
    private _suffix?;
    get suffix(): string;
    set suffix(value: string);
    resetSuffix(): void;
    get suffixInput(): string | undefined;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSet {
    /**
    * A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request. The match follows AND semantics which means all the ids must match.
    * Limited to 5 matches.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#ids NetworkSecurityAuthzPolicy#ids}
    */
    readonly ids?: string[];
}
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSetToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSetOutputReference | NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSet): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSetToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSetOutputReference | NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSet): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSetOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSet | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSet | undefined);
    private _ids?;
    get ids(): string[];
    set ids(value: string[]);
    resetIds(): void;
    get idsInput(): string[] | undefined;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResources {
    /**
    * iam_service_account block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#iam_service_account NetworkSecurityAuthzPolicy#iam_service_account}
    */
    readonly iamServiceAccount?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccount;
    /**
    * tag_value_id_set block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#tag_value_id_set NetworkSecurityAuthzPolicy#tag_value_id_set}
    */
    readonly tagValueIdSet?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSet;
}
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResources | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResources | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResources | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResources | cdktf.IResolvable | undefined);
    private _iamServiceAccount;
    get iamServiceAccount(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccountOutputReference;
    putIamServiceAccount(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccount): void;
    resetIamServiceAccount(): void;
    get iamServiceAccountInput(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesIamServiceAccount | undefined;
    private _tagValueIdSet;
    get tagValueIdSet(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSetOutputReference;
    putTagValueIdSet(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSet): void;
    resetTagValueIdSet(): void;
    get tagValueIdSetInput(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesTagValueIdSet | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResources[] | 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): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromNotSources {
    /**
    * principals block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#principals NetworkSecurityAuthzPolicy#principals}
    */
    readonly principals?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipals[] | cdktf.IResolvable;
    /**
    * resources block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#resources NetworkSecurityAuthzPolicy#resources}
    */
    readonly resources?: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResources[] | cdktf.IResolvable;
}
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSources | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromNotSourcesToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromNotSources | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromNotSources | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSources | cdktf.IResolvable | undefined);
    private _principals;
    get principals(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipalsList;
    putPrincipals(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipals[] | cdktf.IResolvable): void;
    resetPrincipals(): void;
    get principalsInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesPrincipals[] | undefined;
    private _resources;
    get resources(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResourcesList;
    putResources(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResources[] | cdktf.IResolvable): void;
    resetResources(): void;
    get resourcesInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesResources[] | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesFromNotSources[] | 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): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipals {
    /**
    * The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc.def
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#contains NetworkSecurityAuthzPolicy#contains}
    */
    readonly contains?: string;
    /**
    * The input string must match exactly the string specified here.
    * Examples:
    * * abc only matches the value abc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#exact NetworkSecurityAuthzPolicy#exact}
    */
    readonly exact?: string;
    /**
    * If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#ignore_case NetworkSecurityAuthzPolicy#ignore_case}
    */
    readonly ignoreCase?: boolean | cdktf.IResolvable;
    /**
    * The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value abc.xyz
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#prefix NetworkSecurityAuthzPolicy#prefix}
    */
    readonly prefix?: string;
    /**
    * The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#suffix NetworkSecurityAuthzPolicy#suffix}
    */
    readonly suffix?: string;
}
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesPrincipalsToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipals | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesPrincipalsToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipals | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipalsOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipals | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipals | cdktf.IResolvable | undefined);
    private _contains?;
    get contains(): string;
    set contains(value: string);
    resetContains(): void;
    get containsInput(): string | undefined;
    private _exact?;
    get exact(): string;
    set exact(value: string);
    resetExact(): void;
    get exactInput(): string | undefined;
    private _ignoreCase?;
    get ignoreCase(): boolean | cdktf.IResolvable;
    set ignoreCase(value: boolean | cdktf.IResolvable);
    resetIgnoreCase(): void;
    get ignoreCaseInput(): boolean | cdktf.IResolvable | undefined;
    private _prefix?;
    get prefix(): string;
    set prefix(value: string);
    resetPrefix(): void;
    get prefixInput(): string | undefined;
    private _suffix?;
    get suffix(): string;
    set suffix(value: string);
    resetSuffix(): void;
    get suffixInput(): string | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipalsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipals[] | 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): NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipalsOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccount {
    /**
    * The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc.def
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#contains NetworkSecurityAuthzPolicy#contains}
    */
    readonly contains?: string;
    /**
    * The input string must match exactly the string specified here.
    * Examples:
    * * abc only matches the value abc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#exact NetworkSecurityAuthzPolicy#exact}
    */
    readonly exact?: string;
    /**
    * If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#ignore_case NetworkSecurityAuthzPolicy#ignore_case}
    */
    readonly ignoreCase?: boolean | cdktf.IResolvable;
    /**
    * The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value abc.xyz
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#prefix NetworkSecurityAuthzPolicy#prefix}
    */
    readonly prefix?: string;
    /**
    * The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#suffix NetworkSecurityAuthzPolicy#suffix}
    */
    readonly suffix?: string;
}
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccountToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccountOutputReference | NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccount): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccountToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccountOutputReference | NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccount): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccountOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccount | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccount | undefined);
    private _contains?;
    get contains(): string;
    set contains(value: string);
    resetContains(): void;
    get containsInput(): string | undefined;
    private _exact?;
    get exact(): string;
    set exact(value: string);
    resetExact(): void;
    get exactInput(): string | undefined;
    private _ignoreCase?;
    get ignoreCase(): boolean | cdktf.IResolvable;
    set ignoreCase(value: boolean | cdktf.IResolvable);
    resetIgnoreCase(): void;
    get ignoreCaseInput(): boolean | cdktf.IResolvable | undefined;
    private _prefix?;
    get prefix(): string;
    set prefix(value: string);
    resetPrefix(): void;
    get prefixInput(): string | undefined;
    private _suffix?;
    get suffix(): string;
    set suffix(value: string);
    resetSuffix(): void;
    get suffixInput(): string | undefined;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSet {
    /**
    * A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request. The match follows AND semantics which means all the ids must match.
    * Limited to 5 matches.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#ids NetworkSecurityAuthzPolicy#ids}
    */
    readonly ids?: string[];
}
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSetToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSetOutputReference | NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSet): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSetToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSetOutputReference | NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSet): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSetOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSet | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSet | undefined);
    private _ids?;
    get ids(): string[];
    set ids(value: string[]);
    resetIds(): void;
    get idsInput(): string[] | undefined;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromSourcesResources {
    /**
    * iam_service_account block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#iam_service_account NetworkSecurityAuthzPolicy#iam_service_account}
    */
    readonly iamServiceAccount?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccount;
    /**
    * tag_value_id_set block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#tag_value_id_set NetworkSecurityAuthzPolicy#tag_value_id_set}
    */
    readonly tagValueIdSet?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSet;
}
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesResourcesToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResources | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesResourcesToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResources | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesResources | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResources | cdktf.IResolvable | undefined);
    private _iamServiceAccount;
    get iamServiceAccount(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccountOutputReference;
    putIamServiceAccount(value: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccount): void;
    resetIamServiceAccount(): void;
    get iamServiceAccountInput(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesIamServiceAccount | undefined;
    private _tagValueIdSet;
    get tagValueIdSet(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSetOutputReference;
    putTagValueIdSet(value: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSet): void;
    resetTagValueIdSet(): void;
    get tagValueIdSetInput(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesTagValueIdSet | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResources[] | 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): NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFromSources {
    /**
    * principals block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#principals NetworkSecurityAuthzPolicy#principals}
    */
    readonly principals?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipals[] | cdktf.IResolvable;
    /**
    * resources block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#resources NetworkSecurityAuthzPolicy#resources}
    */
    readonly resources?: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResources[] | cdktf.IResolvable;
}
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSources | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromSourcesToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromSources | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromSourcesOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFromSources | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFromSources | cdktf.IResolvable | undefined);
    private _principals;
    get principals(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipalsList;
    putPrincipals(value: NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipals[] | cdktf.IResolvable): void;
    resetPrincipals(): void;
    get principalsInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesFromSourcesPrincipals[] | undefined;
    private _resources;
    get resources(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesResourcesList;
    putResources(value: NetworkSecurityAuthzPolicyHttpRulesFromSourcesResources[] | cdktf.IResolvable): void;
    resetResources(): void;
    get resourcesInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesFromSourcesResources[] | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesFromSourcesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesFromSources[] | 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): NetworkSecurityAuthzPolicyHttpRulesFromSourcesOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesFrom {
    /**
    * not_sources block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#not_sources NetworkSecurityAuthzPolicy#not_sources}
    */
    readonly notSources?: NetworkSecurityAuthzPolicyHttpRulesFromNotSources[] | cdktf.IResolvable;
    /**
    * sources block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#sources NetworkSecurityAuthzPolicy#sources}
    */
    readonly sources?: NetworkSecurityAuthzPolicyHttpRulesFromSources[] | cdktf.IResolvable;
}
export declare function networkSecurityAuthzPolicyHttpRulesFromToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromOutputReference | NetworkSecurityAuthzPolicyHttpRulesFrom): any;
export declare function networkSecurityAuthzPolicyHttpRulesFromToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesFromOutputReference | NetworkSecurityAuthzPolicyHttpRulesFrom): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesFromOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesFrom | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesFrom | undefined);
    private _notSources;
    get notSources(): NetworkSecurityAuthzPolicyHttpRulesFromNotSourcesList;
    putNotSources(value: NetworkSecurityAuthzPolicyHttpRulesFromNotSources[] | cdktf.IResolvable): void;
    resetNotSources(): void;
    get notSourcesInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesFromNotSources[] | undefined;
    private _sources;
    get sources(): NetworkSecurityAuthzPolicyHttpRulesFromSourcesList;
    putSources(value: NetworkSecurityAuthzPolicyHttpRulesFromSources[] | cdktf.IResolvable): void;
    resetSources(): void;
    get sourcesInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesFromSources[] | undefined;
}
export interface NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValue {
    /**
    * The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc.def
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#contains NetworkSecurityAuthzPolicy#contains}
    */
    readonly contains?: string;
    /**
    * The input string must match exactly the string specified here.
    * Examples:
    * * abc only matches the value abc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#exact NetworkSecurityAuthzPolicy#exact}
    */
    readonly exact?: string;
    /**
    * If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#ignore_case NetworkSecurityAuthzPolicy#ignore_case}
    */
    readonly ignoreCase?: boolean | cdktf.IResolvable;
    /**
    * The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value abc.xyz
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#prefix NetworkSecurityAuthzPolicy#prefix}
    */
    readonly prefix?: string;
    /**
    * The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#suffix NetworkSecurityAuthzPolicy#suffix}
    */
    readonly suffix?: string;
}
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValueToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValueOutputReference | NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValue): any;
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValueToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValueOutputReference | NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValue): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValueOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValue | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValue | undefined);
    private _contains?;
    get contains(): string;
    set contains(value: string);
    resetContains(): void;
    get containsInput(): string | undefined;
    private _exact?;
    get exact(): string;
    set exact(value: string);
    resetExact(): void;
    get exactInput(): string | undefined;
    private _ignoreCase?;
    get ignoreCase(): boolean | cdktf.IResolvable;
    set ignoreCase(value: boolean | cdktf.IResolvable);
    resetIgnoreCase(): void;
    get ignoreCaseInput(): boolean | cdktf.IResolvable | undefined;
    private _prefix?;
    get prefix(): string;
    set prefix(value: string);
    resetPrefix(): void;
    get prefixInput(): string | undefined;
    private _suffix?;
    get suffix(): string;
    set suffix(value: string);
    resetSuffix(): void;
    get suffixInput(): string | undefined;
}
export interface NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeaders {
    /**
    * Specifies the name of the header in the request.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#name NetworkSecurityAuthzPolicy#name}
    */
    readonly name?: string;
    /**
    * value block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#value NetworkSecurityAuthzPolicy#value}
    */
    readonly value?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValue;
}
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeaders | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeaders | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeaders | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeaders | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _value;
    get value(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValueOutputReference;
    putValue(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValue): void;
    resetValue(): void;
    get valueInput(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersValue | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeaders[] | 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): NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSet {
    /**
    * headers block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#headers NetworkSecurityAuthzPolicy#headers}
    */
    readonly headers?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeaders[] | cdktf.IResolvable;
}
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetOutputReference | NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSet): any;
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetOutputReference | NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSet): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSet | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSet | undefined);
    private _headers;
    get headers(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeadersList;
    putHeaders(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeaders[] | cdktf.IResolvable): void;
    resetHeaders(): void;
    get headersInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetHeaders[] | undefined;
}
export interface NetworkSecurityAuthzPolicyHttpRulesToOperationsHosts {
    /**
    * The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc.def
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#contains NetworkSecurityAuthzPolicy#contains}
    */
    readonly contains?: string;
    /**
    * The input string must match exactly the string specified here.
    * Examples:
    * * abc only matches the value abc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#exact NetworkSecurityAuthzPolicy#exact}
    */
    readonly exact?: string;
    /**
    * If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#ignore_case NetworkSecurityAuthzPolicy#ignore_case}
    */
    readonly ignoreCase?: boolean | cdktf.IResolvable;
    /**
    * The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value abc.xyz
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#prefix NetworkSecurityAuthzPolicy#prefix}
    */
    readonly prefix?: string;
    /**
    * The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#suffix NetworkSecurityAuthzPolicy#suffix}
    */
    readonly suffix?: string;
}
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsHostsToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHosts | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsHostsToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHosts | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsHostsOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHosts | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsHosts | cdktf.IResolvable | undefined);
    private _contains?;
    get contains(): string;
    set contains(value: string);
    resetContains(): void;
    get containsInput(): string | undefined;
    private _exact?;
    get exact(): string;
    set exact(value: string);
    resetExact(): void;
    get exactInput(): string | undefined;
    private _ignoreCase?;
    get ignoreCase(): boolean | cdktf.IResolvable;
    set ignoreCase(value: boolean | cdktf.IResolvable);
    resetIgnoreCase(): void;
    get ignoreCaseInput(): boolean | cdktf.IResolvable | undefined;
    private _prefix?;
    get prefix(): string;
    set prefix(value: string);
    resetPrefix(): void;
    get prefixInput(): string | undefined;
    private _suffix?;
    get suffix(): string;
    set suffix(value: string);
    resetSuffix(): void;
    get suffixInput(): string | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsHostsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHosts[] | 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): NetworkSecurityAuthzPolicyHttpRulesToOperationsHostsOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesToOperationsPaths {
    /**
    * The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc.def
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#contains NetworkSecurityAuthzPolicy#contains}
    */
    readonly contains?: string;
    /**
    * The input string must match exactly the string specified here.
    * Examples:
    * * abc only matches the value abc.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#exact NetworkSecurityAuthzPolicy#exact}
    */
    readonly exact?: string;
    /**
    * If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#ignore_case NetworkSecurityAuthzPolicy#ignore_case}
    */
    readonly ignoreCase?: boolean | cdktf.IResolvable;
    /**
    * The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value abc.xyz
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#prefix NetworkSecurityAuthzPolicy#prefix}
    */
    readonly prefix?: string;
    /**
    * The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
    * Examples:
    * * abc matches the value xyz.abc
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#suffix NetworkSecurityAuthzPolicy#suffix}
    */
    readonly suffix?: string;
}
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsPathsToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsPaths | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsPathsToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperationsPaths | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsPathsOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesToOperationsPaths | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsPaths | cdktf.IResolvable | undefined);
    private _contains?;
    get contains(): string;
    set contains(value: string);
    resetContains(): void;
    get containsInput(): string | undefined;
    private _exact?;
    get exact(): string;
    set exact(value: string);
    resetExact(): void;
    get exactInput(): string | undefined;
    private _ignoreCase?;
    get ignoreCase(): boolean | cdktf.IResolvable;
    set ignoreCase(value: boolean | cdktf.IResolvable);
    resetIgnoreCase(): void;
    get ignoreCaseInput(): boolean | cdktf.IResolvable | undefined;
    private _prefix?;
    get prefix(): string;
    set prefix(value: string);
    resetPrefix(): void;
    get prefixInput(): string | undefined;
    private _suffix?;
    get suffix(): string;
    set suffix(value: string);
    resetSuffix(): void;
    get suffixInput(): string | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsPathsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesToOperationsPaths[] | 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): NetworkSecurityAuthzPolicyHttpRulesToOperationsPathsOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesToOperations {
    /**
    * A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#methods NetworkSecurityAuthzPolicy#methods}
    */
    readonly methods?: string[];
    /**
    * header_set block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#header_set NetworkSecurityAuthzPolicy#header_set}
    */
    readonly headerSet?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSet;
    /**
    * hosts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#hosts NetworkSecurityAuthzPolicy#hosts}
    */
    readonly hosts?: NetworkSecurityAuthzPolicyHttpRulesToOperationsHosts[] | cdktf.IResolvable;
    /**
    * paths block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#paths NetworkSecurityAuthzPolicy#paths}
    */
    readonly paths?: NetworkSecurityAuthzPolicyHttpRulesToOperationsPaths[] | cdktf.IResolvable;
}
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperations | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesToOperationsToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOperations | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesToOperations | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesToOperations | cdktf.IResolvable | undefined);
    private _methods?;
    get methods(): string[];
    set methods(value: string[]);
    resetMethods(): void;
    get methodsInput(): string[] | undefined;
    private _headerSet;
    get headerSet(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSetOutputReference;
    putHeaderSet(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSet): void;
    resetHeaderSet(): void;
    get headerSetInput(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHeaderSet | undefined;
    private _hosts;
    get hosts(): NetworkSecurityAuthzPolicyHttpRulesToOperationsHostsList;
    putHosts(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsHosts[] | cdktf.IResolvable): void;
    resetHosts(): void;
    get hostsInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesToOperationsHosts[] | undefined;
    private _paths;
    get paths(): NetworkSecurityAuthzPolicyHttpRulesToOperationsPathsList;
    putPaths(value: NetworkSecurityAuthzPolicyHttpRulesToOperationsPaths[] | cdktf.IResolvable): void;
    resetPaths(): void;
    get pathsInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesToOperationsPaths[] | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesToOperationsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRulesToOperations[] | 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): NetworkSecurityAuthzPolicyHttpRulesToOperationsOutputReference;
}
export interface NetworkSecurityAuthzPolicyHttpRulesTo {
    /**
    * operations block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#operations NetworkSecurityAuthzPolicy#operations}
    */
    readonly operations?: NetworkSecurityAuthzPolicyHttpRulesToOperations[] | cdktf.IResolvable;
}
export declare function networkSecurityAuthzPolicyHttpRulesToToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOutputReference | NetworkSecurityAuthzPolicyHttpRulesTo): any;
export declare function networkSecurityAuthzPolicyHttpRulesToToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRulesToOutputReference | NetworkSecurityAuthzPolicyHttpRulesTo): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesToOutputReference 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(): NetworkSecurityAuthzPolicyHttpRulesTo | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRulesTo | undefined);
    private _operations;
    get operations(): NetworkSecurityAuthzPolicyHttpRulesToOperationsList;
    putOperations(value: NetworkSecurityAuthzPolicyHttpRulesToOperations[] | cdktf.IResolvable): void;
    resetOperations(): void;
    get operationsInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRulesToOperations[] | undefined;
}
export interface NetworkSecurityAuthzPolicyHttpRules {
    /**
    * CEL expression that describes the conditions to be satisfied for the action. The result of the CEL expression is ANDed with the from and to. Refer to the CEL language reference for a list of available attributes.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#when NetworkSecurityAuthzPolicy#when}
    */
    readonly when?: string;
    /**
    * from block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#from NetworkSecurityAuthzPolicy#from}
    */
    readonly from?: NetworkSecurityAuthzPolicyHttpRulesFrom;
    /**
    * to block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#to NetworkSecurityAuthzPolicy#to}
    */
    readonly to?: NetworkSecurityAuthzPolicyHttpRulesTo;
}
export declare function networkSecurityAuthzPolicyHttpRulesToTerraform(struct?: NetworkSecurityAuthzPolicyHttpRules | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyHttpRulesToHclTerraform(struct?: NetworkSecurityAuthzPolicyHttpRules | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyHttpRulesOutputReference 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(): NetworkSecurityAuthzPolicyHttpRules | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyHttpRules | cdktf.IResolvable | undefined);
    private _when?;
    get when(): string;
    set when(value: string);
    resetWhen(): void;
    get whenInput(): string | undefined;
    private _from;
    get from(): NetworkSecurityAuthzPolicyHttpRulesFromOutputReference;
    putFrom(value: NetworkSecurityAuthzPolicyHttpRulesFrom): void;
    resetFrom(): void;
    get fromInput(): NetworkSecurityAuthzPolicyHttpRulesFrom | undefined;
    private _to;
    get to(): NetworkSecurityAuthzPolicyHttpRulesToOutputReference;
    putTo(value: NetworkSecurityAuthzPolicyHttpRulesTo): void;
    resetTo(): void;
    get toInput(): NetworkSecurityAuthzPolicyHttpRulesTo | undefined;
}
export declare class NetworkSecurityAuthzPolicyHttpRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: NetworkSecurityAuthzPolicyHttpRules[] | 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): NetworkSecurityAuthzPolicyHttpRulesOutputReference;
}
export interface NetworkSecurityAuthzPolicyTarget {
    /**
    * All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
    * For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service). Possible values: ["INTERNAL_MANAGED", "EXTERNAL_MANAGED", "INTERNAL_SELF_MANAGED"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#load_balancing_scheme NetworkSecurityAuthzPolicy#load_balancing_scheme}
    */
    readonly loadBalancingScheme: string;
    /**
    * A list of references to the Forwarding Rules on which this policy will be applied.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#resources NetworkSecurityAuthzPolicy#resources}
    */
    readonly resources?: string[];
}
export declare function networkSecurityAuthzPolicyTargetToTerraform(struct?: NetworkSecurityAuthzPolicyTargetOutputReference | NetworkSecurityAuthzPolicyTarget): any;
export declare function networkSecurityAuthzPolicyTargetToHclTerraform(struct?: NetworkSecurityAuthzPolicyTargetOutputReference | NetworkSecurityAuthzPolicyTarget): any;
export declare class NetworkSecurityAuthzPolicyTargetOutputReference 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(): NetworkSecurityAuthzPolicyTarget | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyTarget | undefined);
    private _loadBalancingScheme?;
    get loadBalancingScheme(): string;
    set loadBalancingScheme(value: string);
    get loadBalancingSchemeInput(): string | undefined;
    private _resources?;
    get resources(): string[];
    set resources(value: string[]);
    resetResources(): void;
    get resourcesInput(): string[] | undefined;
}
export interface NetworkSecurityAuthzPolicyTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#create NetworkSecurityAuthzPolicy#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#delete NetworkSecurityAuthzPolicy#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#update NetworkSecurityAuthzPolicy#update}
    */
    readonly update?: string;
}
export declare function networkSecurityAuthzPolicyTimeoutsToTerraform(struct?: NetworkSecurityAuthzPolicyTimeouts | cdktf.IResolvable): any;
export declare function networkSecurityAuthzPolicyTimeoutsToHclTerraform(struct?: NetworkSecurityAuthzPolicyTimeouts | cdktf.IResolvable): any;
export declare class NetworkSecurityAuthzPolicyTimeoutsOutputReference 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(): NetworkSecurityAuthzPolicyTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: NetworkSecurityAuthzPolicyTimeouts | 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.25.0/docs/resources/network_security_authz_policy google_network_security_authz_policy}
*/
export declare class NetworkSecurityAuthzPolicy extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_network_security_authz_policy";
    /**
    * Generates CDKTF code for importing a NetworkSecurityAuthzPolicy 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 NetworkSecurityAuthzPolicy to import
    * @param importFromId The id of the existing NetworkSecurityAuthzPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.25.0/docs/resources/network_security_authz_policy#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the NetworkSecurityAuthzPolicy 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.25.0/docs/resources/network_security_authz_policy google_network_security_authz_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 NetworkSecurityAuthzPolicyConfig
    */
    constructor(scope: Construct, id: string, config: NetworkSecurityAuthzPolicyConfig);
    private _action?;
    get action(): string;
    set action(value: string);
    get actionInput(): 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 _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;
    get updateTime(): string;
    private _customProvider;
    get customProvider(): NetworkSecurityAuthzPolicyCustomProviderOutputReference;
    putCustomProvider(value: NetworkSecurityAuthzPolicyCustomProvider): void;
    resetCustomProvider(): void;
    get customProviderInput(): NetworkSecurityAuthzPolicyCustomProvider | undefined;
    private _httpRules;
    get httpRules(): NetworkSecurityAuthzPolicyHttpRulesList;
    putHttpRules(value: NetworkSecurityAuthzPolicyHttpRules[] | cdktf.IResolvable): void;
    resetHttpRules(): void;
    get httpRulesInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyHttpRules[] | undefined;
    private _target;
    get target(): NetworkSecurityAuthzPolicyTargetOutputReference;
    putTarget(value: NetworkSecurityAuthzPolicyTarget): void;
    get targetInput(): NetworkSecurityAuthzPolicyTarget | undefined;
    private _timeouts;
    get timeouts(): NetworkSecurityAuthzPolicyTimeoutsOutputReference;
    putTimeouts(value: NetworkSecurityAuthzPolicyTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | NetworkSecurityAuthzPolicyTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
