Class BucketMetadata

java.lang.Object
software.amazon.awssdk.services.macie2.model.BucketMetadata
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<BucketMetadata.Builder,BucketMetadata>

@Generated("software.amazon.awssdk:codegen") public final class BucketMetadata extends Object implements SdkPojo, Serializable, ToCopyableBuilder<BucketMetadata.Builder,BucketMetadata>

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. By default, object count and storage size values include data for object parts that are the result of incomplete multipart uploads. For more information, see How Macie monitors Amazon S3 data security in the Amazon Macie User Guide.

If an error occurs when Macie attempts to retrieve and process metadata from Amazon S3 for the bucket or the bucket's objects, the value for the versioning property is false and the value for most other properties is null. Key exceptions are accountId, bucketArn, bucketCreatedAt, bucketName, lastUpdated, and region. To identify the cause of the error, refer to the errorCode and errorMessage values.

See Also:
  • Method Details

    • accountId

      public final String accountId()

      The unique identifier for the Amazon Web Services account that owns the bucket.

      Returns:
      The unique identifier for the Amazon Web Services account that owns the bucket.
    • allowsUnencryptedObjectUploads

      public final AllowsUnencryptedObjectUploads allowsUnencryptedObjectUploads()

      Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are added to the bucket. Possible values are:

      • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

      • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

      • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

      Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

      If the service returns an enum value that is not available in the current SDK version, allowsUnencryptedObjectUploads will return AllowsUnencryptedObjectUploads.UNKNOWN_TO_SDK_VERSION . The raw value returned by the service is available from allowsUnencryptedObjectUploadsAsString().

      Returns:
      Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are added to the bucket. Possible values are:

      • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

      • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

      • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

      Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

      See Also:
    • allowsUnencryptedObjectUploadsAsString

      public final String allowsUnencryptedObjectUploadsAsString()

      Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are added to the bucket. Possible values are:

      • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

      • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

      • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

      Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

      If the service returns an enum value that is not available in the current SDK version, allowsUnencryptedObjectUploads will return AllowsUnencryptedObjectUploads.UNKNOWN_TO_SDK_VERSION . The raw value returned by the service is available from allowsUnencryptedObjectUploadsAsString().

      Returns:
      Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are added to the bucket. Possible values are:

      • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

      • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

      • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

      Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

      See Also:
    • bucketArn

      public final String bucketArn()

      The Amazon Resource Name (ARN) of the bucket.

      Returns:
      The Amazon Resource Name (ARN) of the bucket.
    • bucketCreatedAt

      public final Instant bucketCreatedAt()

      The date and time, in UTC and extended ISO 8601 format, when the bucket was created. This value can also indicate when changes such as edits to the bucket's policy were most recently made to the bucket.

      Returns:
      The date and time, in UTC and extended ISO 8601 format, when the bucket was created. This value can also indicate when changes such as edits to the bucket's policy were most recently made to the bucket.
    • bucketName

      public final String bucketName()

      The name of the bucket.

      Returns:
      The name of the bucket.
    • classifiableObjectCount

      public final Long classifiableObjectCount()

      The total number of objects that Amazon Macie can analyze in the bucket. These objects use a supported storage class and have a file name extension for a supported file or storage format.

      Returns:
      The total number of objects that Amazon Macie can analyze in the bucket. These objects use a supported storage class and have a file name extension for a supported file or storage format.
    • classifiableSizeInBytes

      public final Long classifiableSizeInBytes()

      The total storage size, in bytes, of the objects that Amazon Macie can analyze in the bucket. These objects use a supported storage class and have a file name extension for a supported file or storage format.

      If versioning is enabled for the bucket, Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

      Returns:
      The total storage size, in bytes, of the objects that Amazon Macie can analyze in the bucket. These objects use a supported storage class and have a file name extension for a supported file or storage format.

      If versioning is enabled for the bucket, Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

    • errorCode

      public final BucketMetadataErrorCode errorCode()

      The error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.

      If the service returns an enum value that is not available in the current SDK version, errorCode will return BucketMetadataErrorCode.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from errorCodeAsString().

      Returns:
      The error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.
      See Also:
    • errorCodeAsString

      public final String errorCodeAsString()

      The error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.

      If the service returns an enum value that is not available in the current SDK version, errorCode will return BucketMetadataErrorCode.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from errorCodeAsString().

      Returns:
      The error code for an error that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. If this value is ACCESS_DENIED, Macie doesn't have permission to retrieve the information. For example, the bucket has a restrictive bucket policy and Amazon S3 denied the request. If this value is null, Macie was able to retrieve and process the information.
      See Also:
    • errorMessage

      public final String errorMessage()

      A brief description of the error (errorCode) that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. This value is null if Macie was able to retrieve and process the information.

      Returns:
      A brief description of the error (errorCode) that prevented Amazon Macie from retrieving and processing information about the bucket and the bucket's objects. This value is null if Macie was able to retrieve and process the information.
    • jobDetails

      public final JobDetails jobDetails()

      Specifies whether any one-time or recurring classification jobs are configured to analyze data in the bucket, and, if so, the details of the job that ran most recently.

      Returns:
      Specifies whether any one-time or recurring classification jobs are configured to analyze data in the bucket, and, if so, the details of the job that ran most recently.
    • lastAutomatedDiscoveryTime

      public final Instant lastAutomatedDiscoveryTime()

      The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently analyzed data in the bucket while performing automated sensitive data discovery for your account. This value is null if automated sensitive data discovery is currently disabled for your account.

      Returns:
      The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently analyzed data in the bucket while performing automated sensitive data discovery for your account. This value is null if automated sensitive data discovery is currently disabled for your account.
    • lastUpdated

      public final Instant lastUpdated()

      The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently retrieved bucket or object metadata from Amazon S3 for the bucket.

      Returns:
      The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently retrieved bucket or object metadata from Amazon S3 for the bucket.
    • objectCount

      public final Long objectCount()

      The total number of objects in the bucket.

      Returns:
      The total number of objects in the bucket.
    • objectCountByEncryptionType

      public final ObjectCountByEncryptionType objectCountByEncryptionType()

      The total number of objects in the bucket, grouped by server-side encryption type. This includes a grouping that reports the total number of objects that aren't encrypted or use client-side encryption.

      Returns:
      The total number of objects in the bucket, grouped by server-side encryption type. This includes a grouping that reports the total number of objects that aren't encrypted or use client-side encryption.
    • publicAccess

      public final BucketPublicAccess publicAccess()

      Specifies whether the bucket is publicly accessible due to the combination of permissions settings that apply to the bucket, and provides information about those settings.

      Returns:
      Specifies whether the bucket is publicly accessible due to the combination of permissions settings that apply to the bucket, and provides information about those settings.
    • region

      public final String region()

      The Amazon Web Services Region that hosts the bucket.

      Returns:
      The Amazon Web Services Region that hosts the bucket.
    • replicationDetails

      public final ReplicationDetails replicationDetails()

      Specifies whether the bucket is configured to replicate one or more objects to buckets for other Amazon Web Services accounts and, if so, which accounts.

      Returns:
      Specifies whether the bucket is configured to replicate one or more objects to buckets for other Amazon Web Services accounts and, if so, which accounts.
    • sensitivityScore

      public final Integer sensitivityScore()

      The sensitivity score for the bucket, ranging from -1 (classification error) to 100 (sensitive). This value is null if automated sensitive data discovery is currently disabled for your account.

      Returns:
      The sensitivity score for the bucket, ranging from -1 (classification error) to 100 (sensitive). This value is null if automated sensitive data discovery is currently disabled for your account.
    • serverSideEncryption

      public final BucketServerSideEncryption serverSideEncryption()

      The default server-side encryption settings for the bucket.

      Returns:
      The default server-side encryption settings for the bucket.
    • sharedAccess

      public final SharedAccess sharedAccess()

      Specifies whether the bucket is shared with another Amazon Web Services account, an Amazon CloudFront origin access identity (OAI), or a CloudFront origin access control (OAC). Possible values are:

      • EXTERNAL - The bucket is shared with one or more of the following or any combination of the following: a CloudFront OAI, a CloudFront OAC, or an Amazon Web Services account that isn't part of your Amazon Macie organization.

      • INTERNAL - The bucket is shared with one or more Amazon Web Services accounts that are part of your Amazon Macie organization. It isn't shared with a CloudFront OAI or OAC.

      • NOT_SHARED - The bucket isn't shared with another Amazon Web Services account, a CloudFront OAI, or a CloudFront OAC.

      • UNKNOWN - Amazon Macie wasn't able to evaluate the shared access settings for the bucket.

      An Amazon Macie organization is a set of Macie accounts that are centrally managed as a group of related accounts through Organizations or by Macie invitation.

      If the service returns an enum value that is not available in the current SDK version, sharedAccess will return SharedAccess.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from sharedAccessAsString().

      Returns:
      Specifies whether the bucket is shared with another Amazon Web Services account, an Amazon CloudFront origin access identity (OAI), or a CloudFront origin access control (OAC). Possible values are:

      • EXTERNAL - The bucket is shared with one or more of the following or any combination of the following: a CloudFront OAI, a CloudFront OAC, or an Amazon Web Services account that isn't part of your Amazon Macie organization.

      • INTERNAL - The bucket is shared with one or more Amazon Web Services accounts that are part of your Amazon Macie organization. It isn't shared with a CloudFront OAI or OAC.

      • NOT_SHARED - The bucket isn't shared with another Amazon Web Services account, a CloudFront OAI, or a CloudFront OAC.

      • UNKNOWN - Amazon Macie wasn't able to evaluate the shared access settings for the bucket.

      An Amazon Macie organization is a set of Macie accounts that are centrally managed as a group of related accounts through Organizations or by Macie invitation.

      See Also:
    • sharedAccessAsString

      public final String sharedAccessAsString()

      Specifies whether the bucket is shared with another Amazon Web Services account, an Amazon CloudFront origin access identity (OAI), or a CloudFront origin access control (OAC). Possible values are:

      • EXTERNAL - The bucket is shared with one or more of the following or any combination of the following: a CloudFront OAI, a CloudFront OAC, or an Amazon Web Services account that isn't part of your Amazon Macie organization.

      • INTERNAL - The bucket is shared with one or more Amazon Web Services accounts that are part of your Amazon Macie organization. It isn't shared with a CloudFront OAI or OAC.

      • NOT_SHARED - The bucket isn't shared with another Amazon Web Services account, a CloudFront OAI, or a CloudFront OAC.

      • UNKNOWN - Amazon Macie wasn't able to evaluate the shared access settings for the bucket.

      An Amazon Macie organization is a set of Macie accounts that are centrally managed as a group of related accounts through Organizations or by Macie invitation.

      If the service returns an enum value that is not available in the current SDK version, sharedAccess will return SharedAccess.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from sharedAccessAsString().

      Returns:
      Specifies whether the bucket is shared with another Amazon Web Services account, an Amazon CloudFront origin access identity (OAI), or a CloudFront origin access control (OAC). Possible values are:

      • EXTERNAL - The bucket is shared with one or more of the following or any combination of the following: a CloudFront OAI, a CloudFront OAC, or an Amazon Web Services account that isn't part of your Amazon Macie organization.

      • INTERNAL - The bucket is shared with one or more Amazon Web Services accounts that are part of your Amazon Macie organization. It isn't shared with a CloudFront OAI or OAC.

      • NOT_SHARED - The bucket isn't shared with another Amazon Web Services account, a CloudFront OAI, or a CloudFront OAC.

      • UNKNOWN - Amazon Macie wasn't able to evaluate the shared access settings for the bucket.

      An Amazon Macie organization is a set of Macie accounts that are centrally managed as a group of related accounts through Organizations or by Macie invitation.

      See Also:
    • sizeInBytes

      public final Long sizeInBytes()

      The total storage size, in bytes, of the bucket.

      If versioning is enabled for the bucket, Amazon Macie calculates this value based on the size of the latest version of each object in the bucket. This value doesn't reflect the storage size of all versions of each object in the bucket.

      Returns:
      The total storage size, in bytes, of the bucket.

      If versioning is enabled for the bucket, Amazon Macie calculates this value based on the size of the latest version of each object in the bucket. This value doesn't reflect the storage size of all versions of each object in the bucket.

    • sizeInBytesCompressed

      public final Long sizeInBytesCompressed()

      The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the bucket.

      If versioning is enabled for the bucket, Amazon Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

      Returns:
      The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the bucket.

      If versioning is enabled for the bucket, Amazon Macie calculates this value based on the size of the latest version of each applicable object in the bucket. This value doesn't reflect the storage size of all versions of each applicable object in the bucket.

    • hasTags

      public final boolean hasTags()
      For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • tags

      public final List<KeyValuePair> tags()

      An array that specifies the tags (keys and values) that are associated with the bucket.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasTags() method.

      Returns:
      An array that specifies the tags (keys and values) that are associated with the bucket.
    • unclassifiableObjectCount

      public final ObjectLevelStatistics unclassifiableObjectCount()

      The total number of objects that Amazon Macie can't analyze in the bucket. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.

      Returns:
      The total number of objects that Amazon Macie can't analyze in the bucket. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.
    • unclassifiableObjectSizeInBytes

      public final ObjectLevelStatistics unclassifiableObjectSizeInBytes()

      The total storage size, in bytes, of the objects that Amazon Macie can't analyze in the bucket. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.

      Returns:
      The total storage size, in bytes, of the objects that Amazon Macie can't analyze in the bucket. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.
    • versioning

      public final Boolean versioning()

      Specifies whether versioning is enabled for the bucket.

      Returns:
      Specifies whether versioning is enabled for the bucket.
    • toBuilder

      public BucketMetadata.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<BucketMetadata.Builder,BucketMetadata>
      Returns:
      a builder for type T
    • builder

      public static BucketMetadata.Builder builder()
    • serializableBuilderClass

      public static Class<? extends BucketMetadata.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      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.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.