/* * 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.securitylake.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* Provides details of Amazon Security Lake object. *

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

* Retrieves the status of the configuration operation for an account in Amazon Security Lake. *

*/ private String createStatus; /** *

* The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and * how to use them in policies, see the Amazon Security Lake * User Guide. *

*/ private String dataLakeArn; /** *

* Provides encryption details of Amazon Security Lake object. *

*/ private DataLakeEncryptionConfiguration encryptionConfiguration; /** *

* Provides lifecycle details of Amazon Security Lake object. *

*/ private DataLakeLifecycleConfiguration lifecycleConfiguration; /** *

* The Amazon Web Services Regions where Security Lake is enabled. *

*/ private String region; /** *

* Provides replication details of Amazon Security Lake object. *

*/ private DataLakeReplicationConfiguration replicationConfiguration; /** *

* The ARN for the Amazon Security Lake Amazon S3 bucket. *

*/ private String s3BucketArn; /** *

* The status of the last UpdateDataLake or DeleteDataLake API request. *

*/ private DataLakeUpdateStatus updateStatus; /** *

* Retrieves the status of the configuration operation for an account in Amazon Security Lake. *

* * @param createStatus * Retrieves the status of the configuration operation for an account in Amazon Security Lake. * @see DataLakeStatus */ public void setCreateStatus(String createStatus) { this.createStatus = createStatus; } /** *

* Retrieves the status of the configuration operation for an account in Amazon Security Lake. *

* * @return Retrieves the status of the configuration operation for an account in Amazon Security Lake. * @see DataLakeStatus */ public String getCreateStatus() { return this.createStatus; } /** *

* Retrieves the status of the configuration operation for an account in Amazon Security Lake. *

* * @param createStatus * Retrieves the status of the configuration operation for an account in Amazon Security Lake. * @return Returns a reference to this object so that method calls can be chained together. * @see DataLakeStatus */ public DataLakeResource withCreateStatus(String createStatus) { setCreateStatus(createStatus); return this; } /** *

* Retrieves the status of the configuration operation for an account in Amazon Security Lake. *

* * @param createStatus * Retrieves the status of the configuration operation for an account in Amazon Security Lake. * @return Returns a reference to this object so that method calls can be chained together. * @see DataLakeStatus */ public DataLakeResource withCreateStatus(DataLakeStatus createStatus) { this.createStatus = createStatus.toString(); return this; } /** *

* The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and * how to use them in policies, see the Amazon Security Lake * User Guide. *

* * @param dataLakeArn * The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about * ARNs and how to use them in policies, see the Amazon * Security Lake User Guide. */ public void setDataLakeArn(String dataLakeArn) { this.dataLakeArn = dataLakeArn; } /** *

* The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and * how to use them in policies, see the Amazon Security Lake * User Guide. *

* * @return The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about * ARNs and how to use them in policies, see the Amazon * Security Lake User Guide. */ public String getDataLakeArn() { return this.dataLakeArn; } /** *

* The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and * how to use them in policies, see the Amazon Security Lake * User Guide. *

* * @param dataLakeArn * The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about * ARNs and how to use them in policies, see the Amazon * Security Lake User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public DataLakeResource withDataLakeArn(String dataLakeArn) { setDataLakeArn(dataLakeArn); return this; } /** *

* Provides encryption details of Amazon Security Lake object. *

* * @param encryptionConfiguration * Provides encryption details of Amazon Security Lake object. */ public void setEncryptionConfiguration(DataLakeEncryptionConfiguration encryptionConfiguration) { this.encryptionConfiguration = encryptionConfiguration; } /** *

* Provides encryption details of Amazon Security Lake object. *

* * @return Provides encryption details of Amazon Security Lake object. */ public DataLakeEncryptionConfiguration getEncryptionConfiguration() { return this.encryptionConfiguration; } /** *

* Provides encryption details of Amazon Security Lake object. *

* * @param encryptionConfiguration * Provides encryption details of Amazon Security Lake object. * @return Returns a reference to this object so that method calls can be chained together. */ public DataLakeResource withEncryptionConfiguration(DataLakeEncryptionConfiguration encryptionConfiguration) { setEncryptionConfiguration(encryptionConfiguration); return this; } /** *

* Provides lifecycle details of Amazon Security Lake object. *

* * @param lifecycleConfiguration * Provides lifecycle details of Amazon Security Lake object. */ public void setLifecycleConfiguration(DataLakeLifecycleConfiguration lifecycleConfiguration) { this.lifecycleConfiguration = lifecycleConfiguration; } /** *

* Provides lifecycle details of Amazon Security Lake object. *

* * @return Provides lifecycle details of Amazon Security Lake object. */ public DataLakeLifecycleConfiguration getLifecycleConfiguration() { return this.lifecycleConfiguration; } /** *

* Provides lifecycle details of Amazon Security Lake object. *

* * @param lifecycleConfiguration * Provides lifecycle details of Amazon Security Lake object. * @return Returns a reference to this object so that method calls can be chained together. */ public DataLakeResource withLifecycleConfiguration(DataLakeLifecycleConfiguration lifecycleConfiguration) { setLifecycleConfiguration(lifecycleConfiguration); return this; } /** *

* The Amazon Web Services Regions where Security Lake is enabled. *

* * @param region * The Amazon Web Services Regions where Security Lake is enabled. */ public void setRegion(String region) { this.region = region; } /** *

* The Amazon Web Services Regions where Security Lake is enabled. *

* * @return The Amazon Web Services Regions where Security Lake is enabled. */ public String getRegion() { return this.region; } /** *

* The Amazon Web Services Regions where Security Lake is enabled. *

* * @param region * The Amazon Web Services Regions where Security Lake is enabled. * @return Returns a reference to this object so that method calls can be chained together. */ public DataLakeResource withRegion(String region) { setRegion(region); return this; } /** *

* Provides replication details of Amazon Security Lake object. *

* * @param replicationConfiguration * Provides replication details of Amazon Security Lake object. */ public void setReplicationConfiguration(DataLakeReplicationConfiguration replicationConfiguration) { this.replicationConfiguration = replicationConfiguration; } /** *

* Provides replication details of Amazon Security Lake object. *

* * @return Provides replication details of Amazon Security Lake object. */ public DataLakeReplicationConfiguration getReplicationConfiguration() { return this.replicationConfiguration; } /** *

* Provides replication details of Amazon Security Lake object. *

* * @param replicationConfiguration * Provides replication details of Amazon Security Lake object. * @return Returns a reference to this object so that method calls can be chained together. */ public DataLakeResource withReplicationConfiguration(DataLakeReplicationConfiguration replicationConfiguration) { setReplicationConfiguration(replicationConfiguration); return this; } /** *

* The ARN for the Amazon Security Lake Amazon S3 bucket. *

* * @param s3BucketArn * The ARN for the Amazon Security Lake Amazon S3 bucket. */ public void setS3BucketArn(String s3BucketArn) { this.s3BucketArn = s3BucketArn; } /** *

* The ARN for the Amazon Security Lake Amazon S3 bucket. *

* * @return The ARN for the Amazon Security Lake Amazon S3 bucket. */ public String getS3BucketArn() { return this.s3BucketArn; } /** *

* The ARN for the Amazon Security Lake Amazon S3 bucket. *

* * @param s3BucketArn * The ARN for the Amazon Security Lake Amazon S3 bucket. * @return Returns a reference to this object so that method calls can be chained together. */ public DataLakeResource withS3BucketArn(String s3BucketArn) { setS3BucketArn(s3BucketArn); return this; } /** *

* The status of the last UpdateDataLake or DeleteDataLake API request. *

* * @param updateStatus * The status of the last UpdateDataLake or DeleteDataLake API request. */ public void setUpdateStatus(DataLakeUpdateStatus updateStatus) { this.updateStatus = updateStatus; } /** *

* The status of the last UpdateDataLake or DeleteDataLake API request. *

* * @return The status of the last UpdateDataLake or DeleteDataLake API request. */ public DataLakeUpdateStatus getUpdateStatus() { return this.updateStatus; } /** *

* The status of the last UpdateDataLake or DeleteDataLake API request. *

* * @param updateStatus * The status of the last UpdateDataLake or DeleteDataLake API request. * @return Returns a reference to this object so that method calls can be chained together. */ public DataLakeResource withUpdateStatus(DataLakeUpdateStatus updateStatus) { setUpdateStatus(updateStatus); 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 (getCreateStatus() != null) sb.append("CreateStatus: ").append(getCreateStatus()).append(","); if (getDataLakeArn() != null) sb.append("DataLakeArn: ").append(getDataLakeArn()).append(","); if (getEncryptionConfiguration() != null) sb.append("EncryptionConfiguration: ").append(getEncryptionConfiguration()).append(","); if (getLifecycleConfiguration() != null) sb.append("LifecycleConfiguration: ").append(getLifecycleConfiguration()).append(","); if (getRegion() != null) sb.append("Region: ").append(getRegion()).append(","); if (getReplicationConfiguration() != null) sb.append("ReplicationConfiguration: ").append(getReplicationConfiguration()).append(","); if (getS3BucketArn() != null) sb.append("S3BucketArn: ").append(getS3BucketArn()).append(","); if (getUpdateStatus() != null) sb.append("UpdateStatus: ").append(getUpdateStatus()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof DataLakeResource == false) return false; DataLakeResource other = (DataLakeResource) obj; if (other.getCreateStatus() == null ^ this.getCreateStatus() == null) return false; if (other.getCreateStatus() != null && other.getCreateStatus().equals(this.getCreateStatus()) == false) return false; if (other.getDataLakeArn() == null ^ this.getDataLakeArn() == null) return false; if (other.getDataLakeArn() != null && other.getDataLakeArn().equals(this.getDataLakeArn()) == false) return false; if (other.getEncryptionConfiguration() == null ^ this.getEncryptionConfiguration() == null) return false; if (other.getEncryptionConfiguration() != null && other.getEncryptionConfiguration().equals(this.getEncryptionConfiguration()) == false) return false; if (other.getLifecycleConfiguration() == null ^ this.getLifecycleConfiguration() == null) return false; if (other.getLifecycleConfiguration() != null && other.getLifecycleConfiguration().equals(this.getLifecycleConfiguration()) == false) return false; if (other.getRegion() == null ^ this.getRegion() == null) return false; if (other.getRegion() != null && other.getRegion().equals(this.getRegion()) == false) return false; if (other.getReplicationConfiguration() == null ^ this.getReplicationConfiguration() == null) return false; if (other.getReplicationConfiguration() != null && other.getReplicationConfiguration().equals(this.getReplicationConfiguration()) == false) return false; if (other.getS3BucketArn() == null ^ this.getS3BucketArn() == null) return false; if (other.getS3BucketArn() != null && other.getS3BucketArn().equals(this.getS3BucketArn()) == false) return false; if (other.getUpdateStatus() == null ^ this.getUpdateStatus() == null) return false; if (other.getUpdateStatus() != null && other.getUpdateStatus().equals(this.getUpdateStatus()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getCreateStatus() == null) ? 0 : getCreateStatus().hashCode()); hashCode = prime * hashCode + ((getDataLakeArn() == null) ? 0 : getDataLakeArn().hashCode()); hashCode = prime * hashCode + ((getEncryptionConfiguration() == null) ? 0 : getEncryptionConfiguration().hashCode()); hashCode = prime * hashCode + ((getLifecycleConfiguration() == null) ? 0 : getLifecycleConfiguration().hashCode()); hashCode = prime * hashCode + ((getRegion() == null) ? 0 : getRegion().hashCode()); hashCode = prime * hashCode + ((getReplicationConfiguration() == null) ? 0 : getReplicationConfiguration().hashCode()); hashCode = prime * hashCode + ((getS3BucketArn() == null) ? 0 : getS3BucketArn().hashCode()); hashCode = prime * hashCode + ((getUpdateStatus() == null) ? 0 : getUpdateStatus().hashCode()); return hashCode; } @Override public DataLakeResource clone() { try { return (DataLakeResource) 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.securitylake.model.transform.DataLakeResourceMarshaller.getInstance().marshall(this, protocolMarshaller); } }