in services/s3/src/it/java/software/amazon/awssdk/services/s3/BucketInventoryConfigurationIntegrationTest.java [132:192]
public void testInventoryConfiguration_with_filter() throws Exception {
String configId = "id";
String prefix = "prefix";
String accountId = "test-account";
List<String> optionalFields = new ArrayList<String>() {
{
add(InventoryOptionalField.E_TAG.toString());
add(InventoryOptionalField.SIZE.toString());
}
};
InventoryS3BucketDestination s3BucketDestination = InventoryS3BucketDestination.builder()
.bucket(BUCKET_ARN)
.format(InventoryFormat.CSV)
.accountId(accountId)
.prefix(prefix)
.build();
InventoryDestination destination = InventoryDestination.builder().s3BucketDestination(s3BucketDestination).build();
InventoryConfiguration config = InventoryConfiguration.builder()
.isEnabled(true)
.id(configId)
.destination(destination)
.includedObjectVersions(InventoryIncludedObjectVersions.ALL)
.schedule(InventorySchedule.builder()
.frequency(InventoryFrequency.DAILY)
.build())
.filter(InventoryFilter.builder().prefix(prefix).build())
.optionalFieldsWithStrings(optionalFields)
.build();
s3.putBucketInventoryConfiguration(PutBucketInventoryConfigurationRequest.builder()
.bucket(BUCKET_NAME)
.inventoryConfiguration(config)
.id(configId)
.build());
config = s3.getBucketInventoryConfiguration(GetBucketInventoryConfigurationRequest.builder().bucket(BUCKET_NAME)
.id(configId)
.build())
.inventoryConfiguration();
assertEquals(configId, config.id());
assertTrue(config.isEnabled());
assertEquals(InventoryIncludedObjectVersions.ALL, config.includedObjectVersions());
assertEquals(InventoryFrequency.DAILY, config.schedule().frequency());
s3BucketDestination = config.destination().s3BucketDestination();
assertEquals(BUCKET_ARN, s3BucketDestination.bucket());
assertEquals(InventoryFormat.CSV, s3BucketDestination.format());
assertEquals(accountId, s3BucketDestination.accountId());
assertEquals(prefix, s3BucketDestination.prefix());
assertEquals(prefix, config.filter().prefix());
assertTrue(config.optionalFieldsAsStrings().containsAll(optionalFields));
s3.deleteBucketInventoryConfiguration(DeleteBucketInventoryConfigurationRequest.builder()
.bucket(BUCKET_NAME)
.id(configId)
.build());
}