Class 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:
    Serialized Form
    • Method Detail

      • 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:
        AllowsUnencryptedObjectUploads
      • 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:
        AllowsUnencryptedObjectUploads
      • 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:
        BucketMetadataErrorCode
      • 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:
        BucketMetadataErrorCode
      • 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:
        SharedAccess
      • 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:
        SharedAccess
      • 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.
      • hashCode

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

        public final boolean equals​(Object obj)
        Overrides:
        equals in class Object
      • 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)