import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Vertex AI Feature Online Store provides a centralized repository for serving ML features and embedding indexes at low latency. The Feature Online Store is a top-level container.
 *
 * To get more information about FeatureOnlineStore, see:
 *
 * * [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featureOnlineStores)
 * * How-to Guides
 *     * [Official Documentation](https://cloud.google.com/vertex-ai/docs)
 *
 * ## Example Usage
 *
 * ### Vertex Ai Feature Online Store
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const featureOnlineStore = new gcp.vertex.AiFeatureOnlineStore("feature_online_store", {
 *     name: "example_feature_online_store",
 *     labels: {
 *         foo: "bar",
 *     },
 *     region: "us-central1",
 *     bigtable: {
 *         autoScaling: {
 *             minNodeCount: 1,
 *             maxNodeCount: 3,
 *             cpuUtilizationTarget: 50,
 *         },
 *     },
 * });
 * ```
 * ### Vertex Ai Featureonlinestore With Optimized
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const project = gcp.organizations.getProject({});
 * const featureonlinestore = new gcp.vertex.AiFeatureOnlineStore("featureonlinestore", {
 *     name: "example_feature_online_store_optimized",
 *     labels: {
 *         foo: "bar",
 *     },
 *     region: "us-central1",
 *     optimized: {},
 *     dedicatedServingEndpoint: {
 *         privateServiceConnectConfig: {
 *             enablePrivateServiceConnect: true,
 *             projectAllowlists: [project.then(project => project.number)],
 *         },
 *     },
 * });
 * ```
 * ### Vertex Ai Featureonlinestore With Beta Fields Bigtable
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const featureonlinestore = new gcp.vertex.AiFeatureOnlineStore("featureonlinestore", {
 *     name: "example_feature_online_store_beta_bigtable",
 *     labels: {
 *         foo: "bar",
 *     },
 *     region: "us-central1",
 *     bigtable: {
 *         autoScaling: {
 *             minNodeCount: 1,
 *             maxNodeCount: 2,
 *             cpuUtilizationTarget: 80,
 *         },
 *     },
 *     embeddingManagement: {
 *         enabled: true,
 *     },
 *     forceDestroy: true,
 * });
 * const project = gcp.organizations.getProject({});
 * ```
 *
 * ## Import
 *
 * FeatureOnlineStore can be imported using any of these accepted formats:
 *
 * * `projects/{{project}}/locations/{{region}}/featureOnlineStores/{{name}}`
 *
 * * `{{project}}/{{region}}/{{name}}`
 *
 * * `{{region}}/{{name}}`
 *
 * * `{{name}}`
 *
 * When using the `pulumi import` command, FeatureOnlineStore can be imported using one of the formats above. For example:
 *
 * ```sh
 * $ pulumi import gcp:vertex/aiFeatureOnlineStore:AiFeatureOnlineStore default projects/{{project}}/locations/{{region}}/featureOnlineStores/{{name}}
 * ```
 *
 * ```sh
 * $ pulumi import gcp:vertex/aiFeatureOnlineStore:AiFeatureOnlineStore default {{project}}/{{region}}/{{name}}
 * ```
 *
 * ```sh
 * $ pulumi import gcp:vertex/aiFeatureOnlineStore:AiFeatureOnlineStore default {{region}}/{{name}}
 * ```
 *
 * ```sh
 * $ pulumi import gcp:vertex/aiFeatureOnlineStore:AiFeatureOnlineStore default {{name}}
 * ```
 */
export declare class AiFeatureOnlineStore extends pulumi.CustomResource {
    /**
     * Get an existing AiFeatureOnlineStore resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: AiFeatureOnlineStoreState, opts?: pulumi.CustomResourceOptions): AiFeatureOnlineStore;
    /**
     * Returns true if the given object is an instance of AiFeatureOnlineStore.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is AiFeatureOnlineStore;
    /**
     * Settings for Cloud Bigtable instance that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore.
     * Structure is documented below.
     */
    readonly bigtable: pulumi.Output<outputs.vertex.AiFeatureOnlineStoreBigtable | undefined>;
    /**
     * The timestamp of when the feature online store was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
     */
    readonly createTime: pulumi.Output<string>;
    /**
     * The dedicated serving endpoint for this FeatureOnlineStore, which is different from common vertex service endpoint. Only need to be set when you choose Optimized storage type or enable EmbeddingManagement. Will use public endpoint by default.
     * Structure is documented below.
     */
    readonly dedicatedServingEndpoint: pulumi.Output<outputs.vertex.AiFeatureOnlineStoreDedicatedServingEndpoint>;
    /**
     * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
     */
    readonly effectiveLabels: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The settings for embedding management in FeatureOnlineStore. Embedding management can only be set for BigTable. It is enabled by default for optimized storagetype.
     * Structure is documented below.
     *
     * > **Warning:** `embeddingManagement` is deprecated. This field is no longer needed anymore and embedding management is automatically enabled when specifying Optimized storage type
     *
     * @deprecated `embeddingManagement` is deprecated. This field is no longer needed anymore and embedding management is automatically enabled when specifying Optimized storage type
     */
    readonly embeddingManagement: pulumi.Output<outputs.vertex.AiFeatureOnlineStoreEmbeddingManagement>;
    /**
     * If set, both of the online and offline data storage will be secured by this key.
     * Structure is documented below.
     */
    readonly encryptionSpec: pulumi.Output<outputs.vertex.AiFeatureOnlineStoreEncryptionSpec | undefined>;
    /**
     * Used to perform consistent read-modify-write updates.
     */
    readonly etag: pulumi.Output<string>;
    /**
     * If set to true, any FeatureViews and Features for this FeatureOnlineStore will also be deleted.
     */
    readonly forceDestroy: pulumi.Output<boolean | undefined>;
    /**
     * The labels with user-defined metadata to organize your feature online stores.
     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * Please refer to the field `effectiveLabels` for all of the labels present on the resource.
     */
    readonly labels: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The resource name of the Feature Online Store. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Settings for the Optimized store that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore
     */
    readonly optimized: pulumi.Output<outputs.vertex.AiFeatureOnlineStoreOptimized | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    readonly project: pulumi.Output<string>;
    /**
     * The combination of labels configured directly on the resource
     * and default labels configured on the provider.
     */
    readonly pulumiLabels: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The region of feature online store. eg us-central1
     */
    readonly region: pulumi.Output<string>;
    /**
     * The state of the Feature Online Store. See the possible states in [this link](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featureOnlineStores#state).
     */
    readonly state: pulumi.Output<string>;
    /**
     * The timestamp of when the feature online store was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
     */
    readonly updateTime: pulumi.Output<string>;
    /**
     * Create a AiFeatureOnlineStore resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args?: AiFeatureOnlineStoreArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering AiFeatureOnlineStore resources.
 */
export interface AiFeatureOnlineStoreState {
    /**
     * Settings for Cloud Bigtable instance that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore.
     * Structure is documented below.
     */
    bigtable?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreBigtable>;
    /**
     * The timestamp of when the feature online store was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
     */
    createTime?: pulumi.Input<string>;
    /**
     * The dedicated serving endpoint for this FeatureOnlineStore, which is different from common vertex service endpoint. Only need to be set when you choose Optimized storage type or enable EmbeddingManagement. Will use public endpoint by default.
     * Structure is documented below.
     */
    dedicatedServingEndpoint?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreDedicatedServingEndpoint>;
    /**
     * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
     */
    effectiveLabels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The settings for embedding management in FeatureOnlineStore. Embedding management can only be set for BigTable. It is enabled by default for optimized storagetype.
     * Structure is documented below.
     *
     * > **Warning:** `embeddingManagement` is deprecated. This field is no longer needed anymore and embedding management is automatically enabled when specifying Optimized storage type
     *
     * @deprecated `embeddingManagement` is deprecated. This field is no longer needed anymore and embedding management is automatically enabled when specifying Optimized storage type
     */
    embeddingManagement?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreEmbeddingManagement>;
    /**
     * If set, both of the online and offline data storage will be secured by this key.
     * Structure is documented below.
     */
    encryptionSpec?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreEncryptionSpec>;
    /**
     * Used to perform consistent read-modify-write updates.
     */
    etag?: pulumi.Input<string>;
    /**
     * If set to true, any FeatureViews and Features for this FeatureOnlineStore will also be deleted.
     */
    forceDestroy?: pulumi.Input<boolean>;
    /**
     * The labels with user-defined metadata to organize your feature online stores.
     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * Please refer to the field `effectiveLabels` for all of the labels present on the resource.
     */
    labels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The resource name of the Feature Online Store. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number.
     */
    name?: pulumi.Input<string>;
    /**
     * Settings for the Optimized store that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore
     */
    optimized?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreOptimized>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * The combination of labels configured directly on the resource
     * and default labels configured on the provider.
     */
    pulumiLabels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The region of feature online store. eg us-central1
     */
    region?: pulumi.Input<string>;
    /**
     * The state of the Feature Online Store. See the possible states in [this link](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featureOnlineStores#state).
     */
    state?: pulumi.Input<string>;
    /**
     * The timestamp of when the feature online store was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
     */
    updateTime?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a AiFeatureOnlineStore resource.
 */
export interface AiFeatureOnlineStoreArgs {
    /**
     * Settings for Cloud Bigtable instance that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore.
     * Structure is documented below.
     */
    bigtable?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreBigtable>;
    /**
     * The dedicated serving endpoint for this FeatureOnlineStore, which is different from common vertex service endpoint. Only need to be set when you choose Optimized storage type or enable EmbeddingManagement. Will use public endpoint by default.
     * Structure is documented below.
     */
    dedicatedServingEndpoint?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreDedicatedServingEndpoint>;
    /**
     * The settings for embedding management in FeatureOnlineStore. Embedding management can only be set for BigTable. It is enabled by default for optimized storagetype.
     * Structure is documented below.
     *
     * > **Warning:** `embeddingManagement` is deprecated. This field is no longer needed anymore and embedding management is automatically enabled when specifying Optimized storage type
     *
     * @deprecated `embeddingManagement` is deprecated. This field is no longer needed anymore and embedding management is automatically enabled when specifying Optimized storage type
     */
    embeddingManagement?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreEmbeddingManagement>;
    /**
     * If set, both of the online and offline data storage will be secured by this key.
     * Structure is documented below.
     */
    encryptionSpec?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreEncryptionSpec>;
    /**
     * If set to true, any FeatureViews and Features for this FeatureOnlineStore will also be deleted.
     */
    forceDestroy?: pulumi.Input<boolean>;
    /**
     * The labels with user-defined metadata to organize your feature online stores.
     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
     * Please refer to the field `effectiveLabels` for all of the labels present on the resource.
     */
    labels?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * The resource name of the Feature Online Store. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number.
     */
    name?: pulumi.Input<string>;
    /**
     * Settings for the Optimized store that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore
     */
    optimized?: pulumi.Input<inputs.vertex.AiFeatureOnlineStoreOptimized>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string>;
    /**
     * The region of feature online store. eg us-central1
     */
    region?: pulumi.Input<string>;
}
