import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * This data source provides details about a specific Model Deployment resource in Oracle Cloud Infrastructure Datascience service.
 *
 * Retrieves the model deployment for the specified `modelDeploymentId`.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testModelDeployment = oci.datascience.getModelDeployment({
 *     modelDeploymentId: testModelDeploymentOciDatascienceModelDeployment.id,
 * });
 * ```
 *
 * ## SINGLE_MODEL_FLEX Returned Contract
 *
 * The following attributes are returned for `deploymentType = SINGLE_MODEL_FLEX`.
 *
 * * `modelDeploymentConfigurationDetails`
 *   * * `deploymentType` - `SINGLE_MODEL_FLEX`
 *   * * `modelConfigurationDetails` - The single model configuration details.
 *       * * `modelId` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a model.
 *   * * `infrastructureConfigurationDetails` - The infrastructure configuration details for managed compute cluster type compute target.
 *       * * `infrastructureType` - `MANAGED_COMPUTE_CLUSTER`
 *       * * `computeTargetId` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a Compute Target.
 *       * * `modelDeploymentResourceConfiguration` - Resource configuration details for model deploy on managed compute cluster type compute target.
 *           * * `resourceRequestConfiguration` - Resource request configuration to run workload on managed compute cluster type compute target compute target.
 *               * * `gpus` - The total number of gpus required to be allocated to the workload.
 *               * * `memoryInGbs` - The memory in Gbs required to be allocated to run the workload.
 *               * * `ocpus` - The ocpus required to be allocated to run the workload.
 *           * * `resourceLimitConfiguration` - Resource limit configuration details for workload on managed compute cluster type compute target.
 *               * * `memoryInGbs` - Burstable limit for memory.
 *               * * `ocpus` - Burstable limit for cpu.
 *       * * `scalingPolicy` - The scaling policy to apply to workloads on managed compute cluster type compute target.
 *           * * `policyType` - The type of scaling policy. Supported values are `FIXED_SIZE` and `AUTOSCALING`.
 *           * * `instanceCount` - Returned for `policy_type=FIXED_SIZE`. The number of instances for the workload.
 *           * * `isEnabled` - Returned for `policy_type=AUTOSCALING`. Whether the autoscaling policy is enabled.
 *           * * `autoScalingPolicies` - Returned for `policy_type=AUTOSCALING`. The list of autoscaling policy details.
 *               * * `autoScalingPolicyType` - The type of autoscaling policy. The supported value is `THRESHOLD`.
 *               * * `initialInstanceCount` - For a threshold-based autoscaling policy, this value is the initial number of workload instances to launch immediately after autoscaling is enabled.
 *               * * `maximumInstanceCount` - For a threshold-based autoscaling policy, this value is the maximum number of workload instances allowed to increase to (scale out).
 *               * * `minimumInstanceCount` - For a threshold-based autoscaling policy, this value is the minimum number of workload instances allowed to decrease to (scale in). This should be zero for scale-to-zero.
 *               * * `rules` - The list of autoscaling policy rules.
 *                   * * `metricExpressionRuleType` - The metric expression for creating the alarm used to trigger autoscaling actions for workload. Supported values are `TARGET_PREDEFINED_EXPRESSION` and `TARGET_CUSTOM_EXPRESSION`.
 *                   * * `metricType` - Returned for `TARGET_PREDEFINED_EXPRESSION`. Metric type.
 *                   * * `scaleConfiguration` - The scaling configuration for the target-based workload rule.
 *                       * * `targetScalingConfigurationType` - The type of target scaling configuration. Supported values are `THRESHOLD` and `QUERY`.
 *                       * * `threshold` - A metric value at which the scaling operation will be triggered.
 *                       * * `query` - Returned for `TARGET_CUSTOM_EXPRESSION`. The Monitoring Query Language (MQL) expression to evaluate for the alarm.
 *                       * * `metricNamespace` - Returned for `TARGET_CUSTOM_EXPRESSION`. Namespace to read the metrics from.
 *               * * `scaleInPolicy` - Workload scaling policy configuration for workloads on managed compute cluster type compute target.
 *                   * * `coolDownInSeconds` - The duration of time window used to restrict flapping of instance count when the metrics used for scaling keep fluctuating.
 *                   * * `instanceCountAdjustment` - The value used for adjusting the count of instances.
 *                   * * `pendingDuration` - The period of time that the alarm condition must persist before the alarm state changes.
 *               * * `scaleOutPolicy` - Workload scaling policy configuration for workloads on managed compute cluster type compute target.
 *                   * * `coolDownInSeconds` - The duration of time window used to restrict flapping of instance count when the metrics used for scaling keep fluctuating.
 *                   * * `instanceCountAdjustment` - The value used for adjusting the count of instances.
 *                   * * `pendingDuration` - The period of time that the alarm condition must persist before the alarm state changes.
 */
export declare function getModelDeployment(args: GetModelDeploymentArgs, opts?: pulumi.InvokeOptions): Promise<GetModelDeploymentResult>;
/**
 * A collection of arguments for invoking getModelDeployment.
 */
export interface GetModelDeploymentArgs {
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the model deployment.
     */
    modelDeploymentId: string;
}
/**
 * A collection of values returned by getModelDeployment.
 */
export interface GetModelDeploymentResult {
    /**
     * The log details for each category.
     */
    readonly categoryLogDetails: outputs.DataScience.GetModelDeploymentCategoryLogDetail[];
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the model deployment's compartment.
     */
    readonly compartmentId: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the model deployment.
     */
    readonly createdBy: string;
    /**
     * 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: {
        [key: string]: string;
    };
    /**
     * A short description of the model deployment.
     */
    readonly description: string;
    /**
     * A user-friendly display name for the resource. Does not have to be unique, and can be modified. Avoid entering confidential information. Example: `My ModelDeployment`
     */
    readonly displayName: string;
    /**
     * 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: {
        [key: string]: string;
    };
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the model deployment.
     */
    readonly id: string;
    /**
     * Details about the state of the model deployment.
     */
    readonly lifecycleDetails: string;
    /**
     * The model deployment configuration details.
     */
    readonly modelDeploymentConfigurationDetails: outputs.DataScience.GetModelDeploymentModelDeploymentConfigurationDetail[];
    readonly modelDeploymentId: string;
    /**
     * Model deployment system data.
     */
    readonly modelDeploymentSystemDatas: outputs.DataScience.GetModelDeploymentModelDeploymentSystemData[];
    /**
     * The URL to interact with the model deployment.
     */
    readonly modelDeploymentUrl: string;
    readonly opcParentRptUrl: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project associated with the model deployment.
     */
    readonly projectId: string;
    /**
     * The state of the model deployment.
     */
    readonly state: string;
    /**
     * The date and time the resource was created, in the timestamp format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: 2019-08-25T21:10:29.41Z
     */
    readonly timeCreated: string;
}
/**
 * This data source provides details about a specific Model Deployment resource in Oracle Cloud Infrastructure Datascience service.
 *
 * Retrieves the model deployment for the specified `modelDeploymentId`.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testModelDeployment = oci.datascience.getModelDeployment({
 *     modelDeploymentId: testModelDeploymentOciDatascienceModelDeployment.id,
 * });
 * ```
 *
 * ## SINGLE_MODEL_FLEX Returned Contract
 *
 * The following attributes are returned for `deploymentType = SINGLE_MODEL_FLEX`.
 *
 * * `modelDeploymentConfigurationDetails`
 *   * * `deploymentType` - `SINGLE_MODEL_FLEX`
 *   * * `modelConfigurationDetails` - The single model configuration details.
 *       * * `modelId` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a model.
 *   * * `infrastructureConfigurationDetails` - The infrastructure configuration details for managed compute cluster type compute target.
 *       * * `infrastructureType` - `MANAGED_COMPUTE_CLUSTER`
 *       * * `computeTargetId` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of a Compute Target.
 *       * * `modelDeploymentResourceConfiguration` - Resource configuration details for model deploy on managed compute cluster type compute target.
 *           * * `resourceRequestConfiguration` - Resource request configuration to run workload on managed compute cluster type compute target compute target.
 *               * * `gpus` - The total number of gpus required to be allocated to the workload.
 *               * * `memoryInGbs` - The memory in Gbs required to be allocated to run the workload.
 *               * * `ocpus` - The ocpus required to be allocated to run the workload.
 *           * * `resourceLimitConfiguration` - Resource limit configuration details for workload on managed compute cluster type compute target.
 *               * * `memoryInGbs` - Burstable limit for memory.
 *               * * `ocpus` - Burstable limit for cpu.
 *       * * `scalingPolicy` - The scaling policy to apply to workloads on managed compute cluster type compute target.
 *           * * `policyType` - The type of scaling policy. Supported values are `FIXED_SIZE` and `AUTOSCALING`.
 *           * * `instanceCount` - Returned for `policy_type=FIXED_SIZE`. The number of instances for the workload.
 *           * * `isEnabled` - Returned for `policy_type=AUTOSCALING`. Whether the autoscaling policy is enabled.
 *           * * `autoScalingPolicies` - Returned for `policy_type=AUTOSCALING`. The list of autoscaling policy details.
 *               * * `autoScalingPolicyType` - The type of autoscaling policy. The supported value is `THRESHOLD`.
 *               * * `initialInstanceCount` - For a threshold-based autoscaling policy, this value is the initial number of workload instances to launch immediately after autoscaling is enabled.
 *               * * `maximumInstanceCount` - For a threshold-based autoscaling policy, this value is the maximum number of workload instances allowed to increase to (scale out).
 *               * * `minimumInstanceCount` - For a threshold-based autoscaling policy, this value is the minimum number of workload instances allowed to decrease to (scale in). This should be zero for scale-to-zero.
 *               * * `rules` - The list of autoscaling policy rules.
 *                   * * `metricExpressionRuleType` - The metric expression for creating the alarm used to trigger autoscaling actions for workload. Supported values are `TARGET_PREDEFINED_EXPRESSION` and `TARGET_CUSTOM_EXPRESSION`.
 *                   * * `metricType` - Returned for `TARGET_PREDEFINED_EXPRESSION`. Metric type.
 *                   * * `scaleConfiguration` - The scaling configuration for the target-based workload rule.
 *                       * * `targetScalingConfigurationType` - The type of target scaling configuration. Supported values are `THRESHOLD` and `QUERY`.
 *                       * * `threshold` - A metric value at which the scaling operation will be triggered.
 *                       * * `query` - Returned for `TARGET_CUSTOM_EXPRESSION`. The Monitoring Query Language (MQL) expression to evaluate for the alarm.
 *                       * * `metricNamespace` - Returned for `TARGET_CUSTOM_EXPRESSION`. Namespace to read the metrics from.
 *               * * `scaleInPolicy` - Workload scaling policy configuration for workloads on managed compute cluster type compute target.
 *                   * * `coolDownInSeconds` - The duration of time window used to restrict flapping of instance count when the metrics used for scaling keep fluctuating.
 *                   * * `instanceCountAdjustment` - The value used for adjusting the count of instances.
 *                   * * `pendingDuration` - The period of time that the alarm condition must persist before the alarm state changes.
 *               * * `scaleOutPolicy` - Workload scaling policy configuration for workloads on managed compute cluster type compute target.
 *                   * * `coolDownInSeconds` - The duration of time window used to restrict flapping of instance count when the metrics used for scaling keep fluctuating.
 *                   * * `instanceCountAdjustment` - The value used for adjusting the count of instances.
 *                   * * `pendingDuration` - The period of time that the alarm condition must persist before the alarm state changes.
 */
export declare function getModelDeploymentOutput(args: GetModelDeploymentOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetModelDeploymentResult>;
/**
 * A collection of arguments for invoking getModelDeployment.
 */
export interface GetModelDeploymentOutputArgs {
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the model deployment.
     */
    modelDeploymentId: pulumi.Input<string>;
}
//# sourceMappingURL=getModelDeployment.d.ts.map