/*
* 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
{
///
/// Container for the parameters to the CreateModel operation.
/// Creates a model in SageMaker. In the request, you name the model and describe a primary
/// container. For the primary container, you specify the Docker image that contains inference
/// code, artifacts (from prior training), and a custom environment map that the inference
/// code uses when you deploy the model for predictions.
///
///
///
/// Use this API to create a model if you want to use SageMaker hosting services or run
/// a batch transform job.
///
///
///
/// To host your model, you create an endpoint configuration with the CreateEndpointConfig
/// API, and then create an endpoint with the CreateEndpoint
API. SageMaker
/// then deploys all of the containers that you defined for the model in the hosting environment.
///
///
///
///
/// For an example that calls this method when deploying a model to SageMaker hosting
/// services, see Create
/// a Model (Amazon Web Services SDK for Python (Boto 3)).
///
///
///
/// To run a batch transform using your model, you start a job with the CreateTransformJob
/// API. SageMaker uses your model and your dataset to get inferences which are then saved
/// to a specified S3 location.
///
///
///
/// In the request, you also provide an IAM role that SageMaker can assume to access model
/// artifacts and docker image for deployment on ML compute hosting instances or for batch
/// transform jobs. In addition, you also use the IAM role to manage permissions the inference
/// code needs. For example, if the inference code access any other Amazon Web Services
/// resources, you grant necessary permissions via this role.
///
///
public partial class CreateModelRequest : AmazonSageMakerRequest
{
private List _containers = new List();
private bool? _enableNetworkIsolation;
private string _executionRoleArn;
private InferenceExecutionConfig _inferenceExecutionConfig;
private string _modelName;
private ContainerDefinition _primaryContainer;
private List _tags = new List();
private VpcConfig _vpcConfig;
///
/// Gets and sets the property Containers.
///
/// Specifies the containers in the inference pipeline.
///
///
[AWSProperty(Max=15)]
public List Containers
{
get { return this._containers; }
set { this._containers = value; }
}
// Check to see if Containers property is set
internal bool IsSetContainers()
{
return this._containers != null && this._containers.Count > 0;
}
///
/// Gets and sets the property EnableNetworkIsolation.
///
/// Isolates the model container. No inbound or outbound network calls can be made to
/// or from the model container.
///
///
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 ExecutionRoleArn.
///
/// The Amazon Resource Name (ARN) of the IAM role that SageMaker can assume to access
/// model artifacts and docker image for deployment on ML compute instances or for batch
/// transform jobs. Deploying on ML compute instances is part of model hosting. 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.
///
///
///
[AWSProperty(Required=true, Min=20, Max=2048)]
public string ExecutionRoleArn
{
get { return this._executionRoleArn; }
set { this._executionRoleArn = value; }
}
// Check to see if ExecutionRoleArn property is set
internal bool IsSetExecutionRoleArn()
{
return this._executionRoleArn != null;
}
///
/// Gets and sets the property InferenceExecutionConfig.
///
/// Specifies details of how containers in a multi-container endpoint are called.
///
///
public InferenceExecutionConfig InferenceExecutionConfig
{
get { return this._inferenceExecutionConfig; }
set { this._inferenceExecutionConfig = value; }
}
// Check to see if InferenceExecutionConfig property is set
internal bool IsSetInferenceExecutionConfig()
{
return this._inferenceExecutionConfig != null;
}
///
/// Gets and sets the property ModelName.
///
/// The name of the new model.
///
///
[AWSProperty(Required=true, Max=63)]
public string ModelName
{
get { return this._modelName; }
set { this._modelName = value; }
}
// Check to see if ModelName property is set
internal bool IsSetModelName()
{
return this._modelName != null;
}
///
/// Gets and sets the property PrimaryContainer.
///
/// The location of the primary docker image containing inference code, associated artifacts,
/// and custom environment map that the inference code uses when the model is deployed
/// for predictions.
///
///
public ContainerDefinition PrimaryContainer
{
get { return this._primaryContainer; }
set { this._primaryContainer = value; }
}
// Check to see if PrimaryContainer property is set
internal bool IsSetPrimaryContainer()
{
return this._primaryContainer != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=0, Max=50)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property VpcConfig.
///
/// A VpcConfig
/// object that specifies the VPC that you want your model to connect to. Control access
/// to and from your model container by configuring the VPC. VpcConfig
is
/// used in hosting services and in batch transform. For more information, see Protect
/// Endpoints by Using an Amazon Virtual Private Cloud and Protect
/// Data in Batch Transform 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;
}
}
}