import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Compute Target resource in Oracle Cloud Infrastructure Data Science service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-science/latest/ComputeTarget
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/datascience
 *
 * Creates a new compute target resource.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testComputeTarget = new oci.datascience.ComputeTarget("test_compute_target", {
 *     compartmentId: compartmentId,
 *     computeConfigurationDetails: {
 *         computeType: computeTargetComputeConfigurationDetailsComputeType,
 *         instanceConfiguration: {
 *             instanceShape: computeTargetComputeConfigurationDetailsInstanceConfigurationInstanceShape,
 *             bootVolumeSizeInGbs: Number(computeTargetComputeConfigurationDetailsInstanceConfigurationBootVolumeSizeInGbs),
 *             instanceShapeDetails: {
 *                 memoryInGbs: computeTargetComputeConfigurationDetailsInstanceConfigurationInstanceShapeDetailsMemoryInGbs,
 *                 ocpus: computeTargetComputeConfigurationDetailsInstanceConfigurationInstanceShapeDetailsOcpus,
 *             },
 *         },
 *         scalingPolicy: {
 *             policyType: computeTargetComputeConfigurationDetailsScalingPolicyPolicyType,
 *             autoScalingPolicies: [{
 *                 autoScalingPolicyType: computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesAutoScalingPolicyType,
 *                 initialInstanceCount: Number(computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesInitialInstanceCount),
 *                 maximumInstanceCount: Number(computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesMaximumInstanceCount),
 *                 minimumInstanceCount: Number(computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesMinimumInstanceCount),
 *                 rules: [{
 *                     metricExpressionRuleType: computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesMetricExpressionRuleType,
 *                     scaleInConfiguration: {
 *                         instanceCountAdjustment: Number(computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleInConfigurationInstanceCountAdjustment),
 *                         pendingDuration: computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleInConfigurationPendingDuration,
 *                         query: computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleInConfigurationQuery,
 *                         scalingConfigurationType: computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleInConfigurationScalingConfigurationType,
 *                         threshold: Number(computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleInConfigurationThreshold),
 *                     },
 *                     scaleOutConfiguration: {
 *                         instanceCountAdjustment: Number(computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleOutConfigurationInstanceCountAdjustment),
 *                         pendingDuration: computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleOutConfigurationPendingDuration,
 *                         query: computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleOutConfigurationQuery,
 *                         scalingConfigurationType: computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleOutConfigurationScalingConfigurationType,
 *                         threshold: Number(computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesScaleOutConfigurationThreshold),
 *                     },
 *                     metricType: computeTargetComputeConfigurationDetailsScalingPolicyAutoScalingPoliciesRulesMetricType,
 *                 }],
 *             }],
 *             coolDownInSeconds: Number(computeTargetComputeConfigurationDetailsScalingPolicyCoolDownInSeconds),
 *             instanceCount: Number(computeTargetComputeConfigurationDetailsScalingPolicyInstanceCount),
 *             isEnabled: computeTargetComputeConfigurationDetailsScalingPolicyIsEnabled === "true",
 *         },
 *     },
 *     definedTags: {
 *         "Operations.CostCenter": "42",
 *     },
 *     description: computeTargetDescription,
 *     displayName: computeTargetDisplayName,
 *     freeformTags: {
 *         Department: "Finance",
 *     },
 *     metadata: computeTargetMetadata,
 * });
 * ```
 *
 * ## Import
 *
 * ComputeTargets can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:DataScience/computeTarget:ComputeTarget test_compute_target "id"
 * ```
 */
export declare class ComputeTarget extends pulumi.CustomResource {
    /**
     * Get an existing ComputeTarget 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?: ComputeTargetState, opts?: pulumi.CustomResourceOptions): ComputeTarget;
    /**
     * Returns true if the given object is an instance of ComputeTarget.  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 ComputeTarget;
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment where you want to create the compute target.
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * (Updatable) Configuration details of the targeted compute.
     */
    readonly computeConfigurationDetails: pulumi.Output<outputs.DataScience.ComputeTargetComputeConfigurationDetails>;
    /**
     * System data of the compute target.
     */
    readonly computeTargetSystemDatas: pulumi.Output<outputs.DataScience.ComputeTargetComputeTargetSystemData[]>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the compute target.
     */
    readonly createdBy: pulumi.Output<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"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) A short description of the compute target.
     */
    readonly description: pulumi.Output<string>;
    /**
     * (Updatable) A user-friendly display name for the resource.
     */
    readonly displayName: 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;
    }>;
    /**
     * Details about the state of the compute target.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * (Updatable) Metadata for the compute target. The size of metadata must be less than 2048 bytes. Key should be under 32 characters. Key should contain only letters, digits and underscore (_) Key should start with a letter. Key should have at least 2 characters. Key should not end with underscore eg. `TEST_` Key if added cannot be empty. Value can be empty. No specific size limits on individual Values. But overall metadata is limited to 2048 bytes. Key can't be reserved Compute Target metadata.
     *
     *
     * ** 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 metadata: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * The state of the compute target.
     */
    readonly state: pulumi.Output<string>;
    /**
     * The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2020-08-06T21:10:29.41Z
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * Create a ComputeTarget 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: ComputeTargetArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering ComputeTarget resources.
 */
export interface ComputeTargetState {
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment where you want to create the compute target.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Configuration details of the targeted compute.
     */
    computeConfigurationDetails?: pulumi.Input<inputs.DataScience.ComputeTargetComputeConfigurationDetails | undefined>;
    /**
     * System data of the compute target.
     */
    computeTargetSystemDatas?: pulumi.Input<pulumi.Input<inputs.DataScience.ComputeTargetComputeTargetSystemData>[] | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the compute target.
     */
    createdBy?: pulumi.Input<string | 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>;
    /**
     * (Updatable) A short description of the compute target.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly display name for the resource.
     */
    displayName?: 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>;
    /**
     * Details about the state of the compute target.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Metadata for the compute target. The size of metadata must be less than 2048 bytes. Key should be under 32 characters. Key should contain only letters, digits and underscore (_) Key should start with a letter. Key should have at least 2 characters. Key should not end with underscore eg. `TEST_` Key if added cannot be empty. Value can be empty. No specific size limits on individual Values. But overall metadata is limited to 2048 bytes. Key can't be reserved Compute Target metadata.
     *
     *
     * ** 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
     */
    metadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The state of the compute target.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * The date and time the resource was created in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2020-08-06T21:10:29.41Z
     */
    timeCreated?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a ComputeTarget resource.
 */
export interface ComputeTargetArgs {
    /**
     * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment where you want to create the compute target.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * (Updatable) Configuration details of the targeted compute.
     */
    computeConfigurationDetails: pulumi.Input<inputs.DataScience.ComputeTargetComputeConfigurationDetails>;
    /**
     * (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) A short description of the compute target.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) A user-friendly display name for the resource.
     */
    displayName?: 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) Metadata for the compute target. The size of metadata must be less than 2048 bytes. Key should be under 32 characters. Key should contain only letters, digits and underscore (_) Key should start with a letter. Key should have at least 2 characters. Key should not end with underscore eg. `TEST_` Key if added cannot be empty. Value can be empty. No specific size limits on individual Values. But overall metadata is limited to 2048 bytes. Key can't be reserved Compute Target metadata.
     *
     *
     * ** 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
     */
    metadata?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
//# sourceMappingURL=computeTarget.d.ts.map