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 SSO OIDC 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:          "oidc.{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			"ap-northeast-1": endpoints.Endpoint{
52				Hostname: "oidc.ap-northeast-1.amazonaws.com",
53				CredentialScope: endpoints.CredentialScope{
54					Region: "ap-northeast-1",
55				},
56			},
57			"ap-northeast-2": endpoints.Endpoint{
58				Hostname: "oidc.ap-northeast-2.amazonaws.com",
59				CredentialScope: endpoints.CredentialScope{
60					Region: "ap-northeast-2",
61				},
62			},
63			"ap-south-1": endpoints.Endpoint{
64				Hostname: "oidc.ap-south-1.amazonaws.com",
65				CredentialScope: endpoints.CredentialScope{
66					Region: "ap-south-1",
67				},
68			},
69			"ap-southeast-1": endpoints.Endpoint{
70				Hostname: "oidc.ap-southeast-1.amazonaws.com",
71				CredentialScope: endpoints.CredentialScope{
72					Region: "ap-southeast-1",
73				},
74			},
75			"ap-southeast-2": endpoints.Endpoint{
76				Hostname: "oidc.ap-southeast-2.amazonaws.com",
77				CredentialScope: endpoints.CredentialScope{
78					Region: "ap-southeast-2",
79				},
80			},
81			"ca-central-1": endpoints.Endpoint{
82				Hostname: "oidc.ca-central-1.amazonaws.com",
83				CredentialScope: endpoints.CredentialScope{
84					Region: "ca-central-1",
85				},
86			},
87			"eu-central-1": endpoints.Endpoint{
88				Hostname: "oidc.eu-central-1.amazonaws.com",
89				CredentialScope: endpoints.CredentialScope{
90					Region: "eu-central-1",
91				},
92			},
93			"eu-north-1": endpoints.Endpoint{
94				Hostname: "oidc.eu-north-1.amazonaws.com",
95				CredentialScope: endpoints.CredentialScope{
96					Region: "eu-north-1",
97				},
98			},
99			"eu-west-1": endpoints.Endpoint{
100				Hostname: "oidc.eu-west-1.amazonaws.com",
101				CredentialScope: endpoints.CredentialScope{
102					Region: "eu-west-1",
103				},
104			},
105			"eu-west-2": endpoints.Endpoint{
106				Hostname: "oidc.eu-west-2.amazonaws.com",
107				CredentialScope: endpoints.CredentialScope{
108					Region: "eu-west-2",
109				},
110			},
111			"us-east-1": endpoints.Endpoint{
112				Hostname: "oidc.us-east-1.amazonaws.com",
113				CredentialScope: endpoints.CredentialScope{
114					Region: "us-east-1",
115				},
116			},
117			"us-east-2": endpoints.Endpoint{
118				Hostname: "oidc.us-east-2.amazonaws.com",
119				CredentialScope: endpoints.CredentialScope{
120					Region: "us-east-2",
121				},
122			},
123			"us-west-2": endpoints.Endpoint{
124				Hostname: "oidc.us-west-2.amazonaws.com",
125				CredentialScope: endpoints.CredentialScope{
126					Region: "us-west-2",
127				},
128			},
129		},
130	},
131	{
132		ID: "aws-cn",
133		Defaults: endpoints.Endpoint{
134			Hostname:          "oidc.{region}.amazonaws.com.cn",
135			Protocols:         []string{"https"},
136			SignatureVersions: []string{"v4"},
137		},
138		RegionRegex:    regexp.MustCompile("^cn\\-\\w+\\-\\d+$"),
139		IsRegionalized: true,
140	},
141	{
142		ID: "aws-iso",
143		Defaults: endpoints.Endpoint{
144			Hostname:          "oidc.{region}.c2s.ic.gov",
145			Protocols:         []string{"https"},
146			SignatureVersions: []string{"v4"},
147		},
148		RegionRegex:    regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"),
149		IsRegionalized: true,
150	},
151	{
152		ID: "aws-iso-b",
153		Defaults: endpoints.Endpoint{
154			Hostname:          "oidc.{region}.sc2s.sgov.gov",
155			Protocols:         []string{"https"},
156			SignatureVersions: []string{"v4"},
157		},
158		RegionRegex:    regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"),
159		IsRegionalized: true,
160	},
161	{
162		ID: "aws-us-gov",
163		Defaults: endpoints.Endpoint{
164			Hostname:          "oidc.{region}.amazonaws.com",
165			Protocols:         []string{"https"},
166			SignatureVersions: []string{"v4"},
167		},
168		RegionRegex:    regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"),
169		IsRegionalized: true,
170	},
171}
172