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

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

// 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
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy