-
Notifications
You must be signed in to change notification settings - Fork 859
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1235 from dagnir/rebase-s3-ol
Add S3 Object Lambda customizations
- Loading branch information
Showing
24 changed files
with
1,955 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
73 changes: 73 additions & 0 deletions
73
...ftware/amazon/awssdk/services/s3/internal/endpoints/S3EndpointResolverFactoryContext.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
/* | ||
* Copyright 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 software.amazon.awssdk.services.s3.internal.endpoints; | ||
|
||
import java.util.Optional; | ||
import software.amazon.awssdk.annotations.SdkInternalApi; | ||
import software.amazon.awssdk.services.s3.model.S3Request; | ||
|
||
@SdkInternalApi | ||
public final class S3EndpointResolverFactoryContext { | ||
private final String bucketName; | ||
private final S3Request originalRequest; | ||
|
||
private S3EndpointResolverFactoryContext(DefaultBuilder builder) { | ||
this.bucketName = builder.bucketName; | ||
this.originalRequest = builder.originalRequest; | ||
} | ||
|
||
public Optional<String> bucketName() { | ||
return Optional.ofNullable(bucketName); | ||
} | ||
|
||
public S3Request originalRequest() { | ||
return originalRequest; | ||
} | ||
|
||
public static Builder builder() { | ||
return new DefaultBuilder(); | ||
} | ||
|
||
public interface Builder { | ||
Builder bucketName(String bucketName); | ||
|
||
Builder originalRequest(S3Request originalRequest); | ||
|
||
S3EndpointResolverFactoryContext build(); | ||
} | ||
|
||
private static final class DefaultBuilder implements Builder { | ||
private String bucketName; | ||
private S3Request originalRequest; | ||
|
||
@Override | ||
public Builder bucketName(String bucketName) { | ||
this.bucketName = bucketName; | ||
return this; | ||
} | ||
|
||
@Override | ||
public Builder originalRequest(S3Request originalRequest) { | ||
this.originalRequest = originalRequest; | ||
return this; | ||
} | ||
|
||
@Override | ||
public S3EndpointResolverFactoryContext build() { | ||
return new S3EndpointResolverFactoryContext(this); | ||
} | ||
} | ||
} |
75 changes: 75 additions & 0 deletions
75
.../amazon/awssdk/services/s3/internal/endpoints/S3ObjectLambdaOperationEndpointBuilder.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
/* | ||
* Copyright 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 software.amazon.awssdk.services.s3.internal.endpoints; | ||
|
||
import java.net.URI; | ||
import software.amazon.awssdk.annotations.SdkInternalApi; | ||
import software.amazon.awssdk.utils.Validate; | ||
|
||
/** | ||
* Endpoint builder for operations specific to S3 Object Lambda. | ||
*/ | ||
@SdkInternalApi | ||
public class S3ObjectLambdaOperationEndpointBuilder { | ||
private String region; | ||
private String protocol; | ||
private String domain; | ||
|
||
private S3ObjectLambdaOperationEndpointBuilder() { | ||
} | ||
|
||
/** | ||
* Create a new instance of this builder class. | ||
*/ | ||
public static S3ObjectLambdaOperationEndpointBuilder create() { | ||
return new S3ObjectLambdaOperationEndpointBuilder(); | ||
} | ||
|
||
|
||
public S3ObjectLambdaOperationEndpointBuilder region(String region) { | ||
this.region = region; | ||
return this; | ||
} | ||
|
||
public S3ObjectLambdaOperationEndpointBuilder protocol(String protocol) { | ||
this.protocol = protocol; | ||
return this; | ||
} | ||
|
||
public S3ObjectLambdaOperationEndpointBuilder domain(String domain) { | ||
this.domain = domain; | ||
return this; | ||
} | ||
|
||
/** | ||
* Generate an endpoint URI with no path that maps to the Object Lambdas Access Point information stored in this builder. | ||
*/ | ||
public URI toUri() { | ||
Validate.paramNotBlank(protocol, "protocol"); | ||
Validate.paramNotBlank(domain, "domain"); | ||
Validate.paramNotBlank(region, "region"); | ||
|
||
String servicePrefix = "s3-object-lambda"; | ||
|
||
String uriString = String.format("%s://%s.%s.%s", | ||
protocol, | ||
servicePrefix, | ||
region, | ||
domain); | ||
|
||
return URI.create(uriString); | ||
} | ||
} |
Oops, something went wrong.