Skip to content

Release endpoint variants: dualstack and fips for all services. #2830

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Nov 10, 2021

Conversation

millems
Copy link
Contributor

@millems millems commented Nov 8, 2021

try (BufferedReader br = new BufferedReader(new InputStreamReader(allowListStream, StandardCharsets.UTF_8))) {
String line;
while ((line = br.readLine()) != null) {
DEPRECATED_REGIONS_ALLOWSLIST.add(line);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non Blocker : Query :
Should we do a trim(line) or normalize the line here ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1, fixed

…ALSTACK.

This adds the ability to resolve fips and dualstack endpoints with a "fips enabled" or "dualstack enabled" flag.

E.g.
```java
URI fipsEndpoint =
    ServiceMetadata.of(S3Client.SERVICE_METADATA_ID)
                   .endpointFor(ServiceEndpointKey.builder()
                                                  .region(Region.US_WEST_2)
                                                  .tags(EndpointTag.FIPS)
                                                  .build());
```

The following public API changes were made:
1. Added `ServiceMetadata.endpointFor(ServiceEndpointKey)`
2. Added `ServiceMetadata.signingRegion(ServiceEndpointKey)`
3. Added `PartitionMetadata.hostname(PartitionEndpointKey)`
4. Added `PartitionMetadata.dnsSuffix(PartitionEndpointKey)`
5. Added a generated `EndpointTag` class, which currently contains FIPS and DUALSTACK.
6. Removed `ServiceMetadata.computeEndpoint`, because it shouldn't have ever been public, and no one should be using it.

The following module changes were made:
1. Added `regions-testing` for verifying region resolution behavior that doesn't currently exist in the endpoints.json
This option can be used to make calls be invoked against AWS endpoints which return IPv6 records. This can also be enabled via the `AWS_USE_DUALSTACK_ENDPOINT` environment variable, `aws.useDualstackEndpoint` system property, or the `use_dualstack_endpoint` profile file property:

1. This PR builds on top of the 'endpoint variants' #2808, by specifying the DUALSTACK endpoint variant whenever the customer requests dualstack to be enabled.
2. The bulk of the files in this PR are addressing the fact that we already have service configuration for enabling dualstack for S3 and S3 control. These existing options have been deprecated in favor of the new option that works for all services.
This option can be used to make calls be invoked against FIPS-compliant AWS endpoints. This can also be enabled via the AWS_USE_FIPS_ENDPOINT environment variable, aws.useFipsEndpoint system property, or the use_fips_endpoint profile file property:
@millems millems force-pushed the endpoint-tag-staging-rebased branch from 0a84955 to 2ec1faa Compare November 9, 2021 21:23
@millems millems requested a review from a team as a code owner November 10, 2021 00:14
@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 43 Code Smells

88.1% 88.1% Coverage
2.9% 2.9% Duplication

@millems millems merged commit 4656690 into master Nov 10, 2021
@millems millems deleted the endpoint-tag-staging-rebased branch October 19, 2022 19:36
aws-sdk-java-automation added a commit that referenced this pull request Dec 8, 2023
…5bd8d99f7

Pull request: release <- staging/841ca519-19c3-42be-a683-9e85bd8d99f7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants