import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This data source provides the list of Model Deployments in Oracle Cloud Infrastructure Datascience service.
 *
 * Lists all model deployments in the specified compartment. Only one parameter other than compartmentId may also be included in a query. The query must include compartmentId. If the query does not include compartmentId, or includes compartmentId but two or more other parameters an error is returned.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testModelDeployments = oci.datascience.getModelDeployments({
 *     compartmentId: compartmentId,
 *     createdBy: modelDeploymentCreatedBy,
 *     displayName: modelDeploymentDisplayName,
 *     id: modelDeploymentId,
 *     projectId: testProject.id,
 *     state: modelDeploymentState,
 * });
 * ```
 *
 * ## 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. Use `THRESHOLD` for `TARGET_PREDEFINED_EXPRESSION` and `QUERY` for `TARGET_CUSTOM_EXPRESSION`.
 *                       * * `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 getModelDeployments(args: GetModelDeploymentsArgs, opts?: pulumi.InvokeOptions): Promise<GetModelDeploymentsResult>;
/**
 * A collection of arguments for invoking getModelDeployments.
 */
export interface GetModelDeploymentsArgs {
    /**
     * <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    compartmentId: string;
    /**
     * <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
     */
    createdBy?: string;
    /**
     * <b>Filter</b> results by its user-friendly name.
     */
    displayName?: string;
    filters?: inputs.DataScience.GetModelDeploymentsFilter[];
    /**
     * <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
     */
    id?: string;
    /**
     * <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
     */
    projectId?: string;
    /**
     * <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
     */
    state?: string;
}
/**
 * A collection of values returned by getModelDeployments.
 */
export interface GetModelDeploymentsResult {
    /**
     * 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;
    /**
     * 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;
    readonly filters?: outputs.DataScience.GetModelDeploymentsFilter[];
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the model deployment.
     */
    readonly id?: string;
    /**
     * The list of model_deployments.
     */
    readonly modelDeployments: outputs.DataScience.GetModelDeploymentsModelDeployment[];
    /**
     * 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;
}
/**
 * This data source provides the list of Model Deployments in Oracle Cloud Infrastructure Datascience service.
 *
 * Lists all model deployments in the specified compartment. Only one parameter other than compartmentId may also be included in a query. The query must include compartmentId. If the query does not include compartmentId, or includes compartmentId but two or more other parameters an error is returned.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testModelDeployments = oci.datascience.getModelDeployments({
 *     compartmentId: compartmentId,
 *     createdBy: modelDeploymentCreatedBy,
 *     displayName: modelDeploymentDisplayName,
 *     id: modelDeploymentId,
 *     projectId: testProject.id,
 *     state: modelDeploymentState,
 * });
 * ```
 *
 * ## 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. Use `THRESHOLD` for `TARGET_PREDEFINED_EXPRESSION` and `QUERY` for `TARGET_CUSTOM_EXPRESSION`.
 *                       * * `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 getModelDeploymentsOutput(args: GetModelDeploymentsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetModelDeploymentsResult>;
/**
 * A collection of arguments for invoking getModelDeployments.
 */
export interface GetModelDeploymentsOutputArgs {
    /**
     * <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
     */
    compartmentId: pulumi.Input<string>;
    /**
     * <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the resource.
     */
    createdBy?: pulumi.Input<string | undefined>;
    /**
     * <b>Filter</b> results by its user-friendly name.
     */
    displayName?: pulumi.Input<string | undefined>;
    filters?: pulumi.Input<pulumi.Input<inputs.DataScience.GetModelDeploymentsFilterArgs>[] | undefined>;
    /**
     * <b>Filter</b> results by [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm). Must be an OCID of the correct type for the resource type.
     */
    id?: pulumi.Input<string | undefined>;
    /**
     * <b>Filter</b> results by the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the project.
     */
    projectId?: pulumi.Input<string | undefined>;
    /**
     * <b>Filter</b> results by the specified lifecycle state. Must be a valid state for the resource type.
     */
    state?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getModelDeployments.d.ts.map