1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package endpoints 4 5import ( 6 "github.com/aws/aws-sdk-go-v2/aws" 7 "github.com/aws/aws-sdk-go-v2/internal/endpoints" 8 "regexp" 9) 10 11// Options is the endpoint resolver configuration options 12type Options struct { 13 DisableHTTPS bool 14} 15 16// Resolver S3 Control endpoint resolver 17type Resolver struct { 18 partitions endpoints.Partitions 19} 20 21// ResolveEndpoint resolves the service endpoint for the given region and options 22func (r *Resolver) ResolveEndpoint(region string, options Options) (endpoint aws.Endpoint, err error) { 23 if len(region) == 0 { 24 return endpoint, &aws.MissingRegionError{} 25 } 26 27 opt := endpoints.Options{ 28 DisableHTTPS: options.DisableHTTPS, 29 } 30 return r.partitions.ResolveEndpoint(region, opt) 31} 32 33// New returns a new Resolver 34func New() *Resolver { 35 return &Resolver{ 36 partitions: defaultPartitions, 37 } 38} 39 40var partitionRegexp = struct { 41 Aws *regexp.Regexp 42 AwsCn *regexp.Regexp 43 AwsIso *regexp.Regexp 44 AwsIsoB *regexp.Regexp 45 AwsUsGov *regexp.Regexp 46}{ 47 48 Aws: regexp.MustCompile("^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$"), 49 AwsCn: regexp.MustCompile("^cn\\-\\w+\\-\\d+$"), 50 AwsIso: regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"), 51 AwsIsoB: regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"), 52 AwsUsGov: regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"), 53} 54 55var defaultPartitions = endpoints.Partitions{ 56 { 57 ID: "aws", 58 Defaults: endpoints.Endpoint{ 59 Hostname: "s3-control.{region}.amazonaws.com", 60 Protocols: []string{"https"}, 61 SignatureVersions: []string{"s3v4"}, 62 }, 63 RegionRegex: partitionRegexp.Aws, 64 IsRegionalized: true, 65 Endpoints: endpoints.Endpoints{ 66 "ap-northeast-1": endpoints.Endpoint{ 67 Hostname: "s3-control.ap-northeast-1.amazonaws.com", 68 SignatureVersions: []string{"s3v4"}, 69 CredentialScope: endpoints.CredentialScope{ 70 Region: "ap-northeast-1", 71 }, 72 }, 73 "ap-northeast-2": endpoints.Endpoint{ 74 Hostname: "s3-control.ap-northeast-2.amazonaws.com", 75 SignatureVersions: []string{"s3v4"}, 76 CredentialScope: endpoints.CredentialScope{ 77 Region: "ap-northeast-2", 78 }, 79 }, 80 "ap-northeast-3": endpoints.Endpoint{ 81 Hostname: "s3-control.ap-northeast-3.amazonaws.com", 82 SignatureVersions: []string{"s3v4"}, 83 CredentialScope: endpoints.CredentialScope{ 84 Region: "ap-northeast-3", 85 }, 86 }, 87 "ap-south-1": endpoints.Endpoint{ 88 Hostname: "s3-control.ap-south-1.amazonaws.com", 89 SignatureVersions: []string{"s3v4"}, 90 CredentialScope: endpoints.CredentialScope{ 91 Region: "ap-south-1", 92 }, 93 }, 94 "ap-southeast-1": endpoints.Endpoint{ 95 Hostname: "s3-control.ap-southeast-1.amazonaws.com", 96 SignatureVersions: []string{"s3v4"}, 97 CredentialScope: endpoints.CredentialScope{ 98 Region: "ap-southeast-1", 99 }, 100 }, 101 "ap-southeast-2": endpoints.Endpoint{ 102 Hostname: "s3-control.ap-southeast-2.amazonaws.com", 103 SignatureVersions: []string{"s3v4"}, 104 CredentialScope: endpoints.CredentialScope{ 105 Region: "ap-southeast-2", 106 }, 107 }, 108 "ca-central-1": endpoints.Endpoint{ 109 Hostname: "s3-control.ca-central-1.amazonaws.com", 110 SignatureVersions: []string{"s3v4"}, 111 CredentialScope: endpoints.CredentialScope{ 112 Region: "ca-central-1", 113 }, 114 }, 115 "ca-central-1-fips": endpoints.Endpoint{ 116 Hostname: "s3-control-fips.ca-central-1.amazonaws.com", 117 SignatureVersions: []string{"s3v4"}, 118 CredentialScope: endpoints.CredentialScope{ 119 Region: "ca-central-1", 120 }, 121 }, 122 "eu-central-1": endpoints.Endpoint{ 123 Hostname: "s3-control.eu-central-1.amazonaws.com", 124 SignatureVersions: []string{"s3v4"}, 125 CredentialScope: endpoints.CredentialScope{ 126 Region: "eu-central-1", 127 }, 128 }, 129 "eu-north-1": endpoints.Endpoint{ 130 Hostname: "s3-control.eu-north-1.amazonaws.com", 131 SignatureVersions: []string{"s3v4"}, 132 CredentialScope: endpoints.CredentialScope{ 133 Region: "eu-north-1", 134 }, 135 }, 136 "eu-west-1": endpoints.Endpoint{ 137 Hostname: "s3-control.eu-west-1.amazonaws.com", 138 SignatureVersions: []string{"s3v4"}, 139 CredentialScope: endpoints.CredentialScope{ 140 Region: "eu-west-1", 141 }, 142 }, 143 "eu-west-2": endpoints.Endpoint{ 144 Hostname: "s3-control.eu-west-2.amazonaws.com", 145 SignatureVersions: []string{"s3v4"}, 146 CredentialScope: endpoints.CredentialScope{ 147 Region: "eu-west-2", 148 }, 149 }, 150 "eu-west-3": endpoints.Endpoint{ 151 Hostname: "s3-control.eu-west-3.amazonaws.com", 152 SignatureVersions: []string{"s3v4"}, 153 CredentialScope: endpoints.CredentialScope{ 154 Region: "eu-west-3", 155 }, 156 }, 157 "sa-east-1": endpoints.Endpoint{ 158 Hostname: "s3-control.sa-east-1.amazonaws.com", 159 SignatureVersions: []string{"s3v4"}, 160 CredentialScope: endpoints.CredentialScope{ 161 Region: "sa-east-1", 162 }, 163 }, 164 "us-east-1": endpoints.Endpoint{ 165 Hostname: "s3-control.us-east-1.amazonaws.com", 166 SignatureVersions: []string{"s3v4"}, 167 CredentialScope: endpoints.CredentialScope{ 168 Region: "us-east-1", 169 }, 170 }, 171 "us-east-1-fips": endpoints.Endpoint{ 172 Hostname: "s3-control-fips.us-east-1.amazonaws.com", 173 SignatureVersions: []string{"s3v4"}, 174 CredentialScope: endpoints.CredentialScope{ 175 Region: "us-east-1", 176 }, 177 }, 178 "us-east-2": endpoints.Endpoint{ 179 Hostname: "s3-control.us-east-2.amazonaws.com", 180 SignatureVersions: []string{"s3v4"}, 181 CredentialScope: endpoints.CredentialScope{ 182 Region: "us-east-2", 183 }, 184 }, 185 "us-east-2-fips": endpoints.Endpoint{ 186 Hostname: "s3-control-fips.us-east-2.amazonaws.com", 187 SignatureVersions: []string{"s3v4"}, 188 CredentialScope: endpoints.CredentialScope{ 189 Region: "us-east-2", 190 }, 191 }, 192 "us-west-1": endpoints.Endpoint{ 193 Hostname: "s3-control.us-west-1.amazonaws.com", 194 SignatureVersions: []string{"s3v4"}, 195 CredentialScope: endpoints.CredentialScope{ 196 Region: "us-west-1", 197 }, 198 }, 199 "us-west-1-fips": endpoints.Endpoint{ 200 Hostname: "s3-control-fips.us-west-1.amazonaws.com", 201 SignatureVersions: []string{"s3v4"}, 202 CredentialScope: endpoints.CredentialScope{ 203 Region: "us-west-1", 204 }, 205 }, 206 "us-west-2": endpoints.Endpoint{ 207 Hostname: "s3-control.us-west-2.amazonaws.com", 208 SignatureVersions: []string{"s3v4"}, 209 CredentialScope: endpoints.CredentialScope{ 210 Region: "us-west-2", 211 }, 212 }, 213 "us-west-2-fips": endpoints.Endpoint{ 214 Hostname: "s3-control-fips.us-west-2.amazonaws.com", 215 SignatureVersions: []string{"s3v4"}, 216 CredentialScope: endpoints.CredentialScope{ 217 Region: "us-west-2", 218 }, 219 }, 220 }, 221 }, 222 { 223 ID: "aws-cn", 224 Defaults: endpoints.Endpoint{ 225 Hostname: "s3-control.{region}.amazonaws.com.cn", 226 Protocols: []string{"https"}, 227 SignatureVersions: []string{"s3v4"}, 228 }, 229 RegionRegex: partitionRegexp.AwsCn, 230 IsRegionalized: true, 231 Endpoints: endpoints.Endpoints{ 232 "cn-north-1": endpoints.Endpoint{ 233 Hostname: "s3-control.cn-north-1.amazonaws.com.cn", 234 SignatureVersions: []string{"s3v4"}, 235 CredentialScope: endpoints.CredentialScope{ 236 Region: "cn-north-1", 237 }, 238 }, 239 "cn-northwest-1": endpoints.Endpoint{ 240 Hostname: "s3-control.cn-northwest-1.amazonaws.com.cn", 241 SignatureVersions: []string{"s3v4"}, 242 CredentialScope: endpoints.CredentialScope{ 243 Region: "cn-northwest-1", 244 }, 245 }, 246 }, 247 }, 248 { 249 ID: "aws-iso", 250 Defaults: endpoints.Endpoint{ 251 Hostname: "s3-control.{region}.c2s.ic.gov", 252 Protocols: []string{"https"}, 253 SignatureVersions: []string{"v4"}, 254 }, 255 RegionRegex: partitionRegexp.AwsIso, 256 IsRegionalized: true, 257 }, 258 { 259 ID: "aws-iso-b", 260 Defaults: endpoints.Endpoint{ 261 Hostname: "s3-control.{region}.sc2s.sgov.gov", 262 Protocols: []string{"https"}, 263 SignatureVersions: []string{"v4"}, 264 }, 265 RegionRegex: partitionRegexp.AwsIsoB, 266 IsRegionalized: true, 267 }, 268 { 269 ID: "aws-us-gov", 270 Defaults: endpoints.Endpoint{ 271 Hostname: "s3-control.{region}.amazonaws.com", 272 Protocols: []string{"https"}, 273 SignatureVersions: []string{"s3v4"}, 274 }, 275 RegionRegex: partitionRegexp.AwsUsGov, 276 IsRegionalized: true, 277 Endpoints: endpoints.Endpoints{ 278 "us-gov-east-1": endpoints.Endpoint{ 279 Hostname: "s3-control.us-gov-east-1.amazonaws.com", 280 SignatureVersions: []string{"s3v4"}, 281 CredentialScope: endpoints.CredentialScope{ 282 Region: "us-gov-east-1", 283 }, 284 }, 285 "us-gov-east-1-fips": endpoints.Endpoint{ 286 Hostname: "s3-control-fips.us-gov-east-1.amazonaws.com", 287 SignatureVersions: []string{"s3v4"}, 288 CredentialScope: endpoints.CredentialScope{ 289 Region: "us-gov-east-1", 290 }, 291 }, 292 "us-gov-west-1": endpoints.Endpoint{ 293 Hostname: "s3-control.us-gov-west-1.amazonaws.com", 294 SignatureVersions: []string{"s3v4"}, 295 CredentialScope: endpoints.CredentialScope{ 296 Region: "us-gov-west-1", 297 }, 298 }, 299 "us-gov-west-1-fips": endpoints.Endpoint{ 300 Hostname: "s3-control-fips.us-gov-west-1.amazonaws.com", 301 SignatureVersions: []string{"s3v4"}, 302 CredentialScope: endpoints.CredentialScope{ 303 Region: "us-gov-west-1", 304 }, 305 }, 306 }, 307 }, 308} 309