/*
* 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 glue-2017-03-31.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.Glue.Model
{
///
/// Container for the parameters to the CreateMLTransform operation.
/// Creates an Glue machine learning transform. This operation creates the transform and
/// all the necessary parameters to train it.
///
///
///
/// Call this operation as the first step in the process of using a machine learning transform
/// (such as the FindMatches
transform) for deduplicating data. You can provide
/// an optional Description
, in addition to the parameters that you want
/// to use for your algorithm.
///
///
///
/// You must also specify certain parameters for the tasks that Glue runs on your behalf
/// as part of learning from your data and creating a high-quality machine learning transform.
/// These parameters include Role
, and optionally, AllocatedCapacity
,
/// Timeout
, and MaxRetries
. For more information, see Jobs.
///
///
public partial class CreateMLTransformRequest : AmazonGlueRequest
{
private string _description;
private string _glueVersion;
private List _inputRecordTables = new List();
private double? _maxCapacity;
private int? _maxRetries;
private string _name;
private int? _numberOfWorkers;
private TransformParameters _parameters;
private string _role;
private Dictionary _tags = new Dictionary();
private int? _timeout;
private TransformEncryption _transformEncryption;
private WorkerType _workerType;
///
/// Gets and sets the property Description.
///
/// A description of the machine learning transform that is being defined. The default
/// is an empty string.
///
///
[AWSProperty(Min=0, Max=2048)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property GlueVersion.
///
/// This value determines which version of Glue this machine learning transform is compatible
/// with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue
/// compatibility defaults to Glue 0.9. For more information, see Glue
/// Versions in the developer guide.
///
///
[AWSProperty(Min=1, Max=255)]
public string GlueVersion
{
get { return this._glueVersion; }
set { this._glueVersion = value; }
}
// Check to see if GlueVersion property is set
internal bool IsSetGlueVersion()
{
return this._glueVersion != null;
}
///
/// Gets and sets the property InputRecordTables.
///
/// A list of Glue table definitions used by the transform.
///
///
[AWSProperty(Required=true, Min=0, Max=10)]
public List InputRecordTables
{
get { return this._inputRecordTables; }
set { this._inputRecordTables = value; }
}
// Check to see if InputRecordTables property is set
internal bool IsSetInputRecordTables()
{
return this._inputRecordTables != null && this._inputRecordTables.Count > 0;
}
///
/// Gets and sets the property MaxCapacity.
///
/// The number of Glue data processing units (DPUs) that are allocated to task runs for
/// this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a
/// relative measure of processing power that consists of 4 vCPUs of compute capacity
/// and 16 GB of memory. For more information, see the Glue
/// pricing page.
///
///
///
/// MaxCapacity
is a mutually exclusive option with NumberOfWorkers
/// and WorkerType
.
///
/// -
///
/// If either
NumberOfWorkers
or WorkerType
is set, then MaxCapacity
/// cannot be set.
///
/// -
///
/// If
MaxCapacity
is set then neither NumberOfWorkers
or WorkerType
/// can be set.
///
/// -
///
/// If
WorkerType
is set, then NumberOfWorkers
is required (and
/// vice versa).
///
/// -
///
///
MaxCapacity
and NumberOfWorkers
must both be at least 1.
///
///
///
/// When the WorkerType
field is set to a value other than Standard
,
/// the MaxCapacity
field is set automatically and becomes read-only.
///
///
///
/// When the WorkerType
field is set to a value other than Standard
,
/// the MaxCapacity
field is set automatically and becomes read-only.
///
///
public double MaxCapacity
{
get { return this._maxCapacity.GetValueOrDefault(); }
set { this._maxCapacity = value; }
}
// Check to see if MaxCapacity property is set
internal bool IsSetMaxCapacity()
{
return this._maxCapacity.HasValue;
}
///
/// Gets and sets the property MaxRetries.
///
/// The maximum number of times to retry a task for this transform after a task run fails.
///
///
public int MaxRetries
{
get { return this._maxRetries.GetValueOrDefault(); }
set { this._maxRetries = value; }
}
// Check to see if MaxRetries property is set
internal bool IsSetMaxRetries()
{
return this._maxRetries.HasValue;
}
///
/// Gets and sets the property Name.
///
/// The unique name that you give the transform when you create it.
///
///
[AWSProperty(Required=true, Min=1, Max=255)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property NumberOfWorkers.
///
/// The number of workers of a defined workerType
that are allocated when
/// this task runs.
///
///
///
/// If WorkerType
is set, then NumberOfWorkers
is required (and
/// vice versa).
///
///
public int NumberOfWorkers
{
get { return this._numberOfWorkers.GetValueOrDefault(); }
set { this._numberOfWorkers = value; }
}
// Check to see if NumberOfWorkers property is set
internal bool IsSetNumberOfWorkers()
{
return this._numberOfWorkers.HasValue;
}
///
/// Gets and sets the property Parameters.
///
/// The algorithmic parameters that are specific to the transform type used. Conditionally
/// dependent on the transform type.
///
///
[AWSProperty(Required=true)]
public TransformParameters Parameters
{
get { return this._parameters; }
set { this._parameters = value; }
}
// Check to see if Parameters property is set
internal bool IsSetParameters()
{
return this._parameters != null;
}
///
/// Gets and sets the property Role.
///
/// The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.
/// The required permissions include both Glue service role permissions to Glue resources,
/// and Amazon S3 permissions required by the transform.
///
/// -
///
/// This role needs Glue service role permissions to allow access to resources in Glue.
/// See Attach
/// a Policy to IAM Users That Access Glue.
///
///
-
///
/// This role needs permission to your Amazon Simple Storage Service (Amazon S3) sources,
/// targets, temporary directory, scripts, and any libraries used by the task run for
/// this transform.
///
///
///
[AWSProperty(Required=true)]
public string Role
{
get { return this._role; }
set { this._role = value; }
}
// Check to see if Role property is set
internal bool IsSetRole()
{
return this._role != null;
}
///
/// Gets and sets the property Tags.
///
/// The tags to use with this machine learning transform. You may use tags to limit access
/// to the machine learning transform. For more information about tags in Glue, see Amazon Web Services
/// Tags in Glue in the developer guide.
///
///
[AWSProperty(Min=0, Max=50)]
public Dictionary 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 Timeout.
///
/// The timeout of the task run for this transform in minutes. This is the maximum time
/// that a task run for this transform can consume resources before it is terminated and
/// enters TIMEOUT
status. The default is 2,880 minutes (48 hours).
///
///
[AWSProperty(Min=1)]
public int Timeout
{
get { return this._timeout.GetValueOrDefault(); }
set { this._timeout = value; }
}
// Check to see if Timeout property is set
internal bool IsSetTimeout()
{
return this._timeout.HasValue;
}
///
/// Gets and sets the property TransformEncryption.
///
/// The encryption-at-rest settings of the transform that apply to accessing user data.
/// Machine learning transforms can access user data encrypted in Amazon S3 using KMS.
///
///
public TransformEncryption TransformEncryption
{
get { return this._transformEncryption; }
set { this._transformEncryption = value; }
}
// Check to see if TransformEncryption property is set
internal bool IsSetTransformEncryption()
{
return this._transformEncryption != null;
}
///
/// Gets and sets the property WorkerType.
///
/// The type of predefined worker that is allocated when this task runs. Accepts a value
/// of Standard, G.1X, or G.2X.
///
/// -
///
/// For the
Standard
worker type, each worker provides 4 vCPU, 16 GB of memory
/// and a 50GB disk, and 2 executors per worker.
///
/// -
///
/// For the
G.1X
worker type, each worker provides 4 vCPU, 16 GB of memory
/// and a 64GB disk, and 1 executor per worker.
///
/// -
///
/// For the
G.2X
worker type, each worker provides 8 vCPU, 32 GB of memory
/// and a 128GB disk, and 1 executor per worker.
///
///
///
/// MaxCapacity
is a mutually exclusive option with NumberOfWorkers
/// and WorkerType
.
///
/// -
///
/// If either
NumberOfWorkers
or WorkerType
is set, then MaxCapacity
/// cannot be set.
///
/// -
///
/// If
MaxCapacity
is set then neither NumberOfWorkers
or WorkerType
/// can be set.
///
/// -
///
/// If
WorkerType
is set, then NumberOfWorkers
is required (and
/// vice versa).
///
/// -
///
///
MaxCapacity
and NumberOfWorkers
must both be at least 1.
///
///
///
public WorkerType WorkerType
{
get { return this._workerType; }
set { this._workerType = value; }
}
// Check to see if WorkerType property is set
internal bool IsSetWorkerType()
{
return this._workerType != null;
}
}
}