import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Ml Application Implementation resource in Oracle Cloud Infrastructure Data Science service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-science/latest/MlApplicationImplementation
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/datascience
 *
 * Creates a new MlApplicationImplementation.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testMlApplicationImplementation = new oci.datascience.MlApplicationImplementation("test_ml_application_implementation", {
 *     compartmentId: compartmentId,
 *     mlApplicationId: testMlApplication.id,
 *     name: mlApplicationImplementationName,
 *     mlApplicationPackage: {
 *         source_type: mlApplicationPackageSourceType,
 *         uri: mlApplicationPackageUri,
 *     },
 *     opcMlAppPackageArgs: opcMlAppPackageArgs,
 *     allowedMigrationDestinations: mlApplicationImplementationAllowedMigrationDestinations,
 *     definedTags: {
 *         "Operations.CostCenter": "42",
 *     },
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 *     logging: {
 *         aggregatedInstanceViewLog: {
 *             enableLogging: mlApplicationImplementationLoggingAggregatedInstanceViewLogEnableLogging === "true",
 *             logGroupId: testLogGroup.id,
 *             logId: testLog.id,
 *         },
 *         implementationLog: {
 *             enableLogging: mlApplicationImplementationLoggingImplementationLogEnableLogging === "true",
 *             logGroupId: testLogGroup.id,
 *             logId: testLog.id,
 *         },
 *         triggerLog: {
 *             enableLogging: mlApplicationImplementationLoggingTriggerLogEnableLogging === "true",
 *             logGroupId: testLogGroup.id,
 *             logId: testLog.id,
 *         },
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * MlApplicationImplementations can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DataScience/mlApplicationImplementation:MlApplicationImplementation test_ml_application_implementation "id"
 * ```
 */
export declare class MlApplicationImplementation extends pulumi.CustomResource {
    /**
     * Get an existing MlApplicationImplementation 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?: MlApplicationImplementationState, opts?: pulumi.CustomResourceOptions): MlApplicationImplementation;
    /**
     * Returns true if the given object is an instance of MlApplicationImplementation.  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 MlApplicationImplementation;
    /**
     * (Updatable) List of ML Application Implementation OCIDs for which migration from this implementation is allowed. Migration means that if consumers change implementation for their instances to implementation with OCID from this list, instance components will be updated in place otherwise new instance components are created based on the new implementation and old instance components are removed.
     */
    readonly allowedMigrationDestinations: pulumi.Output<string[]>;
    /**
     * List of application components (OCI resources shared for all MlApplicationInstances). These have been created automatically based on their definitions in the ML Application package.
     */
    readonly applicationComponents: pulumi.Output<outputs.DataScience.MlApplicationImplementationApplicationComponent[]>;
    /**
     * (Updatable) The OCID of the compartment where ML Application Implementation is created.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * Schema of configuration which needs to be provided for each ML Application Instance. It is defined in the ML Application package descriptor.
     */
    readonly configurationSchemas: pulumi.Output<outputs.DataScience.MlApplicationImplementationConfigurationSchema[]>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * short description of the argument
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * (Updatable) Configuration of Logging for ML Application Implementation.
     */
    readonly logging: pulumi.Output<outputs.DataScience.MlApplicationImplementationLogging>;
    /**
     * The OCID of the ML Application implemented by this ML Application Implementation
     */
    readonly mlApplicationId: pulumi.Output<string>;
    /**
     * The name of ML Application (based on mlApplicationId)
     */
    readonly mlApplicationName: pulumi.Output<string>;
    /**
     * (Updatable) Configuration of The ML Application Package to upload.
     */
    readonly mlApplicationPackage: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * List of ML Application package arguments provided during ML Application package upload.
     */
    readonly mlApplicationPackageArguments: pulumi.Output<outputs.DataScience.MlApplicationImplementationMlApplicationPackageArgument[]>;
    /**
     * ML Application Implementation name which is unique for given ML Application.
     *
     *
     * ** 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 name: pulumi.Output<string>;
    /**
     * (Updatable) ML Application package arguments required during ML Application package upload. Each argument is a simple key-value pair.
     */
    readonly opcMlAppPackageArgs: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The version of ML Application Package (e.g. "1.2" or "2.0.4") defined in ML Application package descriptor. Value is not mandatory only for CREATING state otherwise it must be always presented.
     */
    readonly packageVersion: pulumi.Output<string>;
    /**
     * The current state of the MlApplicationImplementation.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * Creation time of MlApplicationImplementation creation in the format defined by RFC 3339.
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * Time of last MlApplicationImplementation update in the format defined by RFC 3339.
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Create a MlApplicationImplementation 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: MlApplicationImplementationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering MlApplicationImplementation resources.
 */
export interface MlApplicationImplementationState {
    /**
     * (Updatable) List of ML Application Implementation OCIDs for which migration from this implementation is allowed. Migration means that if consumers change implementation for their instances to implementation with OCID from this list, instance components will be updated in place otherwise new instance components are created based on the new implementation and old instance components are removed.
     */
    allowedMigrationDestinations?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * List of application components (OCI resources shared for all MlApplicationInstances). These have been created automatically based on their definitions in the ML Application package.
     */
    applicationComponents?: pulumi.Input<pulumi.Input<inputs.DataScience.MlApplicationImplementationApplicationComponent>[] | undefined>;
    /**
     * (Updatable) The OCID of the compartment where ML Application Implementation is created.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Schema of configuration which needs to be provided for each ML Application Instance. It is defined in the ML Application package descriptor.
     */
    configurationSchemas?: pulumi.Input<pulumi.Input<inputs.DataScience.MlApplicationImplementationConfigurationSchema>[] | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * short description of the argument
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Configuration of Logging for ML Application Implementation.
     */
    logging?: pulumi.Input<inputs.DataScience.MlApplicationImplementationLogging | undefined>;
    /**
     * The OCID of the ML Application implemented by this ML Application Implementation
     */
    mlApplicationId?: pulumi.Input<string | undefined>;
    /**
     * The name of ML Application (based on mlApplicationId)
     */
    mlApplicationName?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Configuration of The ML Application Package to upload.
     */
    mlApplicationPackage?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * List of ML Application package arguments provided during ML Application package upload.
     */
    mlApplicationPackageArguments?: pulumi.Input<pulumi.Input<inputs.DataScience.MlApplicationImplementationMlApplicationPackageArgument>[] | undefined>;
    /**
     * ML Application Implementation name which is unique for given ML Application.
     *
     *
     * ** 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
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) ML Application package arguments required during ML Application package upload. Each argument is a simple key-value pair.
     */
    opcMlAppPackageArgs?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The version of ML Application Package (e.g. "1.2" or "2.0.4") defined in ML Application package descriptor. Value is not mandatory only for CREATING state otherwise it must be always presented.
     */
    packageVersion?: pulumi.Input<string | undefined>;
    /**
     * The current state of the MlApplicationImplementation.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    systemTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Creation time of MlApplicationImplementation creation in the format defined by RFC 3339.
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * Time of last MlApplicationImplementation update in the format defined by RFC 3339.
     */
    timeUpdated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a MlApplicationImplementation resource.
 */
export interface MlApplicationImplementationArgs {
    /**
     * (Updatable) List of ML Application Implementation OCIDs for which migration from this implementation is allowed. Migration means that if consumers change implementation for their instances to implementation with OCID from this list, instance components will be updated in place otherwise new instance components are created based on the new implementation and old instance components are removed.
     */
    allowedMigrationDestinations?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * (Updatable) The OCID of the compartment where ML Application Implementation is created.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. See [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Configuration of Logging for ML Application Implementation.
     */
    logging?: pulumi.Input<inputs.DataScience.MlApplicationImplementationLogging | undefined>;
    /**
     * The OCID of the ML Application implemented by this ML Application Implementation
     */
    mlApplicationId: pulumi.Input<string>;
    /**
     * (Updatable) Configuration of The ML Application Package to upload.
     */
    mlApplicationPackage?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * ML Application Implementation name which is unique for given ML Application.
     *
     *
     * ** 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
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) ML Application package arguments required during ML Application package upload. Each argument is a simple key-value pair.
     */
    opcMlAppPackageArgs?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
//# sourceMappingURL=mlApplicationImplementation.d.ts.map