/*
* 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 CreateDevEndpoint operation.
/// Creates a new development endpoint.
///
public partial class CreateDevEndpointRequest : AmazonGlueRequest
{
private Dictionary _arguments = new Dictionary();
private string _endpointName;
private string _extraJarsS3Path;
private string _extraPythonLibsS3Path;
private string _glueVersion;
private int? _numberOfNodes;
private int? _numberOfWorkers;
private string _publicKey;
private List _publicKeys = new List();
private string _roleArn;
private string _securityConfiguration;
private List _securityGroupIds = new List();
private string _subnetId;
private Dictionary _tags = new Dictionary();
private WorkerType _workerType;
///
/// Gets and sets the property Arguments.
///
/// A map of arguments used to configure the DevEndpoint
.
///
///
[AWSProperty(Min=0, Max=100)]
public Dictionary Arguments
{
get { return this._arguments; }
set { this._arguments = value; }
}
// Check to see if Arguments property is set
internal bool IsSetArguments()
{
return this._arguments != null && this._arguments.Count > 0;
}
///
/// Gets and sets the property EndpointName.
///
/// The name to be assigned to the new DevEndpoint
.
///
///
[AWSProperty(Required=true)]
public string EndpointName
{
get { return this._endpointName; }
set { this._endpointName = value; }
}
// Check to see if EndpointName property is set
internal bool IsSetEndpointName()
{
return this._endpointName != null;
}
///
/// Gets and sets the property ExtraJarsS3Path.
///
/// The path to one or more Java .jar
files in an S3 bucket that should be
/// loaded in your DevEndpoint
.
///
///
public string ExtraJarsS3Path
{
get { return this._extraJarsS3Path; }
set { this._extraJarsS3Path = value; }
}
// Check to see if ExtraJarsS3Path property is set
internal bool IsSetExtraJarsS3Path()
{
return this._extraJarsS3Path != null;
}
///
/// Gets and sets the property ExtraPythonLibsS3Path.
///
/// The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded
/// in your DevEndpoint
. Multiple values must be complete paths separated
/// by a comma.
///
///
///
/// You can only use pure Python libraries with a DevEndpoint
. Libraries
/// that rely on C extensions, such as the pandas
/// Python data analysis library, are not yet supported.
///
///
///
public string ExtraPythonLibsS3Path
{
get { return this._extraPythonLibsS3Path; }
set { this._extraPythonLibsS3Path = value; }
}
// Check to see if ExtraPythonLibsS3Path property is set
internal bool IsSetExtraPythonLibsS3Path()
{
return this._extraPythonLibsS3Path != null;
}
///
/// Gets and sets the property GlueVersion.
///
/// Glue version determines the versions of Apache Spark and Python that Glue supports.
/// The Python version indicates the version supported for running your ETL scripts on
/// development endpoints.
///
///
///
/// For more information about the available Glue versions and corresponding Spark and
/// Python versions, see Glue
/// version in the developer guide.
///
///
///
/// Development endpoints that are created without specifying a Glue version default to
/// Glue 0.9.
///
///
///
/// You can specify a version of Python support for development endpoints by using the
/// Arguments
parameter in the CreateDevEndpoint
or UpdateDevEndpoint
/// APIs. If no arguments are provided, the version defaults to Python 2.
///
///
[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 NumberOfNodes.
///
/// The number of Glue Data Processing Units (DPUs) to allocate to this DevEndpoint
.
///
///
public int NumberOfNodes
{
get { return this._numberOfNodes.GetValueOrDefault(); }
set { this._numberOfNodes = value; }
}
// Check to see if NumberOfNodes property is set
internal bool IsSetNumberOfNodes()
{
return this._numberOfNodes.HasValue;
}
///
/// Gets and sets the property NumberOfWorkers.
///
/// The number of workers of a defined workerType
that are allocated to the
/// development endpoint.
///
///
///
/// The maximum number of workers you can define are 299 for G.1X
, and 149
/// for G.2X
.
///
///
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 PublicKey.
///
/// The public key to be used by this DevEndpoint
for authentication. This
/// attribute is provided for backward compatibility because the recommended attribute
/// to use is public keys.
///
///
public string PublicKey
{
get { return this._publicKey; }
set { this._publicKey = value; }
}
// Check to see if PublicKey property is set
internal bool IsSetPublicKey()
{
return this._publicKey != null;
}
///
/// Gets and sets the property PublicKeys.
///
/// A list of public keys to be used by the development endpoints for authentication.
/// The use of this attribute is preferred over a single public key because the public
/// keys allow you to have a different private key per client.
///
///
///
/// If you previously created an endpoint with a public key, you must remove that key
/// to be able to set a list of public keys. Call the UpdateDevEndpoint
API
/// with the public key content in the deletePublicKeys
attribute, and the
/// list of new keys in the addPublicKeys
attribute.
///
///
///
[AWSProperty(Max=5)]
public List PublicKeys
{
get { return this._publicKeys; }
set { this._publicKeys = value; }
}
// Check to see if PublicKeys property is set
internal bool IsSetPublicKeys()
{
return this._publicKeys != null && this._publicKeys.Count > 0;
}
///
/// Gets and sets the property RoleArn.
///
/// The IAM role for the DevEndpoint
.
///
///
[AWSProperty(Required=true)]
public string RoleArn
{
get { return this._roleArn; }
set { this._roleArn = value; }
}
// Check to see if RoleArn property is set
internal bool IsSetRoleArn()
{
return this._roleArn != null;
}
///
/// Gets and sets the property SecurityConfiguration.
///
/// The name of the SecurityConfiguration
structure to be used with this
/// DevEndpoint
.
///
///
[AWSProperty(Min=1, Max=255)]
public string SecurityConfiguration
{
get { return this._securityConfiguration; }
set { this._securityConfiguration = value; }
}
// Check to see if SecurityConfiguration property is set
internal bool IsSetSecurityConfiguration()
{
return this._securityConfiguration != null;
}
///
/// Gets and sets the property SecurityGroupIds.
///
/// Security group IDs for the security groups to be used by the new DevEndpoint
.
///
///
public List SecurityGroupIds
{
get { return this._securityGroupIds; }
set { this._securityGroupIds = value; }
}
// Check to see if SecurityGroupIds property is set
internal bool IsSetSecurityGroupIds()
{
return this._securityGroupIds != null && this._securityGroupIds.Count > 0;
}
///
/// Gets and sets the property SubnetId.
///
/// The subnet ID for the new DevEndpoint
to use.
///
///
public string SubnetId
{
get { return this._subnetId; }
set { this._subnetId = value; }
}
// Check to see if SubnetId property is set
internal bool IsSetSubnetId()
{
return this._subnetId != null;
}
///
/// Gets and sets the property Tags.
///
/// The tags to use with this DevEndpoint. You may use tags to limit access to the DevEndpoint.
/// 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 WorkerType.
///
/// The type of predefined worker that is allocated to the development endpoint. 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 maps to 1 DPU (4 vCPU, 16 GB of
/// memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker
/// type for memory-intensive jobs.
///
/// -
///
/// For the
G.2X
worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of
/// memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker
/// type for memory-intensive jobs.
///
///
///
/// Known issue: when a development endpoint is created with the G.2X
WorkerType
/// configuration, the Spark drivers for the development endpoint will run on 4 vCPU,
/// 16 GB of memory, and a 64 GB disk.
///
///
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;
}
}
}