import * as pulumi from "@pulumi/pulumi";
/**
 * This resource provides the Data Asset resource in Oracle Cloud Infrastructure Data Catalog service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-catalog/latest/DataAsset
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/datacatalog
 *
 * Create a new data asset.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testDataAsset = new oci.datacatalog.DataAsset("test_data_asset", {
 *     catalogId: testCatalog.id,
 *     displayName: dataAssetDisplayName,
 *     typeKey: dataAssetTypeKey,
 *     description: dataAssetDescription,
 *     properties: dataAssetProperties,
 * });
 * ```
 *
 * ## Import
 *
 * DataAssets can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DataCatalog/dataAsset:DataAsset test_data_asset "catalogs/{catalogId}/dataAssets/{dataAssetKey}"
 * ```
 */
export declare class DataAsset extends pulumi.CustomResource {
    /**
     * Get an existing DataAsset 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?: DataAssetState, opts?: pulumi.CustomResourceOptions): DataAsset;
    /**
     * Returns true if the given object is an instance of DataAsset.  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 DataAsset;
    /**
     * Unique catalog identifier.
     */
    readonly catalogId: pulumi.Output<string>;
    /**
     * OCID of the user who created the data asset.
     */
    readonly createdById: pulumi.Output<string>;
    /**
     * (Updatable) Detailed description of the data asset.
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) A user-friendly display name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * External URI that can be used to reference the object. Format will differ based on the type of object.
     */
    readonly externalKey: pulumi.Output<string>;
    /**
     * Unique data asset key that is immutable.
     */
    readonly key: pulumi.Output<string>;
    /**
     * A message describing the current state in more detail. An object not in ACTIVE state may have functional limitations, see service documentation for details.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * (Updatable) A map of maps that contains the properties which are specific to the data asset type. Each data asset type definition defines it's set of required and optional properties. The map keys are category names and the values are maps of property name to property value. Every property is contained inside of a category. Most data assets have required properties within the "default" category. To determine the set of optional and required properties for a data asset type, a query can be done on '/types?type=dataAsset' that returns a collection of all data asset types. The appropriate data asset type, which includes definitions of all of it's properties, can be identified from this collection. Example: `{"properties": { "default": { "host": "host1", "port": "1521", "database": "orcl"}}}` . Terraform treats all map of maps as a flattened map with `.` denoting each level. For more information check out this example
     */
    readonly properties: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The current state of the data asset.
     */
    readonly state: pulumi.Output<string>;
    /**
     * The date and time the data asset was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2019-03-25T21:10:29.600Z`
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The last time that a harvest was performed on the data asset. An [RFC3339](https://tools.ietf.org/html/rfc3339) formatted datetime string.
     */
    readonly timeHarvested: pulumi.Output<string>;
    /**
     * The last time that any change was made to the data asset. An [RFC3339](https://tools.ietf.org/html/rfc3339) formatted datetime string.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * The key of the data asset type. This can be obtained via the '/types' endpoint.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly typeKey: pulumi.Output<string>;
    /**
     * OCID of the user who last modified the data asset.
     */
    readonly updatedById: pulumi.Output<string>;
    /**
     * URI to the data asset instance in the API.
     */
    readonly uri: pulumi.Output<string>;
    /**
     * Create a DataAsset 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: DataAssetArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering DataAsset resources.
 */
export interface DataAssetState {
    /**
     * Unique catalog identifier.
     */
    catalogId?: pulumi.Input<string | undefined>;
    /**
     * OCID of the user who created the data asset.
     */
    createdById?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Detailed description of the data asset.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly display name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * External URI that can be used to reference the object. Format will differ based on the type of object.
     */
    externalKey?: pulumi.Input<string | undefined>;
    /**
     * Unique data asset key that is immutable.
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * A message describing the current state in more detail. An object not in ACTIVE state may have functional limitations, see service documentation for details.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A map of maps that contains the properties which are specific to the data asset type. Each data asset type definition defines it's set of required and optional properties. The map keys are category names and the values are maps of property name to property value. Every property is contained inside of a category. Most data assets have required properties within the "default" category. To determine the set of optional and required properties for a data asset type, a query can be done on '/types?type=dataAsset' that returns a collection of all data asset types. The appropriate data asset type, which includes definitions of all of it's properties, can be identified from this collection. Example: `{"properties": { "default": { "host": "host1", "port": "1521", "database": "orcl"}}}` . Terraform treats all map of maps as a flattened map with `.` denoting each level. For more information check out this example
     */
    properties?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The current state of the data asset.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * The date and time the data asset was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2019-03-25T21:10:29.600Z`
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The last time that a harvest was performed on the data asset. An [RFC3339](https://tools.ietf.org/html/rfc3339) formatted datetime string.
     */
    timeHarvested?: pulumi.Input<string | undefined>;
    /**
     * The last time that any change was made to the data asset. An [RFC3339](https://tools.ietf.org/html/rfc3339) formatted datetime string.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
    /**
     * The key of the data asset type. This can be obtained via the '/types' endpoint.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    typeKey?: pulumi.Input<string | undefined>;
    /**
     * OCID of the user who last modified the data asset.
     */
    updatedById?: pulumi.Input<string | undefined>;
    /**
     * URI to the data asset instance in the API.
     */
    uri?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a DataAsset resource.
 */
export interface DataAssetArgs {
    /**
     * Unique catalog identifier.
     */
    catalogId: pulumi.Input<string>;
    /**
     * (Updatable) Detailed description of the data asset.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly display name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
     */
    displayName: pulumi.Input<string>;
    /**
     * (Updatable) A map of maps that contains the properties which are specific to the data asset type. Each data asset type definition defines it's set of required and optional properties. The map keys are category names and the values are maps of property name to property value. Every property is contained inside of a category. Most data assets have required properties within the "default" category. To determine the set of optional and required properties for a data asset type, a query can be done on '/types?type=dataAsset' that returns a collection of all data asset types. The appropriate data asset type, which includes definitions of all of it's properties, can be identified from this collection. Example: `{"properties": { "default": { "host": "host1", "port": "1521", "database": "orcl"}}}` . Terraform treats all map of maps as a flattened map with `.` denoting each level. For more information check out this example
     */
    properties?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The key of the data asset type. This can be obtained via the '/types' endpoint.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    typeKey: pulumi.Input<string>;
}
//# sourceMappingURL=dataAsset.d.ts.map