commonMain.aws.sdk.kotlin.services.glue.model.DevEndpoint.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
import aws.smithy.kotlin.runtime.time.Instant
/**
* A development endpoint where a developer can remotely debug extract, transform, and load (ETL) scripts.
*/
public class DevEndpoint private constructor(builder: Builder) {
/**
* A map of arguments used to configure the `DevEndpoint`.
*
* Valid arguments are:
* + `"--enable-glue-datacatalog": ""`
*
* 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 arguments: Map? = builder.arguments
/**
* The Amazon Web Services Availability Zone where this `DevEndpoint` is located.
*/
public val availabilityZone: kotlin.String? = builder.availabilityZone
/**
* The point in time at which this DevEndpoint was created.
*/
public val createdTimestamp: aws.smithy.kotlin.runtime.time.Instant? = builder.createdTimestamp
/**
* The name of the `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`.
*
* You can only use pure Java/Scala libraries with a `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 currently supported.
*/
public val extraPythonLibsS3Path: kotlin.String? = builder.extraPythonLibsS3Path
/**
* The reason for a current failure in this `DevEndpoint`.
*/
public val failureReason: kotlin.String? = builder.failureReason
/**
* 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 point in time at which this `DevEndpoint` was last modified.
*/
public val lastModifiedTimestamp: aws.smithy.kotlin.runtime.time.Instant? = builder.lastModifiedTimestamp
/**
* The status of the last update.
*/
public val lastUpdateStatus: kotlin.String? = builder.lastUpdateStatus
/**
* The number of Glue Data Processing Units (DPUs) allocated 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
/**
* A private IP address to access the `DevEndpoint` within a VPC if the `DevEndpoint` is created within one. The `PrivateAddress` field is present only when you create the `DevEndpoint` within your VPC.
*/
public val privateAddress: kotlin.String? = builder.privateAddress
/**
* The public IP address used by this `DevEndpoint`. The `PublicAddress` field is present only when you create a non-virtual private cloud (VPC) `DevEndpoint`.
*/
public val publicAddress: kotlin.String? = builder.publicAddress
/**
* 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 `DevEndpoints` for authentication. Using 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 operation 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 Amazon Resource Name (ARN) of the IAM role used in this `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
/**
* A list of security group identifiers used in this `DevEndpoint`.
*/
public val securityGroupIds: List? = builder.securityGroupIds
/**
* The current status of this `DevEndpoint`.
*/
public val status: kotlin.String? = builder.status
/**
* The subnet ID for this `DevEndpoint`.
*/
public val subnetId: kotlin.String? = builder.subnetId
/**
* The ID of the virtual private cloud (VPC) used by this `DevEndpoint`.
*/
public val vpcId: kotlin.String? = builder.vpcId
/**
* 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
/**
* The YARN endpoint address used by this `DevEndpoint`.
*/
public val yarnEndpointAddress: kotlin.String? = builder.yarnEndpointAddress
/**
* The Apache Zeppelin port for the remote Apache Spark interpreter.
*/
public val zeppelinRemoteSparkInterpreterPort: kotlin.Int = builder.zeppelinRemoteSparkInterpreterPort
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.glue.model.DevEndpoint = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("DevEndpoint(")
append("arguments=$arguments,")
append("availabilityZone=$availabilityZone,")
append("createdTimestamp=$createdTimestamp,")
append("endpointName=$endpointName,")
append("extraJarsS3Path=$extraJarsS3Path,")
append("extraPythonLibsS3Path=$extraPythonLibsS3Path,")
append("failureReason=$failureReason,")
append("glueVersion=$glueVersion,")
append("lastModifiedTimestamp=$lastModifiedTimestamp,")
append("lastUpdateStatus=$lastUpdateStatus,")
append("numberOfNodes=$numberOfNodes,")
append("numberOfWorkers=$numberOfWorkers,")
append("privateAddress=$privateAddress,")
append("publicAddress=$publicAddress,")
append("publicKey=$publicKey,")
append("publicKeys=$publicKeys,")
append("roleArn=$roleArn,")
append("securityConfiguration=$securityConfiguration,")
append("securityGroupIds=$securityGroupIds,")
append("status=$status,")
append("subnetId=$subnetId,")
append("vpcId=$vpcId,")
append("workerType=$workerType,")
append("yarnEndpointAddress=$yarnEndpointAddress,")
append("zeppelinRemoteSparkInterpreterPort=$zeppelinRemoteSparkInterpreterPort")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = arguments?.hashCode() ?: 0
result = 31 * result + (availabilityZone?.hashCode() ?: 0)
result = 31 * result + (createdTimestamp?.hashCode() ?: 0)
result = 31 * result + (endpointName?.hashCode() ?: 0)
result = 31 * result + (extraJarsS3Path?.hashCode() ?: 0)
result = 31 * result + (extraPythonLibsS3Path?.hashCode() ?: 0)
result = 31 * result + (failureReason?.hashCode() ?: 0)
result = 31 * result + (glueVersion?.hashCode() ?: 0)
result = 31 * result + (lastModifiedTimestamp?.hashCode() ?: 0)
result = 31 * result + (lastUpdateStatus?.hashCode() ?: 0)
result = 31 * result + (numberOfNodes)
result = 31 * result + (numberOfWorkers ?: 0)
result = 31 * result + (privateAddress?.hashCode() ?: 0)
result = 31 * result + (publicAddress?.hashCode() ?: 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 + (status?.hashCode() ?: 0)
result = 31 * result + (subnetId?.hashCode() ?: 0)
result = 31 * result + (vpcId?.hashCode() ?: 0)
result = 31 * result + (workerType?.hashCode() ?: 0)
result = 31 * result + (yarnEndpointAddress?.hashCode() ?: 0)
result = 31 * result + (zeppelinRemoteSparkInterpreterPort)
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 DevEndpoint
if (arguments != other.arguments) return false
if (availabilityZone != other.availabilityZone) return false
if (createdTimestamp != other.createdTimestamp) return false
if (endpointName != other.endpointName) return false
if (extraJarsS3Path != other.extraJarsS3Path) return false
if (extraPythonLibsS3Path != other.extraPythonLibsS3Path) return false
if (failureReason != other.failureReason) return false
if (glueVersion != other.glueVersion) return false
if (lastModifiedTimestamp != other.lastModifiedTimestamp) return false
if (lastUpdateStatus != other.lastUpdateStatus) return false
if (numberOfNodes != other.numberOfNodes) return false
if (numberOfWorkers != other.numberOfWorkers) return false
if (privateAddress != other.privateAddress) return false
if (publicAddress != other.publicAddress) 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 (status != other.status) return false
if (subnetId != other.subnetId) return false
if (vpcId != other.vpcId) return false
if (workerType != other.workerType) return false
if (yarnEndpointAddress != other.yarnEndpointAddress) return false
if (zeppelinRemoteSparkInterpreterPort != other.zeppelinRemoteSparkInterpreterPort) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.glue.model.DevEndpoint = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* A map of arguments used to configure the `DevEndpoint`.
*
* Valid arguments are:
* + `"--enable-glue-datacatalog": ""`
*
* 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 arguments: Map? = null
/**
* The Amazon Web Services Availability Zone where this `DevEndpoint` is located.
*/
public var availabilityZone: kotlin.String? = null
/**
* The point in time at which this DevEndpoint was created.
*/
public var createdTimestamp: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* The name of the `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`.
*
* You can only use pure Java/Scala libraries with a `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 currently supported.
*/
public var extraPythonLibsS3Path: kotlin.String? = null
/**
* The reason for a current failure in this `DevEndpoint`.
*/
public var failureReason: 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 point in time at which this `DevEndpoint` was last modified.
*/
public var lastModifiedTimestamp: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* The status of the last update.
*/
public var lastUpdateStatus: kotlin.String? = null
/**
* The number of Glue Data Processing Units (DPUs) allocated to this `DevEndpoint`.
*/
public var numberOfNodes: kotlin.Int = 0
/**
* 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
/**
* A private IP address to access the `DevEndpoint` within a VPC if the `DevEndpoint` is created within one. The `PrivateAddress` field is present only when you create the `DevEndpoint` within your VPC.
*/
public var privateAddress: kotlin.String? = null
/**
* The public IP address used by this `DevEndpoint`. The `PublicAddress` field is present only when you create a non-virtual private cloud (VPC) `DevEndpoint`.
*/
public var publicAddress: kotlin.String? = 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 `DevEndpoints` for authentication. Using 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 operation 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 Amazon Resource Name (ARN) of the IAM role used in this `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
/**
* A list of security group identifiers used in this `DevEndpoint`.
*/
public var securityGroupIds: List? = null
/**
* The current status of this `DevEndpoint`.
*/
public var status: kotlin.String? = null
/**
* The subnet ID for this `DevEndpoint`.
*/
public var subnetId: kotlin.String? = null
/**
* The ID of the virtual private cloud (VPC) used by this `DevEndpoint`.
*/
public var vpcId: kotlin.String? = 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
/**
* The YARN endpoint address used by this `DevEndpoint`.
*/
public var yarnEndpointAddress: kotlin.String? = null
/**
* The Apache Zeppelin port for the remote Apache Spark interpreter.
*/
public var zeppelinRemoteSparkInterpreterPort: kotlin.Int = 0
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.glue.model.DevEndpoint) : this() {
this.arguments = x.arguments
this.availabilityZone = x.availabilityZone
this.createdTimestamp = x.createdTimestamp
this.endpointName = x.endpointName
this.extraJarsS3Path = x.extraJarsS3Path
this.extraPythonLibsS3Path = x.extraPythonLibsS3Path
this.failureReason = x.failureReason
this.glueVersion = x.glueVersion
this.lastModifiedTimestamp = x.lastModifiedTimestamp
this.lastUpdateStatus = x.lastUpdateStatus
this.numberOfNodes = x.numberOfNodes
this.numberOfWorkers = x.numberOfWorkers
this.privateAddress = x.privateAddress
this.publicAddress = x.publicAddress
this.publicKey = x.publicKey
this.publicKeys = x.publicKeys
this.roleArn = x.roleArn
this.securityConfiguration = x.securityConfiguration
this.securityGroupIds = x.securityGroupIds
this.status = x.status
this.subnetId = x.subnetId
this.vpcId = x.vpcId
this.workerType = x.workerType
this.yarnEndpointAddress = x.yarnEndpointAddress
this.zeppelinRemoteSparkInterpreterPort = x.zeppelinRemoteSparkInterpreterPort
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.glue.model.DevEndpoint = DevEndpoint(this)
internal fun correctErrors(): Builder {
return this
}
}
}