/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.sagemaker.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Contains information about a training job. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class TrainingJob implements Serializable, Cloneable, StructuredPojo { /** ** The name of the training job. *
*/ private String trainingJobName; /** ** The Amazon Resource Name (ARN) of the training job. *
*/ private String trainingJobArn; /** ** The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was launched by a * hyperparameter tuning job. *
*/ private String tuningJobArn; /** ** The Amazon Resource Name (ARN) of the labeling job. *
*/ private String labelingJobArn; /** ** The Amazon Resource Name (ARN) of the job. *
*/ private String autoMLJobArn; /** ** Information about the Amazon S3 location that is configured for storing model artifacts. *
*/ private ModelArtifacts modelArtifacts; /** ** The status of the training job. *
** Training job statuses are: *
*
     * InProgress - The training is in progress.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. To see the reason for the failure, see the
     * FailureReason field in the response to a DescribeTrainingJobResponse call.
     * 
     * Stopping - The training job is stopping.
     * 
     * Stopped - The training job has stopped.
     * 
     * For more detailed information, see SecondaryStatus.
     * 
     * Provides detailed information about the state of the training job. For detailed information about the secondary
     * status of the training job, see StatusMessage under SecondaryStatusTransition.
     * 
* SageMaker provides primary statuses and secondary statuses that apply to each of them: *
*
     * Starting - Starting the training job.
     * 
     * Downloading - An optional stage for algorithms that support File training input mode.
     * It indicates that data is being downloaded to the ML storage volumes.
     * 
     * Training - Training is in progress.
     * 
     * Uploading - Training is complete and the model artifacts are being uploaded to the S3 location.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. The reason for the failure is returned in the
     * FailureReason field of DescribeTrainingJobResponse.
     * 
     * MaxRuntimeExceeded - The job stopped because it exceeded the maximum allowed runtime.
     * 
     * Stopped - The training job has stopped.
     * 
     * Stopping - Stopping the training job.
     * 
     * Valid values for SecondaryStatus are subject to change.
     * 
* We no longer support the following secondary statuses: *
*
     * LaunchingMLInstances
     * 
     * PreparingTrainingStack
     * 
     * DownloadingTrainingImage
     * 
* If the training job failed, the reason it failed. *
*/ private String failureReason; /** ** Algorithm-specific parameters. *
*/ private java.util.Map* Information about the algorithm used for training, and algorithm metadata. *
*/ private AlgorithmSpecification algorithmSpecification; /** ** The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. *
*/ private String roleArn; /** *
     * An array of Channel objects that describes each data input channel.
     * 
* Your input must be in the same Amazon Web Services region as your training job. *
*/ private java.util.List* The S3 path where model artifacts that you configured when creating the job are stored. SageMaker creates * subfolders for model artifacts. *
*/ private OutputDataConfig outputDataConfig; /** ** Resources, including ML compute instances and ML storage volumes, that are configured for model training. *
*/ private ResourceConfig resourceConfig; /** ** A VpcConfig object * that specifies the VPC that this training job has access to. For more information, see Protect Training Jobs by Using an Amazon * Virtual Private Cloud. *
*/ private VpcConfig vpcConfig; /** ** Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training * job has to complete. When the job reaches the time limit, SageMaker ends the training job. Use this API to cap * model training costs. *
*
     * To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays job termination for
     * 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training
     * are not lost.
     * 
* A timestamp that indicates when the training job was created. *
*/ private java.util.Date creationTime; /** *
     * Indicates the time when the training job starts on training instances. You are billed for the time interval
     * between this time and the value of TrainingEndTime. The start time in CloudWatch Logs might be later
     * than this time. The difference is due to the time it takes to download the training data and to the size of the
     * training container.
     * 
     * Indicates the time when the training job ends on training instances. You are billed for the time interval between
     * the value of TrainingStartTime and this time. For successful jobs and stopped jobs, this is the time
     * after model artifacts are uploaded. For failed jobs, this is the time when SageMaker detects a job failure.
     * 
* A timestamp that indicates when the status of the training job was last modified. *
*/ private java.util.Date lastModifiedTime; /** ** A history of all of the secondary statuses that the training job has transitioned through. *
*/ private java.util.List* A list of final metric values that are set when the training job completes. Used only if the training job was * configured to use metrics. *
*/ private java.util.List
     * If the TrainingJob was created with network isolation, the value is set to true. If
     * network isolation is enabled, nodes can't communicate beyond the VPC they run in.
     * 
     * To encrypt all communications between ML compute instances in distributed training, choose True.
     * Encryption provides greater security for distributed training, but training might take longer. How long it takes
     * depends on the amount of communication between compute instances, especially if you use a deep learning algorithm
     * in distributed training.
     * 
* When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of * on-demand instances. For more information, see Managed Spot * Training. *
*/ private Boolean enableManagedSpotTraining; private CheckpointConfig checkpointConfig; /** ** The training time in seconds. *
*/ private Integer trainingTimeInSeconds; /** ** The billable time in seconds. *
*/ private Integer billableTimeInSeconds; private DebugHookConfig debugHookConfig; private ExperimentConfig experimentConfig; /** ** Information about the debug rule configuration. *
*/ private java.util.List* Information about the evaluation status of the rules for the training job. *
*/ private java.util.List* The environment variables to set in the Docker container. *
*/ private java.util.Map
     * The number of times to retry the job when the job fails due to an InternalServerError.
     * 
* An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, * for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services Resources. *
*/ private java.util.List* The name of the training job. *
* * @param trainingJobName * The name of the training job. */ public void setTrainingJobName(String trainingJobName) { this.trainingJobName = trainingJobName; } /** ** The name of the training job. *
* * @return The name of the training job. */ public String getTrainingJobName() { return this.trainingJobName; } /** ** The name of the training job. *
* * @param trainingJobName * The name of the training job. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withTrainingJobName(String trainingJobName) { setTrainingJobName(trainingJobName); return this; } /** ** The Amazon Resource Name (ARN) of the training job. *
* * @param trainingJobArn * The Amazon Resource Name (ARN) of the training job. */ public void setTrainingJobArn(String trainingJobArn) { this.trainingJobArn = trainingJobArn; } /** ** The Amazon Resource Name (ARN) of the training job. *
* * @return The Amazon Resource Name (ARN) of the training job. */ public String getTrainingJobArn() { return this.trainingJobArn; } /** ** The Amazon Resource Name (ARN) of the training job. *
* * @param trainingJobArn * The Amazon Resource Name (ARN) of the training job. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withTrainingJobArn(String trainingJobArn) { setTrainingJobArn(trainingJobArn); return this; } /** ** The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was launched by a * hyperparameter tuning job. *
* * @param tuningJobArn * The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was * launched by a hyperparameter tuning job. */ public void setTuningJobArn(String tuningJobArn) { this.tuningJobArn = tuningJobArn; } /** ** The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was launched by a * hyperparameter tuning job. *
* * @return The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was * launched by a hyperparameter tuning job. */ public String getTuningJobArn() { return this.tuningJobArn; } /** ** The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was launched by a * hyperparameter tuning job. *
* * @param tuningJobArn * The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the training job was * launched by a hyperparameter tuning job. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withTuningJobArn(String tuningJobArn) { setTuningJobArn(tuningJobArn); return this; } /** ** The Amazon Resource Name (ARN) of the labeling job. *
* * @param labelingJobArn * The Amazon Resource Name (ARN) of the labeling job. */ public void setLabelingJobArn(String labelingJobArn) { this.labelingJobArn = labelingJobArn; } /** ** The Amazon Resource Name (ARN) of the labeling job. *
* * @return The Amazon Resource Name (ARN) of the labeling job. */ public String getLabelingJobArn() { return this.labelingJobArn; } /** ** The Amazon Resource Name (ARN) of the labeling job. *
* * @param labelingJobArn * The Amazon Resource Name (ARN) of the labeling job. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withLabelingJobArn(String labelingJobArn) { setLabelingJobArn(labelingJobArn); return this; } /** ** The Amazon Resource Name (ARN) of the job. *
* * @param autoMLJobArn * The Amazon Resource Name (ARN) of the job. */ public void setAutoMLJobArn(String autoMLJobArn) { this.autoMLJobArn = autoMLJobArn; } /** ** The Amazon Resource Name (ARN) of the job. *
* * @return The Amazon Resource Name (ARN) of the job. */ public String getAutoMLJobArn() { return this.autoMLJobArn; } /** ** The Amazon Resource Name (ARN) of the job. *
* * @param autoMLJobArn * The Amazon Resource Name (ARN) of the job. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withAutoMLJobArn(String autoMLJobArn) { setAutoMLJobArn(autoMLJobArn); return this; } /** ** Information about the Amazon S3 location that is configured for storing model artifacts. *
* * @param modelArtifacts * Information about the Amazon S3 location that is configured for storing model artifacts. */ public void setModelArtifacts(ModelArtifacts modelArtifacts) { this.modelArtifacts = modelArtifacts; } /** ** Information about the Amazon S3 location that is configured for storing model artifacts. *
* * @return Information about the Amazon S3 location that is configured for storing model artifacts. */ public ModelArtifacts getModelArtifacts() { return this.modelArtifacts; } /** ** Information about the Amazon S3 location that is configured for storing model artifacts. *
* * @param modelArtifacts * Information about the Amazon S3 location that is configured for storing model artifacts. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withModelArtifacts(ModelArtifacts modelArtifacts) { setModelArtifacts(modelArtifacts); return this; } /** ** The status of the training job. *
** Training job statuses are: *
*
     * InProgress - The training is in progress.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. To see the reason for the failure, see the
     * FailureReason field in the response to a DescribeTrainingJobResponse call.
     * 
     * Stopping - The training job is stopping.
     * 
     * Stopped - The training job has stopped.
     * 
     * For more detailed information, see SecondaryStatus.
     * 
* Training job statuses are: *
*
     *        InProgress - The training is in progress.
     *        
     *        Completed - The training job has completed.
     *        
     *        Failed - The training job has failed. To see the reason for the failure, see the
     *        FailureReason field in the response to a DescribeTrainingJobResponse call.
     *        
     *        Stopping - The training job is stopping.
     *        
     *        Stopped - The training job has stopped.
     *        
     *        For more detailed information, see SecondaryStatus.
     * @see TrainingJobStatus
     */
    public void setTrainingJobStatus(String trainingJobStatus) {
        this.trainingJobStatus = trainingJobStatus;
    }
    /**
     * 
* The status of the training job. *
** Training job statuses are: *
*
     * InProgress - The training is in progress.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. To see the reason for the failure, see the
     * FailureReason field in the response to a DescribeTrainingJobResponse call.
     * 
     * Stopping - The training job is stopping.
     * 
     * Stopped - The training job has stopped.
     * 
     * For more detailed information, see SecondaryStatus.
     * 
* Training job statuses are: *
*
     *         InProgress - The training is in progress.
     *         
     *         Completed - The training job has completed.
     *         
     *         Failed - The training job has failed. To see the reason for the failure, see the
     *         FailureReason field in the response to a DescribeTrainingJobResponse call.
     *         
     *         Stopping - The training job is stopping.
     *         
     *         Stopped - The training job has stopped.
     *         
     *         For more detailed information, see SecondaryStatus.
     * @see TrainingJobStatus
     */
    public String getTrainingJobStatus() {
        return this.trainingJobStatus;
    }
    /**
     * 
* The status of the training job. *
** Training job statuses are: *
*
     * InProgress - The training is in progress.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. To see the reason for the failure, see the
     * FailureReason field in the response to a DescribeTrainingJobResponse call.
     * 
     * Stopping - The training job is stopping.
     * 
     * Stopped - The training job has stopped.
     * 
     * For more detailed information, see SecondaryStatus.
     * 
* Training job statuses are: *
*
     *        InProgress - The training is in progress.
     *        
     *        Completed - The training job has completed.
     *        
     *        Failed - The training job has failed. To see the reason for the failure, see the
     *        FailureReason field in the response to a DescribeTrainingJobResponse call.
     *        
     *        Stopping - The training job is stopping.
     *        
     *        Stopped - The training job has stopped.
     *        
     *        For more detailed information, see SecondaryStatus.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see TrainingJobStatus
     */
    public TrainingJob withTrainingJobStatus(String trainingJobStatus) {
        setTrainingJobStatus(trainingJobStatus);
        return this;
    }
    /**
     * 
* The status of the training job. *
** Training job statuses are: *
*
     * InProgress - The training is in progress.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. To see the reason for the failure, see the
     * FailureReason field in the response to a DescribeTrainingJobResponse call.
     * 
     * Stopping - The training job is stopping.
     * 
     * Stopped - The training job has stopped.
     * 
     * For more detailed information, see SecondaryStatus.
     * 
* Training job statuses are: *
*
     *        InProgress - The training is in progress.
     *        
     *        Completed - The training job has completed.
     *        
     *        Failed - The training job has failed. To see the reason for the failure, see the
     *        FailureReason field in the response to a DescribeTrainingJobResponse call.
     *        
     *        Stopping - The training job is stopping.
     *        
     *        Stopped - The training job has stopped.
     *        
     *        For more detailed information, see SecondaryStatus.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see TrainingJobStatus
     */
    public TrainingJob withTrainingJobStatus(TrainingJobStatus trainingJobStatus) {
        this.trainingJobStatus = trainingJobStatus.toString();
        return this;
    }
    /**
     * 
     * Provides detailed information about the state of the training job. For detailed information about the secondary
     * status of the training job, see StatusMessage under SecondaryStatusTransition.
     * 
* SageMaker provides primary statuses and secondary statuses that apply to each of them: *
*
     * Starting - Starting the training job.
     * 
     * Downloading - An optional stage for algorithms that support File training input mode.
     * It indicates that data is being downloaded to the ML storage volumes.
     * 
     * Training - Training is in progress.
     * 
     * Uploading - Training is complete and the model artifacts are being uploaded to the S3 location.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. The reason for the failure is returned in the
     * FailureReason field of DescribeTrainingJobResponse.
     * 
     * MaxRuntimeExceeded - The job stopped because it exceeded the maximum allowed runtime.
     * 
     * Stopped - The training job has stopped.
     * 
     * Stopping - Stopping the training job.
     * 
     * Valid values for SecondaryStatus are subject to change.
     * 
* We no longer support the following secondary statuses: *
*
     * LaunchingMLInstances
     * 
     * PreparingTrainingStack
     * 
     * DownloadingTrainingImage
     * 
StatusMessage under SecondaryStatusTransition.
     *        * SageMaker provides primary statuses and secondary statuses that apply to each of them: *
*
     *        Starting - Starting the training job.
     *        
     *        Downloading - An optional stage for algorithms that support File training input
     *        mode. It indicates that data is being downloaded to the ML storage volumes.
     *        
     *        Training - Training is in progress.
     *        
     *        Uploading - Training is complete and the model artifacts are being uploaded to the S3
     *        location.
     *        
     *        Completed - The training job has completed.
     *        
     *        Failed - The training job has failed. The reason for the failure is returned in the
     *        FailureReason field of DescribeTrainingJobResponse.
     *        
     *        MaxRuntimeExceeded - The job stopped because it exceeded the maximum allowed runtime.
     *        
     *        Stopped - The training job has stopped.
     *        
     *        Stopping - Stopping the training job.
     *        
     *        Valid values for SecondaryStatus are subject to change.
     *        
* We no longer support the following secondary statuses: *
*
     *        LaunchingMLInstances
     *        
     *        PreparingTrainingStack
     *        
     *        DownloadingTrainingImage
     *        
     * Provides detailed information about the state of the training job. For detailed information about the secondary
     * status of the training job, see StatusMessage under SecondaryStatusTransition.
     * 
* SageMaker provides primary statuses and secondary statuses that apply to each of them: *
*
     * Starting - Starting the training job.
     * 
     * Downloading - An optional stage for algorithms that support File training input mode.
     * It indicates that data is being downloaded to the ML storage volumes.
     * 
     * Training - Training is in progress.
     * 
     * Uploading - Training is complete and the model artifacts are being uploaded to the S3 location.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. The reason for the failure is returned in the
     * FailureReason field of DescribeTrainingJobResponse.
     * 
     * MaxRuntimeExceeded - The job stopped because it exceeded the maximum allowed runtime.
     * 
     * Stopped - The training job has stopped.
     * 
     * Stopping - Stopping the training job.
     * 
     * Valid values for SecondaryStatus are subject to change.
     * 
* We no longer support the following secondary statuses: *
*
     * LaunchingMLInstances
     * 
     * PreparingTrainingStack
     * 
     * DownloadingTrainingImage
     * 
StatusMessage under SecondaryStatusTransition.
     *         * SageMaker provides primary statuses and secondary statuses that apply to each of them: *
*
     *         Starting - Starting the training job.
     *         
     *         Downloading - An optional stage for algorithms that support File training input
     *         mode. It indicates that data is being downloaded to the ML storage volumes.
     *         
     *         Training - Training is in progress.
     *         
     *         Uploading - Training is complete and the model artifacts are being uploaded to the S3
     *         location.
     *         
     *         Completed - The training job has completed.
     *         
     *         Failed - The training job has failed. The reason for the failure is returned in the
     *         FailureReason field of DescribeTrainingJobResponse.
     *         
     *         MaxRuntimeExceeded - The job stopped because it exceeded the maximum allowed runtime.
     *         
     *         Stopped - The training job has stopped.
     *         
     *         Stopping - Stopping the training job.
     *         
     *         Valid values for SecondaryStatus are subject to change.
     *         
* We no longer support the following secondary statuses: *
*
     *         LaunchingMLInstances
     *         
     *         PreparingTrainingStack
     *         
     *         DownloadingTrainingImage
     *         
     * Provides detailed information about the state of the training job. For detailed information about the secondary
     * status of the training job, see StatusMessage under SecondaryStatusTransition.
     * 
* SageMaker provides primary statuses and secondary statuses that apply to each of them: *
*
     * Starting - Starting the training job.
     * 
     * Downloading - An optional stage for algorithms that support File training input mode.
     * It indicates that data is being downloaded to the ML storage volumes.
     * 
     * Training - Training is in progress.
     * 
     * Uploading - Training is complete and the model artifacts are being uploaded to the S3 location.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. The reason for the failure is returned in the
     * FailureReason field of DescribeTrainingJobResponse.
     * 
     * MaxRuntimeExceeded - The job stopped because it exceeded the maximum allowed runtime.
     * 
     * Stopped - The training job has stopped.
     * 
     * Stopping - Stopping the training job.
     * 
     * Valid values for SecondaryStatus are subject to change.
     * 
* We no longer support the following secondary statuses: *
*
     * LaunchingMLInstances
     * 
     * PreparingTrainingStack
     * 
     * DownloadingTrainingImage
     * 
StatusMessage under SecondaryStatusTransition.
     *        * SageMaker provides primary statuses and secondary statuses that apply to each of them: *
*
     *        Starting - Starting the training job.
     *        
     *        Downloading - An optional stage for algorithms that support File training input
     *        mode. It indicates that data is being downloaded to the ML storage volumes.
     *        
     *        Training - Training is in progress.
     *        
     *        Uploading - Training is complete and the model artifacts are being uploaded to the S3
     *        location.
     *        
     *        Completed - The training job has completed.
     *        
     *        Failed - The training job has failed. The reason for the failure is returned in the
     *        FailureReason field of DescribeTrainingJobResponse.
     *        
     *        MaxRuntimeExceeded - The job stopped because it exceeded the maximum allowed runtime.
     *        
     *        Stopped - The training job has stopped.
     *        
     *        Stopping - Stopping the training job.
     *        
     *        Valid values for SecondaryStatus are subject to change.
     *        
* We no longer support the following secondary statuses: *
*
     *        LaunchingMLInstances
     *        
     *        PreparingTrainingStack
     *        
     *        DownloadingTrainingImage
     *        
     * Provides detailed information about the state of the training job. For detailed information about the secondary
     * status of the training job, see StatusMessage under SecondaryStatusTransition.
     * 
* SageMaker provides primary statuses and secondary statuses that apply to each of them: *
*
     * Starting - Starting the training job.
     * 
     * Downloading - An optional stage for algorithms that support File training input mode.
     * It indicates that data is being downloaded to the ML storage volumes.
     * 
     * Training - Training is in progress.
     * 
     * Uploading - Training is complete and the model artifacts are being uploaded to the S3 location.
     * 
     * Completed - The training job has completed.
     * 
     * Failed - The training job has failed. The reason for the failure is returned in the
     * FailureReason field of DescribeTrainingJobResponse.
     * 
     * MaxRuntimeExceeded - The job stopped because it exceeded the maximum allowed runtime.
     * 
     * Stopped - The training job has stopped.
     * 
     * Stopping - Stopping the training job.
     * 
     * Valid values for SecondaryStatus are subject to change.
     * 
* We no longer support the following secondary statuses: *
*
     * LaunchingMLInstances
     * 
     * PreparingTrainingStack
     * 
     * DownloadingTrainingImage
     * 
StatusMessage under SecondaryStatusTransition.
     *        * SageMaker provides primary statuses and secondary statuses that apply to each of them: *
*
     *        Starting - Starting the training job.
     *        
     *        Downloading - An optional stage for algorithms that support File training input
     *        mode. It indicates that data is being downloaded to the ML storage volumes.
     *        
     *        Training - Training is in progress.
     *        
     *        Uploading - Training is complete and the model artifacts are being uploaded to the S3
     *        location.
     *        
     *        Completed - The training job has completed.
     *        
     *        Failed - The training job has failed. The reason for the failure is returned in the
     *        FailureReason field of DescribeTrainingJobResponse.
     *        
     *        MaxRuntimeExceeded - The job stopped because it exceeded the maximum allowed runtime.
     *        
     *        Stopped - The training job has stopped.
     *        
     *        Stopping - Stopping the training job.
     *        
     *        Valid values for SecondaryStatus are subject to change.
     *        
* We no longer support the following secondary statuses: *
*
     *        LaunchingMLInstances
     *        
     *        PreparingTrainingStack
     *        
     *        DownloadingTrainingImage
     *        
* If the training job failed, the reason it failed. *
* * @param failureReason * If the training job failed, the reason it failed. */ public void setFailureReason(String failureReason) { this.failureReason = failureReason; } /** ** If the training job failed, the reason it failed. *
* * @return If the training job failed, the reason it failed. */ public String getFailureReason() { return this.failureReason; } /** ** If the training job failed, the reason it failed. *
* * @param failureReason * If the training job failed, the reason it failed. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withFailureReason(String failureReason) { setFailureReason(failureReason); return this; } /** ** Algorithm-specific parameters. *
* * @return Algorithm-specific parameters. */ public java.util.Map* Algorithm-specific parameters. *
* * @param hyperParameters * Algorithm-specific parameters. */ public void setHyperParameters(java.util.Map* Algorithm-specific parameters. *
* * @param hyperParameters * Algorithm-specific parameters. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withHyperParameters(java.util.Map* Information about the algorithm used for training, and algorithm metadata. *
* * @param algorithmSpecification * Information about the algorithm used for training, and algorithm metadata. */ public void setAlgorithmSpecification(AlgorithmSpecification algorithmSpecification) { this.algorithmSpecification = algorithmSpecification; } /** ** Information about the algorithm used for training, and algorithm metadata. *
* * @return Information about the algorithm used for training, and algorithm metadata. */ public AlgorithmSpecification getAlgorithmSpecification() { return this.algorithmSpecification; } /** ** Information about the algorithm used for training, and algorithm metadata. *
* * @param algorithmSpecification * Information about the algorithm used for training, and algorithm metadata. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withAlgorithmSpecification(AlgorithmSpecification algorithmSpecification) { setAlgorithmSpecification(algorithmSpecification); return this; } /** ** The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. *
* * @param roleArn * The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. */ public void setRoleArn(String roleArn) { this.roleArn = roleArn; } /** ** The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. *
* * @return The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. */ public String getRoleArn() { return this.roleArn; } /** ** The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. *
* * @param roleArn * The Amazon Web Services Identity and Access Management (IAM) role configured for the training job. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withRoleArn(String roleArn) { setRoleArn(roleArn); return this; } /** *
     * An array of Channel objects that describes each data input channel.
     * 
* Your input must be in the same Amazon Web Services region as your training job. *
* * @return An array ofChannel objects that describes each data input channel.
     *         
     *         Your input must be in the same Amazon Web Services region as your training job.
     */
    public java.util.List 
     * An array of  
     * Your input must be in the same Amazon Web Services region as your training job.
     * Channel objects that describes each data input channel.
     * Channel objects that describes each data input channel.
     *        Your input must be in the same Amazon Web Services region as your training job.
     */
    public void setInputDataConfig(java.util.Collection 
     * An array of  
     * Your input must be in the same Amazon Web Services region as your training job.
     *  
     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setInputDataConfig(java.util.Collection)} or {@link #withInputDataConfig(java.util.Collection)} if you
     * want to override the existing values.
     * Channel objects that describes each data input channel.
     * Channel objects that describes each data input channel.
     *        Your input must be in the same Amazon Web Services region as your training job.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TrainingJob withInputDataConfig(Channel... inputDataConfig) {
        if (this.inputDataConfig == null) {
            setInputDataConfig(new java.util.ArrayList 
     * An array of  
     * Your input must be in the same Amazon Web Services region as your training job.
     * Channel objects that describes each data input channel.
     * Channel objects that describes each data input channel.
     *        Your input must be in the same Amazon Web Services region as your training job.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TrainingJob withInputDataConfig(java.util.Collection 
     * The S3 path where model artifacts that you configured when creating the job are stored. SageMaker creates
     * subfolders for model artifacts.
     *  
     * The S3 path where model artifacts that you configured when creating the job are stored. SageMaker creates
     * subfolders for model artifacts.
     *  
     * The S3 path where model artifacts that you configured when creating the job are stored. SageMaker creates
     * subfolders for model artifacts.
     *  
     * Resources, including ML compute instances and ML storage volumes, that are configured for model training.
     *  
     * Resources, including ML compute instances and ML storage volumes, that are configured for model training.
     *  
     * Resources, including ML compute instances and ML storage volumes, that are configured for model training.
     *  
     * A VpcConfig object
     * that specifies the VPC that this training job has access to. For more information, see Protect Training Jobs by Using an Amazon
     * Virtual Private Cloud.
     *  
     * A VpcConfig object
     * that specifies the VPC that this training job has access to. For more information, see Protect Training Jobs by Using an Amazon
     * Virtual Private Cloud.
     *  
     * A VpcConfig object
     * that specifies the VPC that this training job has access to. For more information, see Protect Training Jobs by Using an Amazon
     * Virtual Private Cloud.
     *  
     * Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training
     * job has to complete. When the job reaches the time limit, SageMaker ends the training job. Use this API to cap
     * model training costs.
     *  
     * To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays job termination for
     * 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training
     * are not lost.
     * 
     *        To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays job termination
     *        for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of
     *        training are not lost.
     */
    public void setStoppingCondition(StoppingCondition stoppingCondition) {
        this.stoppingCondition = stoppingCondition;
    }
    /**
     * 
* Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training * job has to complete. When the job reaches the time limit, SageMaker ends the training job. Use this API to cap * model training costs. *
*
     * To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays job termination for
     * 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training
     * are not lost.
     * 
     *         To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays job
     *         termination for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so
     *         the results of training are not lost.
     */
    public StoppingCondition getStoppingCondition() {
        return this.stoppingCondition;
    }
    /**
     * 
* Specifies a limit to how long a model training job can run. It also specifies how long a managed Spot training * job has to complete. When the job reaches the time limit, SageMaker ends the training job. Use this API to cap * model training costs. *
*
     * To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays job termination for
     * 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of training
     * are not lost.
     * 
     *        To stop a job, SageMaker sends the algorithm the SIGTERM signal, which delays job termination
     *        for 120 seconds. Algorithms can use this 120-second window to save the model artifacts, so the results of
     *        training are not lost.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TrainingJob withStoppingCondition(StoppingCondition stoppingCondition) {
        setStoppingCondition(stoppingCondition);
        return this;
    }
    /**
     * 
* A timestamp that indicates when the training job was created. *
* * @param creationTime * A timestamp that indicates when the training job was created. */ public void setCreationTime(java.util.Date creationTime) { this.creationTime = creationTime; } /** ** A timestamp that indicates when the training job was created. *
* * @return A timestamp that indicates when the training job was created. */ public java.util.Date getCreationTime() { return this.creationTime; } /** ** A timestamp that indicates when the training job was created. *
* * @param creationTime * A timestamp that indicates when the training job was created. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withCreationTime(java.util.Date creationTime) { setCreationTime(creationTime); return this; } /** *
     * Indicates the time when the training job starts on training instances. You are billed for the time interval
     * between this time and the value of TrainingEndTime. The start time in CloudWatch Logs might be later
     * than this time. The difference is due to the time it takes to download the training data and to the size of the
     * training container.
     * 
TrainingEndTime. The start time in CloudWatch
     *        Logs might be later than this time. The difference is due to the time it takes to download the training
     *        data and to the size of the training container.
     */
    public void setTrainingStartTime(java.util.Date trainingStartTime) {
        this.trainingStartTime = trainingStartTime;
    }
    /**
     * 
     * Indicates the time when the training job starts on training instances. You are billed for the time interval
     * between this time and the value of TrainingEndTime. The start time in CloudWatch Logs might be later
     * than this time. The difference is due to the time it takes to download the training data and to the size of the
     * training container.
     * 
TrainingEndTime. The start time in CloudWatch
     *         Logs might be later than this time. The difference is due to the time it takes to download the training
     *         data and to the size of the training container.
     */
    public java.util.Date getTrainingStartTime() {
        return this.trainingStartTime;
    }
    /**
     * 
     * Indicates the time when the training job starts on training instances. You are billed for the time interval
     * between this time and the value of TrainingEndTime. The start time in CloudWatch Logs might be later
     * than this time. The difference is due to the time it takes to download the training data and to the size of the
     * training container.
     * 
TrainingEndTime. The start time in CloudWatch
     *        Logs might be later than this time. The difference is due to the time it takes to download the training
     *        data and to the size of the training container.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TrainingJob withTrainingStartTime(java.util.Date trainingStartTime) {
        setTrainingStartTime(trainingStartTime);
        return this;
    }
    /**
     * 
     * Indicates the time when the training job ends on training instances. You are billed for the time interval between
     * the value of TrainingStartTime and this time. For successful jobs and stopped jobs, this is the time
     * after model artifacts are uploaded. For failed jobs, this is the time when SageMaker detects a job failure.
     * 
TrainingStartTime and this time. For successful jobs and stopped jobs,
     *        this is the time after model artifacts are uploaded. For failed jobs, this is the time when SageMaker
     *        detects a job failure.
     */
    public void setTrainingEndTime(java.util.Date trainingEndTime) {
        this.trainingEndTime = trainingEndTime;
    }
    /**
     * 
     * Indicates the time when the training job ends on training instances. You are billed for the time interval between
     * the value of TrainingStartTime and this time. For successful jobs and stopped jobs, this is the time
     * after model artifacts are uploaded. For failed jobs, this is the time when SageMaker detects a job failure.
     * 
TrainingStartTime and this time. For successful jobs and stopped jobs,
     *         this is the time after model artifacts are uploaded. For failed jobs, this is the time when SageMaker
     *         detects a job failure.
     */
    public java.util.Date getTrainingEndTime() {
        return this.trainingEndTime;
    }
    /**
     * 
     * Indicates the time when the training job ends on training instances. You are billed for the time interval between
     * the value of TrainingStartTime and this time. For successful jobs and stopped jobs, this is the time
     * after model artifacts are uploaded. For failed jobs, this is the time when SageMaker detects a job failure.
     * 
TrainingStartTime and this time. For successful jobs and stopped jobs,
     *        this is the time after model artifacts are uploaded. For failed jobs, this is the time when SageMaker
     *        detects a job failure.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TrainingJob withTrainingEndTime(java.util.Date trainingEndTime) {
        setTrainingEndTime(trainingEndTime);
        return this;
    }
    /**
     * * A timestamp that indicates when the status of the training job was last modified. *
* * @param lastModifiedTime * A timestamp that indicates when the status of the training job was last modified. */ public void setLastModifiedTime(java.util.Date lastModifiedTime) { this.lastModifiedTime = lastModifiedTime; } /** ** A timestamp that indicates when the status of the training job was last modified. *
* * @return A timestamp that indicates when the status of the training job was last modified. */ public java.util.Date getLastModifiedTime() { return this.lastModifiedTime; } /** ** A timestamp that indicates when the status of the training job was last modified. *
* * @param lastModifiedTime * A timestamp that indicates when the status of the training job was last modified. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withLastModifiedTime(java.util.Date lastModifiedTime) { setLastModifiedTime(lastModifiedTime); return this; } /** ** A history of all of the secondary statuses that the training job has transitioned through. *
* * @return A history of all of the secondary statuses that the training job has transitioned through. */ public java.util.List* A history of all of the secondary statuses that the training job has transitioned through. *
* * @param secondaryStatusTransitions * A history of all of the secondary statuses that the training job has transitioned through. */ public void setSecondaryStatusTransitions(java.util.Collection* A history of all of the secondary statuses that the training job has transitioned through. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setSecondaryStatusTransitions(java.util.Collection)} or * {@link #withSecondaryStatusTransitions(java.util.Collection)} if you want to override the existing values. *
* * @param secondaryStatusTransitions * A history of all of the secondary statuses that the training job has transitioned through. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withSecondaryStatusTransitions(SecondaryStatusTransition... secondaryStatusTransitions) { if (this.secondaryStatusTransitions == null) { setSecondaryStatusTransitions(new java.util.ArrayList* A history of all of the secondary statuses that the training job has transitioned through. *
* * @param secondaryStatusTransitions * A history of all of the secondary statuses that the training job has transitioned through. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withSecondaryStatusTransitions(java.util.Collection* A list of final metric values that are set when the training job completes. Used only if the training job was * configured to use metrics. *
* * @return A list of final metric values that are set when the training job completes. Used only if the training job * was configured to use metrics. */ public java.util.List* A list of final metric values that are set when the training job completes. Used only if the training job was * configured to use metrics. *
* * @param finalMetricDataList * A list of final metric values that are set when the training job completes. Used only if the training job * was configured to use metrics. */ public void setFinalMetricDataList(java.util.Collection* A list of final metric values that are set when the training job completes. Used only if the training job was * configured to use metrics. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setFinalMetricDataList(java.util.Collection)} or {@link #withFinalMetricDataList(java.util.Collection)} * if you want to override the existing values. *
* * @param finalMetricDataList * A list of final metric values that are set when the training job completes. Used only if the training job * was configured to use metrics. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withFinalMetricDataList(MetricData... finalMetricDataList) { if (this.finalMetricDataList == null) { setFinalMetricDataList(new java.util.ArrayList* A list of final metric values that are set when the training job completes. Used only if the training job was * configured to use metrics. *
* * @param finalMetricDataList * A list of final metric values that are set when the training job completes. Used only if the training job * was configured to use metrics. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withFinalMetricDataList(java.util.Collection
     * If the TrainingJob was created with network isolation, the value is set to true. If
     * network isolation is enabled, nodes can't communicate beyond the VPC they run in.
     * 
TrainingJob was created with network isolation, the value is set to true.
     *        If network isolation is enabled, nodes can't communicate beyond the VPC they run in.
     */
    public void setEnableNetworkIsolation(Boolean enableNetworkIsolation) {
        this.enableNetworkIsolation = enableNetworkIsolation;
    }
    /**
     * 
     * If the TrainingJob was created with network isolation, the value is set to true. If
     * network isolation is enabled, nodes can't communicate beyond the VPC they run in.
     * 
TrainingJob was created with network isolation, the value is set to true
     *         . If network isolation is enabled, nodes can't communicate beyond the VPC they run in.
     */
    public Boolean getEnableNetworkIsolation() {
        return this.enableNetworkIsolation;
    }
    /**
     * 
     * If the TrainingJob was created with network isolation, the value is set to true. If
     * network isolation is enabled, nodes can't communicate beyond the VPC they run in.
     * 
TrainingJob was created with network isolation, the value is set to true.
     *        If network isolation is enabled, nodes can't communicate beyond the VPC they run in.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TrainingJob withEnableNetworkIsolation(Boolean enableNetworkIsolation) {
        setEnableNetworkIsolation(enableNetworkIsolation);
        return this;
    }
    /**
     * 
     * If the TrainingJob was created with network isolation, the value is set to true. If
     * network isolation is enabled, nodes can't communicate beyond the VPC they run in.
     * 
TrainingJob was created with network isolation, the value is set to true
     *         . If network isolation is enabled, nodes can't communicate beyond the VPC they run in.
     */
    public Boolean isEnableNetworkIsolation() {
        return this.enableNetworkIsolation;
    }
    /**
     * 
     * To encrypt all communications between ML compute instances in distributed training, choose True.
     * Encryption provides greater security for distributed training, but training might take longer. How long it takes
     * depends on the amount of communication between compute instances, especially if you use a deep learning algorithm
     * in distributed training.
     * 
True. Encryption provides greater security for distributed training, but training might take
     *        longer. How long it takes depends on the amount of communication between compute instances, especially if
     *        you use a deep learning algorithm in distributed training.
     */
    public void setEnableInterContainerTrafficEncryption(Boolean enableInterContainerTrafficEncryption) {
        this.enableInterContainerTrafficEncryption = enableInterContainerTrafficEncryption;
    }
    /**
     * 
     * To encrypt all communications between ML compute instances in distributed training, choose True.
     * Encryption provides greater security for distributed training, but training might take longer. How long it takes
     * depends on the amount of communication between compute instances, especially if you use a deep learning algorithm
     * in distributed training.
     * 
True. Encryption provides greater security for distributed training, but training might take
     *         longer. How long it takes depends on the amount of communication between compute instances, especially if
     *         you use a deep learning algorithm in distributed training.
     */
    public Boolean getEnableInterContainerTrafficEncryption() {
        return this.enableInterContainerTrafficEncryption;
    }
    /**
     * 
     * To encrypt all communications between ML compute instances in distributed training, choose True.
     * Encryption provides greater security for distributed training, but training might take longer. How long it takes
     * depends on the amount of communication between compute instances, especially if you use a deep learning algorithm
     * in distributed training.
     * 
True. Encryption provides greater security for distributed training, but training might take
     *        longer. How long it takes depends on the amount of communication between compute instances, especially if
     *        you use a deep learning algorithm in distributed training.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TrainingJob withEnableInterContainerTrafficEncryption(Boolean enableInterContainerTrafficEncryption) {
        setEnableInterContainerTrafficEncryption(enableInterContainerTrafficEncryption);
        return this;
    }
    /**
     * 
     * To encrypt all communications between ML compute instances in distributed training, choose True.
     * Encryption provides greater security for distributed training, but training might take longer. How long it takes
     * depends on the amount of communication between compute instances, especially if you use a deep learning algorithm
     * in distributed training.
     * 
True. Encryption provides greater security for distributed training, but training might take
     *         longer. How long it takes depends on the amount of communication between compute instances, especially if
     *         you use a deep learning algorithm in distributed training.
     */
    public Boolean isEnableInterContainerTrafficEncryption() {
        return this.enableInterContainerTrafficEncryption;
    }
    /**
     * * When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of * on-demand instances. For more information, see Managed Spot * Training. *
* * @param enableManagedSpotTraining * When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of * on-demand instances. For more information, see Managed Spot * Training. */ public void setEnableManagedSpotTraining(Boolean enableManagedSpotTraining) { this.enableManagedSpotTraining = enableManagedSpotTraining; } /** ** When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of * on-demand instances. For more information, see Managed Spot * Training. *
* * @return When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of * on-demand instances. For more information, see Managed Spot * Training. */ public Boolean getEnableManagedSpotTraining() { return this.enableManagedSpotTraining; } /** ** When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of * on-demand instances. For more information, see Managed Spot * Training. *
* * @param enableManagedSpotTraining * When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of * on-demand instances. For more information, see Managed Spot * Training. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withEnableManagedSpotTraining(Boolean enableManagedSpotTraining) { setEnableManagedSpotTraining(enableManagedSpotTraining); return this; } /** ** When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of * on-demand instances. For more information, see Managed Spot * Training. *
* * @return When true, enables managed spot training using Amazon EC2 Spot instances to run training jobs instead of * on-demand instances. For more information, see Managed Spot * Training. */ public Boolean isEnableManagedSpotTraining() { return this.enableManagedSpotTraining; } /** * @param checkpointConfig */ public void setCheckpointConfig(CheckpointConfig checkpointConfig) { this.checkpointConfig = checkpointConfig; } /** * @return */ public CheckpointConfig getCheckpointConfig() { return this.checkpointConfig; } /** * @param checkpointConfig * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withCheckpointConfig(CheckpointConfig checkpointConfig) { setCheckpointConfig(checkpointConfig); return this; } /** ** The training time in seconds. *
* * @param trainingTimeInSeconds * The training time in seconds. */ public void setTrainingTimeInSeconds(Integer trainingTimeInSeconds) { this.trainingTimeInSeconds = trainingTimeInSeconds; } /** ** The training time in seconds. *
* * @return The training time in seconds. */ public Integer getTrainingTimeInSeconds() { return this.trainingTimeInSeconds; } /** ** The training time in seconds. *
* * @param trainingTimeInSeconds * The training time in seconds. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withTrainingTimeInSeconds(Integer trainingTimeInSeconds) { setTrainingTimeInSeconds(trainingTimeInSeconds); return this; } /** ** The billable time in seconds. *
* * @param billableTimeInSeconds * The billable time in seconds. */ public void setBillableTimeInSeconds(Integer billableTimeInSeconds) { this.billableTimeInSeconds = billableTimeInSeconds; } /** ** The billable time in seconds. *
* * @return The billable time in seconds. */ public Integer getBillableTimeInSeconds() { return this.billableTimeInSeconds; } /** ** The billable time in seconds. *
* * @param billableTimeInSeconds * The billable time in seconds. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withBillableTimeInSeconds(Integer billableTimeInSeconds) { setBillableTimeInSeconds(billableTimeInSeconds); return this; } /** * @param debugHookConfig */ public void setDebugHookConfig(DebugHookConfig debugHookConfig) { this.debugHookConfig = debugHookConfig; } /** * @return */ public DebugHookConfig getDebugHookConfig() { return this.debugHookConfig; } /** * @param debugHookConfig * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withDebugHookConfig(DebugHookConfig debugHookConfig) { setDebugHookConfig(debugHookConfig); return this; } /** * @param experimentConfig */ public void setExperimentConfig(ExperimentConfig experimentConfig) { this.experimentConfig = experimentConfig; } /** * @return */ public ExperimentConfig getExperimentConfig() { return this.experimentConfig; } /** * @param experimentConfig * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withExperimentConfig(ExperimentConfig experimentConfig) { setExperimentConfig(experimentConfig); return this; } /** ** Information about the debug rule configuration. *
* * @return Information about the debug rule configuration. */ public java.util.List* Information about the debug rule configuration. *
* * @param debugRuleConfigurations * Information about the debug rule configuration. */ public void setDebugRuleConfigurations(java.util.Collection* Information about the debug rule configuration. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setDebugRuleConfigurations(java.util.Collection)} or * {@link #withDebugRuleConfigurations(java.util.Collection)} if you want to override the existing values. *
* * @param debugRuleConfigurations * Information about the debug rule configuration. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withDebugRuleConfigurations(DebugRuleConfiguration... debugRuleConfigurations) { if (this.debugRuleConfigurations == null) { setDebugRuleConfigurations(new java.util.ArrayList* Information about the debug rule configuration. *
* * @param debugRuleConfigurations * Information about the debug rule configuration. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withDebugRuleConfigurations(java.util.Collection* Information about the evaluation status of the rules for the training job. *
* * @return Information about the evaluation status of the rules for the training job. */ public java.util.List* Information about the evaluation status of the rules for the training job. *
* * @param debugRuleEvaluationStatuses * Information about the evaluation status of the rules for the training job. */ public void setDebugRuleEvaluationStatuses(java.util.Collection* Information about the evaluation status of the rules for the training job. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setDebugRuleEvaluationStatuses(java.util.Collection)} or * {@link #withDebugRuleEvaluationStatuses(java.util.Collection)} if you want to override the existing values. *
* * @param debugRuleEvaluationStatuses * Information about the evaluation status of the rules for the training job. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withDebugRuleEvaluationStatuses(DebugRuleEvaluationStatus... debugRuleEvaluationStatuses) { if (this.debugRuleEvaluationStatuses == null) { setDebugRuleEvaluationStatuses(new java.util.ArrayList* Information about the evaluation status of the rules for the training job. *
* * @param debugRuleEvaluationStatuses * Information about the evaluation status of the rules for the training job. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withDebugRuleEvaluationStatuses(java.util.Collection* The environment variables to set in the Docker container. *
* * @return The environment variables to set in the Docker container. */ public java.util.Map* The environment variables to set in the Docker container. *
* * @param environment * The environment variables to set in the Docker container. */ public void setEnvironment(java.util.Map* The environment variables to set in the Docker container. *
* * @param environment * The environment variables to set in the Docker container. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withEnvironment(java.util.Map
     * The number of times to retry the job when the job fails due to an InternalServerError.
     * 
InternalServerError.
     */
    public void setRetryStrategy(RetryStrategy retryStrategy) {
        this.retryStrategy = retryStrategy;
    }
    /**
     * 
     * The number of times to retry the job when the job fails due to an InternalServerError.
     * 
InternalServerError.
     */
    public RetryStrategy getRetryStrategy() {
        return this.retryStrategy;
    }
    /**
     * 
     * The number of times to retry the job when the job fails due to an InternalServerError.
     * 
InternalServerError.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public TrainingJob withRetryStrategy(RetryStrategy retryStrategy) {
        setRetryStrategy(retryStrategy);
        return this;
    }
    /**
     * * An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, * for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services Resources. *
* * @return An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in * different ways, for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services * Resources. */ public java.util.List* An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, * for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services Resources. *
* * @param tags * An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in * different ways, for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services * Resources. */ public void setTags(java.util.Collection* An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, * for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services Resources. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *
* * @param tags * An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in * different ways, for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services * Resources. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withTags(Tag... tags) { if (this.tags == null) { setTags(new java.util.ArrayList* An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, * for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services Resources. *
* * @param tags * An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in * different ways, for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services * Resources. * @return Returns a reference to this object so that method calls can be chained together. */ public TrainingJob withTags(java.util.Collection