/*
* 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
{
///
/// Specifies the S3 location of ML model data to deploy.
///
public partial class S3ModelDataSource
{
private ModelCompressionType _compressionType;
private S3ModelDataType _s3DataType;
private string _s3Uri;
///
/// Gets and sets the property CompressionType.
///
/// Specifies how the ML model data is prepared.
///
///
///
/// If you choose Gzip
and choose S3Object
as the value of S3DataType
,
/// S3Uri
identifies an object that is a gzip-compressed TAR archive. SageMaker
/// will attempt to decompress and untar the object during model deployment.
///
///
///
/// If you choose None
and chooose S3Object
as the value of
/// S3DataType
, S3Uri
identifies an object that represents an
/// uncompressed ML model to deploy.
///
///
///
/// If you choose None and choose S3Prefix
as the value of S3DataType
,
/// S3Uri
identifies a key name prefix, under which all objects represents
/// the uncompressed ML model to deploy.
///
///
///
/// If you choose None, then SageMaker will follow rules below when creating model data
/// files under /opt/ml/model directory for use by your inference code:
///
/// -
///
/// If you choose
S3Object
as the value of S3DataType
, then
/// SageMaker will split the key of the S3 object referenced by S3Uri
by
/// slash (/), and use the last part as the filename of the file holding the content of
/// the S3 object.
///
/// -
///
/// If you choose
S3Prefix
as the value of S3DataType
, then
/// for each S3 object under the key name pefix referenced by S3Uri
, SageMaker
/// will trim its key by the prefix, and use the remainder as the path (relative to /opt/ml/model
)
/// of the file holding the content of the S3 object. SageMaker will split the remainder
/// by slash (/), using intermediate parts as directory names and the last part as filename
/// of the file holding the content of the S3 object.
///
/// -
///
/// Do not use any of the following as file names or directory names:
///
///
-
///
/// An empty or blank string
///
///
-
///
/// A string which contains null bytes
///
///
-
///
/// A string longer than 255 bytes
///
///
-
///
/// A single dot (
.
)
///
/// -
///
/// A double dot (
..
)
///
///
-
///
/// Ambiguous file names will result in model deployment failure. For example, if your
/// uncompressed ML model consists of two S3 objects
s3://mybucket/model/weights
/// and s3://mybucket/model/weights/part1
and you specify s3://mybucket/model/
/// as the value of S3Uri
and S3Prefix
as the value of S3DataType
,
/// then it will result in name clash between /opt/ml/model/weights
(a regular
/// file) and /opt/ml/model/weights/
(a directory).
///
/// -
///
/// Do not organize the model artifacts in S3
/// console using folders. When you create a folder in S3 console, S3 creates a 0-byte
/// object with a key set to the folder name you provide. They key of the 0-byte object
/// ends with a slash (/) which violates SageMaker restrictions on model artifact file
/// names, leading to model deployment failure.
///
///
///
[AWSProperty(Required=true)]
public ModelCompressionType CompressionType
{
get { return this._compressionType; }
set { this._compressionType = value; }
}
// Check to see if CompressionType property is set
internal bool IsSetCompressionType()
{
return this._compressionType != null;
}
///
/// Gets and sets the property S3DataType.
///
/// Specifies the type of ML model data to deploy.
///
///
///
/// If you choose S3Prefix
, S3Uri
identifies a key name prefix.
/// SageMaker uses all objects that match the specified key name prefix as part of the
/// ML model data to deploy. A valid key name prefix identified by S3Uri
/// always ends with a forward slash (/).
///
///
///
/// If you choose S3Object
, S3Uri
identifies an object that
/// is the ML model data to deploy.
///
///
[AWSProperty(Required=true)]
public S3ModelDataType 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.
///
/// Specifies the S3 path of ML model data to deploy.
///
///
[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;
}
}
}