/* * 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. *

*
*/ private java.util.Map hyperParameters; /** *

* 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. *

*
*/ private String roleArn; /** *

* 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 inputDataConfig; /** *

* 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. *

*/ private ResourceConfig resourceConfig; /** *

* 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. *

*/ private StoppingCondition stoppingCondition; /** *

* 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 tags; /** *

* 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. *

*/ private Boolean 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. *

*/ 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 debugRuleConfigurations; private TensorBoardOutputConfig tensorBoardOutputConfig; private ExperimentConfig experimentConfig; private ProfilerConfig profilerConfig; /** *

* Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics. *

*/ private java.util.List profilerRuleConfigurations; /** *

* The environment variables to set in the Docker container. *

*/ private java.util.Map environment; /** *

* The number of times to retry the job when the job fails due to an InternalServerError. *

*/ private RetryStrategy retryStrategy; /** *

* 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. *

*
* * @return 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. *

*/ public java.util.Map getHyperParameters() { return hyperParameters; } /** *

* 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. *

*
* * @param hyperParameters * 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. *

*/ public void setHyperParameters(java.util.Map hyperParameters) { this.hyperParameters = hyperParameters; } /** *

* 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. *

*
* * @param hyperParameters * 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. *

* @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withHyperParameters(java.util.Map hyperParameters) { setHyperParameters(hyperParameters); return this; } /** * Add a single HyperParameters entry * * @see CreateTrainingJobRequest#withHyperParameters * @returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest addHyperParametersEntry(String key, String value) { if (null == this.hyperParameters) { this.hyperParameters = new java.util.HashMap(); } if (this.hyperParameters.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.hyperParameters.put(key, value); return this; } /** * Removes all the entries added into HyperParameters. * * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest clearHyperParametersEntries() { this.hyperParameters = null; return this; } /** *

* 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. *

*
* * @param roleArn * 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. *

*/ public void setRoleArn(String roleArn) { this.roleArn = roleArn; } /** *

* 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. *

*
* * @return 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. *

*/ public String getRoleArn() { return this.roleArn; } /** *

* 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. *

*
* * @param roleArn * 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. *

* @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withRoleArn(String roleArn) { setRoleArn(roleArn); return this; } /** *

* 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 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. */ public java.util.List getInputDataConfig() { return inputDataConfig; } /** *

* 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. *

* * @param inputDataConfig * 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. */ public void setInputDataConfig(java.util.Collection inputDataConfig) { if (inputDataConfig == null) { this.inputDataConfig = null; return; } this.inputDataConfig = new java.util.ArrayList(inputDataConfig); } /** *

* 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. *

*

* 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. *

* * @param inputDataConfig * 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 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(inputDataConfig.length)); } for (Channel ele : inputDataConfig) { this.inputDataConfig.add(ele); } return this; } /** *

* 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. *

* * @param inputDataConfig * 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 Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withInputDataConfig(java.util.Collection inputDataConfig) { setInputDataConfig(inputDataConfig); return this; } /** *

* Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates subfolders for * the artifacts. *

* * @param outputDataConfig * Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates * subfolders for the artifacts. */ public void setOutputDataConfig(OutputDataConfig outputDataConfig) { this.outputDataConfig = outputDataConfig; } /** *

* Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates subfolders for * the artifacts. *

* * @return Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates * subfolders for the artifacts. */ public OutputDataConfig getOutputDataConfig() { return this.outputDataConfig; } /** *

* Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates subfolders for * the artifacts. *

* * @param outputDataConfig * Specifies the path to the S3 location where you want to store model artifacts. SageMaker creates * subfolders for the artifacts. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withOutputDataConfig(OutputDataConfig outputDataConfig) { setOutputDataConfig(outputDataConfig); return this; } /** *

* 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. *

* * @param 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. */ 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. *

* * @return 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. */ 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. *

* * @param 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. * @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. *

* * @param 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. */ 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. *

* * @return 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. */ 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. *

* * @param 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. * @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 getTags() { return 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. *

* * @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 tags) { if (tags == null) { this.tags = null; return; } this.tags = new java.util.ArrayList(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. *

*

* 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(tags.length)); } for (Tag ele : tags) { this.tags.add(ele); } 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. *

* * @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 tags) { setTags(tags); 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. *

* * @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. *

* * @param 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. */ 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. *

* * @return 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. */ 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. *

* * @param 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. * @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. *

* * @return 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. */ 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, 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. */ 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, 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. */ 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, 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 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, 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. */ 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 getDebugRuleConfigurations() { return debugRuleConfigurations; } /** *

* 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 debugRuleConfigurations) { if (debugRuleConfigurations == null) { this.debugRuleConfigurations = null; return; } this.debugRuleConfigurations = new java.util.ArrayList(debugRuleConfigurations); } /** *

* 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(debugRuleConfigurations.length)); } for (DebugRuleConfiguration ele : debugRuleConfigurations) { this.debugRuleConfigurations.add(ele); } return this; } /** *

* 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 debugRuleConfigurations) { setDebugRuleConfigurations(debugRuleConfigurations); return this; } /** * @param tensorBoardOutputConfig */ public void setTensorBoardOutputConfig(TensorBoardOutputConfig tensorBoardOutputConfig) { this.tensorBoardOutputConfig = tensorBoardOutputConfig; } /** * @return */ public TensorBoardOutputConfig getTensorBoardOutputConfig() { return this.tensorBoardOutputConfig; } /** * @param tensorBoardOutputConfig * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withTensorBoardOutputConfig(TensorBoardOutputConfig tensorBoardOutputConfig) { setTensorBoardOutputConfig(tensorBoardOutputConfig); 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 CreateTrainingJobRequest withExperimentConfig(ExperimentConfig experimentConfig) { setExperimentConfig(experimentConfig); return this; } /** * @param profilerConfig */ public void setProfilerConfig(ProfilerConfig profilerConfig) { this.profilerConfig = profilerConfig; } /** * @return */ public ProfilerConfig getProfilerConfig() { return this.profilerConfig; } /** * @param profilerConfig * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest withProfilerConfig(ProfilerConfig profilerConfig) { setProfilerConfig(profilerConfig); return this; } /** *

* 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 getProfilerRuleConfigurations() { return profilerRuleConfigurations; } /** *

* 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 profilerRuleConfigurations) { if (profilerRuleConfigurations == null) { this.profilerRuleConfigurations = null; return; } this.profilerRuleConfigurations = new java.util.ArrayList(profilerRuleConfigurations); } /** *

* 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(profilerRuleConfigurations.length)); } for (ProfilerRuleConfiguration ele : profilerRuleConfigurations) { this.profilerRuleConfigurations.add(ele); } return this; } /** *

* 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 profilerRuleConfigurations) { setProfilerRuleConfigurations(profilerRuleConfigurations); return this; } /** *

* The environment variables to set in the Docker container. *

* * @return The environment variables to set in the Docker container. */ public java.util.Map getEnvironment() { return environment; } /** *

* 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 environment) { this.environment = environment; } /** *

* 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 environment) { setEnvironment(environment); return this; } /** * Add a single Environment entry * * @see CreateTrainingJobRequest#withEnvironment * @returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest addEnvironmentEntry(String key, String value) { if (null == this.environment) { this.environment = new java.util.HashMap(); } if (this.environment.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.environment.put(key, value); return this; } /** * Removes all the entries added into Environment. * * @return Returns a reference to this object so that method calls can be chained together. */ public CreateTrainingJobRequest clearEnvironmentEntries() { this.environment = null; return this; } /** *

* The number of times to retry the job when the job fails due to an InternalServerError. *

* * @param retryStrategy * The number of times to retry the job when the job fails due to an 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. *

* * @return The number of times to retry the job when the job fails due to an InternalServerError. */ public RetryStrategy getRetryStrategy() { return this.retryStrategy; } /** *

* The number of times to retry the job when the job fails due to an InternalServerError. *

* * @param retryStrategy * The number of times to retry the job when the job fails due to an 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(); } }