/* * 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.athena.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* The configuration of the workgroup, which includes the location in Amazon S3 where query and calculation results are
* stored, the encryption option, if any, used for query and calculation results, whether the Amazon CloudWatch Metrics
* are enabled for the workgroup and whether workgroup settings override query settings, and the data usage limits for
* the amount of data scanned per query or per workgroup. The workgroup settings override is specified in
* EnforceWorkGroupConfiguration
(true/false) in the WorkGroupConfiguration
. See
* WorkGroupConfiguration$EnforceWorkGroupConfiguration.
*
* The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation results * are stored and the encryption option, if any, used for query and calculation results. To run the query, you must * specify the query results location using one of the ways: either in the workgroup using this setting, or for * individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena * issues an error that no output location is provided. For more information, see Working with query results, recent queries, and * output files. *
*/ private ResultConfiguration resultConfiguration; /** ** If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side * settings are used. For more information, see Workgroup Settings Override * Client-Side Settings. *
*/ private Boolean enforceWorkGroupConfiguration; /** ** Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. *
*/ private Boolean publishCloudWatchMetricsEnabled; /** ** The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan. *
*/ private Long bytesScannedCutoffPerQuery; /** *
* If set to true
, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets
* in queries. If set to false
, workgroup members cannot query data from Requester Pays buckets, and
* queries that retrieve data from Requester Pays buckets cause an error. The default is false
. For
* more information about Requester Pays buckets, see Requester Pays Buckets in
* the Amazon Simple Storage Service Developer Guide.
*
* The engine version that all queries running on the workgroup use. Queries on the
* AmazonAthenaPreviewFunctionality
workgroup run on the preview engine regardless of this setting.
*
* Specifies a user defined JSON string that is passed to the notebook engine. *
*/ private String additionalConfiguration; /** ** Role used in a session for accessing the user's resources. *
*/ private String executionRole; /** ** Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to * Athena SQL workgroups. *
*/ private CustomerContentEncryptionConfiguration customerContentEncryptionConfiguration; /** ** Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to * Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or * higher when they submit queries. *
*
* The EnforceWorkGroupConfiguration
setting takes precedence over the
* EnableMinimumEncryptionConfiguration
flag. This means that if
* EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
flag is
* ignored, and the workgroup configuration for encryption is used.
*
* The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation results * are stored and the encryption option, if any, used for query and calculation results. To run the query, you must * specify the query results location using one of the ways: either in the workgroup using this setting, or for * individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena * issues an error that no output location is provided. For more information, see Working with query results, recent queries, and * output files. *
* * @param resultConfiguration * The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation * results are stored and the encryption option, if any, used for query and calculation results. To run the * query, you must specify the query results location using one of the ways: either in the workgroup using * this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. If * none of them is set, Athena issues an error that no output location is provided. For more information, see * Working with query results, recent * queries, and output files. */ public void setResultConfiguration(ResultConfiguration resultConfiguration) { this.resultConfiguration = resultConfiguration; } /** ** The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation results * are stored and the encryption option, if any, used for query and calculation results. To run the query, you must * specify the query results location using one of the ways: either in the workgroup using this setting, or for * individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena * issues an error that no output location is provided. For more information, see Working with query results, recent queries, and * output files. *
* * @return The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation * results are stored and the encryption option, if any, used for query and calculation results. To run the * query, you must specify the query results location using one of the ways: either in the workgroup using * this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. * If none of them is set, Athena issues an error that no output location is provided. For more information, * see Working with query results, * recent queries, and output files. */ public ResultConfiguration getResultConfiguration() { return this.resultConfiguration; } /** ** The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation results * are stored and the encryption option, if any, used for query and calculation results. To run the query, you must * specify the query results location using one of the ways: either in the workgroup using this setting, or for * individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena * issues an error that no output location is provided. For more information, see Working with query results, recent queries, and * output files. *
* * @param resultConfiguration * The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation * results are stored and the encryption option, if any, used for query and calculation results. To run the * query, you must specify the query results location using one of the ways: either in the workgroup using * this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. If * none of them is set, Athena issues an error that no output location is provided. For more information, see * Working with query results, recent * queries, and output files. * @return Returns a reference to this object so that method calls can be chained together. */ public WorkGroupConfiguration withResultConfiguration(ResultConfiguration resultConfiguration) { setResultConfiguration(resultConfiguration); return this; } /** ** If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side * settings are used. For more information, see Workgroup Settings Override * Client-Side Settings. *
* * @param enforceWorkGroupConfiguration * If set to "true", the settings for the workgroup override client-side settings. If set to "false", * client-side settings are used. For more information, see Workgroup Settings * Override Client-Side Settings. */ public void setEnforceWorkGroupConfiguration(Boolean enforceWorkGroupConfiguration) { this.enforceWorkGroupConfiguration = enforceWorkGroupConfiguration; } /** ** If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side * settings are used. For more information, see Workgroup Settings Override * Client-Side Settings. *
* * @return If set to "true", the settings for the workgroup override client-side settings. If set to "false", * client-side settings are used. For more information, see Workgroup Settings * Override Client-Side Settings. */ public Boolean getEnforceWorkGroupConfiguration() { return this.enforceWorkGroupConfiguration; } /** ** If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side * settings are used. For more information, see Workgroup Settings Override * Client-Side Settings. *
* * @param enforceWorkGroupConfiguration * If set to "true", the settings for the workgroup override client-side settings. If set to "false", * client-side settings are used. For more information, see Workgroup Settings * Override Client-Side Settings. * @return Returns a reference to this object so that method calls can be chained together. */ public WorkGroupConfiguration withEnforceWorkGroupConfiguration(Boolean enforceWorkGroupConfiguration) { setEnforceWorkGroupConfiguration(enforceWorkGroupConfiguration); return this; } /** ** If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side * settings are used. For more information, see Workgroup Settings Override * Client-Side Settings. *
* * @return If set to "true", the settings for the workgroup override client-side settings. If set to "false", * client-side settings are used. For more information, see Workgroup Settings * Override Client-Side Settings. */ public Boolean isEnforceWorkGroupConfiguration() { return this.enforceWorkGroupConfiguration; } /** ** Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. *
* * @param publishCloudWatchMetricsEnabled * Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. */ public void setPublishCloudWatchMetricsEnabled(Boolean publishCloudWatchMetricsEnabled) { this.publishCloudWatchMetricsEnabled = publishCloudWatchMetricsEnabled; } /** ** Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. *
* * @return Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. */ public Boolean getPublishCloudWatchMetricsEnabled() { return this.publishCloudWatchMetricsEnabled; } /** ** Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. *
* * @param publishCloudWatchMetricsEnabled * Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. * @return Returns a reference to this object so that method calls can be chained together. */ public WorkGroupConfiguration withPublishCloudWatchMetricsEnabled(Boolean publishCloudWatchMetricsEnabled) { setPublishCloudWatchMetricsEnabled(publishCloudWatchMetricsEnabled); return this; } /** ** Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. *
* * @return Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. */ public Boolean isPublishCloudWatchMetricsEnabled() { return this.publishCloudWatchMetricsEnabled; } /** ** The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan. *
* * @param bytesScannedCutoffPerQuery * The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to * scan. */ public void setBytesScannedCutoffPerQuery(Long bytesScannedCutoffPerQuery) { this.bytesScannedCutoffPerQuery = bytesScannedCutoffPerQuery; } /** ** The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan. *
* * @return The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to * scan. */ public Long getBytesScannedCutoffPerQuery() { return this.bytesScannedCutoffPerQuery; } /** ** The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan. *
* * @param bytesScannedCutoffPerQuery * The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to * scan. * @return Returns a reference to this object so that method calls can be chained together. */ public WorkGroupConfiguration withBytesScannedCutoffPerQuery(Long bytesScannedCutoffPerQuery) { setBytesScannedCutoffPerQuery(bytesScannedCutoffPerQuery); return this; } /** *
* If set to true
, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets
* in queries. If set to false
, workgroup members cannot query data from Requester Pays buckets, and
* queries that retrieve data from Requester Pays buckets cause an error. The default is false
. For
* more information about Requester Pays buckets, see Requester Pays Buckets in
* the Amazon Simple Storage Service Developer Guide.
*
true
, allows members assigned to a workgroup to reference Amazon S3 Requester Pays
* buckets in queries. If set to false
, workgroup members cannot query data from Requester Pays
* buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is
* false
. For more information about Requester Pays buckets, see Requester Pays
* Buckets in the Amazon Simple Storage Service Developer Guide.
*/
public void setRequesterPaysEnabled(Boolean requesterPaysEnabled) {
this.requesterPaysEnabled = requesterPaysEnabled;
}
/**
*
* If set to true
, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets
* in queries. If set to false
, workgroup members cannot query data from Requester Pays buckets, and
* queries that retrieve data from Requester Pays buckets cause an error. The default is false
. For
* more information about Requester Pays buckets, see Requester Pays Buckets in
* the Amazon Simple Storage Service Developer Guide.
*
true
, allows members assigned to a workgroup to reference Amazon S3 Requester Pays
* buckets in queries. If set to false
, workgroup members cannot query data from Requester Pays
* buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is
* false
. For more information about Requester Pays buckets, see Requester Pays
* Buckets in the Amazon Simple Storage Service Developer Guide.
*/
public Boolean getRequesterPaysEnabled() {
return this.requesterPaysEnabled;
}
/**
*
* If set to true
, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets
* in queries. If set to false
, workgroup members cannot query data from Requester Pays buckets, and
* queries that retrieve data from Requester Pays buckets cause an error. The default is false
. For
* more information about Requester Pays buckets, see Requester Pays Buckets in
* the Amazon Simple Storage Service Developer Guide.
*
true
, allows members assigned to a workgroup to reference Amazon S3 Requester Pays
* buckets in queries. If set to false
, workgroup members cannot query data from Requester Pays
* buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is
* false
. For more information about Requester Pays buckets, see Requester Pays
* Buckets in the Amazon Simple Storage Service Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public WorkGroupConfiguration withRequesterPaysEnabled(Boolean requesterPaysEnabled) {
setRequesterPaysEnabled(requesterPaysEnabled);
return this;
}
/**
*
* If set to true
, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets
* in queries. If set to false
, workgroup members cannot query data from Requester Pays buckets, and
* queries that retrieve data from Requester Pays buckets cause an error. The default is false
. For
* more information about Requester Pays buckets, see Requester Pays Buckets in
* the Amazon Simple Storage Service Developer Guide.
*
true
, allows members assigned to a workgroup to reference Amazon S3 Requester Pays
* buckets in queries. If set to false
, workgroup members cannot query data from Requester Pays
* buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is
* false
. For more information about Requester Pays buckets, see Requester Pays
* Buckets in the Amazon Simple Storage Service Developer Guide.
*/
public Boolean isRequesterPaysEnabled() {
return this.requesterPaysEnabled;
}
/**
*
* The engine version that all queries running on the workgroup use. Queries on the
* AmazonAthenaPreviewFunctionality
workgroup run on the preview engine regardless of this setting.
*
AmazonAthenaPreviewFunctionality
workgroup run on the preview engine regardless of this
* setting.
*/
public void setEngineVersion(EngineVersion engineVersion) {
this.engineVersion = engineVersion;
}
/**
*
* The engine version that all queries running on the workgroup use. Queries on the
* AmazonAthenaPreviewFunctionality
workgroup run on the preview engine regardless of this setting.
*
AmazonAthenaPreviewFunctionality
workgroup run on the preview engine regardless of this
* setting.
*/
public EngineVersion getEngineVersion() {
return this.engineVersion;
}
/**
*
* The engine version that all queries running on the workgroup use. Queries on the
* AmazonAthenaPreviewFunctionality
workgroup run on the preview engine regardless of this setting.
*
AmazonAthenaPreviewFunctionality
workgroup run on the preview engine regardless of this
* setting.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public WorkGroupConfiguration withEngineVersion(EngineVersion engineVersion) {
setEngineVersion(engineVersion);
return this;
}
/**
* * Specifies a user defined JSON string that is passed to the notebook engine. *
* * @param additionalConfiguration * Specifies a user defined JSON string that is passed to the notebook engine. */ public void setAdditionalConfiguration(String additionalConfiguration) { this.additionalConfiguration = additionalConfiguration; } /** ** Specifies a user defined JSON string that is passed to the notebook engine. *
* * @return Specifies a user defined JSON string that is passed to the notebook engine. */ public String getAdditionalConfiguration() { return this.additionalConfiguration; } /** ** Specifies a user defined JSON string that is passed to the notebook engine. *
* * @param additionalConfiguration * Specifies a user defined JSON string that is passed to the notebook engine. * @return Returns a reference to this object so that method calls can be chained together. */ public WorkGroupConfiguration withAdditionalConfiguration(String additionalConfiguration) { setAdditionalConfiguration(additionalConfiguration); return this; } /** ** Role used in a session for accessing the user's resources. *
* * @param executionRole * Role used in a session for accessing the user's resources. */ public void setExecutionRole(String executionRole) { this.executionRole = executionRole; } /** ** Role used in a session for accessing the user's resources. *
* * @return Role used in a session for accessing the user's resources. */ public String getExecutionRole() { return this.executionRole; } /** ** Role used in a session for accessing the user's resources. *
* * @param executionRole * Role used in a session for accessing the user's resources. * @return Returns a reference to this object so that method calls can be chained together. */ public WorkGroupConfiguration withExecutionRole(String executionRole) { setExecutionRole(executionRole); return this; } /** ** Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to * Athena SQL workgroups. *
* * @param customerContentEncryptionConfiguration * Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not * apply to Athena SQL workgroups. */ public void setCustomerContentEncryptionConfiguration(CustomerContentEncryptionConfiguration customerContentEncryptionConfiguration) { this.customerContentEncryptionConfiguration = customerContentEncryptionConfiguration; } /** ** Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to * Athena SQL workgroups. *
* * @return Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not * apply to Athena SQL workgroups. */ public CustomerContentEncryptionConfiguration getCustomerContentEncryptionConfiguration() { return this.customerContentEncryptionConfiguration; } /** ** Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to * Athena SQL workgroups. *
* * @param customerContentEncryptionConfiguration * Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not * apply to Athena SQL workgroups. * @return Returns a reference to this object so that method calls can be chained together. */ public WorkGroupConfiguration withCustomerContentEncryptionConfiguration(CustomerContentEncryptionConfiguration customerContentEncryptionConfiguration) { setCustomerContentEncryptionConfiguration(customerContentEncryptionConfiguration); return this; } /** ** Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to * Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or * higher when they submit queries. *
*
* The EnforceWorkGroupConfiguration
setting takes precedence over the
* EnableMinimumEncryptionConfiguration
flag. This means that if
* EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
flag is
* ignored, and the workgroup configuration for encryption is used.
*
* The EnforceWorkGroupConfiguration
setting takes precedence over the
* EnableMinimumEncryptionConfiguration
flag. This means that if
* EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
* flag is ignored, and the workgroup configuration for encryption is used.
*/
public void setEnableMinimumEncryptionConfiguration(Boolean enableMinimumEncryptionConfiguration) {
this.enableMinimumEncryptionConfiguration = enableMinimumEncryptionConfiguration;
}
/**
*
* Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to * Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or * higher when they submit queries. *
*
* The EnforceWorkGroupConfiguration
setting takes precedence over the
* EnableMinimumEncryptionConfiguration
flag. This means that if
* EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
flag is
* ignored, and the workgroup configuration for encryption is used.
*
* The EnforceWorkGroupConfiguration
setting takes precedence over the
* EnableMinimumEncryptionConfiguration
flag. This means that if
* EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
* flag is ignored, and the workgroup configuration for encryption is used.
*/
public Boolean getEnableMinimumEncryptionConfiguration() {
return this.enableMinimumEncryptionConfiguration;
}
/**
*
* Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to * Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or * higher when they submit queries. *
*
* The EnforceWorkGroupConfiguration
setting takes precedence over the
* EnableMinimumEncryptionConfiguration
flag. This means that if
* EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
flag is
* ignored, and the workgroup configuration for encryption is used.
*
* The EnforceWorkGroupConfiguration
setting takes precedence over the
* EnableMinimumEncryptionConfiguration
flag. This means that if
* EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
* flag is ignored, and the workgroup configuration for encryption is used.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public WorkGroupConfiguration withEnableMinimumEncryptionConfiguration(Boolean enableMinimumEncryptionConfiguration) {
setEnableMinimumEncryptionConfiguration(enableMinimumEncryptionConfiguration);
return this;
}
/**
*
* Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to * Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or * higher when they submit queries. *
*
* The EnforceWorkGroupConfiguration
setting takes precedence over the
* EnableMinimumEncryptionConfiguration
flag. This means that if
* EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
flag is
* ignored, and the workgroup configuration for encryption is used.
*
* The EnforceWorkGroupConfiguration
setting takes precedence over the
* EnableMinimumEncryptionConfiguration
flag. This means that if
* EnforceWorkGroupConfiguration
is true, the EnableMinimumEncryptionConfiguration
* flag is ignored, and the workgroup configuration for encryption is used.
*/
public Boolean isEnableMinimumEncryptionConfiguration() {
return this.enableMinimumEncryptionConfiguration;
}
/**
* 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 (getResultConfiguration() != null)
sb.append("ResultConfiguration: ").append(getResultConfiguration()).append(",");
if (getEnforceWorkGroupConfiguration() != null)
sb.append("EnforceWorkGroupConfiguration: ").append(getEnforceWorkGroupConfiguration()).append(",");
if (getPublishCloudWatchMetricsEnabled() != null)
sb.append("PublishCloudWatchMetricsEnabled: ").append(getPublishCloudWatchMetricsEnabled()).append(",");
if (getBytesScannedCutoffPerQuery() != null)
sb.append("BytesScannedCutoffPerQuery: ").append(getBytesScannedCutoffPerQuery()).append(",");
if (getRequesterPaysEnabled() != null)
sb.append("RequesterPaysEnabled: ").append(getRequesterPaysEnabled()).append(",");
if (getEngineVersion() != null)
sb.append("EngineVersion: ").append(getEngineVersion()).append(",");
if (getAdditionalConfiguration() != null)
sb.append("AdditionalConfiguration: ").append(getAdditionalConfiguration()).append(",");
if (getExecutionRole() != null)
sb.append("ExecutionRole: ").append(getExecutionRole()).append(",");
if (getCustomerContentEncryptionConfiguration() != null)
sb.append("CustomerContentEncryptionConfiguration: ").append(getCustomerContentEncryptionConfiguration()).append(",");
if (getEnableMinimumEncryptionConfiguration() != null)
sb.append("EnableMinimumEncryptionConfiguration: ").append(getEnableMinimumEncryptionConfiguration());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof WorkGroupConfiguration == false)
return false;
WorkGroupConfiguration other = (WorkGroupConfiguration) obj;
if (other.getResultConfiguration() == null ^ this.getResultConfiguration() == null)
return false;
if (other.getResultConfiguration() != null && other.getResultConfiguration().equals(this.getResultConfiguration()) == false)
return false;
if (other.getEnforceWorkGroupConfiguration() == null ^ this.getEnforceWorkGroupConfiguration() == null)
return false;
if (other.getEnforceWorkGroupConfiguration() != null
&& other.getEnforceWorkGroupConfiguration().equals(this.getEnforceWorkGroupConfiguration()) == false)
return false;
if (other.getPublishCloudWatchMetricsEnabled() == null ^ this.getPublishCloudWatchMetricsEnabled() == null)
return false;
if (other.getPublishCloudWatchMetricsEnabled() != null
&& other.getPublishCloudWatchMetricsEnabled().equals(this.getPublishCloudWatchMetricsEnabled()) == false)
return false;
if (other.getBytesScannedCutoffPerQuery() == null ^ this.getBytesScannedCutoffPerQuery() == null)
return false;
if (other.getBytesScannedCutoffPerQuery() != null && other.getBytesScannedCutoffPerQuery().equals(this.getBytesScannedCutoffPerQuery()) == false)
return false;
if (other.getRequesterPaysEnabled() == null ^ this.getRequesterPaysEnabled() == null)
return false;
if (other.getRequesterPaysEnabled() != null && other.getRequesterPaysEnabled().equals(this.getRequesterPaysEnabled()) == false)
return false;
if (other.getEngineVersion() == null ^ this.getEngineVersion() == null)
return false;
if (other.getEngineVersion() != null && other.getEngineVersion().equals(this.getEngineVersion()) == false)
return false;
if (other.getAdditionalConfiguration() == null ^ this.getAdditionalConfiguration() == null)
return false;
if (other.getAdditionalConfiguration() != null && other.getAdditionalConfiguration().equals(this.getAdditionalConfiguration()) == false)
return false;
if (other.getExecutionRole() == null ^ this.getExecutionRole() == null)
return false;
if (other.getExecutionRole() != null && other.getExecutionRole().equals(this.getExecutionRole()) == false)
return false;
if (other.getCustomerContentEncryptionConfiguration() == null ^ this.getCustomerContentEncryptionConfiguration() == null)
return false;
if (other.getCustomerContentEncryptionConfiguration() != null
&& other.getCustomerContentEncryptionConfiguration().equals(this.getCustomerContentEncryptionConfiguration()) == false)
return false;
if (other.getEnableMinimumEncryptionConfiguration() == null ^ this.getEnableMinimumEncryptionConfiguration() == null)
return false;
if (other.getEnableMinimumEncryptionConfiguration() != null
&& other.getEnableMinimumEncryptionConfiguration().equals(this.getEnableMinimumEncryptionConfiguration()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getResultConfiguration() == null) ? 0 : getResultConfiguration().hashCode());
hashCode = prime * hashCode + ((getEnforceWorkGroupConfiguration() == null) ? 0 : getEnforceWorkGroupConfiguration().hashCode());
hashCode = prime * hashCode + ((getPublishCloudWatchMetricsEnabled() == null) ? 0 : getPublishCloudWatchMetricsEnabled().hashCode());
hashCode = prime * hashCode + ((getBytesScannedCutoffPerQuery() == null) ? 0 : getBytesScannedCutoffPerQuery().hashCode());
hashCode = prime * hashCode + ((getRequesterPaysEnabled() == null) ? 0 : getRequesterPaysEnabled().hashCode());
hashCode = prime * hashCode + ((getEngineVersion() == null) ? 0 : getEngineVersion().hashCode());
hashCode = prime * hashCode + ((getAdditionalConfiguration() == null) ? 0 : getAdditionalConfiguration().hashCode());
hashCode = prime * hashCode + ((getExecutionRole() == null) ? 0 : getExecutionRole().hashCode());
hashCode = prime * hashCode + ((getCustomerContentEncryptionConfiguration() == null) ? 0 : getCustomerContentEncryptionConfiguration().hashCode());
hashCode = prime * hashCode + ((getEnableMinimumEncryptionConfiguration() == null) ? 0 : getEnableMinimumEncryptionConfiguration().hashCode());
return hashCode;
}
@Override
public WorkGroupConfiguration clone() {
try {
return (WorkGroupConfiguration) 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.athena.model.transform.WorkGroupConfigurationMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}