All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.aws.sdk.kotlin.services.glue.model.DevEndpoint.kt Maven / Gradle / Ivy

There is a newer version: 1.3.76
Show newest version
// 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
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy