1
13
14 package software.amazon.awssdk.regions.servicemetadata;
15
16 import java.net.URI;
17 import java.util.Arrays;
18 import java.util.Collections;
19 import java.util.List;
20 import java.util.Map;
21 import software.amazon.awssdk.annotations.Generated;
22 import software.amazon.awssdk.annotations.SdkPublicApi;
23 import software.amazon.awssdk.regions.Region;
24 import software.amazon.awssdk.regions.ServiceMetadata;
25 import software.amazon.awssdk.regions.ServicePartitionMetadata;
26 import software.amazon.awssdk.regions.internal.DefaultServicePartitionMetadata;
27 import software.amazon.awssdk.utils.ImmutableMap;
28
29 @Generated("software.amazon.awssdk:codegen")
30 @SdkPublicApi
31 public final class DynamodbServiceMetadata implements ServiceMetadata {
32 private static final String ENDPOINT_PREFIX = "dynamodb";
33
34 private static final Map<String, String> PARTITION_OVERRIDDEN_ENDPOINTS = ImmutableMap.<String, String> builder().build();
35
36 private static final Map<String, String> REGION_OVERRIDDEN_ENDPOINTS = ImmutableMap.<String, String> builder()
37 .put("ca-central-1-fips", "dynamodb-fips.ca-central-1.amazonaws.com")
38 .put("us-east-1-fips", "dynamodb-fips.us-east-1.amazonaws.com")
39 .put("us-east-2-fips", "dynamodb-fips.us-east-2.amazonaws.com")
40 .put("us-west-1-fips", "dynamodb-fips.us-west-1.amazonaws.com")
41 .put("us-west-2-fips", "dynamodb-fips.us-west-2.amazonaws.com")
42 .put("us-gov-east-1-fips", "dynamodb.us-gov-east-1.amazonaws.com")
43 .put("us-gov-west-1-fips", "dynamodb.us-gov-west-1.amazonaws.com").build();
44
45 private static final List<Region> REGIONS = Collections
46 .unmodifiableList(Arrays.asList(Region.of("af-south-1"), Region.of("ap-east-1"), Region.of("ap-northeast-1"),
47 Region.of("ap-northeast-2"), Region.of("ap-south-1"), Region.of("ap-southeast-1"),
48 Region.of("ap-southeast-2"), Region.of("ca-central-1"), Region.of("ca-central-1-fips"),
49 Region.of("eu-central-1"), Region.of("eu-north-1"), Region.of("eu-south-1"), Region.of("eu-west-1"),
50 Region.of("eu-west-2"), Region.of("eu-west-3"), Region.of("me-south-1"), Region.of("sa-east-1"),
51 Region.of("us-east-1"), Region.of("us-east-1-fips"), Region.of("us-east-2"), Region.of("us-east-2-fips"),
52 Region.of("us-west-1"), Region.of("us-west-1-fips"), Region.of("us-west-2"), Region.of("us-west-2-fips"),
53 Region.of("cn-north-1"), Region.of("cn-northwest-1"), Region.of("us-gov-east-1"),
54 Region.of("us-gov-east-1-fips"), Region.of("us-gov-west-1"), Region.of("us-gov-west-1-fips"),
55 Region.of("us-iso-east-1"), Region.of("us-isob-east-1")));
56
57 private static final Map<String, String> SIGNING_REGION_OVERRIDES = ImmutableMap.<String, String> builder()
58 .put("ca-central-1-fips", "ca-central-1").put("us-east-1-fips", "us-east-1").put("us-east-2-fips", "us-east-2")
59 .put("us-west-1-fips", "us-west-1").put("us-west-2-fips", "us-west-2").put("us-gov-east-1-fips", "us-gov-east-1")
60 .put("us-gov-west-1-fips", "us-gov-west-1").build();
61
62 private static final List<ServicePartitionMetadata> PARTITIONS = Collections.unmodifiableList(Arrays.asList(
63 new DefaultServicePartitionMetadata("aws", null), new DefaultServicePartitionMetadata("aws-cn", null),
64 new DefaultServicePartitionMetadata("aws-us-gov", null), new DefaultServicePartitionMetadata("aws-iso", null),
65 new DefaultServicePartitionMetadata("aws-iso-b", null)));
66
67 @Override
68 public List<Region> regions() {
69 return REGIONS;
70 }
71
72 @Override
73 public URI endpointFor(Region region) {
74 return URI.create(REGION_OVERRIDDEN_ENDPOINTS.containsKey(region.id()) ? REGION_OVERRIDDEN_ENDPOINTS.get(region.id())
75 : computeEndpoint(ENDPOINT_PREFIX, PARTITION_OVERRIDDEN_ENDPOINTS, region));
76 }
77
78 @Override
79 public Region signingRegion(Region region) {
80 return Region.of(SIGNING_REGION_OVERRIDES.getOrDefault(region.id(), region.id()));
81 }
82
83 @Override
84 public List<ServicePartitionMetadata> servicePartitions() {
85 return PARTITIONS;
86 }
87 }
88