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 Service Catalog 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 defaultPartitions = endpoints.Partitions{
41	{
42		ID: "aws",
43		Defaults: endpoints.Endpoint{
44			Hostname:          "servicecatalog.{region}.amazonaws.com",
45			Protocols:         []string{"https"},
46			SignatureVersions: []string{"v4"},
47		},
48		RegionRegex:    regexp.MustCompile("^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$"),
49		IsRegionalized: true,
50		Endpoints: endpoints.Endpoints{
51			"af-south-1":     endpoints.Endpoint{},
52			"ap-east-1":      endpoints.Endpoint{},
53			"ap-northeast-1": endpoints.Endpoint{},
54			"ap-northeast-2": endpoints.Endpoint{},
55			"ap-south-1":     endpoints.Endpoint{},
56			"ap-southeast-1": endpoints.Endpoint{},
57			"ap-southeast-2": endpoints.Endpoint{},
58			"ca-central-1":   endpoints.Endpoint{},
59			"eu-central-1":   endpoints.Endpoint{},
60			"eu-north-1":     endpoints.Endpoint{},
61			"eu-south-1":     endpoints.Endpoint{},
62			"eu-west-1":      endpoints.Endpoint{},
63			"eu-west-2":      endpoints.Endpoint{},
64			"eu-west-3":      endpoints.Endpoint{},
65			"me-south-1":     endpoints.Endpoint{},
66			"sa-east-1":      endpoints.Endpoint{},
67			"us-east-1":      endpoints.Endpoint{},
68			"us-east-1-fips": endpoints.Endpoint{
69				Hostname: "servicecatalog-fips.us-east-1.amazonaws.com",
70				CredentialScope: endpoints.CredentialScope{
71					Region: "us-east-1",
72				},
73			},
74			"us-east-2": endpoints.Endpoint{},
75			"us-east-2-fips": endpoints.Endpoint{
76				Hostname: "servicecatalog-fips.us-east-2.amazonaws.com",
77				CredentialScope: endpoints.CredentialScope{
78					Region: "us-east-2",
79				},
80			},
81			"us-west-1": endpoints.Endpoint{},
82			"us-west-1-fips": endpoints.Endpoint{
83				Hostname: "servicecatalog-fips.us-west-1.amazonaws.com",
84				CredentialScope: endpoints.CredentialScope{
85					Region: "us-west-1",
86				},
87			},
88			"us-west-2": endpoints.Endpoint{},
89			"us-west-2-fips": endpoints.Endpoint{
90				Hostname: "servicecatalog-fips.us-west-2.amazonaws.com",
91				CredentialScope: endpoints.CredentialScope{
92					Region: "us-west-2",
93				},
94			},
95		},
96	},
97	{
98		ID: "aws-cn",
99		Defaults: endpoints.Endpoint{
100			Hostname:          "servicecatalog.{region}.amazonaws.com.cn",
101			Protocols:         []string{"https"},
102			SignatureVersions: []string{"v4"},
103		},
104		RegionRegex:    regexp.MustCompile("^cn\\-\\w+\\-\\d+$"),
105		IsRegionalized: true,
106	},
107	{
108		ID: "aws-iso",
109		Defaults: endpoints.Endpoint{
110			Hostname:          "servicecatalog.{region}.c2s.ic.gov",
111			Protocols:         []string{"https"},
112			SignatureVersions: []string{"v4"},
113		},
114		RegionRegex:    regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"),
115		IsRegionalized: true,
116	},
117	{
118		ID: "aws-iso-b",
119		Defaults: endpoints.Endpoint{
120			Hostname:          "servicecatalog.{region}.sc2s.sgov.gov",
121			Protocols:         []string{"https"},
122			SignatureVersions: []string{"v4"},
123		},
124		RegionRegex:    regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"),
125		IsRegionalized: true,
126	},
127	{
128		ID: "aws-us-gov",
129		Defaults: endpoints.Endpoint{
130			Hostname:          "servicecatalog.{region}.amazonaws.com",
131			Protocols:         []string{"https"},
132			SignatureVersions: []string{"v4"},
133		},
134		RegionRegex:    regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"),
135		IsRegionalized: true,
136		Endpoints: endpoints.Endpoints{
137			"us-gov-east-1": endpoints.Endpoint{},
138			"us-gov-east-1-fips": endpoints.Endpoint{
139				Hostname: "servicecatalog-fips.us-gov-east-1.amazonaws.com",
140				CredentialScope: endpoints.CredentialScope{
141					Region: "us-gov-east-1",
142				},
143			},
144			"us-gov-west-1": endpoints.Endpoint{},
145			"us-gov-west-1-fips": endpoints.Endpoint{
146				Hostname: "servicecatalog-fips.us-gov-west-1.amazonaws.com",
147				CredentialScope: endpoints.CredentialScope{
148					Region: "us-gov-west-1",
149				},
150			},
151		},
152	},
153}
154