com.ibm.cloud.objectstorage.services.s3.model.PublicAccessBlockConfiguration Maven / Gradle / Ivy
Show all versions of ibm-cos-java-sdk-bundle Show documentation
/*
* Copyright 2010-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.ibm.cloud.objectstorage.services.s3.model;
import java.io.Serializable;
/**
*
* The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration
* options in any combination. For more information about when Amazon S3 considers a bucket or object public, see The Meaning of "Public" in the Amazon Simple Storage Service Developer Guide.
*
*/
public class PublicAccessBlockConfiguration implements Serializable, Cloneable {
private Boolean blockPublicAcls;
private Boolean ignorePublicAcls;
// IBM COS does not support these flags.
// private Boolean blockPublicPolicy;
// private Boolean restrictPublicBuckets;
/**
*
* Returns whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this
* bucket. Setting this element to TRUE
causes the following behavior:
*
*
* -
*
* PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.
*
*
* -
*
* PUT Object calls fail if the request includes a public ACL.
*
*
* -
*
* PUT Bucket calls fail if the request includes a public ACL.
*
*
*
*
* Enabling this setting doesn't affect existing policies or ACLs.
*
*/
public Boolean getBlockPublicAcls() {
return blockPublicAcls;
}
/**
*
* Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this
* bucket. Setting this element to TRUE
causes the following behavior:
*
*
* -
*
* PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.
*
*
* -
*
* PUT Object calls fail if the request includes a public ACL.
*
*
* -
*
* PUT Bucket calls fail if the request includes a public ACL.
*
*
*
*
* Enabling this setting doesn't affect existing policies or ACLs.
*
*/
public void setBlockPublicAcls(Boolean blockPublicAcls) {
this.blockPublicAcls = blockPublicAcls;
}
/**
*
* Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this
* bucket. Setting this element to TRUE
causes the following behavior:
*
*
* -
*
* PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.
*
*
* -
*
* PUT Object calls fail if the request includes a public ACL.
*
*
* -
*
* PUT Bucket calls fail if the request includes a public ACL.
*
*
*
*
* Enabling this setting doesn't affect existing policies or ACLs.
*
*/
public PublicAccessBlockConfiguration withBlockPublicAcls(Boolean blockPublicAcls) {
setBlockPublicAcls(blockPublicAcls);
return this;
}
/**
*
* Returns whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this
* element to TRUE
causes Amazon S3 to ignore all public ACLs on this bucket and objects in this
* bucket.
*
*
* Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs
* from being set.
*
*/
public Boolean getIgnorePublicAcls() {
return ignorePublicAcls;
}
/**
*
* Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this
* element to TRUE
causes Amazon S3 to ignore all public ACLs on this bucket and objects in this
* bucket.
*
*
* Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs
* from being set.
*
*/
public void setIgnorePublicAcls(Boolean ignorePublicAcls) {
this.ignorePublicAcls = ignorePublicAcls;
}
/**
*
* Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this
* element to TRUE
causes Amazon S3 to ignore all public ACLs on this bucket and objects in this
* bucket.
*
*
* Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs
* from being set.
*
*/
public PublicAccessBlockConfiguration withIgnorePublicAcls(Boolean ignorePublicAcls) {
setIgnorePublicAcls(ignorePublicAcls);
return this;
}
// IBM COS does not support these flags.
/**
*
* Returns whether Amazon S3 should block public bucket policies for this bucket. Setting this element to
* TRUE
causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows
* public access.
*
*
* Enabling this setting doesn't affect existing bucket policies.
*
*/
// public Boolean getBlockPublicPolicy() {
// return blockPublicPolicy;
// }
/**
*
* Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to
* TRUE
causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows
* public access.
*
*
* Enabling this setting doesn't affect existing bucket policies.
*
*/
// public void setBlockPublicPolicy(Boolean blockPublicPolicy) {
// this.blockPublicPolicy = blockPublicPolicy;
// }
/**
*
* Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to
* TRUE
causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows
* public access.
*
*
* Enabling this setting doesn't affect existing bucket policies.
*
*/
// public PublicAccessBlockConfiguration withBlockPublicPolicy(Boolean blockPublicPolicy) {
// setBlockPublicPolicy(blockPublicPolicy);
// return this;
// }
/**
*
* Returns whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to
* TRUE
restricts access to this bucket to only Amazon Web Services service principals and authorized users within this
* account if the bucket has a public policy.
*
*
* Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account
* access within any public bucket policy, including non-public delegation to specific accounts, is blocked.
*
*/
// public Boolean getRestrictPublicBuckets() {
// return restrictPublicBuckets;
// }
/**
*
* Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to
* TRUE
restricts access to this bucket to only Amazon Web Services service principals and authorized users within this
* account if the bucket has a public policy.
*
*
* Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account
* access within any public bucket policy, including non-public delegation to specific accounts, is blocked.
*
*/
// public void setRestrictPublicBuckets(Boolean restrictPublicBuckets) {
// this.restrictPublicBuckets = restrictPublicBuckets;
// }
/**
*
* Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to
* TRUE
restricts access to this bucket to only Amazon Web Services service principals and authorized users within this
* account if the bucket has a public policy.
*
*
* Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account
* access within any public bucket policy, including non-public delegation to specific accounts, is blocked.
*
*/
// public PublicAccessBlockConfiguration withRestrictPublicBuckets(Boolean restrictPublicBuckets) {
// setRestrictPublicBuckets(restrictPublicBuckets);
// return this;
// }
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
final PublicAccessBlockConfiguration that = (PublicAccessBlockConfiguration) o;
if (blockPublicAcls != null ? !blockPublicAcls.equals(that.blockPublicAcls) : that.blockPublicAcls != null) {
return false;
}
if (ignorePublicAcls != null ? !ignorePublicAcls.equals(that.ignorePublicAcls) : that.ignorePublicAcls != null) {
return false;
}
// IBM COS does not support these flags.
// if (blockPublicPolicy != null ? !blockPublicPolicy.equals(that.blockPublicPolicy) : that.blockPublicPolicy != null) {
// return false;
// }
// return restrictPublicBuckets != null ? restrictPublicBuckets.equals(that.restrictPublicBuckets) : that.restrictPublicBuckets == null;
// IBM-COS addition: Because IBM COS does not support restrictPublicBuckets and blockPublicPolicy,
// we return true if we end up here.
return true;
}
@Override
public int hashCode() {
int result = blockPublicAcls != null ? blockPublicAcls.hashCode() : 0;
result = 31 * result + (ignorePublicAcls != null ? ignorePublicAcls.hashCode() : 0);
// IBM COS does not support these flags.
// result = 31 * result + (blockPublicPolicy != null ? blockPublicPolicy.hashCode() : 0);
// result = 31 * result + (restrictPublicBuckets != null ? restrictPublicBuckets.hashCode() : 0);
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getBlockPublicAcls() != null) {
sb.append("BlockPublicAcls: ").append(getBlockPublicAcls()).append(",");
}
if (getIgnorePublicAcls() != null) {
sb.append("IgnorePublicAcls: ").append(getIgnorePublicAcls()).append(",");
}
// IBM COS does not support these flags.
// if (getBlockPublicPolicy() != null) {
// sb.append("BlockPublicPolicy: ").append(getBlockPublicPolicy()).append(",");
// }
// if (getRestrictPublicBuckets() != null) {
// sb.append("RestrictPublicBuckets: ").append(getRestrictPublicBuckets()).append(",");
// }
sb.append("}");
return sb.toString();
}
@Override
public PublicAccessBlockConfiguration clone() {
try {
return (PublicAccessBlockConfiguration) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
}