/*
* 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 CreateSession operation.
/// Creates a new session.
///
public partial class CreateSessionRequest : AmazonGlueRequest
{
private SessionCommand _command;
private ConnectionsList _connections;
private Dictionary _defaultArguments = new Dictionary();
private string _description;
private string _glueVersion;
private string _id;
private int? _idleTimeout;
private double? _maxCapacity;
private int? _numberOfWorkers;
private string _requestOrigin;
private string _role;
private string _securityConfiguration;
private Dictionary _tags = new Dictionary();
private int? _timeout;
private WorkerType _workerType;
///
/// Gets and sets the property Command.
///
/// The SessionCommand
that runs the job.
///
///
[AWSProperty(Required=true)]
public SessionCommand Command
{
get { return this._command; }
set { this._command = value; }
}
// Check to see if Command property is set
internal bool IsSetCommand()
{
return this._command != null;
}
///
/// Gets and sets the property Connections.
///
/// The number of connections to use for the session.
///
///
public ConnectionsList Connections
{
get { return this._connections; }
set { this._connections = value; }
}
// Check to see if Connections property is set
internal bool IsSetConnections()
{
return this._connections != null;
}
///
/// Gets and sets the property DefaultArguments.
///
/// A map array of key-value pairs. Max is 75 pairs.
///
///
[AWSProperty(Min=0, Max=75)]
public Dictionary DefaultArguments
{
get { return this._defaultArguments; }
set { this._defaultArguments = value; }
}
// Check to see if DefaultArguments property is set
internal bool IsSetDefaultArguments()
{
return this._defaultArguments != null && this._defaultArguments.Count > 0;
}
///
/// Gets and sets the property Description.
///
/// The description of the session.
///
///
[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.
///
/// The Glue version determines the versions of Apache Spark and Python that Glue supports.
/// The GlueVersion must be greater than 2.0.
///
///
[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 Id.
///
/// The ID of the session request.
///
///
[AWSProperty(Required=true, Min=1, Max=255)]
public string Id
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if Id property is set
internal bool IsSetId()
{
return this._id != null;
}
///
/// Gets and sets the property IdleTimeout.
///
/// The number of minutes when idle before session times out. Default for Spark ETL jobs
/// is value of Timeout. Consult the documentation for other job types.
///
///
[AWSProperty(Min=1)]
public int IdleTimeout
{
get { return this._idleTimeout.GetValueOrDefault(); }
set { this._idleTimeout = value; }
}
// Check to see if IdleTimeout property is set
internal bool IsSetIdleTimeout()
{
return this._idleTimeout.HasValue;
}
///
/// Gets and sets the property MaxCapacity.
///
/// The number of Glue data processing units (DPUs) that can be allocated when the job
/// runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of
/// compute capacity and 16 GB memory.
///
///
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 NumberOfWorkers.
///
/// The number of workers of a defined WorkerType
to use for the session.
///
///
///
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 RequestOrigin.
///
/// The origin of the request.
///
///
[AWSProperty(Min=1, Max=128)]
public string RequestOrigin
{
get { return this._requestOrigin; }
set { this._requestOrigin = value; }
}
// Check to see if RequestOrigin property is set
internal bool IsSetRequestOrigin()
{
return this._requestOrigin != null;
}
///
/// Gets and sets the property Role.
///
/// The IAM Role ARN
///
///
[AWSProperty(Required=true, Min=20, Max=2048)]
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 SecurityConfiguration.
///
/// The name of the SecurityConfiguration structure to be used with the session
///
///
[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 Tags.
///
/// The map of key value pairs (tags) belonging to the session.
///
///
[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 number of minutes before session times out. Default for Spark ETL jobs is 48
/// hours (2880 minutes), the maximum session lifetime for this job type. Consult the
/// documentation for other job types.
///
///
[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 WorkerType.
///
/// The type of predefined worker that is allocated when a job runs. Accepts a value of
/// G.1X, G.2X, G.4X, or G.8X for Spark jobs. Accepts the value Z.2X for Ray notebooks.
///
/// -
///
/// For the
G.1X
worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of
/// memory) with 84GB disk (approximately 34GB free), and provides 1 executor per worker.
/// We recommend this worker type for workloads such as data transforms, joins, and queries,
/// to offers a scalable and cost effective way to run most jobs.
///
/// -
///
/// For the
G.2X
worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of
/// memory) with 128GB disk (approximately 77GB free), and provides 1 executor per worker.
/// We recommend this worker type for workloads such as data transforms, joins, and queries,
/// to offers a scalable and cost effective way to run most jobs.
///
/// -
///
/// For the
G.4X
worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB
/// of memory) with 256GB disk (approximately 235GB free), and provides 1 executor per
/// worker. We recommend this worker type for jobs whose workloads contain your most demanding
/// transforms, aggregations, joins, and queries. This worker type is available only for
/// Glue version 3.0 or later Spark ETL jobs in the following Amazon Web Services Regions:
/// US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore),
/// Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt),
/// Europe (Ireland), and Europe (Stockholm).
///
/// -
///
/// For the
G.8X
worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB
/// of memory) with 512GB disk (approximately 487GB free), and provides 1 executor per
/// worker. We recommend this worker type for jobs whose workloads contain your most demanding
/// transforms, aggregations, joins, and queries. This worker type is available only for
/// Glue version 3.0 or later Spark ETL jobs, in the same Amazon Web Services Regions
/// as supported for the G.4X
worker type.
///
/// -
///
/// For the
Z.2X
worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB
/// of memory) with 128 GB disk (approximately 120GB free), and provides up to 8 Ray workers
/// based on the autoscaler.
///
///
///
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;
}
}
}