/* * 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 CreateEndpointConfig operation. /// Creates an endpoint configuration that SageMaker hosting services uses to deploy models. /// In the configuration, you identify one or more models, created using the CreateModel /// API, to deploy and the resources that you want SageMaker to provision. Then you call /// the CreateEndpoint /// API. /// /// /// /// Use this API if you want to use SageMaker hosting services to deploy models into /// production. /// /// /// /// In the request, you define a ProductionVariant, for each model that you /// want to deploy. Each ProductionVariant parameter also describes the resources /// that you want SageMaker to provision. This includes the number and type of ML compute /// instances to deploy. /// /// /// /// If you are hosting multiple models, you also assign a VariantWeight to /// specify how much traffic you want to allocate to each model. For example, suppose /// that you want to host two models, A and B, and you assign traffic weight 2 for model /// A and 1 for model B. SageMaker distributes two-thirds of the traffic to Model A, and /// one-third to model B. /// /// /// /// When you call CreateEndpoint, /// a load call is made to DynamoDB to verify that your endpoint configuration exists. /// When you read data from a DynamoDB table supporting /// Eventually Consistent Reads , the response might not reflect the /// results of a recently completed write operation. The response might include some stale /// data. If the dependent entities are not yet in DynamoDB, this causes a validation /// error. If you repeat your read request after a short time, the response should return /// the latest data. So retry logic is recommended to handle these possible issues. We /// also recommend that customers call DescribeEndpointConfig /// before calling CreateEndpoint /// to minimize the potential impact of a DynamoDB eventually consistent read. /// /// /// public partial class CreateEndpointConfigRequest : AmazonSageMakerRequest { private AsyncInferenceConfig _asyncInferenceConfig; private DataCaptureConfig _dataCaptureConfig; private string _endpointConfigName; private ExplainerConfig _explainerConfig; private string _kmsKeyId; private List _productionVariants = new List(); private List _shadowProductionVariants = new List(); private List _tags = new List(); /// /// Gets and sets the property AsyncInferenceConfig. /// /// Specifies configuration for how an endpoint performs asynchronous inference. This /// is a required field in order for your Endpoint to be invoked using InvokeEndpointAsync. /// /// public AsyncInferenceConfig AsyncInferenceConfig { get { return this._asyncInferenceConfig; } set { this._asyncInferenceConfig = value; } } // Check to see if AsyncInferenceConfig property is set internal bool IsSetAsyncInferenceConfig() { return this._asyncInferenceConfig != null; } /// /// Gets and sets the property DataCaptureConfig. /// public DataCaptureConfig DataCaptureConfig { get { return this._dataCaptureConfig; } set { this._dataCaptureConfig = value; } } // Check to see if DataCaptureConfig property is set internal bool IsSetDataCaptureConfig() { return this._dataCaptureConfig != null; } /// /// Gets and sets the property EndpointConfigName. /// /// The name of the endpoint configuration. You specify this name in a CreateEndpoint /// request. /// /// [AWSProperty(Required=true, Max=63)] public string EndpointConfigName { get { return this._endpointConfigName; } set { this._endpointConfigName = value; } } // Check to see if EndpointConfigName property is set internal bool IsSetEndpointConfigName() { return this._endpointConfigName != null; } /// /// Gets and sets the property ExplainerConfig. /// /// A member of CreateEndpointConfig that enables explainers. /// /// public ExplainerConfig ExplainerConfig { get { return this._explainerConfig; } set { this._explainerConfig = value; } } // Check to see if ExplainerConfig property is set internal bool IsSetExplainerConfig() { return this._explainerConfig != null; } /// /// Gets and sets the property KmsKeyId. /// /// The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service key /// that SageMaker uses to encrypt data on the storage volume attached to the ML compute /// instance that hosts the endpoint. /// /// /// /// The KmsKeyId can be any of the following formats: /// ///
  • /// /// Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab /// ///
  • /// /// Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab /// /// ///
  • /// /// Alias name: alias/ExampleAlias /// ///
  • /// /// Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias /// /// ///
/// /// The KMS key policy must grant permission to the IAM role that you specify in your /// CreateEndpoint, UpdateEndpoint requests. For more information, /// refer to the Amazon Web Services Key Management Service section /// Using Key Policies in Amazon Web Services KMS /// /// /// /// Certain Nitro-based instances include local storage, dependent on the instance type. /// Local storage volumes are encrypted using a hardware module on the instance. You can't /// request a KmsKeyId when using an instance type with local storage. If /// any of the models that you specify in the ProductionVariants parameter /// use nitro-based instances with local storage, do not specify a value for the KmsKeyId /// parameter. If you specify a value for KmsKeyId when using any nitro-based /// instances with local storage, the call to CreateEndpointConfig fails. /// /// /// /// For a list of instance types that support local instance storage, see Instance /// Store Volumes. /// /// /// /// For more information about local instance storage encryption, see SSD /// Instance Store Volumes. /// /// ///
[AWSProperty(Max=2048)] public string KmsKeyId { get { return this._kmsKeyId; } set { this._kmsKeyId = value; } } // Check to see if KmsKeyId property is set internal bool IsSetKmsKeyId() { return this._kmsKeyId != null; } /// /// Gets and sets the property ProductionVariants. /// /// An array of ProductionVariant objects, one for each model that you want /// to host at this endpoint. /// /// [AWSProperty(Required=true, Min=1, Max=10)] public List ProductionVariants { get { return this._productionVariants; } set { this._productionVariants = value; } } // Check to see if ProductionVariants property is set internal bool IsSetProductionVariants() { return this._productionVariants != null && this._productionVariants.Count > 0; } /// /// Gets and sets the property ShadowProductionVariants. /// /// An array of ProductionVariant objects, one for each model that you want /// to host at this endpoint in shadow mode with production traffic replicated from the /// model specified on ProductionVariants. If you use this field, you can /// only specify one variant for ProductionVariants and one variant for ShadowProductionVariants. /// /// [AWSProperty(Min=1, Max=10)] public List ShadowProductionVariants { get { return this._shadowProductionVariants; } set { this._shadowProductionVariants = value; } } // Check to see if ShadowProductionVariants property is set internal bool IsSetShadowProductionVariants() { return this._shadowProductionVariants != null && this._shadowProductionVariants.Count > 0; } /// /// 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; } } }