commonMain.aws.sdk.kotlin.services.glue.model.CreateDevEndpointRequest.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of glue-jvm Show documentation
Show all versions of glue-jvm Show documentation
The AWS SDK for Kotlin client for Glue
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.glue.model
import aws.smithy.kotlin.runtime.SdkDsl
public class CreateDevEndpointRequest private constructor(builder: Builder) {
/**
* A map of arguments used to configure the `DevEndpoint`.
*/
public val arguments: Map? = builder.arguments
/**
* The name to be assigned to the new `DevEndpoint`.
*/
public val endpointName: kotlin.String? = builder.endpointName
/**
* The path to one or more Java `.jar` files in an S3 bucket that should be loaded in your `DevEndpoint`.
*/
public val extraJarsS3Path: kotlin.String? = builder.extraJarsS3Path
/**
* 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](http://pandas.pydata.org/) Python data analysis library, are not yet supported.
*/
public val extraPythonLibsS3Path: kotlin.String? = builder.extraPythonLibsS3Path
/**
* 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](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) 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.
*/
public val glueVersion: kotlin.String? = builder.glueVersion
/**
* The number of Glue Data Processing Units (DPUs) to allocate to this `DevEndpoint`.
*/
public val numberOfNodes: kotlin.Int? = builder.numberOfNodes
/**
* 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 val numberOfWorkers: kotlin.Int? = builder.numberOfWorkers
/**
* 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 val publicKey: kotlin.String? = builder.publicKey
/**
* 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.
*/
public val publicKeys: List? = builder.publicKeys
/**
* The IAM role for the `DevEndpoint`.
*/
public val roleArn: kotlin.String? = builder.roleArn
/**
* The name of the `SecurityConfiguration` structure to be used with this `DevEndpoint`.
*/
public val securityConfiguration: kotlin.String? = builder.securityConfiguration
/**
* Security group IDs for the security groups to be used by the new `DevEndpoint`.
*/
public val securityGroupIds: List? = builder.securityGroupIds
/**
* The subnet ID for the new `DevEndpoint` to use.
*/
public val subnetId: kotlin.String? = builder.subnetId
/**
* 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](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide.
*/
public val tags: Map? = builder.tags
/**
* 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 val workerType: aws.sdk.kotlin.services.glue.model.WorkerType? = builder.workerType
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.glue.model.CreateDevEndpointRequest = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("CreateDevEndpointRequest(")
append("arguments=$arguments,")
append("endpointName=$endpointName,")
append("extraJarsS3Path=$extraJarsS3Path,")
append("extraPythonLibsS3Path=$extraPythonLibsS3Path,")
append("glueVersion=$glueVersion,")
append("numberOfNodes=$numberOfNodes,")
append("numberOfWorkers=$numberOfWorkers,")
append("publicKey=$publicKey,")
append("publicKeys=$publicKeys,")
append("roleArn=$roleArn,")
append("securityConfiguration=$securityConfiguration,")
append("securityGroupIds=$securityGroupIds,")
append("subnetId=$subnetId,")
append("tags=$tags,")
append("workerType=$workerType")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = arguments?.hashCode() ?: 0
result = 31 * result + (endpointName?.hashCode() ?: 0)
result = 31 * result + (extraJarsS3Path?.hashCode() ?: 0)
result = 31 * result + (extraPythonLibsS3Path?.hashCode() ?: 0)
result = 31 * result + (glueVersion?.hashCode() ?: 0)
result = 31 * result + (numberOfNodes ?: 0)
result = 31 * result + (numberOfWorkers ?: 0)
result = 31 * result + (publicKey?.hashCode() ?: 0)
result = 31 * result + (publicKeys?.hashCode() ?: 0)
result = 31 * result + (roleArn?.hashCode() ?: 0)
result = 31 * result + (securityConfiguration?.hashCode() ?: 0)
result = 31 * result + (securityGroupIds?.hashCode() ?: 0)
result = 31 * result + (subnetId?.hashCode() ?: 0)
result = 31 * result + (tags?.hashCode() ?: 0)
result = 31 * result + (workerType?.hashCode() ?: 0)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as CreateDevEndpointRequest
if (arguments != other.arguments) return false
if (endpointName != other.endpointName) return false
if (extraJarsS3Path != other.extraJarsS3Path) return false
if (extraPythonLibsS3Path != other.extraPythonLibsS3Path) return false
if (glueVersion != other.glueVersion) return false
if (numberOfNodes != other.numberOfNodes) return false
if (numberOfWorkers != other.numberOfWorkers) return false
if (publicKey != other.publicKey) return false
if (publicKeys != other.publicKeys) return false
if (roleArn != other.roleArn) return false
if (securityConfiguration != other.securityConfiguration) return false
if (securityGroupIds != other.securityGroupIds) return false
if (subnetId != other.subnetId) return false
if (tags != other.tags) return false
if (workerType != other.workerType) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.glue.model.CreateDevEndpointRequest = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* A map of arguments used to configure the `DevEndpoint`.
*/
public var arguments: Map? = null
/**
* The name to be assigned to the new `DevEndpoint`.
*/
public var endpointName: kotlin.String? = null
/**
* The path to one or more Java `.jar` files in an S3 bucket that should be loaded in your `DevEndpoint`.
*/
public var extraJarsS3Path: kotlin.String? = null
/**
* 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](http://pandas.pydata.org/) Python data analysis library, are not yet supported.
*/
public var extraPythonLibsS3Path: kotlin.String? = null
/**
* 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](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) 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.
*/
public var glueVersion: kotlin.String? = null
/**
* The number of Glue Data Processing Units (DPUs) to allocate to this `DevEndpoint`.
*/
public var numberOfNodes: kotlin.Int? = null
/**
* 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 var numberOfWorkers: kotlin.Int? = null
/**
* 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 var publicKey: kotlin.String? = null
/**
* 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.
*/
public var publicKeys: List? = null
/**
* The IAM role for the `DevEndpoint`.
*/
public var roleArn: kotlin.String? = null
/**
* The name of the `SecurityConfiguration` structure to be used with this `DevEndpoint`.
*/
public var securityConfiguration: kotlin.String? = null
/**
* Security group IDs for the security groups to be used by the new `DevEndpoint`.
*/
public var securityGroupIds: List? = null
/**
* The subnet ID for the new `DevEndpoint` to use.
*/
public var subnetId: kotlin.String? = null
/**
* 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](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide.
*/
public var tags: Map? = null
/**
* 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 var workerType: aws.sdk.kotlin.services.glue.model.WorkerType? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.glue.model.CreateDevEndpointRequest) : this() {
this.arguments = x.arguments
this.endpointName = x.endpointName
this.extraJarsS3Path = x.extraJarsS3Path
this.extraPythonLibsS3Path = x.extraPythonLibsS3Path
this.glueVersion = x.glueVersion
this.numberOfNodes = x.numberOfNodes
this.numberOfWorkers = x.numberOfWorkers
this.publicKey = x.publicKey
this.publicKeys = x.publicKeys
this.roleArn = x.roleArn
this.securityConfiguration = x.securityConfiguration
this.securityGroupIds = x.securityGroupIds
this.subnetId = x.subnetId
this.tags = x.tags
this.workerType = x.workerType
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.glue.model.CreateDevEndpointRequest = CreateDevEndpointRequest(this)
internal fun correctErrors(): Builder {
return this
}
}
}