/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the sagemaker-2017-07-24.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SageMaker.Model
{
///
/// This is the response object from the DescribeTrainingJob operation.
///
public partial class DescribeTrainingJobResponse : AmazonWebServiceResponse
{
private AlgorithmSpecification _algorithmSpecification;
private string _autoMLJobArn;
private int? _billableTimeInSeconds;
private CheckpointConfig _checkpointConfig;
private DateTime? _creationTime;
private DebugHookConfig _debugHookConfig;
private List _debugRuleConfigurations = new List();
private List _debugRuleEvaluationStatuses = new List();
private bool? _enableInterContainerTrafficEncryption;
private bool? _enableManagedSpotTraining;
private bool? _enableNetworkIsolation;
private Dictionary _environment = new Dictionary();
private ExperimentConfig _experimentConfig;
private string _failureReason;
private List _finalMetricDataList = new List();
private Dictionary _hyperParameters = new Dictionary();
private List _inputDataConfig = new List();
private string _labelingJobArn;
private DateTime? _lastModifiedTime;
private ModelArtifacts _modelArtifacts;
private OutputDataConfig _outputDataConfig;
private ProfilerConfig _profilerConfig;
private List _profilerRuleConfigurations = new List();
private List _profilerRuleEvaluationStatuses = new List();
private ProfilingStatus _profilingStatus;
private ResourceConfig _resourceConfig;
private RetryStrategy _retryStrategy;
private string _roleArn;
private SecondaryStatus _secondaryStatus;
private List _secondaryStatusTransitions = new List();
private StoppingCondition _stoppingCondition;
private TensorBoardOutputConfig _tensorBoardOutputConfig;
private DateTime? _trainingEndTime;
private string _trainingJobArn;
private string _trainingJobName;
private TrainingJobStatus _trainingJobStatus;
private DateTime? _trainingStartTime;
private int? _trainingTimeInSeconds;
private string _tuningJobArn;
private VpcConfig _vpcConfig;
private WarmPoolStatus _warmPoolStatus;
///
/// Gets and sets the property AlgorithmSpecification.
///
/// Information about the algorithm used for training, and algorithm metadata.
///
///
[AWSProperty(Required=true)]
public AlgorithmSpecification AlgorithmSpecification
{
get { return this._algorithmSpecification; }
set { this._algorithmSpecification = value; }
}
// Check to see if AlgorithmSpecification property is set
internal bool IsSetAlgorithmSpecification()
{
return this._algorithmSpecification != null;
}
///
/// Gets and sets the property AutoMLJobArn.
///
/// The Amazon Resource Name (ARN) of an AutoML job.
///
///
[AWSProperty(Min=1, Max=256)]
public string AutoMLJobArn
{
get { return this._autoMLJobArn; }
set { this._autoMLJobArn = value; }
}
// Check to see if AutoMLJobArn property is set
internal bool IsSetAutoMLJobArn()
{
return this._autoMLJobArn != null;
}
///
/// Gets and sets the property BillableTimeInSeconds.
///
/// The billable time in seconds. Billable time refers to the absolute wall-clock time.
///
///
///
/// Multiply BillableTimeInSeconds
by the number of instances (InstanceCount
)
/// in your training cluster to get the total compute time SageMaker bills you if you
/// run distributed training. The formula is as follows: BillableTimeInSeconds *
/// InstanceCount
.
///
///
///
/// You can calculate the savings from using managed spot training using the formula (1
/// - BillableTimeInSeconds / TrainingTimeInSeconds) * 100
. For example, if BillableTimeInSeconds
/// is 100 and TrainingTimeInSeconds
is 500, the savings is 80%.
///
///
[AWSProperty(Min=1)]
public int BillableTimeInSeconds
{
get { return this._billableTimeInSeconds.GetValueOrDefault(); }
set { this._billableTimeInSeconds = value; }
}
// Check to see if BillableTimeInSeconds property is set
internal bool IsSetBillableTimeInSeconds()
{
return this._billableTimeInSeconds.HasValue;
}
///
/// Gets and sets the property CheckpointConfig.
///
public CheckpointConfig CheckpointConfig
{
get { return this._checkpointConfig; }
set { this._checkpointConfig = value; }
}
// Check to see if CheckpointConfig property is set
internal bool IsSetCheckpointConfig()
{
return this._checkpointConfig != null;
}
///
/// Gets and sets the property CreationTime.
///
/// A timestamp that indicates when the training job was created.
///
///
[AWSProperty(Required=true)]
public DateTime CreationTime
{
get { return this._creationTime.GetValueOrDefault(); }
set { this._creationTime = value; }
}
// Check to see if CreationTime property is set
internal bool IsSetCreationTime()
{
return this._creationTime.HasValue;
}
///
/// Gets and sets the property DebugHookConfig.
///
public DebugHookConfig DebugHookConfig
{
get { return this._debugHookConfig; }
set { this._debugHookConfig = value; }
}
// Check to see if DebugHookConfig property is set
internal bool IsSetDebugHookConfig()
{
return this._debugHookConfig != null;
}
///
/// Gets and sets the property DebugRuleConfigurations.
///
/// Configuration information for Amazon SageMaker Debugger rules for debugging output
/// tensors.
///
///
[AWSProperty(Min=0, Max=20)]
public List DebugRuleConfigurations
{
get { return this._debugRuleConfigurations; }
set { this._debugRuleConfigurations = value; }
}
// Check to see if DebugRuleConfigurations property is set
internal bool IsSetDebugRuleConfigurations()
{
return this._debugRuleConfigurations != null && this._debugRuleConfigurations.Count > 0;
}
///
/// Gets and sets the property DebugRuleEvaluationStatuses.
///
/// Evaluation status of Amazon SageMaker Debugger rules for debugging on a training job.
///
///
[AWSProperty(Min=0, Max=20)]
public List DebugRuleEvaluationStatuses
{
get { return this._debugRuleEvaluationStatuses; }
set { this._debugRuleEvaluationStatuses = value; }
}
// Check to see if DebugRuleEvaluationStatuses property is set
internal bool IsSetDebugRuleEvaluationStatuses()
{
return this._debugRuleEvaluationStatuses != null && this._debugRuleEvaluationStatuses.Count > 0;
}
///
/// Gets and sets the property 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 algorithms in distributed
/// training.
///
///
public bool EnableInterContainerTrafficEncryption
{
get { return this._enableInterContainerTrafficEncryption.GetValueOrDefault(); }
set { this._enableInterContainerTrafficEncryption = value; }
}
// Check to see if EnableInterContainerTrafficEncryption property is set
internal bool IsSetEnableInterContainerTrafficEncryption()
{
return this._enableInterContainerTrafficEncryption.HasValue;
}
///
/// Gets and sets the property EnableManagedSpotTraining.
///
/// A Boolean indicating whether managed spot training is enabled (True
)
/// or not (False
).
///
///
public bool EnableManagedSpotTraining
{
get { return this._enableManagedSpotTraining.GetValueOrDefault(); }
set { this._enableManagedSpotTraining = value; }
}
// Check to see if EnableManagedSpotTraining property is set
internal bool IsSetEnableManagedSpotTraining()
{
return this._enableManagedSpotTraining.HasValue;
}
///
/// Gets and sets the property EnableNetworkIsolation.
///
/// If you want to allow inbound or outbound network calls, except for calls between peers
/// within a training cluster for distributed training, choose True
. 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 bool EnableNetworkIsolation
{
get { return this._enableNetworkIsolation.GetValueOrDefault(); }
set { this._enableNetworkIsolation = value; }
}
// Check to see if EnableNetworkIsolation property is set
internal bool IsSetEnableNetworkIsolation()
{
return this._enableNetworkIsolation.HasValue;
}
///
/// Gets and sets the property Environment.
///
/// The environment variables to set in the Docker container.
///
///
[AWSProperty(Max=48)]
public Dictionary Environment
{
get { return this._environment; }
set { this._environment = value; }
}
// Check to see if Environment property is set
internal bool IsSetEnvironment()
{
return this._environment != null && this._environment.Count > 0;
}
///
/// Gets and sets the property ExperimentConfig.
///
public ExperimentConfig ExperimentConfig
{
get { return this._experimentConfig; }
set { this._experimentConfig = value; }
}
// Check to see if ExperimentConfig property is set
internal bool IsSetExperimentConfig()
{
return this._experimentConfig != null;
}
///
/// Gets and sets the property FailureReason.
///
/// If the training job failed, the reason it failed.
///
///
[AWSProperty(Max=1024)]
public string FailureReason
{
get { return this._failureReason; }
set { this._failureReason = value; }
}
// Check to see if FailureReason property is set
internal bool IsSetFailureReason()
{
return this._failureReason != null;
}
///
/// Gets and sets the property FinalMetricDataList.
///
/// A collection of MetricData
objects that specify the names, values, and
/// dates and times that the training algorithm emitted to Amazon CloudWatch.
///
///
[AWSProperty(Min=0, Max=40)]
public List FinalMetricDataList
{
get { return this._finalMetricDataList; }
set { this._finalMetricDataList = value; }
}
// Check to see if FinalMetricDataList property is set
internal bool IsSetFinalMetricDataList()
{
return this._finalMetricDataList != null && this._finalMetricDataList.Count > 0;
}
///
/// Gets and sets the property HyperParameters.
///
/// Algorithm-specific parameters.
///
///
[AWSProperty(Min=0, Max=100)]
public Dictionary HyperParameters
{
get { return this._hyperParameters; }
set { this._hyperParameters = value; }
}
// Check to see if HyperParameters property is set
internal bool IsSetHyperParameters()
{
return this._hyperParameters != null && this._hyperParameters.Count > 0;
}
///
/// Gets and sets the property InputDataConfig.
///
/// An array of Channel
objects that describes each data input channel.
///
///
[AWSProperty(Min=1, Max=20)]
public List InputDataConfig
{
get { return this._inputDataConfig; }
set { this._inputDataConfig = value; }
}
// Check to see if InputDataConfig property is set
internal bool IsSetInputDataConfig()
{
return this._inputDataConfig != null && this._inputDataConfig.Count > 0;
}
///
/// Gets and sets the property LabelingJobArn.
///
/// The Amazon Resource Name (ARN) of the SageMaker Ground Truth labeling job that created
/// the transform or training job.
///
///
[AWSProperty(Max=2048)]
public string LabelingJobArn
{
get { return this._labelingJobArn; }
set { this._labelingJobArn = value; }
}
// Check to see if LabelingJobArn property is set
internal bool IsSetLabelingJobArn()
{
return this._labelingJobArn != null;
}
///
/// Gets and sets the property LastModifiedTime.
///
/// A timestamp that indicates when the status of the training job was last modified.
///
///
public DateTime LastModifiedTime
{
get { return this._lastModifiedTime.GetValueOrDefault(); }
set { this._lastModifiedTime = value; }
}
// Check to see if LastModifiedTime property is set
internal bool IsSetLastModifiedTime()
{
return this._lastModifiedTime.HasValue;
}
///
/// Gets and sets the property ModelArtifacts.
///
/// Information about the Amazon S3 location that is configured for storing model artifacts.
///
///
///
[AWSProperty(Required=true)]
public ModelArtifacts ModelArtifacts
{
get { return this._modelArtifacts; }
set { this._modelArtifacts = value; }
}
// Check to see if ModelArtifacts property is set
internal bool IsSetModelArtifacts()
{
return this._modelArtifacts != null;
}
///
/// Gets and sets the property OutputDataConfig.
///
/// The S3 path where model artifacts that you configured when creating the job are stored.
/// SageMaker creates subfolders for model artifacts.
///
///
public OutputDataConfig OutputDataConfig
{
get { return this._outputDataConfig; }
set { this._outputDataConfig = value; }
}
// Check to see if OutputDataConfig property is set
internal bool IsSetOutputDataConfig()
{
return this._outputDataConfig != null;
}
///
/// Gets and sets the property ProfilerConfig.
///
public ProfilerConfig ProfilerConfig
{
get { return this._profilerConfig; }
set { this._profilerConfig = value; }
}
// Check to see if ProfilerConfig property is set
internal bool IsSetProfilerConfig()
{
return this._profilerConfig != null;
}
///
/// Gets and sets the property ProfilerRuleConfigurations.
///
/// Configuration information for Amazon SageMaker Debugger rules for profiling system
/// and framework metrics.
///
///
[AWSProperty(Min=0, Max=20)]
public List ProfilerRuleConfigurations
{
get { return this._profilerRuleConfigurations; }
set { this._profilerRuleConfigurations = value; }
}
// Check to see if ProfilerRuleConfigurations property is set
internal bool IsSetProfilerRuleConfigurations()
{
return this._profilerRuleConfigurations != null && this._profilerRuleConfigurations.Count > 0;
}
///
/// Gets and sets the property ProfilerRuleEvaluationStatuses.
///
/// Evaluation status of Amazon SageMaker Debugger rules for profiling on a training job.
///
///
[AWSProperty(Min=0, Max=20)]
public List ProfilerRuleEvaluationStatuses
{
get { return this._profilerRuleEvaluationStatuses; }
set { this._profilerRuleEvaluationStatuses = value; }
}
// Check to see if ProfilerRuleEvaluationStatuses property is set
internal bool IsSetProfilerRuleEvaluationStatuses()
{
return this._profilerRuleEvaluationStatuses != null && this._profilerRuleEvaluationStatuses.Count > 0;
}
///
/// Gets and sets the property ProfilingStatus.
///
/// Profiling status of a training job.
///
///
public ProfilingStatus ProfilingStatus
{
get { return this._profilingStatus; }
set { this._profilingStatus = value; }
}
// Check to see if ProfilingStatus property is set
internal bool IsSetProfilingStatus()
{
return this._profilingStatus != null;
}
///
/// Gets and sets the property ResourceConfig.
///
/// Resources, including ML compute instances and ML storage volumes, that are configured
/// for model training.
///
///
[AWSProperty(Required=true)]
public ResourceConfig ResourceConfig
{
get { return this._resourceConfig; }
set { this._resourceConfig = value; }
}
// Check to see if ResourceConfig property is set
internal bool IsSetResourceConfig()
{
return this._resourceConfig != null;
}
///
/// Gets and sets the property RetryStrategy.
///
/// The number of times to retry the job when the job fails due to an InternalServerError
.
///
///
public RetryStrategy RetryStrategy
{
get { return this._retryStrategy; }
set { this._retryStrategy = value; }
}
// Check to see if RetryStrategy property is set
internal bool IsSetRetryStrategy()
{
return this._retryStrategy != null;
}
///
/// Gets and sets the property RoleArn.
///
/// The Amazon Web Services Identity and Access Management (IAM) role configured for the
/// training job.
///
///
[AWSProperty(Min=20, Max=2048)]
public string RoleArn
{
get { return this._roleArn; }
set { this._roleArn = value; }
}
// Check to see if RoleArn property is set
internal bool IsSetRoleArn()
{
return this._roleArn != null;
}
///
/// Gets and sets the property SecondaryStatus.
///
/// Provides detailed information about the state of the training job. For detailed information
/// on the secondary status of the training job, see StatusMessage
under
/// SecondaryStatusTransition.
///
///
///
/// SageMaker provides primary statuses and secondary statuses that apply to each of them:
///
/// - InProgress
-
-
///
///
Starting
- Starting the training job.
///
/// -
///
///
Downloading
- An optional stage for algorithms that support File
/// training input mode. It indicates that data is being downloaded to the ML storage
/// volumes.
///
/// -
///
///
Training
- Training is in progress.
///
/// -
///
///
Interrupted
- The job stopped because the managed spot training instances
/// were interrupted.
///
/// -
///
///
Uploading
- Training is complete and the model artifacts are being uploaded
/// to the S3 location.
///
///
- Completed
-
-
///
///
Completed
- The training job has completed.
///
///
- Failed
-
-
///
///
Failed
- The training job has failed. The reason for the failure is
/// returned in the FailureReason
field of DescribeTrainingJobResponse
.
///
///
- Stopped
-
-
///
///
MaxRuntimeExceeded
- The job stopped because it exceeded the maximum
/// allowed runtime.
///
/// -
///
///
MaxWaitTimeExceeded
- The job stopped because it exceeded the maximum
/// allowed wait time.
///
/// -
///
///
Stopped
- The training job has stopped.
///
///
- Stopping
-
-
///
///
Stopping
- Stopping the training job.
///
///
///
/// Valid values for SecondaryStatus
are subject to change.
///
///
///
/// We no longer support the following secondary statuses:
///
/// -
///
///
LaunchingMLInstances
///
/// -
///
///
PreparingTraining
///
/// -
///
///
DownloadingTrainingImage
///
///
///
[AWSProperty(Required=true)]
public SecondaryStatus SecondaryStatus
{
get { return this._secondaryStatus; }
set { this._secondaryStatus = value; }
}
// Check to see if SecondaryStatus property is set
internal bool IsSetSecondaryStatus()
{
return this._secondaryStatus != null;
}
///
/// Gets and sets the property SecondaryStatusTransitions.
///
/// A history of all of the secondary statuses that the training job has transitioned
/// through.
///
///
public List SecondaryStatusTransitions
{
get { return this._secondaryStatusTransitions; }
set { this._secondaryStatusTransitions = value; }
}
// Check to see if SecondaryStatusTransitions property is set
internal bool IsSetSecondaryStatusTransitions()
{
return this._secondaryStatusTransitions != null && this._secondaryStatusTransitions.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public StoppingCondition StoppingCondition
{
get { return this._stoppingCondition; }
set { this._stoppingCondition = value; }
}
// Check to see if StoppingCondition property is set
internal bool IsSetStoppingCondition()
{
return this._stoppingCondition != null;
}
///
/// Gets and sets the property TensorBoardOutputConfig.
///
public TensorBoardOutputConfig TensorBoardOutputConfig
{
get { return this._tensorBoardOutputConfig; }
set { this._tensorBoardOutputConfig = value; }
}
// Check to see if TensorBoardOutputConfig property is set
internal bool IsSetTensorBoardOutputConfig()
{
return this._tensorBoardOutputConfig != null;
}
///
/// Gets and sets the property TrainingEndTime.
///
/// Indicates the time when the training job ends on training instances. You are billed
/// for the time interval between the value of TrainingStartTime
and this
/// time. For successful jobs and stopped jobs, this is the time after model artifacts
/// are uploaded. For failed jobs, this is the time when SageMaker detects a job failure.
///
///
public DateTime TrainingEndTime
{
get { return this._trainingEndTime.GetValueOrDefault(); }
set { this._trainingEndTime = value; }
}
// Check to see if TrainingEndTime property is set
internal bool IsSetTrainingEndTime()
{
return this._trainingEndTime.HasValue;
}
///
/// Gets and sets the property TrainingJobArn.
///
/// The Amazon Resource Name (ARN) of the training job.
///
///
[AWSProperty(Required=true, Max=256)]
public string TrainingJobArn
{
get { return this._trainingJobArn; }
set { this._trainingJobArn = value; }
}
// Check to see if TrainingJobArn property is set
internal bool IsSetTrainingJobArn()
{
return this._trainingJobArn != null;
}
///
/// Gets and sets the property TrainingJobName.
///
/// Name of the model training job.
///
///
[AWSProperty(Required=true, Min=1, Max=63)]
public string TrainingJobName
{
get { return this._trainingJobName; }
set { this._trainingJobName = value; }
}
// Check to see if TrainingJobName property is set
internal bool IsSetTrainingJobName()
{
return this._trainingJobName != null;
}
///
/// Gets and sets the property TrainingJobStatus.
///
/// The status of the training job.
///
///
///
/// SageMaker provides the following training job statuses:
///
/// -
///
///
InProgress
- The training is in progress.
///
/// -
///
///
Completed
- The training job has completed.
///
/// -
///
///
Failed
- The training job has failed. To see the reason for the failure,
/// see the FailureReason
field in the response to a DescribeTrainingJobResponse
/// call.
///
/// -
///
///
Stopping
- The training job is stopping.
///
/// -
///
///
Stopped
- The training job has stopped.
///
///
///
/// For more detailed information, see SecondaryStatus
.
///
///
[AWSProperty(Required=true)]
public TrainingJobStatus TrainingJobStatus
{
get { return this._trainingJobStatus; }
set { this._trainingJobStatus = value; }
}
// Check to see if TrainingJobStatus property is set
internal bool IsSetTrainingJobStatus()
{
return this._trainingJobStatus != null;
}
///
/// Gets and sets the property TrainingStartTime.
///
/// Indicates the time when the training job starts on training instances. You are billed
/// for the time interval between this time and the value of TrainingEndTime
.
/// The start time in CloudWatch Logs might be later than this time. The difference is
/// due to the time it takes to download the training data and to the size of the training
/// container.
///
///
public DateTime TrainingStartTime
{
get { return this._trainingStartTime.GetValueOrDefault(); }
set { this._trainingStartTime = value; }
}
// Check to see if TrainingStartTime property is set
internal bool IsSetTrainingStartTime()
{
return this._trainingStartTime.HasValue;
}
///
/// Gets and sets the property TrainingTimeInSeconds.
///
/// The training time in seconds.
///
///
[AWSProperty(Min=1)]
public int TrainingTimeInSeconds
{
get { return this._trainingTimeInSeconds.GetValueOrDefault(); }
set { this._trainingTimeInSeconds = value; }
}
// Check to see if TrainingTimeInSeconds property is set
internal bool IsSetTrainingTimeInSeconds()
{
return this._trainingTimeInSeconds.HasValue;
}
///
/// Gets and sets the property TuningJobArn.
///
/// The Amazon Resource Name (ARN) of the associated hyperparameter tuning job if the
/// training job was launched by a hyperparameter tuning job.
///
///
[AWSProperty(Max=256)]
public string TuningJobArn
{
get { return this._tuningJobArn; }
set { this._tuningJobArn = value; }
}
// Check to see if TuningJobArn property is set
internal bool IsSetTuningJobArn()
{
return this._tuningJobArn != null;
}
///
/// Gets and sets the property VpcConfig.
///
/// A VpcConfig
/// object that specifies the VPC that this training job has access to. For more information,
/// see Protect
/// Training Jobs by Using an Amazon Virtual Private Cloud.
///
///
public VpcConfig VpcConfig
{
get { return this._vpcConfig; }
set { this._vpcConfig = value; }
}
// Check to see if VpcConfig property is set
internal bool IsSetVpcConfig()
{
return this._vpcConfig != null;
}
///
/// Gets and sets the property WarmPoolStatus.
///
/// The status of the warm pool associated with the training job.
///
///
public WarmPoolStatus WarmPoolStatus
{
get { return this._warmPoolStatus; }
set { this._warmPoolStatus = value; }
}
// Check to see if WarmPoolStatus property is set
internal bool IsSetWarmPoolStatus()
{
return this._warmPoolStatus != null;
}
}
}