/*
* 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 container, as part of model definition.
///
public partial class ContainerDefinition
{
private string _containerHostname;
private Dictionary _environment = new Dictionary();
private string _image;
private ImageConfig _imageConfig;
private string _inferenceSpecificationName;
private ContainerMode _mode;
private ModelDataSource _modelDataSource;
private string _modelDataUrl;
private string _modelPackageName;
private MultiModelConfig _multiModelConfig;
///
/// Gets and sets the property ContainerHostname.
///
/// This parameter is ignored for models that contain only a PrimaryContainer
.
///
///
///
/// When a ContainerDefinition
is part of an inference pipeline, the value
/// of the parameter uniquely identifies the container for the purposes of logging and
/// metrics. For information, see Use
/// Logs and Metrics to Monitor an Inference Pipeline. If you don't specify a value
/// for this parameter for a ContainerDefinition
that is part of an inference
/// pipeline, a unique name is automatically assigned based on the position of the ContainerDefinition
/// in the pipeline. If you specify a value for the ContainerHostName
for
/// any ContainerDefinition
that is part of an inference pipeline, you must
/// specify a value for the ContainerHostName
parameter of every ContainerDefinition
/// in that pipeline.
///
///
[AWSProperty(Max=63)]
public string ContainerHostname
{
get { return this._containerHostname; }
set { this._containerHostname = value; }
}
// Check to see if ContainerHostname property is set
internal bool IsSetContainerHostname()
{
return this._containerHostname != null;
}
///
/// Gets and sets the property Environment.
///
/// The environment variables to set in the Docker container. Each key and value in the
/// Environment
string to string map can have length of up to 1024. We support
/// up to 16 entries in the map.
///
///
[AWSProperty(Max=16)]
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 Image.
///
/// The path where inference code is stored. This can be either in Amazon EC2 Container
/// Registry or in a Docker registry that is accessible from the same VPC that you configure
/// for your endpoint. If you are using your own custom algorithm instead of an algorithm
/// provided by SageMaker, the inference code must meet SageMaker requirements. SageMaker
/// supports both registry/repository[:tag]
and registry/repository[@digest]
/// image path formats. For more information, see Using
/// Your Own Algorithms with Amazon SageMaker.
///
///
///
/// The model artifacts in an Amazon S3 bucket and the Docker image for inference container
/// in Amazon EC2 Container Registry must be in the same region as the model or endpoint
/// you are creating.
///
///
///
[AWSProperty(Max=255)]
public string Image
{
get { return this._image; }
set { this._image = value; }
}
// Check to see if Image property is set
internal bool IsSetImage()
{
return this._image != null;
}
///
/// Gets and sets the property ImageConfig.
///
/// Specifies whether the model container is in Amazon ECR or a private Docker registry
/// accessible from your Amazon Virtual Private Cloud (VPC). For information about storing
/// containers in a private Docker registry, see Use
/// a Private Docker Registry for Real-Time Inference Containers.
///
///
///
/// The model artifacts in an Amazon S3 bucket and the Docker image for inference container
/// in Amazon EC2 Container Registry must be in the same region as the model or endpoint
/// you are creating.
///
///
///
public ImageConfig ImageConfig
{
get { return this._imageConfig; }
set { this._imageConfig = value; }
}
// Check to see if ImageConfig property is set
internal bool IsSetImageConfig()
{
return this._imageConfig != null;
}
///
/// Gets and sets the property InferenceSpecificationName.
///
/// The inference specification name in the model package version.
///
///
[AWSProperty(Min=1, Max=63)]
public string InferenceSpecificationName
{
get { return this._inferenceSpecificationName; }
set { this._inferenceSpecificationName = value; }
}
// Check to see if InferenceSpecificationName property is set
internal bool IsSetInferenceSpecificationName()
{
return this._inferenceSpecificationName != null;
}
///
/// Gets and sets the property Mode.
///
/// Whether the container hosts a single model or multiple models.
///
///
public ContainerMode Mode
{
get { return this._mode; }
set { this._mode = value; }
}
// Check to see if Mode property is set
internal bool IsSetMode()
{
return this._mode != null;
}
///
/// Gets and sets the property ModelDataSource.
///
/// Specifies the location of ML model data to deploy.
///
///
///
/// Currently you cannot use ModelDataSource
in conjunction with SageMaker
/// batch transform, SageMaker serverless endpoints, SageMaker multi-model endpoints,
/// and SageMaker Marketplace.
///
///
///
public ModelDataSource ModelDataSource
{
get { return this._modelDataSource; }
set { this._modelDataSource = value; }
}
// Check to see if ModelDataSource property is set
internal bool IsSetModelDataSource()
{
return this._modelDataSource != null;
}
///
/// Gets and sets the property ModelDataUrl.
///
/// The S3 path where the model artifacts, which result from model training, are stored.
/// This path must point to a single gzip compressed tar archive (.tar.gz suffix). The
/// S3 path is required for SageMaker built-in algorithms, but not if you use your own
/// algorithms. For more information on built-in algorithms, see Common
/// Parameters.
///
///
///
/// The model artifacts must be in an S3 bucket that is in the same region as the model
/// or endpoint you are creating.
///
///
///
/// If you provide a value for this parameter, SageMaker uses Amazon Web Services Security
/// Token Service to download model artifacts from the S3 path you provide. Amazon Web
/// Services STS is activated in your Amazon Web Services account by default. If you previously
/// deactivated Amazon Web Services STS for a region, you need to reactivate Amazon Web
/// Services STS for that region. For more information, see Activating
/// and Deactivating Amazon Web Services STS in an Amazon Web Services Region in the
/// Amazon Web Services Identity and Access Management User Guide.
///
///
///
/// If you use a built-in algorithm to create a model, SageMaker requires that you provide
/// a S3 path to the model artifacts in ModelDataUrl
.
///
///
///
[AWSProperty(Max=1024)]
public string ModelDataUrl
{
get { return this._modelDataUrl; }
set { this._modelDataUrl = value; }
}
// Check to see if ModelDataUrl property is set
internal bool IsSetModelDataUrl()
{
return this._modelDataUrl != null;
}
///
/// Gets and sets the property ModelPackageName.
///
/// The name or Amazon Resource Name (ARN) of the model package to use to create the model.
///
///
[AWSProperty(Min=1, Max=176)]
public string ModelPackageName
{
get { return this._modelPackageName; }
set { this._modelPackageName = value; }
}
// Check to see if ModelPackageName property is set
internal bool IsSetModelPackageName()
{
return this._modelPackageName != null;
}
///
/// Gets and sets the property MultiModelConfig.
///
/// Specifies additional configuration for multi-model endpoints.
///
///
public MultiModelConfig MultiModelConfig
{
get { return this._multiModelConfig; }
set { this._multiModelConfig = value; }
}
// Check to see if MultiModelConfig property is set
internal bool IsSetMultiModelConfig()
{
return this._multiModelConfig != null;
}
}
}