/* * 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.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateTrainingJobRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* The name of the training job. The name must be unique within an Amazon Web Services Region in an Amazon Web * Services account. *
*/ private String trainingJobName; /** ** Algorithm-specific parameters that influence the quality of the model. You set hyperparameters before you start * the learning process. For a list of hyperparameters for each training algorithm provided by SageMaker, see Algorithms. *
*
* You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and value is
* limited to 256 characters, as specified by the Length Constraint
.
*
* Do not include any security-sensitive information including account access IDs, secrets or tokens in any * hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject your * training job request and return an exception error. *
** The registry path of the Docker image that contains the training algorithm and algorithm-specific metadata, * including the input mode. For more information about algorithms provided by SageMaker, see Algorithms. For information about providing * your own algorithms, see Using * Your Own Algorithms with Amazon SageMaker. *
*/ private AlgorithmSpecification algorithmSpecification; /** ** The Amazon Resource Name (ARN) of an IAM role that SageMaker can assume to perform tasks on your behalf. *
** During model training, SageMaker needs your permission to read input data from an S3 bucket, download a Docker * image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, * and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to an IAM role. For more * information, see SageMaker * Roles. *
*
* To be able to pass this role to SageMaker, the caller of this API must have the iam:PassRole
* permission.
*
* An array of Channel
objects. Each channel is a named input source. InputDataConfig
* describes the input data and its location.
*
* Algorithms can accept input data from one or more channels. For example, an algorithm might have two channels of
* input data, training_data
and validation_data
. The configuration for each channel
* provides the S3, EFS, or FSx location where the input data is stored. It also provides information about the
* stored data: the MIME type, compression method, and whether the data is wrapped in RecordIO format.
*
* Depending on the input mode that the algorithm supports, SageMaker either copies input data files from an S3 * bucket to a local directory in the Docker container, or makes it available as input streams. For example, if you * specify an EFS location, input data files are available as input streams. They do not need to be downloaded. *
** Your input must be in the same Amazon Web Services region as your training job. *
*/ private java.util.List* Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates subfolders for * the artifacts. *
*/ private OutputDataConfig outputDataConfig; /** ** The resources, including the ML compute instances and ML storage volumes, to use for model training. *
*
* ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML storage
* volumes for scratch space. If you want SageMaker to use the ML storage volume to store the training data, choose
* File
as the TrainingInputMode
in the algorithm specification. For distributed training
* algorithms, specify an instance count greater than 1.
*
* A VpcConfig object * that specifies the VPC that you want your training job to connect to. Control access to and from your training * container by configuring the VPC. 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.
*
* 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* Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers * within a training cluster for distributed training. If you enable network isolation for training jobs that are * configured to use a VPC, SageMaker downloads and uploads customer data and model artifacts through the specified * VPC, but the training container does not have network access. *
*/ private Boolean 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. For more information, see Protect Communications Between ML
* Compute Instances in a Distributed Training Job.
*
* To train models using managed spot training, choose True
. Managed spot training provides a fully
* managed and scalable infrastructure for training machine learning models. this option is useful when training
* jobs can be interrupted and when there is flexibility when the training job is run.
*
* The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a starting * point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. They can be used * to see when managed spot training jobs are running, interrupted, resumed, or completed. *
*/ private Boolean enableManagedSpotTraining; /** ** Contains information about the output location for managed spot training checkpoint data. *
*/ private CheckpointConfig checkpointConfig; private DebugHookConfig debugHookConfig; /** ** Configuration information for Amazon SageMaker Debugger rules for debugging output tensors. *
*/ private java.util.List* Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. *
*/ 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
.
*
* The name of the training job. The name must be unique within an Amazon Web Services Region in an Amazon Web * Services account. *
* * @param trainingJobName * The name of the training job. The name must be unique within an Amazon Web Services Region in an Amazon * Web Services account. */ public void setTrainingJobName(String trainingJobName) { this.trainingJobName = trainingJobName; } /** ** The name of the training job. The name must be unique within an Amazon Web Services Region in an Amazon Web * Services account. *
* * @return The name of the training job. The name must be unique within an Amazon Web Services Region in an Amazon * Web Services account. */ public String getTrainingJobName() { return this.trainingJobName; } /** ** The name of the training job. The name must be unique within an Amazon Web Services Region in an Amazon Web * Services account. *
* * @param trainingJobName * The name of the training job. The name must be unique within an Amazon Web Services Region in an Amazon * Web Services account. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withTrainingJobName(String trainingJobName) { setTrainingJobName(trainingJobName); return this; } /** ** Algorithm-specific parameters that influence the quality of the model. You set hyperparameters before you start * the learning process. For a list of hyperparameters for each training algorithm provided by SageMaker, see Algorithms. *
*
* You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and value is
* limited to 256 characters, as specified by the Length Constraint
.
*
* Do not include any security-sensitive information including account access IDs, secrets or tokens in any * hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject your * training job request and return an exception error. *
*
* You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and
* value is limited to 256 characters, as specified by the Length Constraint
.
*
* Do not include any security-sensitive information including account access IDs, secrets or tokens in any * hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject * your training job request and return an exception error. *
*/ public java.util.Map* Algorithm-specific parameters that influence the quality of the model. You set hyperparameters before you start * the learning process. For a list of hyperparameters for each training algorithm provided by SageMaker, see Algorithms. *
*
* You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and value is
* limited to 256 characters, as specified by the Length Constraint
.
*
* Do not include any security-sensitive information including account access IDs, secrets or tokens in any * hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject your * training job request and return an exception error. *
*
* You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and
* value is limited to 256 characters, as specified by the Length Constraint
.
*
* Do not include any security-sensitive information including account access IDs, secrets or tokens in any * hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject * your training job request and return an exception error. *
*/ public void setHyperParameters(java.util.Map* Algorithm-specific parameters that influence the quality of the model. You set hyperparameters before you start * the learning process. For a list of hyperparameters for each training algorithm provided by SageMaker, see Algorithms. *
*
* You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and value is
* limited to 256 characters, as specified by the Length Constraint
.
*
* Do not include any security-sensitive information including account access IDs, secrets or tokens in any * hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject your * training job request and return an exception error. *
*
* You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and
* value is limited to 256 characters, as specified by the Length Constraint
.
*
* Do not include any security-sensitive information including account access IDs, secrets or tokens in any * hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject * your training job request and return an exception error. *
* @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withHyperParameters(java.util.Map* The registry path of the Docker image that contains the training algorithm and algorithm-specific metadata, * including the input mode. For more information about algorithms provided by SageMaker, see Algorithms. For information about providing * your own algorithms, see Using * Your Own Algorithms with Amazon SageMaker. *
* * @param algorithmSpecification * The registry path of the Docker image that contains the training algorithm and algorithm-specific * metadata, including the input mode. For more information about algorithms provided by SageMaker, see Algorithms. For information about * providing your own algorithms, see Using Your Own Algorithms with * Amazon SageMaker. */ public void setAlgorithmSpecification(AlgorithmSpecification algorithmSpecification) { this.algorithmSpecification = algorithmSpecification; } /** ** The registry path of the Docker image that contains the training algorithm and algorithm-specific metadata, * including the input mode. For more information about algorithms provided by SageMaker, see Algorithms. For information about providing * your own algorithms, see Using * Your Own Algorithms with Amazon SageMaker. *
* * @return The registry path of the Docker image that contains the training algorithm and algorithm-specific * metadata, including the input mode. For more information about algorithms provided by SageMaker, see Algorithms. For information about * providing your own algorithms, see Using Your Own Algorithms * with Amazon SageMaker. */ public AlgorithmSpecification getAlgorithmSpecification() { return this.algorithmSpecification; } /** ** The registry path of the Docker image that contains the training algorithm and algorithm-specific metadata, * including the input mode. For more information about algorithms provided by SageMaker, see Algorithms. For information about providing * your own algorithms, see Using * Your Own Algorithms with Amazon SageMaker. *
* * @param algorithmSpecification * The registry path of the Docker image that contains the training algorithm and algorithm-specific * metadata, including the input mode. For more information about algorithms provided by SageMaker, see Algorithms. For information about * providing your own algorithms, see Using Your Own Algorithms with * Amazon SageMaker. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withAlgorithmSpecification(AlgorithmSpecification algorithmSpecification) { setAlgorithmSpecification(algorithmSpecification); return this; } /** ** The Amazon Resource Name (ARN) of an IAM role that SageMaker can assume to perform tasks on your behalf. *
** During model training, SageMaker needs your permission to read input data from an S3 bucket, download a Docker * image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, * and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to an IAM role. For more * information, see SageMaker * Roles. *
*
* To be able to pass this role to SageMaker, the caller of this API must have the iam:PassRole
* permission.
*
* During model training, SageMaker needs your permission to read input data from an S3 bucket, download a * Docker image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon * CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to * an IAM role. For more information, see SageMaker Roles. *
*
* To be able to pass this role to SageMaker, the caller of this API must have the iam:PassRole
* permission.
*
* The Amazon Resource Name (ARN) of an IAM role that SageMaker can assume to perform tasks on your behalf. *
** During model training, SageMaker needs your permission to read input data from an S3 bucket, download a Docker * image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, * and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to an IAM role. For more * information, see SageMaker * Roles. *
*
* To be able to pass this role to SageMaker, the caller of this API must have the iam:PassRole
* permission.
*
* During model training, SageMaker needs your permission to read input data from an S3 bucket, download a * Docker image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon * CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks * to an IAM role. For more information, see SageMaker Roles. *
*
* To be able to pass this role to SageMaker, the caller of this API must have the iam:PassRole
* permission.
*
* The Amazon Resource Name (ARN) of an IAM role that SageMaker can assume to perform tasks on your behalf. *
** During model training, SageMaker needs your permission to read input data from an S3 bucket, download a Docker * image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon CloudWatch Logs, * and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to an IAM role. For more * information, see SageMaker * Roles. *
*
* To be able to pass this role to SageMaker, the caller of this API must have the iam:PassRole
* permission.
*
* During model training, SageMaker needs your permission to read input data from an S3 bucket, download a * Docker image that contains training code, write model artifacts to an S3 bucket, write logs to Amazon * CloudWatch Logs, and publish metrics to Amazon CloudWatch. You grant permissions for all of these tasks to * an IAM role. For more information, see SageMaker Roles. *
*
* To be able to pass this role to SageMaker, the caller of this API must have the iam:PassRole
* permission.
*
* An array of Channel
objects. Each channel is a named input source. InputDataConfig
* describes the input data and its location.
*
* Algorithms can accept input data from one or more channels. For example, an algorithm might have two channels of
* input data, training_data
and validation_data
. The configuration for each channel
* provides the S3, EFS, or FSx location where the input data is stored. It also provides information about the
* stored data: the MIME type, compression method, and whether the data is wrapped in RecordIO format.
*
* Depending on the input mode that the algorithm supports, SageMaker either copies input data files from an S3 * bucket to a local directory in the Docker container, or makes it available as input streams. For example, if you * specify an EFS location, input data files are available as input streams. They do not need to be downloaded. *
** Your input must be in the same Amazon Web Services region as your training job. *
* * @return An array ofChannel
objects. Each channel is a named input source.
* InputDataConfig
describes the input data and its location.
*
* Algorithms can accept input data from one or more channels. For example, an algorithm might have two
* channels of input data, training_data
and validation_data
. The configuration
* for each channel provides the S3, EFS, or FSx location where the input data is stored. It also provides
* information about the stored data: the MIME type, compression method, and whether the data is wrapped in
* RecordIO format.
*
* Depending on the input mode that the algorithm supports, SageMaker either copies input data files from an * S3 bucket to a local directory in the Docker container, or makes it available as input streams. For * example, if you specify an EFS location, input data files are available as input streams. They do not * need to be downloaded. *
*
* Your input must be in the same Amazon Web Services region as your training job.
*/
public java.util.List
* An array of
* Algorithms can accept input data from one or more channels. For example, an algorithm might have two channels of
* input data,
* Depending on the input mode that the algorithm supports, SageMaker either copies input data files from an S3
* bucket to a local directory in the Docker container, or makes it available as input streams. For example, if you
* specify an EFS location, input data files are available as input streams. They do not need to be downloaded.
*
* Your input must be in the same Amazon Web Services region as your training job.
* Channel
objects. Each channel is a named input source. InputDataConfig
* describes the input data and its location.
* training_data
and validation_data
. The configuration for each channel
* provides the S3, EFS, or FSx location where the input data is stored. It also provides information about the
* stored data: the MIME type, compression method, and whether the data is wrapped in RecordIO format.
* Channel
objects. Each channel is a named input source.
* InputDataConfig
describes the input data and its location.
* Algorithms can accept input data from one or more channels. For example, an algorithm might have two
* channels of input data, training_data
and validation_data
. The configuration for
* each channel provides the S3, EFS, or FSx location where the input data is stored. It also provides
* information about the stored data: the MIME type, compression method, and whether the data is wrapped in
* RecordIO format.
*
* Depending on the input mode that the algorithm supports, SageMaker either copies input data files from an * S3 bucket to a local directory in the Docker container, or makes it available as input streams. For * example, if you specify an EFS location, input data files are available as input streams. They do not need * to be downloaded. *
*
* Your input must be in the same Amazon Web Services region as your training job.
*/
public void setInputDataConfig(java.util.Collection
* An array of
* Algorithms can accept input data from one or more channels. For example, an algorithm might have two channels of
* input data,
* Depending on the input mode that the algorithm supports, SageMaker either copies input data files from an S3
* bucket to a local directory in the Docker container, or makes it available as input streams. For example, if you
* specify an EFS location, input data files are available as input streams. They do not need to be downloaded.
*
* 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. Each channel is a named input source. InputDataConfig
* describes the input data and its location.
* training_data
and validation_data
. The configuration for each channel
* provides the S3, EFS, or FSx location where the input data is stored. It also provides information about the
* stored data: the MIME type, compression method, and whether the data is wrapped in RecordIO format.
* Channel
objects. Each channel is a named input source.
* InputDataConfig
describes the input data and its location.
* Algorithms can accept input data from one or more channels. For example, an algorithm might have two
* channels of input data, training_data
and validation_data
. The configuration for
* each channel provides the S3, EFS, or FSx location where the input data is stored. It also provides
* information about the stored data: the MIME type, compression method, and whether the data is wrapped in
* RecordIO format.
*
* Depending on the input mode that the algorithm supports, SageMaker either copies input data files from an * S3 bucket to a local directory in the Docker container, or makes it available as input streams. For * example, if you specify an EFS location, input data files are available as input streams. They do not need * to be downloaded. *
*
* 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 CreateTrainingJobRequest withInputDataConfig(Channel... inputDataConfig) {
if (this.inputDataConfig == null) {
setInputDataConfig(new java.util.ArrayList
* An array of
* Algorithms can accept input data from one or more channels. For example, an algorithm might have two channels of
* input data,
* Depending on the input mode that the algorithm supports, SageMaker either copies input data files from an S3
* bucket to a local directory in the Docker container, or makes it available as input streams. For example, if you
* specify an EFS location, input data files are available as input streams. They do not need to be downloaded.
*
* Your input must be in the same Amazon Web Services region as your training job.
* Channel
objects. Each channel is a named input source. InputDataConfig
* describes the input data and its location.
* training_data
and validation_data
. The configuration for each channel
* provides the S3, EFS, or FSx location where the input data is stored. It also provides information about the
* stored data: the MIME type, compression method, and whether the data is wrapped in RecordIO format.
* Channel
objects. Each channel is a named input source.
* InputDataConfig
describes the input data and its location.
* Algorithms can accept input data from one or more channels. For example, an algorithm might have two
* channels of input data, training_data
and validation_data
. The configuration for
* each channel provides the S3, EFS, or FSx location where the input data is stored. It also provides
* information about the stored data: the MIME type, compression method, and whether the data is wrapped in
* RecordIO format.
*
* Depending on the input mode that the algorithm supports, SageMaker either copies input data files from an * S3 bucket to a local directory in the Docker container, or makes it available as input streams. For * example, if you specify an EFS location, input data files are available as input streams. They do not need * to be downloaded. *
*
* 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 CreateTrainingJobRequest withInputDataConfig(java.util.Collection
* Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates subfolders for
* the artifacts.
*
* Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates subfolders for
* the artifacts.
*
* Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates subfolders for
* the artifacts.
*
* The resources, including the ML compute instances and ML storage volumes, to use for model training.
*
* ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML storage
* volumes for scratch space. If you want SageMaker to use the ML storage volume to store the training data, choose
* File
as the TrainingInputMode
in the algorithm specification. For distributed training
* algorithms, specify an instance count greater than 1.
*
* ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML
* storage volumes for scratch space. If you want SageMaker to use the ML storage volume to store the
* training data, choose File
as the TrainingInputMode
in the algorithm
* specification. For distributed training algorithms, specify an instance count greater than 1.
*/
public void setResourceConfig(ResourceConfig resourceConfig) {
this.resourceConfig = resourceConfig;
}
/**
*
* The resources, including the ML compute instances and ML storage volumes, to use for model training. *
*
* ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML storage
* volumes for scratch space. If you want SageMaker to use the ML storage volume to store the training data, choose
* File
as the TrainingInputMode
in the algorithm specification. For distributed training
* algorithms, specify an instance count greater than 1.
*
* ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML
* storage volumes for scratch space. If you want SageMaker to use the ML storage volume to store the
* training data, choose File
as the TrainingInputMode
in the algorithm
* specification. For distributed training algorithms, specify an instance count greater than 1.
*/
public ResourceConfig getResourceConfig() {
return this.resourceConfig;
}
/**
*
* The resources, including the ML compute instances and ML storage volumes, to use for model training. *
*
* ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML storage
* volumes for scratch space. If you want SageMaker to use the ML storage volume to store the training data, choose
* File
as the TrainingInputMode
in the algorithm specification. For distributed training
* algorithms, specify an instance count greater than 1.
*
* ML storage volumes store model artifacts and incremental states. Training algorithms might also use ML
* storage volumes for scratch space. If you want SageMaker to use the ML storage volume to store the
* training data, choose File
as the TrainingInputMode
in the algorithm
* specification. For distributed training algorithms, specify an instance count greater than 1.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateTrainingJobRequest withResourceConfig(ResourceConfig resourceConfig) {
setResourceConfig(resourceConfig);
return this;
}
/**
*
* A VpcConfig object * that specifies the VPC that you want your training job to connect to. Control access to and from your training * container by configuring the VPC. For more information, see Protect Training Jobs by Using an Amazon * Virtual Private Cloud. *
* * @param vpcConfig * A VpcConfig * object that specifies the VPC that you want your training job to connect to. Control access to and from * your training container by configuring the VPC. For more information, see Protect Training Jobs by Using an * Amazon Virtual Private Cloud. */ public void setVpcConfig(VpcConfig vpcConfig) { this.vpcConfig = vpcConfig; } /** ** A VpcConfig object * that specifies the VPC that you want your training job to connect to. Control access to and from your training * container by configuring the VPC. For more information, see Protect Training Jobs by Using an Amazon * Virtual Private Cloud. *
* * @return A VpcConfig * object that specifies the VPC that you want your training job to connect to. Control access to and from * your training container by configuring the VPC. For more information, see Protect Training Jobs by Using an * Amazon Virtual Private Cloud. */ public VpcConfig getVpcConfig() { return this.vpcConfig; } /** ** A VpcConfig object * that specifies the VPC that you want your training job to connect to. Control access to and from your training * container by configuring the VPC. For more information, see Protect Training Jobs by Using an Amazon * Virtual Private Cloud. *
* * @param vpcConfig * A VpcConfig * object that specifies the VPC that you want your training job to connect to. Control access to and from * your training container by configuring the VPC. For more information, see Protect Training Jobs by Using an * Amazon Virtual Private Cloud. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withVpcConfig(VpcConfig vpcConfig) { setVpcConfig(vpcConfig); return this; } /** ** 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 CreateTrainingJobRequest withStoppingCondition(StoppingCondition stoppingCondition) {
setStoppingCondition(stoppingCondition);
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 CreateTrainingJobRequest 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 CreateTrainingJobRequest withTags(java.util.Collection* Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers * within a training cluster for distributed training. If you enable network isolation for training jobs that are * configured to use a VPC, SageMaker downloads and uploads customer data and model artifacts through the specified * VPC, but the training container does not have network access. *
* * @param enableNetworkIsolation * Isolates the training container. No inbound or outbound network calls can be made, except for calls * between peers within a training cluster for distributed training. If you enable network isolation for * training jobs that are configured to use a VPC, SageMaker downloads and uploads customer data and model * artifacts through the specified VPC, but the training container does not have network access. */ public void setEnableNetworkIsolation(Boolean enableNetworkIsolation) { this.enableNetworkIsolation = enableNetworkIsolation; } /** ** Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers * within a training cluster for distributed training. If you enable network isolation for training jobs that are * configured to use a VPC, SageMaker downloads and uploads customer data and model artifacts through the specified * VPC, but the training container does not have network access. *
* * @return Isolates the training container. No inbound or outbound network calls can be made, except for calls * between peers within a training cluster for distributed training. If you enable network isolation for * training jobs that are configured to use a VPC, SageMaker downloads and uploads customer data and model * artifacts through the specified VPC, but the training container does not have network access. */ public Boolean getEnableNetworkIsolation() { return this.enableNetworkIsolation; } /** ** Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers * within a training cluster for distributed training. If you enable network isolation for training jobs that are * configured to use a VPC, SageMaker downloads and uploads customer data and model artifacts through the specified * VPC, but the training container does not have network access. *
* * @param enableNetworkIsolation * Isolates the training container. No inbound or outbound network calls can be made, except for calls * between peers within a training cluster for distributed training. If you enable network isolation for * training jobs that are configured to use a VPC, SageMaker downloads and uploads customer data and model * artifacts through the specified VPC, but the training container does not have network access. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withEnableNetworkIsolation(Boolean enableNetworkIsolation) { setEnableNetworkIsolation(enableNetworkIsolation); return this; } /** ** Isolates the training container. No inbound or outbound network calls can be made, except for calls between peers * within a training cluster for distributed training. If you enable network isolation for training jobs that are * configured to use a VPC, SageMaker downloads and uploads customer data and model artifacts through the specified * VPC, but the training container does not have network access. *
* * @return Isolates the training container. No inbound or outbound network calls can be made, except for calls * between peers within a training cluster for distributed training. If you enable network isolation for * training jobs that are configured to use a VPC, SageMaker downloads and uploads customer data and model * artifacts through the specified VPC, but the training container does not have network access. */ 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. For more information, see Protect Communications Between ML
* Compute Instances in a Distributed Training Job.
*
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. For more information, see Protect Communications Between
* ML Compute Instances in a Distributed Training Job.
*/
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. For more information, see Protect Communications Between ML
* Compute Instances in a Distributed Training Job.
*
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. For more information, see Protect Communications Between
* ML Compute Instances in a Distributed Training Job.
*/
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. For more information, see Protect Communications Between ML
* Compute Instances in a Distributed Training Job.
*
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. For more information, see Protect Communications Between
* ML Compute Instances in a Distributed Training Job.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateTrainingJobRequest 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. For more information, see Protect Communications Between ML
* Compute Instances in a Distributed Training Job.
*
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. For more information, see Protect Communications Between
* ML Compute Instances in a Distributed Training Job.
*/
public Boolean isEnableInterContainerTrafficEncryption() {
return this.enableInterContainerTrafficEncryption;
}
/**
*
* To train models using managed spot training, choose True
. Managed spot training provides a fully
* managed and scalable infrastructure for training machine learning models. this option is useful when training
* jobs can be interrupted and when there is flexibility when the training job is run.
*
* The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a starting * point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. They can be used * to see when managed spot training jobs are running, interrupted, resumed, or completed. *
* * @param enableManagedSpotTraining * To train models using managed spot training, chooseTrue
. Managed spot training provides a
* fully managed and scalable infrastructure for training machine learning models. this option is useful when
* training jobs can be interrupted and when there is flexibility when the training job is run.
* * The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a * starting point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. * They can be used to see when managed spot training jobs are running, interrupted, resumed, or completed. */ public void setEnableManagedSpotTraining(Boolean enableManagedSpotTraining) { this.enableManagedSpotTraining = enableManagedSpotTraining; } /** *
* To train models using managed spot training, choose True
. Managed spot training provides a fully
* managed and scalable infrastructure for training machine learning models. this option is useful when training
* jobs can be interrupted and when there is flexibility when the training job is run.
*
* The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a starting * point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. They can be used * to see when managed spot training jobs are running, interrupted, resumed, or completed. *
* * @return To train models using managed spot training, chooseTrue
. Managed spot training provides a
* fully managed and scalable infrastructure for training machine learning models. this option is useful
* when training jobs can be interrupted and when there is flexibility when the training job is run.
* * The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a * starting point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. * They can be used to see when managed spot training jobs are running, interrupted, resumed, or completed. */ public Boolean getEnableManagedSpotTraining() { return this.enableManagedSpotTraining; } /** *
* To train models using managed spot training, choose True
. Managed spot training provides a fully
* managed and scalable infrastructure for training machine learning models. this option is useful when training
* jobs can be interrupted and when there is flexibility when the training job is run.
*
* The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a starting * point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. They can be used * to see when managed spot training jobs are running, interrupted, resumed, or completed. *
* * @param enableManagedSpotTraining * To train models using managed spot training, chooseTrue
. Managed spot training provides a
* fully managed and scalable infrastructure for training machine learning models. this option is useful when
* training jobs can be interrupted and when there is flexibility when the training job is run.
* * The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a * starting point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. * They can be used to see when managed spot training jobs are running, interrupted, resumed, or completed. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withEnableManagedSpotTraining(Boolean enableManagedSpotTraining) { setEnableManagedSpotTraining(enableManagedSpotTraining); return this; } /** *
* To train models using managed spot training, choose True
. Managed spot training provides a fully
* managed and scalable infrastructure for training machine learning models. this option is useful when training
* jobs can be interrupted and when there is flexibility when the training job is run.
*
* The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a starting * point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. They can be used * to see when managed spot training jobs are running, interrupted, resumed, or completed. *
* * @return To train models using managed spot training, chooseTrue
. Managed spot training provides a
* fully managed and scalable infrastructure for training machine learning models. this option is useful
* when training jobs can be interrupted and when there is flexibility when the training job is run.
* * The complete and intermediate results of jobs are stored in an Amazon S3 bucket, and can be used as a * starting point to train models incrementally. Amazon SageMaker provides metrics and logs in CloudWatch. * They can be used to see when managed spot training jobs are running, interrupted, resumed, or completed. */ public Boolean isEnableManagedSpotTraining() { return this.enableManagedSpotTraining; } /** *
* Contains information about the output location for managed spot training checkpoint data. *
* * @param checkpointConfig * Contains information about the output location for managed spot training checkpoint data. */ public void setCheckpointConfig(CheckpointConfig checkpointConfig) { this.checkpointConfig = checkpointConfig; } /** ** Contains information about the output location for managed spot training checkpoint data. *
* * @return Contains information about the output location for managed spot training checkpoint data. */ public CheckpointConfig getCheckpointConfig() { return this.checkpointConfig; } /** ** Contains information about the output location for managed spot training checkpoint data. *
* * @param checkpointConfig * Contains information about the output location for managed spot training checkpoint data. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withCheckpointConfig(CheckpointConfig checkpointConfig) { setCheckpointConfig(checkpointConfig); 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 CreateTrainingJobRequest withDebugHookConfig(DebugHookConfig debugHookConfig) { setDebugHookConfig(debugHookConfig); return this; } /** ** Configuration information for Amazon SageMaker Debugger rules for debugging output tensors. *
* * @return Configuration information for Amazon SageMaker Debugger rules for debugging output tensors. */ public java.util.List* Configuration information for Amazon SageMaker Debugger rules for debugging output tensors. *
* * @param debugRuleConfigurations * Configuration information for Amazon SageMaker Debugger rules for debugging output tensors. */ public void setDebugRuleConfigurations(java.util.Collection* Configuration information for Amazon SageMaker Debugger rules for debugging output tensors. *
** 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 * Configuration information for Amazon SageMaker Debugger rules for debugging output tensors. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withDebugRuleConfigurations(DebugRuleConfiguration... debugRuleConfigurations) { if (this.debugRuleConfigurations == null) { setDebugRuleConfigurations(new java.util.ArrayList* Configuration information for Amazon SageMaker Debugger rules for debugging output tensors. *
* * @param debugRuleConfigurations * Configuration information for Amazon SageMaker Debugger rules for debugging output tensors. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withDebugRuleConfigurations(java.util.Collection* Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. *
* * @return Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. */ public java.util.List* Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. *
* * @param profilerRuleConfigurations * Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. */ public void setProfilerRuleConfigurations(java.util.Collection* Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setProfilerRuleConfigurations(java.util.Collection)} or * {@link #withProfilerRuleConfigurations(java.util.Collection)} if you want to override the existing values. *
* * @param profilerRuleConfigurations * Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withProfilerRuleConfigurations(ProfilerRuleConfiguration... profilerRuleConfigurations) { if (this.profilerRuleConfigurations == null) { setProfilerRuleConfigurations(new java.util.ArrayList* Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. *
* * @param profilerRuleConfigurations * Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withProfilerRuleConfigurations(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 CreateTrainingJobRequest 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 CreateTrainingJobRequest withRetryStrategy(RetryStrategy retryStrategy) {
setRetryStrategy(retryStrategy);
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getTrainingJobName() != null)
sb.append("TrainingJobName: ").append(getTrainingJobName()).append(",");
if (getHyperParameters() != null)
sb.append("HyperParameters: ").append(getHyperParameters()).append(",");
if (getAlgorithmSpecification() != null)
sb.append("AlgorithmSpecification: ").append(getAlgorithmSpecification()).append(",");
if (getRoleArn() != null)
sb.append("RoleArn: ").append(getRoleArn()).append(",");
if (getInputDataConfig() != null)
sb.append("InputDataConfig: ").append(getInputDataConfig()).append(",");
if (getOutputDataConfig() != null)
sb.append("OutputDataConfig: ").append(getOutputDataConfig()).append(",");
if (getResourceConfig() != null)
sb.append("ResourceConfig: ").append(getResourceConfig()).append(",");
if (getVpcConfig() != null)
sb.append("VpcConfig: ").append(getVpcConfig()).append(",");
if (getStoppingCondition() != null)
sb.append("StoppingCondition: ").append(getStoppingCondition()).append(",");
if (getTags() != null)
sb.append("Tags: ").append(getTags()).append(",");
if (getEnableNetworkIsolation() != null)
sb.append("EnableNetworkIsolation: ").append(getEnableNetworkIsolation()).append(",");
if (getEnableInterContainerTrafficEncryption() != null)
sb.append("EnableInterContainerTrafficEncryption: ").append(getEnableInterContainerTrafficEncryption()).append(",");
if (getEnableManagedSpotTraining() != null)
sb.append("EnableManagedSpotTraining: ").append(getEnableManagedSpotTraining()).append(",");
if (getCheckpointConfig() != null)
sb.append("CheckpointConfig: ").append(getCheckpointConfig()).append(",");
if (getDebugHookConfig() != null)
sb.append("DebugHookConfig: ").append(getDebugHookConfig()).append(",");
if (getDebugRuleConfigurations() != null)
sb.append("DebugRuleConfigurations: ").append(getDebugRuleConfigurations()).append(",");
if (getTensorBoardOutputConfig() != null)
sb.append("TensorBoardOutputConfig: ").append(getTensorBoardOutputConfig()).append(",");
if (getExperimentConfig() != null)
sb.append("ExperimentConfig: ").append(getExperimentConfig()).append(",");
if (getProfilerConfig() != null)
sb.append("ProfilerConfig: ").append(getProfilerConfig()).append(",");
if (getProfilerRuleConfigurations() != null)
sb.append("ProfilerRuleConfigurations: ").append(getProfilerRuleConfigurations()).append(",");
if (getEnvironment() != null)
sb.append("Environment: ").append(getEnvironment()).append(",");
if (getRetryStrategy() != null)
sb.append("RetryStrategy: ").append(getRetryStrategy());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof CreateTrainingJobRequest == false)
return false;
CreateTrainingJobRequest other = (CreateTrainingJobRequest) obj;
if (other.getTrainingJobName() == null ^ this.getTrainingJobName() == null)
return false;
if (other.getTrainingJobName() != null && other.getTrainingJobName().equals(this.getTrainingJobName()) == false)
return false;
if (other.getHyperParameters() == null ^ this.getHyperParameters() == null)
return false;
if (other.getHyperParameters() != null && other.getHyperParameters().equals(this.getHyperParameters()) == false)
return false;
if (other.getAlgorithmSpecification() == null ^ this.getAlgorithmSpecification() == null)
return false;
if (other.getAlgorithmSpecification() != null && other.getAlgorithmSpecification().equals(this.getAlgorithmSpecification()) == false)
return false;
if (other.getRoleArn() == null ^ this.getRoleArn() == null)
return false;
if (other.getRoleArn() != null && other.getRoleArn().equals(this.getRoleArn()) == false)
return false;
if (other.getInputDataConfig() == null ^ this.getInputDataConfig() == null)
return false;
if (other.getInputDataConfig() != null && other.getInputDataConfig().equals(this.getInputDataConfig()) == false)
return false;
if (other.getOutputDataConfig() == null ^ this.getOutputDataConfig() == null)
return false;
if (other.getOutputDataConfig() != null && other.getOutputDataConfig().equals(this.getOutputDataConfig()) == false)
return false;
if (other.getResourceConfig() == null ^ this.getResourceConfig() == null)
return false;
if (other.getResourceConfig() != null && other.getResourceConfig().equals(this.getResourceConfig()) == false)
return false;
if (other.getVpcConfig() == null ^ this.getVpcConfig() == null)
return false;
if (other.getVpcConfig() != null && other.getVpcConfig().equals(this.getVpcConfig()) == false)
return false;
if (other.getStoppingCondition() == null ^ this.getStoppingCondition() == null)
return false;
if (other.getStoppingCondition() != null && other.getStoppingCondition().equals(this.getStoppingCondition()) == false)
return false;
if (other.getTags() == null ^ this.getTags() == null)
return false;
if (other.getTags() != null && other.getTags().equals(this.getTags()) == false)
return false;
if (other.getEnableNetworkIsolation() == null ^ this.getEnableNetworkIsolation() == null)
return false;
if (other.getEnableNetworkIsolation() != null && other.getEnableNetworkIsolation().equals(this.getEnableNetworkIsolation()) == false)
return false;
if (other.getEnableInterContainerTrafficEncryption() == null ^ this.getEnableInterContainerTrafficEncryption() == null)
return false;
if (other.getEnableInterContainerTrafficEncryption() != null
&& other.getEnableInterContainerTrafficEncryption().equals(this.getEnableInterContainerTrafficEncryption()) == false)
return false;
if (other.getEnableManagedSpotTraining() == null ^ this.getEnableManagedSpotTraining() == null)
return false;
if (other.getEnableManagedSpotTraining() != null && other.getEnableManagedSpotTraining().equals(this.getEnableManagedSpotTraining()) == false)
return false;
if (other.getCheckpointConfig() == null ^ this.getCheckpointConfig() == null)
return false;
if (other.getCheckpointConfig() != null && other.getCheckpointConfig().equals(this.getCheckpointConfig()) == false)
return false;
if (other.getDebugHookConfig() == null ^ this.getDebugHookConfig() == null)
return false;
if (other.getDebugHookConfig() != null && other.getDebugHookConfig().equals(this.getDebugHookConfig()) == false)
return false;
if (other.getDebugRuleConfigurations() == null ^ this.getDebugRuleConfigurations() == null)
return false;
if (other.getDebugRuleConfigurations() != null && other.getDebugRuleConfigurations().equals(this.getDebugRuleConfigurations()) == false)
return false;
if (other.getTensorBoardOutputConfig() == null ^ this.getTensorBoardOutputConfig() == null)
return false;
if (other.getTensorBoardOutputConfig() != null && other.getTensorBoardOutputConfig().equals(this.getTensorBoardOutputConfig()) == false)
return false;
if (other.getExperimentConfig() == null ^ this.getExperimentConfig() == null)
return false;
if (other.getExperimentConfig() != null && other.getExperimentConfig().equals(this.getExperimentConfig()) == false)
return false;
if (other.getProfilerConfig() == null ^ this.getProfilerConfig() == null)
return false;
if (other.getProfilerConfig() != null && other.getProfilerConfig().equals(this.getProfilerConfig()) == false)
return false;
if (other.getProfilerRuleConfigurations() == null ^ this.getProfilerRuleConfigurations() == null)
return false;
if (other.getProfilerRuleConfigurations() != null && other.getProfilerRuleConfigurations().equals(this.getProfilerRuleConfigurations()) == false)
return false;
if (other.getEnvironment() == null ^ this.getEnvironment() == null)
return false;
if (other.getEnvironment() != null && other.getEnvironment().equals(this.getEnvironment()) == false)
return false;
if (other.getRetryStrategy() == null ^ this.getRetryStrategy() == null)
return false;
if (other.getRetryStrategy() != null && other.getRetryStrategy().equals(this.getRetryStrategy()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getTrainingJobName() == null) ? 0 : getTrainingJobName().hashCode());
hashCode = prime * hashCode + ((getHyperParameters() == null) ? 0 : getHyperParameters().hashCode());
hashCode = prime * hashCode + ((getAlgorithmSpecification() == null) ? 0 : getAlgorithmSpecification().hashCode());
hashCode = prime * hashCode + ((getRoleArn() == null) ? 0 : getRoleArn().hashCode());
hashCode = prime * hashCode + ((getInputDataConfig() == null) ? 0 : getInputDataConfig().hashCode());
hashCode = prime * hashCode + ((getOutputDataConfig() == null) ? 0 : getOutputDataConfig().hashCode());
hashCode = prime * hashCode + ((getResourceConfig() == null) ? 0 : getResourceConfig().hashCode());
hashCode = prime * hashCode + ((getVpcConfig() == null) ? 0 : getVpcConfig().hashCode());
hashCode = prime * hashCode + ((getStoppingCondition() == null) ? 0 : getStoppingCondition().hashCode());
hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode());
hashCode = prime * hashCode + ((getEnableNetworkIsolation() == null) ? 0 : getEnableNetworkIsolation().hashCode());
hashCode = prime * hashCode + ((getEnableInterContainerTrafficEncryption() == null) ? 0 : getEnableInterContainerTrafficEncryption().hashCode());
hashCode = prime * hashCode + ((getEnableManagedSpotTraining() == null) ? 0 : getEnableManagedSpotTraining().hashCode());
hashCode = prime * hashCode + ((getCheckpointConfig() == null) ? 0 : getCheckpointConfig().hashCode());
hashCode = prime * hashCode + ((getDebugHookConfig() == null) ? 0 : getDebugHookConfig().hashCode());
hashCode = prime * hashCode + ((getDebugRuleConfigurations() == null) ? 0 : getDebugRuleConfigurations().hashCode());
hashCode = prime * hashCode + ((getTensorBoardOutputConfig() == null) ? 0 : getTensorBoardOutputConfig().hashCode());
hashCode = prime * hashCode + ((getExperimentConfig() == null) ? 0 : getExperimentConfig().hashCode());
hashCode = prime * hashCode + ((getProfilerConfig() == null) ? 0 : getProfilerConfig().hashCode());
hashCode = prime * hashCode + ((getProfilerRuleConfigurations() == null) ? 0 : getProfilerRuleConfigurations().hashCode());
hashCode = prime * hashCode + ((getEnvironment() == null) ? 0 : getEnvironment().hashCode());
hashCode = prime * hashCode + ((getRetryStrategy() == null) ? 0 : getRetryStrategy().hashCode());
return hashCode;
}
@Override
public CreateTrainingJobRequest clone() {
return (CreateTrainingJobRequest) super.clone();
}
}