/*
* 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
{
///
/// Describes the S3 data source.
///
///
///
/// Your input bucket must be in the same Amazon Web Services region as your training
/// job.
///
///
public partial class S3DataSource
{
private List _attributeNames = new List();
private List _instanceGroupNames = new List();
private S3DataDistribution _s3DataDistributionType;
private S3DataType _s3DataType;
private string _s3Uri;
///
/// Gets and sets the property AttributeNames.
///
/// A list of one or more attribute names to use that are found in a specified augmented
/// manifest file.
///
///
[AWSProperty(Max=16)]
public List AttributeNames
{
get { return this._attributeNames; }
set { this._attributeNames = value; }
}
// Check to see if AttributeNames property is set
internal bool IsSetAttributeNames()
{
return this._attributeNames != null && this._attributeNames.Count > 0;
}
///
/// Gets and sets the property InstanceGroupNames.
///
/// A list of names of instance groups that get data from the S3 data source.
///
///
[AWSProperty(Max=5)]
public List InstanceGroupNames
{
get { return this._instanceGroupNames; }
set { this._instanceGroupNames = value; }
}
// Check to see if InstanceGroupNames property is set
internal bool IsSetInstanceGroupNames()
{
return this._instanceGroupNames != null && this._instanceGroupNames.Count > 0;
}
///
/// Gets and sets the property S3DataDistributionType.
///
/// If you want SageMaker to replicate the entire dataset on each ML compute instance
/// that is launched for model training, specify FullyReplicated
.
///
///
///
/// If you want SageMaker to replicate a subset of data on each ML compute instance that
/// is launched for model training, specify ShardedByS3Key
. If there are
/// n ML compute instances launched for a training job, each instance gets approximately
/// 1/n of the number of S3 objects. In this case, model training on each machine
/// uses only the subset of training data.
///
///
///
/// Don't choose more ML compute instances for training than available S3 objects. If
/// you do, some nodes won't get any data and you will pay for nodes that aren't getting
/// any training data. This applies in both File and Pipe modes. Keep this in mind when
/// developing algorithms.
///
///
///
/// In distributed training, where you use multiple ML compute EC2 instances, you might
/// choose ShardedByS3Key
. If the algorithm requires copying training data
/// to the ML storage volume (when TrainingInputMode
is set to File
),
/// this copies 1/n of the number of objects.
///
///
public S3DataDistribution S3DataDistributionType
{
get { return this._s3DataDistributionType; }
set { this._s3DataDistributionType = value; }
}
// Check to see if S3DataDistributionType property is set
internal bool IsSetS3DataDistributionType()
{
return this._s3DataDistributionType != null;
}
///
/// Gets and sets the property S3DataType.
///
/// If you choose S3Prefix
, S3Uri
identifies a key name prefix.
/// SageMaker uses all objects that match the specified key name prefix for model training.
///
///
///
///
/// If you choose ManifestFile
, S3Uri
identifies an object that
/// is a manifest file containing a list of object keys that you want SageMaker to use
/// for model training.
///
///
///
/// If you choose AugmentedManifestFile
, S3Uri identifies an object that
/// is an augmented manifest file in JSON lines format. This file contains the data you
/// want to use for model training. AugmentedManifestFile
can only be used
/// if the Channel's input mode is Pipe
.
///
///
[AWSProperty(Required=true)]
public S3DataType S3DataType
{
get { return this._s3DataType; }
set { this._s3DataType = value; }
}
// Check to see if S3DataType property is set
internal bool IsSetS3DataType()
{
return this._s3DataType != null;
}
///
/// Gets and sets the property S3Uri.
///
/// Depending on the value specified for the S3DataType
, identifies either
/// a key name prefix or a manifest. For example:
///
/// -
///
/// A key name prefix might look like this:
s3://bucketname/exampleprefix
///
///
/// -
///
/// A manifest might look like this:
s3://bucketname/example.manifest
///
///
///
/// A manifest is an S3 object which is a JSON file consisting of an array of elements.
/// The first element is a prefix which is followed by one or more suffixes. SageMaker
/// appends the suffix elements to the prefix to get a full set of S3Uri
.
/// Note that the prefix must be a valid non-empty S3Uri
that precludes users
/// from specifying a manifest whose individual S3Uri
is sourced from different
/// S3 buckets.
///
///
///
/// The following code example shows a valid manifest format:
///
///
///
/// [ {"prefix": "s3://customer_bucket/some/prefix/"},
///
///
///
/// "relative/path/to/custdata-1",
///
///
///
/// "relative/path/custdata-2",
///
///
///
/// ...
///
///
///
/// "relative/path/custdata-N"
///
///
///
/// ]
///
///
///
/// This JSON is equivalent to the following S3Uri
list:
///
///
///
/// s3://customer_bucket/some/prefix/relative/path/to/custdata-1
///
///
///
/// s3://customer_bucket/some/prefix/relative/path/custdata-2
///
///
///
/// ...
///
///
///
/// s3://customer_bucket/some/prefix/relative/path/custdata-N
///
///
///
/// The complete set of S3Uri
in this manifest is the input data for the
/// channel for this data source. The object that each S3Uri
points to must
/// be readable by the IAM role that SageMaker uses to perform tasks on your behalf.
///
///
///
/// Your input bucket must be located in same Amazon Web Services region as your training
/// job.
///
///
[AWSProperty(Required=true, Max=1024)]
public string S3Uri
{
get { return this._s3Uri; }
set { this._s3Uri = value; }
}
// Check to see if S3Uri property is set
internal bool IsSetS3Uri()
{
return this._s3Uri != null;
}
}
}