import * as cdk from "../../core";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
/**
 * The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph.
 *
 * @cloudformationResource AWS::NeptuneGraph::Graph
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html
 */
export declare class CfnGraph extends cdk.CfnResource implements cdk.IInspectable {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnGraph from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnGraph;
    /**
     * The connection endpoint for the graph. For example: `g-12a3bcdef4.us-east-1.neptune-graph.amazonaws.com`
     *
     * @cloudformationAttribute Endpoint
     */
    readonly attrEndpoint: string;
    /**
     * Graph resource ARN
     *
     * @cloudformationAttribute GraphArn
     */
    readonly attrGraphArn: string;
    /**
     * The auto-generated id assigned by the service.
     *
     * @cloudformationAttribute GraphId
     */
    readonly attrGraphId: string;
    /**
     * Value that indicates whether the Graph has deletion protection enabled.
     */
    deletionProtection?: boolean | cdk.IResolvable;
    /**
     * Contains a user-supplied name for the Graph.
     */
    graphName?: string;
    /**
     * Memory for the Graph.
     */
    provisionedMemory: number;
    /**
     * Specifies whether the Graph can be reached over the internet. Access to all graphs requires IAM authentication.
     */
    publicConnectivity?: boolean | cdk.IResolvable;
    /**
     * Specifies the number of replicas you want when finished. All replicas will be provisioned in different availability zones.
     */
    replicaCount?: number;
    /**
     * The tags associated with this graph.
     */
    tags?: Array<cdk.CfnTag>;
    /**
     * The vector search configuration.
     */
    vectorSearchConfiguration?: cdk.IResolvable | CfnGraph.VectorSearchConfigurationProperty;
    /**
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnGraphProps);
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnGraph {
    /**
     * The vector search configuration.
     *
     * @struct
     * @stability external
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-neptunegraph-graph-vectorsearchconfiguration.html
     */
    interface VectorSearchConfigurationProperty {
        /**
         * The vector search dimension.
         *
         * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-neptunegraph-graph-vectorsearchconfiguration.html#cfn-neptunegraph-graph-vectorsearchconfiguration-vectorsearchdimension
         */
        readonly vectorSearchDimension: number;
    }
}
/**
 * Properties for defining a `CfnGraph`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html
 */
export interface CfnGraphProps {
    /**
     * Value that indicates whether the Graph has deletion protection enabled.
     *
     * The graph can't be deleted when deletion protection is enabled.
     *
     * _Default_: If not specified, the default value is true.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html#cfn-neptunegraph-graph-deletionprotection
     */
    readonly deletionProtection?: boolean | cdk.IResolvable;
    /**
     * Contains a user-supplied name for the Graph.
     *
     * If you don't specify a name, we generate a unique Graph Name using a combination of Stack Name and a UUID comprising of 4 characters.
     *
     * _Important_: If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html#cfn-neptunegraph-graph-graphname
     */
    readonly graphName?: string;
    /**
     * Memory for the Graph.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html#cfn-neptunegraph-graph-provisionedmemory
     */
    readonly provisionedMemory: number;
    /**
     * Specifies whether the Graph can be reached over the internet. Access to all graphs requires IAM authentication.
     *
     * When the Graph is publicly reachable, its Domain Name System (DNS) endpoint resolves to the public IP address from the internet.
     *
     * When the Graph isn't publicly reachable, you need to create a PrivateGraphEndpoint in a given VPC to ensure the DNS name resolves to a private IP address that is reachable from the VPC.
     *
     * _Default_: If not specified, the default value is false.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html#cfn-neptunegraph-graph-publicconnectivity
     */
    readonly publicConnectivity?: boolean | cdk.IResolvable;
    /**
     * Specifies the number of replicas you want when finished. All replicas will be provisioned in different availability zones.
     *
     * Replica Count should always be less than or equal to 2.
     *
     * _Default_: If not specified, the default value is 1.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html#cfn-neptunegraph-graph-replicacount
     */
    readonly replicaCount?: number;
    /**
     * The tags associated with this graph.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html#cfn-neptunegraph-graph-tags
     */
    readonly tags?: Array<cdk.CfnTag>;
    /**
     * The vector search configuration.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-graph.html#cfn-neptunegraph-graph-vectorsearchconfiguration
     */
    readonly vectorSearchConfiguration?: cdk.IResolvable | CfnGraph.VectorSearchConfigurationProperty;
}
/**
 * The AWS::NeptuneGraph::PrivateGraphEndpoint resource creates an Amazon NeptuneGraph PrivateGraphEndpoint.
 *
 * @cloudformationResource AWS::NeptuneGraph::PrivateGraphEndpoint
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html
 */
export declare class CfnPrivateGraphEndpoint extends cdk.CfnResource implements cdk.IInspectable {
    /**
     * The CloudFormation resource type name for this resource class.
     */
    static readonly CFN_RESOURCE_TYPE_NAME: string;
    /**
     * Build a CfnPrivateGraphEndpoint from CloudFormation properties
     *
     * A factory method that creates a new instance of this class from an object
     * containing the CloudFormation properties of this resource.
     * Used in the @aws-cdk/cloudformation-include module.
     *
     * @internal
     */
    static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnPrivateGraphEndpoint;
    /**
     * PrivateGraphEndpoint resource identifier generated by concatenating the associated GraphIdentifier and VpcId with an underscore separator.
     *
     *  For example, if GraphIdentifier is `g-12a3bcdef4` and VpcId is `vpc-0a12bc34567de8f90`, the generated PrivateGraphEndpointIdentifier will be `g-12a3bcdef4_vpc-0a12bc34567de8f90`
     *
     * @cloudformationAttribute PrivateGraphEndpointIdentifier
     */
    readonly attrPrivateGraphEndpointIdentifier: string;
    /**
     * VPC endpoint that provides a private connection between the Graph and specified VPC.
     *
     * @cloudformationAttribute VpcEndpointId
     */
    readonly attrVpcEndpointId: string;
    /**
     * The auto-generated Graph Id assigned by the service.
     */
    graphIdentifier: string;
    /**
     * The security group Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.
     */
    securityGroupIds?: Array<string>;
    /**
     * The subnet Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.
     */
    subnetIds?: Array<string>;
    /**
     * The VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.
     */
    vpcId: string;
    /**
     * @param scope Scope in which this resource is defined
     * @param id Construct identifier for this resource (unique in its scope)
     * @param props Resource properties
     */
    constructor(scope: constructs.Construct, id: string, props: CfnPrivateGraphEndpointProps);
    protected get cfnProperties(): Record<string, any>;
    /**
     * Examines the CloudFormation resource and discloses attributes
     *
     * @param inspector tree inspector to collect and process attributes
     */
    inspect(inspector: cdk.TreeInspector): void;
    protected renderProperties(props: Record<string, any>): Record<string, any>;
}
/**
 * Properties for defining a `CfnPrivateGraphEndpoint`
 *
 * @struct
 * @stability external
 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html
 */
export interface CfnPrivateGraphEndpointProps {
    /**
     * The auto-generated Graph Id assigned by the service.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html#cfn-neptunegraph-privategraphendpoint-graphidentifier
     */
    readonly graphIdentifier: string;
    /**
     * The security group Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html#cfn-neptunegraph-privategraphendpoint-securitygroupids
     */
    readonly securityGroupIds?: Array<string>;
    /**
     * The subnet Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html#cfn-neptunegraph-privategraphendpoint-subnetids
     */
    readonly subnetIds?: Array<string>;
    /**
     * The VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.
     *
     * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptunegraph-privategraphendpoint.html#cfn-neptunegraph-privategraphendpoint-vpcid
     */
    readonly vpcId: string;
}
