/** * Sets the value of the CreateBucketConfiguration property for this object. * * This is a convenience that creates an instance of the {@link CreateBucketConfiguration.Builder} avoiding the * need to create one manually via {@link CreateBucketConfiguration#builder()}. * * When the {@link Consumer} completes, {@link CreateBucketConfiguration.Builder#build()} is called immediately * and its result is passed to {@link #createBucketConfiguration(CreateBucketConfiguration)}. * * @param createBucketConfiguration * a consumer that will call methods on {@link CreateBucketConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #createBucketConfiguration(CreateBucketConfiguration) */ default Builder createBucketConfiguration(Consumer<CreateBucketConfiguration.Builder> createBucketConfiguration) { return createBucketConfiguration(CreateBucketConfiguration.builder().applyMutation(createBucketConfiguration).build()); }
@Override public SdkRequest modifyRequest(Context.ModifyRequest context, ExecutionAttributes executionAttributes) { SdkRequest sdkRequest = context.request(); if (sdkRequest instanceof CreateBucketRequest) { CreateBucketRequest request = (CreateBucketRequest) sdkRequest; validateBucketNameIsS3Compatible(request.bucket()); if (request.createBucketConfiguration() == null || request.createBucketConfiguration().locationConstraint() == null) { Region region = executionAttributes.getAttribute(AwsExecutionAttribute.AWS_REGION); sdkRequest = request.toBuilder() .createBucketConfiguration(toLocationConstraint(region)) .build(); } } return sdkRequest; }