/* * Copyright 2018-2023 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. */ package com.amazonaws.services.glue.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* A development endpoint where a developer can remotely debug extract, transform, and load (ETL) scripts. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class DevEndpoint implements Serializable, Cloneable, StructuredPojo { /** *

* The name of the DevEndpoint. *

*/ private String endpointName; /** *

* The Amazon Resource Name (ARN) of the IAM role used in this DevEndpoint. *

*/ private String roleArn; /** *

* A list of security group identifiers used in this DevEndpoint. *

*/ private java.util.List securityGroupIds; /** *

* The subnet ID for this DevEndpoint. *

*/ private String subnetId; /** *

* The YARN endpoint address used by this DevEndpoint. *

*/ private String yarnEndpointAddress; /** *

* 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. *

*/ private String privateAddress; /** *

* The Apache Zeppelin port for the remote Apache Spark interpreter. *

*/ private Integer zeppelinRemoteSparkInterpreterPort; /** *

* The public IP address used by this DevEndpoint. The PublicAddress field is present only * when you create a non-virtual private cloud (VPC) DevEndpoint. *

*/ private String publicAddress; /** *

* The current status of this DevEndpoint. *

*/ private String status; /** *

* The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, * or G.2X. *

* *

* 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. *

*/ private String workerType; /** *

* 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 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. *

*/ private String glueVersion; /** *

* 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. *

*/ private Integer numberOfWorkers; /** *

* The number of Glue Data Processing Units (DPUs) allocated to this DevEndpoint. *

*/ private Integer numberOfNodes; /** *

* The Amazon Web Services Availability Zone where this DevEndpoint is located. *

*/ private String availabilityZone; /** *

* The ID of the virtual private cloud (VPC) used by this DevEndpoint. *

*/ private String vpcId; /** *

* 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 Python data analysis library, are not currently supported. *

*
*/ private String extraPythonLibsS3Path; /** *

* 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. *

*
*/ private String extraJarsS3Path; /** *

* The reason for a current failure in this DevEndpoint. *

*/ private String failureReason; /** *

* The status of the last update. *

*/ private String lastUpdateStatus; /** *

* The point in time at which this DevEndpoint was created. *

*/ private java.util.Date createdTimestamp; /** *

* The point in time at which this DevEndpoint was last modified. *

*/ private java.util.Date lastModifiedTimestamp; /** *

* 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. *

*/ private String 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. *

*
*/ private java.util.List publicKeys; /** *

* The name of the SecurityConfiguration structure to be used with this DevEndpoint. *

*/ private String securityConfiguration; /** *

* A map of arguments used to configure the DevEndpoint. *

*

* Valid arguments are: *

* *

* 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. *

*/ private java.util.Map arguments; /** *

* The name of the DevEndpoint. *

* * @param endpointName * The name of the DevEndpoint. */ public void setEndpointName(String endpointName) { this.endpointName = endpointName; } /** *

* The name of the DevEndpoint. *

* * @return The name of the DevEndpoint. */ public String getEndpointName() { return this.endpointName; } /** *

* The name of the DevEndpoint. *

* * @param endpointName * The name of the DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withEndpointName(String endpointName) { setEndpointName(endpointName); return this; } /** *

* The Amazon Resource Name (ARN) of the IAM role used in this DevEndpoint. *

* * @param roleArn * The Amazon Resource Name (ARN) of the IAM role used in this DevEndpoint. */ public void setRoleArn(String roleArn) { this.roleArn = roleArn; } /** *

* The Amazon Resource Name (ARN) of the IAM role used in this DevEndpoint. *

* * @return The Amazon Resource Name (ARN) of the IAM role used in this DevEndpoint. */ public String getRoleArn() { return this.roleArn; } /** *

* The Amazon Resource Name (ARN) of the IAM role used in this DevEndpoint. *

* * @param roleArn * The Amazon Resource Name (ARN) of the IAM role used in this DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withRoleArn(String roleArn) { setRoleArn(roleArn); return this; } /** *

* A list of security group identifiers used in this DevEndpoint. *

* * @return A list of security group identifiers used in this DevEndpoint. */ public java.util.List getSecurityGroupIds() { return securityGroupIds; } /** *

* A list of security group identifiers used in this DevEndpoint. *

* * @param securityGroupIds * A list of security group identifiers used in this DevEndpoint. */ public void setSecurityGroupIds(java.util.Collection securityGroupIds) { if (securityGroupIds == null) { this.securityGroupIds = null; return; } this.securityGroupIds = new java.util.ArrayList(securityGroupIds); } /** *

* A list of security group identifiers used in this DevEndpoint. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setSecurityGroupIds(java.util.Collection)} or {@link #withSecurityGroupIds(java.util.Collection)} if you * want to override the existing values. *

* * @param securityGroupIds * A list of security group identifiers used in this DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withSecurityGroupIds(String... securityGroupIds) { if (this.securityGroupIds == null) { setSecurityGroupIds(new java.util.ArrayList(securityGroupIds.length)); } for (String ele : securityGroupIds) { this.securityGroupIds.add(ele); } return this; } /** *

* A list of security group identifiers used in this DevEndpoint. *

* * @param securityGroupIds * A list of security group identifiers used in this DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withSecurityGroupIds(java.util.Collection securityGroupIds) { setSecurityGroupIds(securityGroupIds); return this; } /** *

* The subnet ID for this DevEndpoint. *

* * @param subnetId * The subnet ID for this DevEndpoint. */ public void setSubnetId(String subnetId) { this.subnetId = subnetId; } /** *

* The subnet ID for this DevEndpoint. *

* * @return The subnet ID for this DevEndpoint. */ public String getSubnetId() { return this.subnetId; } /** *

* The subnet ID for this DevEndpoint. *

* * @param subnetId * The subnet ID for this DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withSubnetId(String subnetId) { setSubnetId(subnetId); return this; } /** *

* The YARN endpoint address used by this DevEndpoint. *

* * @param yarnEndpointAddress * The YARN endpoint address used by this DevEndpoint. */ public void setYarnEndpointAddress(String yarnEndpointAddress) { this.yarnEndpointAddress = yarnEndpointAddress; } /** *

* The YARN endpoint address used by this DevEndpoint. *

* * @return The YARN endpoint address used by this DevEndpoint. */ public String getYarnEndpointAddress() { return this.yarnEndpointAddress; } /** *

* The YARN endpoint address used by this DevEndpoint. *

* * @param yarnEndpointAddress * The YARN endpoint address used by this DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withYarnEndpointAddress(String yarnEndpointAddress) { setYarnEndpointAddress(yarnEndpointAddress); return this; } /** *

* 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. *

* * @param privateAddress * 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 void setPrivateAddress(String privateAddress) { this.privateAddress = privateAddress; } /** *

* 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. *

* * @return 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 String getPrivateAddress() { return this.privateAddress; } /** *

* 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. *

* * @param privateAddress * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withPrivateAddress(String privateAddress) { setPrivateAddress(privateAddress); return this; } /** *

* The Apache Zeppelin port for the remote Apache Spark interpreter. *

* * @param zeppelinRemoteSparkInterpreterPort * The Apache Zeppelin port for the remote Apache Spark interpreter. */ public void setZeppelinRemoteSparkInterpreterPort(Integer zeppelinRemoteSparkInterpreterPort) { this.zeppelinRemoteSparkInterpreterPort = zeppelinRemoteSparkInterpreterPort; } /** *

* The Apache Zeppelin port for the remote Apache Spark interpreter. *

* * @return The Apache Zeppelin port for the remote Apache Spark interpreter. */ public Integer getZeppelinRemoteSparkInterpreterPort() { return this.zeppelinRemoteSparkInterpreterPort; } /** *

* The Apache Zeppelin port for the remote Apache Spark interpreter. *

* * @param zeppelinRemoteSparkInterpreterPort * The Apache Zeppelin port for the remote Apache Spark interpreter. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withZeppelinRemoteSparkInterpreterPort(Integer zeppelinRemoteSparkInterpreterPort) { setZeppelinRemoteSparkInterpreterPort(zeppelinRemoteSparkInterpreterPort); return this; } /** *

* The public IP address used by this DevEndpoint. The PublicAddress field is present only * when you create a non-virtual private cloud (VPC) DevEndpoint. *

* * @param publicAddress * 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 void setPublicAddress(String publicAddress) { this.publicAddress = publicAddress; } /** *

* The public IP address used by this DevEndpoint. The PublicAddress field is present only * when you create a non-virtual private cloud (VPC) DevEndpoint. *

* * @return 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 String getPublicAddress() { return this.publicAddress; } /** *

* The public IP address used by this DevEndpoint. The PublicAddress field is present only * when you create a non-virtual private cloud (VPC) DevEndpoint. *

* * @param publicAddress * The public IP address used by this DevEndpoint. The PublicAddress field is * present only when you create a non-virtual private cloud (VPC) DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withPublicAddress(String publicAddress) { setPublicAddress(publicAddress); return this; } /** *

* The current status of this DevEndpoint. *

* * @param status * The current status of this DevEndpoint. */ public void setStatus(String status) { this.status = status; } /** *

* The current status of this DevEndpoint. *

* * @return The current status of this DevEndpoint. */ public String getStatus() { return this.status; } /** *

* The current status of this DevEndpoint. *

* * @param status * The current status of this DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withStatus(String status) { setStatus(status); return this; } /** *

* 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. *

* * @param workerType * 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. * @see WorkerType */ public void setWorkerType(String workerType) { this.workerType = workerType; } /** *

* 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. *

* * @return 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. * @see WorkerType */ public String getWorkerType() { return this.workerType; } /** *

* 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. *

* * @param workerType * 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. * @return Returns a reference to this object so that method calls can be chained together. * @see WorkerType */ public DevEndpoint withWorkerType(String workerType) { setWorkerType(workerType); return this; } /** *

* 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. *

* * @param workerType * 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. * @return Returns a reference to this object so that method calls can be chained together. * @see WorkerType */ public DevEndpoint withWorkerType(WorkerType workerType) { this.workerType = workerType.toString(); return this; } /** *

* 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 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. *

* * @param glueVersion * 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 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 void setGlueVersion(String glueVersion) { this.glueVersion = glueVersion; } /** *

* 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 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. *

* * @return 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 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 String getGlueVersion() { return this.glueVersion; } /** *

* 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 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. *

* * @param glueVersion * 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 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. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withGlueVersion(String glueVersion) { setGlueVersion(glueVersion); return this; } /** *

* 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. *

* * @param numberOfWorkers * 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 void setNumberOfWorkers(Integer numberOfWorkers) { this.numberOfWorkers = numberOfWorkers; } /** *

* 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. *

* * @return 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 Integer getNumberOfWorkers() { return this.numberOfWorkers; } /** *

* 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. *

* * @param numberOfWorkers * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withNumberOfWorkers(Integer numberOfWorkers) { setNumberOfWorkers(numberOfWorkers); return this; } /** *

* The number of Glue Data Processing Units (DPUs) allocated to this DevEndpoint. *

* * @param numberOfNodes * The number of Glue Data Processing Units (DPUs) allocated to this DevEndpoint. */ public void setNumberOfNodes(Integer numberOfNodes) { this.numberOfNodes = numberOfNodes; } /** *

* The number of Glue Data Processing Units (DPUs) allocated to this DevEndpoint. *

* * @return The number of Glue Data Processing Units (DPUs) allocated to this DevEndpoint. */ public Integer getNumberOfNodes() { return this.numberOfNodes; } /** *

* The number of Glue Data Processing Units (DPUs) allocated to this DevEndpoint. *

* * @param numberOfNodes * The number of Glue Data Processing Units (DPUs) allocated to this DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withNumberOfNodes(Integer numberOfNodes) { setNumberOfNodes(numberOfNodes); return this; } /** *

* The Amazon Web Services Availability Zone where this DevEndpoint is located. *

* * @param availabilityZone * The Amazon Web Services Availability Zone where this DevEndpoint is located. */ public void setAvailabilityZone(String availabilityZone) { this.availabilityZone = availabilityZone; } /** *

* The Amazon Web Services Availability Zone where this DevEndpoint is located. *

* * @return The Amazon Web Services Availability Zone where this DevEndpoint is located. */ public String getAvailabilityZone() { return this.availabilityZone; } /** *

* The Amazon Web Services Availability Zone where this DevEndpoint is located. *

* * @param availabilityZone * The Amazon Web Services Availability Zone where this DevEndpoint is located. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withAvailabilityZone(String availabilityZone) { setAvailabilityZone(availabilityZone); return this; } /** *

* The ID of the virtual private cloud (VPC) used by this DevEndpoint. *

* * @param vpcId * The ID of the virtual private cloud (VPC) used by this DevEndpoint. */ public void setVpcId(String vpcId) { this.vpcId = vpcId; } /** *

* The ID of the virtual private cloud (VPC) used by this DevEndpoint. *

* * @return The ID of the virtual private cloud (VPC) used by this DevEndpoint. */ public String getVpcId() { return this.vpcId; } /** *

* The ID of the virtual private cloud (VPC) used by this DevEndpoint. *

* * @param vpcId * The ID of the virtual private cloud (VPC) used by this DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withVpcId(String vpcId) { setVpcId(vpcId); return this; } /** *

* 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 Python data analysis library, are not currently supported. *

*
* * @param extraPythonLibsS3Path * 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 Python data analysis library, are * not currently supported. *

*/ public void setExtraPythonLibsS3Path(String extraPythonLibsS3Path) { this.extraPythonLibsS3Path = extraPythonLibsS3Path; } /** *

* 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 Python data analysis library, are not currently supported. *

*
* * @return 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 Python data analysis library, are * not currently supported. *

*/ public String getExtraPythonLibsS3Path() { return this.extraPythonLibsS3Path; } /** *

* 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 Python data analysis library, are not currently supported. *

*
* * @param extraPythonLibsS3Path * 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 Python data analysis library, are * not currently supported. *

* @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withExtraPythonLibsS3Path(String extraPythonLibsS3Path) { setExtraPythonLibsS3Path(extraPythonLibsS3Path); return this; } /** *

* 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. *

*
* * @param extraJarsS3Path * 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 void setExtraJarsS3Path(String extraJarsS3Path) { this.extraJarsS3Path = extraJarsS3Path; } /** *

* 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. *

*
* * @return 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 String getExtraJarsS3Path() { return this.extraJarsS3Path; } /** *

* 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. *

*
* * @param extraJarsS3Path * 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. *

* @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withExtraJarsS3Path(String extraJarsS3Path) { setExtraJarsS3Path(extraJarsS3Path); return this; } /** *

* The reason for a current failure in this DevEndpoint. *

* * @param failureReason * The reason for a current failure in this DevEndpoint. */ public void setFailureReason(String failureReason) { this.failureReason = failureReason; } /** *

* The reason for a current failure in this DevEndpoint. *

* * @return The reason for a current failure in this DevEndpoint. */ public String getFailureReason() { return this.failureReason; } /** *

* The reason for a current failure in this DevEndpoint. *

* * @param failureReason * The reason for a current failure in this DevEndpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withFailureReason(String failureReason) { setFailureReason(failureReason); return this; } /** *

* The status of the last update. *

* * @param lastUpdateStatus * The status of the last update. */ public void setLastUpdateStatus(String lastUpdateStatus) { this.lastUpdateStatus = lastUpdateStatus; } /** *

* The status of the last update. *

* * @return The status of the last update. */ public String getLastUpdateStatus() { return this.lastUpdateStatus; } /** *

* The status of the last update. *

* * @param lastUpdateStatus * The status of the last update. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withLastUpdateStatus(String lastUpdateStatus) { setLastUpdateStatus(lastUpdateStatus); return this; } /** *

* The point in time at which this DevEndpoint was created. *

* * @param createdTimestamp * The point in time at which this DevEndpoint was created. */ public void setCreatedTimestamp(java.util.Date createdTimestamp) { this.createdTimestamp = createdTimestamp; } /** *

* The point in time at which this DevEndpoint was created. *

* * @return The point in time at which this DevEndpoint was created. */ public java.util.Date getCreatedTimestamp() { return this.createdTimestamp; } /** *

* The point in time at which this DevEndpoint was created. *

* * @param createdTimestamp * The point in time at which this DevEndpoint was created. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withCreatedTimestamp(java.util.Date createdTimestamp) { setCreatedTimestamp(createdTimestamp); return this; } /** *

* The point in time at which this DevEndpoint was last modified. *

* * @param lastModifiedTimestamp * The point in time at which this DevEndpoint was last modified. */ public void setLastModifiedTimestamp(java.util.Date lastModifiedTimestamp) { this.lastModifiedTimestamp = lastModifiedTimestamp; } /** *

* The point in time at which this DevEndpoint was last modified. *

* * @return The point in time at which this DevEndpoint was last modified. */ public java.util.Date getLastModifiedTimestamp() { return this.lastModifiedTimestamp; } /** *

* The point in time at which this DevEndpoint was last modified. *

* * @param lastModifiedTimestamp * The point in time at which this DevEndpoint was last modified. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withLastModifiedTimestamp(java.util.Date lastModifiedTimestamp) { setLastModifiedTimestamp(lastModifiedTimestamp); return this; } /** *

* 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. *

* * @param publicKey * 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 void setPublicKey(String publicKey) { this.publicKey = publicKey; } /** *

* 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. *

* * @return 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 String getPublicKey() { return this.publicKey; } /** *

* 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. *

* * @param publicKey * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withPublicKey(String publicKey) { setPublicKey(publicKey); return this; } /** *

* 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. *

*
* * @return 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 java.util.List getPublicKeys() { return publicKeys; } /** *

* 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. *

*
* * @param publicKeys * 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 void setPublicKeys(java.util.Collection publicKeys) { if (publicKeys == null) { this.publicKeys = null; return; } this.publicKeys = new java.util.ArrayList(publicKeys); } /** *

* 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. *

*
*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setPublicKeys(java.util.Collection)} or {@link #withPublicKeys(java.util.Collection)} if you want to * override the existing values. *

* * @param publicKeys * 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. *

* @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withPublicKeys(String... publicKeys) { if (this.publicKeys == null) { setPublicKeys(new java.util.ArrayList(publicKeys.length)); } for (String ele : publicKeys) { this.publicKeys.add(ele); } return this; } /** *

* 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. *

*
* * @param publicKeys * 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. *

* @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withPublicKeys(java.util.Collection publicKeys) { setPublicKeys(publicKeys); return this; } /** *

* The name of the SecurityConfiguration structure to be used with this DevEndpoint. *

* * @param securityConfiguration * The name of the SecurityConfiguration structure to be used with this DevEndpoint * . */ public void setSecurityConfiguration(String securityConfiguration) { this.securityConfiguration = securityConfiguration; } /** *

* The name of the SecurityConfiguration structure to be used with this DevEndpoint. *

* * @return The name of the SecurityConfiguration structure to be used with this * DevEndpoint. */ public String getSecurityConfiguration() { return this.securityConfiguration; } /** *

* The name of the SecurityConfiguration structure to be used with this DevEndpoint. *

* * @param securityConfiguration * The name of the SecurityConfiguration structure to be used with this DevEndpoint * . * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withSecurityConfiguration(String securityConfiguration) { setSecurityConfiguration(securityConfiguration); return this; } /** *

* 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. *

* * @return 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 java.util.Map getArguments() { return arguments; } /** *

* 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. *

* * @param arguments * 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 void setArguments(java.util.Map arguments) { this.arguments = arguments; } /** *

* 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. *

* * @param arguments * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint withArguments(java.util.Map arguments) { setArguments(arguments); return this; } /** * Add a single Arguments entry * * @see DevEndpoint#withArguments * @returns a reference to this object so that method calls can be chained together. */ public DevEndpoint addArgumentsEntry(String key, String value) { if (null == this.arguments) { this.arguments = new java.util.HashMap(); } if (this.arguments.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.arguments.put(key, value); return this; } /** * Removes all the entries added into Arguments. * * @return Returns a reference to this object so that method calls can be chained together. */ public DevEndpoint clearArgumentsEntries() { this.arguments = null; return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getEndpointName() != null) sb.append("EndpointName: ").append(getEndpointName()).append(","); if (getRoleArn() != null) sb.append("RoleArn: ").append(getRoleArn()).append(","); if (getSecurityGroupIds() != null) sb.append("SecurityGroupIds: ").append(getSecurityGroupIds()).append(","); if (getSubnetId() != null) sb.append("SubnetId: ").append(getSubnetId()).append(","); if (getYarnEndpointAddress() != null) sb.append("YarnEndpointAddress: ").append(getYarnEndpointAddress()).append(","); if (getPrivateAddress() != null) sb.append("PrivateAddress: ").append(getPrivateAddress()).append(","); if (getZeppelinRemoteSparkInterpreterPort() != null) sb.append("ZeppelinRemoteSparkInterpreterPort: ").append(getZeppelinRemoteSparkInterpreterPort()).append(","); if (getPublicAddress() != null) sb.append("PublicAddress: ").append(getPublicAddress()).append(","); if (getStatus() != null) sb.append("Status: ").append(getStatus()).append(","); if (getWorkerType() != null) sb.append("WorkerType: ").append(getWorkerType()).append(","); if (getGlueVersion() != null) sb.append("GlueVersion: ").append(getGlueVersion()).append(","); if (getNumberOfWorkers() != null) sb.append("NumberOfWorkers: ").append(getNumberOfWorkers()).append(","); if (getNumberOfNodes() != null) sb.append("NumberOfNodes: ").append(getNumberOfNodes()).append(","); if (getAvailabilityZone() != null) sb.append("AvailabilityZone: ").append(getAvailabilityZone()).append(","); if (getVpcId() != null) sb.append("VpcId: ").append(getVpcId()).append(","); if (getExtraPythonLibsS3Path() != null) sb.append("ExtraPythonLibsS3Path: ").append(getExtraPythonLibsS3Path()).append(","); if (getExtraJarsS3Path() != null) sb.append("ExtraJarsS3Path: ").append(getExtraJarsS3Path()).append(","); if (getFailureReason() != null) sb.append("FailureReason: ").append(getFailureReason()).append(","); if (getLastUpdateStatus() != null) sb.append("LastUpdateStatus: ").append(getLastUpdateStatus()).append(","); if (getCreatedTimestamp() != null) sb.append("CreatedTimestamp: ").append(getCreatedTimestamp()).append(","); if (getLastModifiedTimestamp() != null) sb.append("LastModifiedTimestamp: ").append(getLastModifiedTimestamp()).append(","); if (getPublicKey() != null) sb.append("PublicKey: ").append(getPublicKey()).append(","); if (getPublicKeys() != null) sb.append("PublicKeys: ").append(getPublicKeys()).append(","); if (getSecurityConfiguration() != null) sb.append("SecurityConfiguration: ").append(getSecurityConfiguration()).append(","); if (getArguments() != null) sb.append("Arguments: ").append(getArguments()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof DevEndpoint == false) return false; DevEndpoint other = (DevEndpoint) obj; if (other.getEndpointName() == null ^ this.getEndpointName() == null) return false; if (other.getEndpointName() != null && other.getEndpointName().equals(this.getEndpointName()) == false) return false; if (other.getRoleArn() == null ^ this.getRoleArn() == null) return false; if (other.getRoleArn() != null && other.getRoleArn().equals(this.getRoleArn()) == false) return false; if (other.getSecurityGroupIds() == null ^ this.getSecurityGroupIds() == null) return false; if (other.getSecurityGroupIds() != null && other.getSecurityGroupIds().equals(this.getSecurityGroupIds()) == false) return false; if (other.getSubnetId() == null ^ this.getSubnetId() == null) return false; if (other.getSubnetId() != null && other.getSubnetId().equals(this.getSubnetId()) == false) return false; if (other.getYarnEndpointAddress() == null ^ this.getYarnEndpointAddress() == null) return false; if (other.getYarnEndpointAddress() != null && other.getYarnEndpointAddress().equals(this.getYarnEndpointAddress()) == false) return false; if (other.getPrivateAddress() == null ^ this.getPrivateAddress() == null) return false; if (other.getPrivateAddress() != null && other.getPrivateAddress().equals(this.getPrivateAddress()) == false) return false; if (other.getZeppelinRemoteSparkInterpreterPort() == null ^ this.getZeppelinRemoteSparkInterpreterPort() == null) return false; if (other.getZeppelinRemoteSparkInterpreterPort() != null && other.getZeppelinRemoteSparkInterpreterPort().equals(this.getZeppelinRemoteSparkInterpreterPort()) == false) return false; if (other.getPublicAddress() == null ^ this.getPublicAddress() == null) return false; if (other.getPublicAddress() != null && other.getPublicAddress().equals(this.getPublicAddress()) == false) return false; if (other.getStatus() == null ^ this.getStatus() == null) return false; if (other.getStatus() != null && other.getStatus().equals(this.getStatus()) == false) return false; if (other.getWorkerType() == null ^ this.getWorkerType() == null) return false; if (other.getWorkerType() != null && other.getWorkerType().equals(this.getWorkerType()) == false) return false; if (other.getGlueVersion() == null ^ this.getGlueVersion() == null) return false; if (other.getGlueVersion() != null && other.getGlueVersion().equals(this.getGlueVersion()) == false) return false; if (other.getNumberOfWorkers() == null ^ this.getNumberOfWorkers() == null) return false; if (other.getNumberOfWorkers() != null && other.getNumberOfWorkers().equals(this.getNumberOfWorkers()) == false) return false; if (other.getNumberOfNodes() == null ^ this.getNumberOfNodes() == null) return false; if (other.getNumberOfNodes() != null && other.getNumberOfNodes().equals(this.getNumberOfNodes()) == false) return false; if (other.getAvailabilityZone() == null ^ this.getAvailabilityZone() == null) return false; if (other.getAvailabilityZone() != null && other.getAvailabilityZone().equals(this.getAvailabilityZone()) == false) return false; if (other.getVpcId() == null ^ this.getVpcId() == null) return false; if (other.getVpcId() != null && other.getVpcId().equals(this.getVpcId()) == false) return false; if (other.getExtraPythonLibsS3Path() == null ^ this.getExtraPythonLibsS3Path() == null) return false; if (other.getExtraPythonLibsS3Path() != null && other.getExtraPythonLibsS3Path().equals(this.getExtraPythonLibsS3Path()) == false) return false; if (other.getExtraJarsS3Path() == null ^ this.getExtraJarsS3Path() == null) return false; if (other.getExtraJarsS3Path() != null && other.getExtraJarsS3Path().equals(this.getExtraJarsS3Path()) == false) return false; if (other.getFailureReason() == null ^ this.getFailureReason() == null) return false; if (other.getFailureReason() != null && other.getFailureReason().equals(this.getFailureReason()) == false) return false; if (other.getLastUpdateStatus() == null ^ this.getLastUpdateStatus() == null) return false; if (other.getLastUpdateStatus() != null && other.getLastUpdateStatus().equals(this.getLastUpdateStatus()) == false) return false; if (other.getCreatedTimestamp() == null ^ this.getCreatedTimestamp() == null) return false; if (other.getCreatedTimestamp() != null && other.getCreatedTimestamp().equals(this.getCreatedTimestamp()) == false) return false; if (other.getLastModifiedTimestamp() == null ^ this.getLastModifiedTimestamp() == null) return false; if (other.getLastModifiedTimestamp() != null && other.getLastModifiedTimestamp().equals(this.getLastModifiedTimestamp()) == false) return false; if (other.getPublicKey() == null ^ this.getPublicKey() == null) return false; if (other.getPublicKey() != null && other.getPublicKey().equals(this.getPublicKey()) == false) return false; if (other.getPublicKeys() == null ^ this.getPublicKeys() == null) return false; if (other.getPublicKeys() != null && other.getPublicKeys().equals(this.getPublicKeys()) == false) return false; if (other.getSecurityConfiguration() == null ^ this.getSecurityConfiguration() == null) return false; if (other.getSecurityConfiguration() != null && other.getSecurityConfiguration().equals(this.getSecurityConfiguration()) == false) return false; if (other.getArguments() == null ^ this.getArguments() == null) return false; if (other.getArguments() != null && other.getArguments().equals(this.getArguments()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getEndpointName() == null) ? 0 : getEndpointName().hashCode()); hashCode = prime * hashCode + ((getRoleArn() == null) ? 0 : getRoleArn().hashCode()); hashCode = prime * hashCode + ((getSecurityGroupIds() == null) ? 0 : getSecurityGroupIds().hashCode()); hashCode = prime * hashCode + ((getSubnetId() == null) ? 0 : getSubnetId().hashCode()); hashCode = prime * hashCode + ((getYarnEndpointAddress() == null) ? 0 : getYarnEndpointAddress().hashCode()); hashCode = prime * hashCode + ((getPrivateAddress() == null) ? 0 : getPrivateAddress().hashCode()); hashCode = prime * hashCode + ((getZeppelinRemoteSparkInterpreterPort() == null) ? 0 : getZeppelinRemoteSparkInterpreterPort().hashCode()); hashCode = prime * hashCode + ((getPublicAddress() == null) ? 0 : getPublicAddress().hashCode()); hashCode = prime * hashCode + ((getStatus() == null) ? 0 : getStatus().hashCode()); hashCode = prime * hashCode + ((getWorkerType() == null) ? 0 : getWorkerType().hashCode()); hashCode = prime * hashCode + ((getGlueVersion() == null) ? 0 : getGlueVersion().hashCode()); hashCode = prime * hashCode + ((getNumberOfWorkers() == null) ? 0 : getNumberOfWorkers().hashCode()); hashCode = prime * hashCode + ((getNumberOfNodes() == null) ? 0 : getNumberOfNodes().hashCode()); hashCode = prime * hashCode + ((getAvailabilityZone() == null) ? 0 : getAvailabilityZone().hashCode()); hashCode = prime * hashCode + ((getVpcId() == null) ? 0 : getVpcId().hashCode()); hashCode = prime * hashCode + ((getExtraPythonLibsS3Path() == null) ? 0 : getExtraPythonLibsS3Path().hashCode()); hashCode = prime * hashCode + ((getExtraJarsS3Path() == null) ? 0 : getExtraJarsS3Path().hashCode()); hashCode = prime * hashCode + ((getFailureReason() == null) ? 0 : getFailureReason().hashCode()); hashCode = prime * hashCode + ((getLastUpdateStatus() == null) ? 0 : getLastUpdateStatus().hashCode()); hashCode = prime * hashCode + ((getCreatedTimestamp() == null) ? 0 : getCreatedTimestamp().hashCode()); hashCode = prime * hashCode + ((getLastModifiedTimestamp() == null) ? 0 : getLastModifiedTimestamp().hashCode()); hashCode = prime * hashCode + ((getPublicKey() == null) ? 0 : getPublicKey().hashCode()); hashCode = prime * hashCode + ((getPublicKeys() == null) ? 0 : getPublicKeys().hashCode()); hashCode = prime * hashCode + ((getSecurityConfiguration() == null) ? 0 : getSecurityConfiguration().hashCode()); hashCode = prime * hashCode + ((getArguments() == null) ? 0 : getArguments().hashCode()); return hashCode; } @Override public DevEndpoint clone() { try { return (DevEndpoint) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.glue.model.transform.DevEndpointMarshaller.getInstance().marshall(this, protocolMarshaller); } }