import { MonitoringInputProps } from './MonitoringInputProps';
import { MonitoringResourcesProps } from './MonitoringResourcesProps';
import { BaselineConfigProps } from './BaselineConfigProps';
import { StoppingConditionProps } from './StoppingConditionProps';
import { MonitoringAppSpecificationProps } from './MonitoringAppSpecificationProps';
import { NetworkConfigProps } from './NetworkConfigProps';
import { Value } from '../../../cloudformation/Value';
import { MonitoringOutputConfigProps } from './MonitoringOutputConfigProps';
/**
  Defines the monitoring job.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-monitoringschedule-monitoringjobdefinition.html">the AWS Docs</a>
*/
export interface MonitoringJobDefinitionProps {
    /** <code>MonitoringInputs</code>  <a name="cfn-sagemaker-monitoringschedule-monitoringjobdefinition-monitoringinputs"></a>
  The array of inputs for the monitoring job. Currently we support monitoring an Amazon SageMaker Endpoint.<br />
  
  Required: Yes<br />
  
  Maximum: <code>1</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    monitoringInputs: MonitoringInputProps[];
    /** <code>MonitoringResources</code>  <a name="cfn-sagemaker-monitoringschedule-monitoringjobdefinition-monitoringresources"></a>
  Identifies the resources, ML compute instances, and ML storage volumes to deploy for a monitoring job. In distributed processing, you specify more than one instance.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    monitoringResources: MonitoringResourcesProps;
    /** <code>BaselineConfig</code>  <a name="cfn-sagemaker-monitoringschedule-monitoringjobdefinition-baselineconfig"></a>
  Baseline configuration used to validate that the data conforms to the specified constraints and statistics<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    baselineConfig?: BaselineConfigProps;
    /** <code>StoppingCondition</code>  <a name="cfn-sagemaker-monitoringschedule-monitoringjobdefinition-stoppingcondition"></a>
  Specifies a time limit for how long the monitoring job is allowed to run.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    stoppingCondition?: StoppingConditionProps;
    /** <code>MonitoringAppSpecification</code>  <a name="cfn-sagemaker-monitoringschedule-monitoringjobdefinition-monitoringappspecification"></a>
  Configures the monitoring job to run a specified Docker container image.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    monitoringAppSpecification: MonitoringAppSpecificationProps;
    /** <code>NetworkConfig</code>  <a name="cfn-sagemaker-monitoringschedule-monitoringjobdefinition-networkconfig"></a>
  Specifies networking options for an monitoring job.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    networkConfig?: NetworkConfigProps;
    /** <code>Environment</code>  <a name="cfn-sagemaker-monitoringschedule-monitoringjobdefinition-environment"></a>
  Sets the environment variables in the Docker container.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    environment?: Value<{
        [key: string]: Value<string>;
    }>;
    /** <code>MonitoringOutputConfig</code>  <a name="cfn-sagemaker-monitoringschedule-monitoringjobdefinition-monitoringoutputconfig"></a>
  The array of outputs from the monitoring job to be uploaded to Amazon Simple Storage Service (Amazon S3).<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    monitoringOutputConfig: MonitoringOutputConfigProps;
    /** <code>RoleArn</code>  <a name="cfn-sagemaker-monitoringschedule-monitoringjobdefinition-rolearn"></a>
  The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf.<br />
  
  Required: Yes<br />
  
  Minimum: <code>20</code><br />
  
  Maximum: <code>2048</code><br />
  
  Pattern: <code>^arn:aws[a-z\-]*:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    roleArn: Value<string>;
}
