/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface VertexAiIndexEndpointDeployedIndexConfig extends cdktf.TerraformMetaArguments {
    /**
    * The user specified ID of the DeployedIndex. The ID can be up to 128 characters long and must start with a letter and only contain letters, numbers, and underscores. The ID must be unique within the project it is created in.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#deployed_index_id VertexAiIndexEndpointDeployedIndex#deployed_index_id}
    */
    readonly deployedIndexId: string;
    /**
    * The deployment group can be no longer than 64 characters (eg: 'test', 'prod'). If not set, we will use the 'default' deployment group.
    * Creating deployment_groups with reserved_ip_ranges is a recommended practice when the peered network has multiple peering ranges. This creates your deployments from predictable IP spaces for easier traffic administration. Also, one deployment_group (except 'default') can only be used with the same reserved_ip_ranges which means if the deployment_group has been used with reserved_ip_ranges: [a, b, c], using it with [a, b] or [d, e] is disallowed. [See the official documentation here](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.indexEndpoints#DeployedIndex.FIELDS.deployment_group).
    * Note: we only support up to 5 deployment groups (not including 'default').
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#deployment_group VertexAiIndexEndpointDeployedIndex#deployment_group}
    */
    readonly deploymentGroup?: string;
    /**
    * The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#display_name VertexAiIndexEndpointDeployedIndex#display_name}
    */
    readonly displayName?: string;
    /**
    * If true, private endpoint's access logs are sent to Cloud Logging.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#enable_access_logging VertexAiIndexEndpointDeployedIndex#enable_access_logging}
    */
    readonly enableAccessLogging?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#id VertexAiIndexEndpointDeployedIndex#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;
    /**
    * The name of the Index this is the deployment of.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#index VertexAiIndexEndpointDeployedIndex#index}
    */
    readonly index: string;
    /**
    * Identifies the index endpoint. Must be in the format
    * 'projects/{{project}}/locations/{{region}}/indexEndpoints/{{indexEndpoint}}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#index_endpoint VertexAiIndexEndpointDeployedIndex#index_endpoint}
    */
    readonly indexEndpoint: string;
    /**
    * A list of reserved ip ranges under the VPC network that can be used for this DeployedIndex.
    * If set, we will deploy the index within the provided ip ranges. Otherwise, the index might be deployed to any ip ranges under the provided VPC network.
    *
    * The value should be the name of the address (https://cloud.google.com/compute/docs/reference/rest/v1/addresses) Example: ['vertex-ai-ip-range'].
    *
    * For more information about subnets and network IP ranges, please see https://cloud.google.com/vpc/docs/subnets#manually_created_subnet_ip_ranges.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#reserved_ip_ranges VertexAiIndexEndpointDeployedIndex#reserved_ip_ranges}
    */
    readonly reservedIpRanges?: string[];
    /**
    * automatic_resources block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#automatic_resources VertexAiIndexEndpointDeployedIndex#automatic_resources}
    */
    readonly automaticResources?: VertexAiIndexEndpointDeployedIndexAutomaticResources;
    /**
    * dedicated_resources block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#dedicated_resources VertexAiIndexEndpointDeployedIndex#dedicated_resources}
    */
    readonly dedicatedResources?: VertexAiIndexEndpointDeployedIndexDedicatedResources;
    /**
    * deployed_index_auth_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#deployed_index_auth_config VertexAiIndexEndpointDeployedIndex#deployed_index_auth_config}
    */
    readonly deployedIndexAuthConfig?: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#timeouts VertexAiIndexEndpointDeployedIndex#timeouts}
    */
    readonly timeouts?: VertexAiIndexEndpointDeployedIndexTimeouts;
}
export interface VertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpoints {
}
export declare function vertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpointsToTerraform(struct?: VertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpoints): any;
export declare function vertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpointsToHclTerraform(struct?: VertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpoints): any;
export declare class VertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpointsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): VertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpoints | undefined;
    set internalValue(value: VertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpoints | undefined);
    get matchAddress(): string;
    get network(): string;
    get projectId(): string;
}
export declare class VertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpointsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): VertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpointsOutputReference;
}
export interface VertexAiIndexEndpointDeployedIndexPrivateEndpoints {
}
export declare function vertexAiIndexEndpointDeployedIndexPrivateEndpointsToTerraform(struct?: VertexAiIndexEndpointDeployedIndexPrivateEndpoints): any;
export declare function vertexAiIndexEndpointDeployedIndexPrivateEndpointsToHclTerraform(struct?: VertexAiIndexEndpointDeployedIndexPrivateEndpoints): any;
export declare class VertexAiIndexEndpointDeployedIndexPrivateEndpointsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @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(): VertexAiIndexEndpointDeployedIndexPrivateEndpoints | undefined;
    set internalValue(value: VertexAiIndexEndpointDeployedIndexPrivateEndpoints | undefined);
    get matchGrpcAddress(): string;
    private _pscAutomatedEndpoints;
    get pscAutomatedEndpoints(): VertexAiIndexEndpointDeployedIndexPrivateEndpointsPscAutomatedEndpointsList;
    get serviceAttachment(): string;
}
export declare class VertexAiIndexEndpointDeployedIndexPrivateEndpointsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @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): VertexAiIndexEndpointDeployedIndexPrivateEndpointsOutputReference;
}
export interface VertexAiIndexEndpointDeployedIndexAutomaticResources {
    /**
    * The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If maxReplicaCount is not set, the default value is minReplicaCount. The max allowed replica count is 1000.
    *
    * The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, a no upper bound for scaling under heavy traffic will be assume, though Vertex AI may be unable to scale beyond certain replica number.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#max_replica_count VertexAiIndexEndpointDeployedIndex#max_replica_count}
    */
    readonly maxReplicaCount?: number;
    /**
    * The minimum number of replicas this DeployedModel will be always deployed on. If minReplicaCount is not set, the default value is 2 (we don't provide SLA when minReplicaCount=1).
    *
    * If traffic against it increases, it may dynamically be deployed onto more replicas up to [maxReplicaCount](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/AutomaticResources#FIELDS.max_replica_count), and as traffic decreases, some of these extra replicas may be freed. If the requested value is too large, the deployment will error.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#min_replica_count VertexAiIndexEndpointDeployedIndex#min_replica_count}
    */
    readonly minReplicaCount?: number;
}
export declare function vertexAiIndexEndpointDeployedIndexAutomaticResourcesToTerraform(struct?: VertexAiIndexEndpointDeployedIndexAutomaticResourcesOutputReference | VertexAiIndexEndpointDeployedIndexAutomaticResources): any;
export declare function vertexAiIndexEndpointDeployedIndexAutomaticResourcesToHclTerraform(struct?: VertexAiIndexEndpointDeployedIndexAutomaticResourcesOutputReference | VertexAiIndexEndpointDeployedIndexAutomaticResources): any;
export declare class VertexAiIndexEndpointDeployedIndexAutomaticResourcesOutputReference 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(): VertexAiIndexEndpointDeployedIndexAutomaticResources | undefined;
    set internalValue(value: VertexAiIndexEndpointDeployedIndexAutomaticResources | undefined);
    private _maxReplicaCount?;
    get maxReplicaCount(): number;
    set maxReplicaCount(value: number);
    resetMaxReplicaCount(): void;
    get maxReplicaCountInput(): number | undefined;
    private _minReplicaCount?;
    get minReplicaCount(): number;
    set minReplicaCount(value: number);
    resetMinReplicaCount(): void;
    get minReplicaCountInput(): number | undefined;
}
export interface VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpec {
    /**
    * The type of the machine.
    *
    * See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types)
    *
    * See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types).
    *
    * For [DeployedModel](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.endpoints#DeployedModel) this field is optional, and the default value is n1-standard-2. For [BatchPredictionJob](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.batchPredictionJobs#BatchPredictionJob) or as part of [WorkerPoolSpec](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/CustomJobSpec#WorkerPoolSpec) this field is required.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#machine_type VertexAiIndexEndpointDeployedIndex#machine_type}
    */
    readonly machineType?: string;
}
export declare function vertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpecToTerraform(struct?: VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpecOutputReference | VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpec): any;
export declare function vertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpecToHclTerraform(struct?: VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpecOutputReference | VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpec): any;
export declare class VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpecOutputReference 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(): VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpec | undefined;
    set internalValue(value: VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpec | undefined);
    private _machineType?;
    get machineType(): string;
    set machineType(value: string);
    resetMachineType(): void;
    get machineTypeInput(): string | undefined;
}
export interface VertexAiIndexEndpointDeployedIndexDedicatedResources {
    /**
    * The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If maxReplicaCount is not set, the default value is minReplicaCount
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#max_replica_count VertexAiIndexEndpointDeployedIndex#max_replica_count}
    */
    readonly maxReplicaCount?: number;
    /**
    * The minimum number of machine replicas this DeployedModel will be always deployed on. This value must be greater than or equal to 1.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#min_replica_count VertexAiIndexEndpointDeployedIndex#min_replica_count}
    */
    readonly minReplicaCount: number;
    /**
    * machine_spec block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#machine_spec VertexAiIndexEndpointDeployedIndex#machine_spec}
    */
    readonly machineSpec: VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpec;
}
export declare function vertexAiIndexEndpointDeployedIndexDedicatedResourcesToTerraform(struct?: VertexAiIndexEndpointDeployedIndexDedicatedResourcesOutputReference | VertexAiIndexEndpointDeployedIndexDedicatedResources): any;
export declare function vertexAiIndexEndpointDeployedIndexDedicatedResourcesToHclTerraform(struct?: VertexAiIndexEndpointDeployedIndexDedicatedResourcesOutputReference | VertexAiIndexEndpointDeployedIndexDedicatedResources): any;
export declare class VertexAiIndexEndpointDeployedIndexDedicatedResourcesOutputReference 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(): VertexAiIndexEndpointDeployedIndexDedicatedResources | undefined;
    set internalValue(value: VertexAiIndexEndpointDeployedIndexDedicatedResources | undefined);
    private _maxReplicaCount?;
    get maxReplicaCount(): number;
    set maxReplicaCount(value: number);
    resetMaxReplicaCount(): void;
    get maxReplicaCountInput(): number | undefined;
    private _minReplicaCount?;
    get minReplicaCount(): number;
    set minReplicaCount(value: number);
    get minReplicaCountInput(): number | undefined;
    private _machineSpec;
    get machineSpec(): VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpecOutputReference;
    putMachineSpec(value: VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpec): void;
    get machineSpecInput(): VertexAiIndexEndpointDeployedIndexDedicatedResourcesMachineSpec | undefined;
}
export interface VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProvider {
    /**
    * A list of allowed JWT issuers. Each entry must be a valid Google service account, in the following format: service-account-name@project-id.iam.gserviceaccount.com
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#allowed_issuers VertexAiIndexEndpointDeployedIndex#allowed_issuers}
    */
    readonly allowedIssuers?: string[];
    /**
    * The list of JWT audiences. that are allowed to access. A JWT containing any of these audiences will be accepted.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#audiences VertexAiIndexEndpointDeployedIndex#audiences}
    */
    readonly audiences?: string[];
}
export declare function vertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProviderToTerraform(struct?: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProviderOutputReference | VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProvider): any;
export declare function vertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProviderToHclTerraform(struct?: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProviderOutputReference | VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProvider): any;
export declare class VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProviderOutputReference 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(): VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProvider | undefined;
    set internalValue(value: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProvider | undefined);
    private _allowedIssuers?;
    get allowedIssuers(): string[];
    set allowedIssuers(value: string[]);
    resetAllowedIssuers(): void;
    get allowedIssuersInput(): string[] | undefined;
    private _audiences?;
    get audiences(): string[];
    set audiences(value: string[]);
    resetAudiences(): void;
    get audiencesInput(): string[] | undefined;
}
export interface VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfig {
    /**
    * auth_provider block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#auth_provider VertexAiIndexEndpointDeployedIndex#auth_provider}
    */
    readonly authProvider?: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProvider;
}
export declare function vertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigToTerraform(struct?: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigOutputReference | VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfig): any;
export declare function vertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigToHclTerraform(struct?: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigOutputReference | VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfig): any;
export declare class VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigOutputReference 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(): VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfig | undefined;
    set internalValue(value: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfig | undefined);
    private _authProvider;
    get authProvider(): VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProviderOutputReference;
    putAuthProvider(value: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProvider): void;
    resetAuthProvider(): void;
    get authProviderInput(): VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigAuthProvider | undefined;
}
export interface VertexAiIndexEndpointDeployedIndexTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#create VertexAiIndexEndpointDeployedIndex#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#delete VertexAiIndexEndpointDeployedIndex#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#update VertexAiIndexEndpointDeployedIndex#update}
    */
    readonly update?: string;
}
export declare function vertexAiIndexEndpointDeployedIndexTimeoutsToTerraform(struct?: VertexAiIndexEndpointDeployedIndexTimeouts | cdktf.IResolvable): any;
export declare function vertexAiIndexEndpointDeployedIndexTimeoutsToHclTerraform(struct?: VertexAiIndexEndpointDeployedIndexTimeouts | cdktf.IResolvable): any;
export declare class VertexAiIndexEndpointDeployedIndexTimeoutsOutputReference 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(): VertexAiIndexEndpointDeployedIndexTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: VertexAiIndexEndpointDeployedIndexTimeouts | 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.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index google_vertex_ai_index_endpoint_deployed_index}
*/
export declare class VertexAiIndexEndpointDeployedIndex extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_vertex_ai_index_endpoint_deployed_index";
    /**
    * Generates CDKTF code for importing a VertexAiIndexEndpointDeployedIndex 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 VertexAiIndexEndpointDeployedIndex to import
    * @param importFromId The id of the existing VertexAiIndexEndpointDeployedIndex that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the VertexAiIndexEndpointDeployedIndex 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.3.0/docs/resources/vertex_ai_index_endpoint_deployed_index google_vertex_ai_index_endpoint_deployed_index} 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 VertexAiIndexEndpointDeployedIndexConfig
    */
    constructor(scope: Construct, id: string, config: VertexAiIndexEndpointDeployedIndexConfig);
    get createTime(): string;
    private _deployedIndexId?;
    get deployedIndexId(): string;
    set deployedIndexId(value: string);
    get deployedIndexIdInput(): string | undefined;
    private _deploymentGroup?;
    get deploymentGroup(): string;
    set deploymentGroup(value: string);
    resetDeploymentGroup(): void;
    get deploymentGroupInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _enableAccessLogging?;
    get enableAccessLogging(): boolean | cdktf.IResolvable;
    set enableAccessLogging(value: boolean | cdktf.IResolvable);
    resetEnableAccessLogging(): void;
    get enableAccessLoggingInput(): boolean | cdktf.IResolvable | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _index?;
    get index(): string;
    set index(value: string);
    get indexInput(): string | undefined;
    private _indexEndpoint?;
    get indexEndpoint(): string;
    set indexEndpoint(value: string);
    get indexEndpointInput(): string | undefined;
    get indexSyncTime(): string;
    get name(): string;
    private _privateEndpoints;
    get privateEndpoints(): VertexAiIndexEndpointDeployedIndexPrivateEndpointsList;
    private _reservedIpRanges?;
    get reservedIpRanges(): string[];
    set reservedIpRanges(value: string[]);
    resetReservedIpRanges(): void;
    get reservedIpRangesInput(): string[] | undefined;
    private _automaticResources;
    get automaticResources(): VertexAiIndexEndpointDeployedIndexAutomaticResourcesOutputReference;
    putAutomaticResources(value: VertexAiIndexEndpointDeployedIndexAutomaticResources): void;
    resetAutomaticResources(): void;
    get automaticResourcesInput(): VertexAiIndexEndpointDeployedIndexAutomaticResources | undefined;
    private _dedicatedResources;
    get dedicatedResources(): VertexAiIndexEndpointDeployedIndexDedicatedResourcesOutputReference;
    putDedicatedResources(value: VertexAiIndexEndpointDeployedIndexDedicatedResources): void;
    resetDedicatedResources(): void;
    get dedicatedResourcesInput(): VertexAiIndexEndpointDeployedIndexDedicatedResources | undefined;
    private _deployedIndexAuthConfig;
    get deployedIndexAuthConfig(): VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfigOutputReference;
    putDeployedIndexAuthConfig(value: VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfig): void;
    resetDeployedIndexAuthConfig(): void;
    get deployedIndexAuthConfigInput(): VertexAiIndexEndpointDeployedIndexDeployedIndexAuthConfig | undefined;
    private _timeouts;
    get timeouts(): VertexAiIndexEndpointDeployedIndexTimeoutsOutputReference;
    putTimeouts(value: VertexAiIndexEndpointDeployedIndexTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | VertexAiIndexEndpointDeployedIndexTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
