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 MediaConnect 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:          "mediaconnect.{region}.amazonaws.com",
60			Protocols:         []string{"https"},
61			SignatureVersions: []string{"v4"},
62		},
63		RegionRegex:    partitionRegexp.Aws,
64		IsRegionalized: true,
65		Endpoints: endpoints.Endpoints{
66			"ap-east-1":      endpoints.Endpoint{},
67			"ap-northeast-1": endpoints.Endpoint{},
68			"ap-northeast-2": endpoints.Endpoint{},
69			"ap-south-1":     endpoints.Endpoint{},
70			"ap-southeast-1": endpoints.Endpoint{},
71			"ap-southeast-2": endpoints.Endpoint{},
72			"eu-central-1":   endpoints.Endpoint{},
73			"eu-north-1":     endpoints.Endpoint{},
74			"eu-west-1":      endpoints.Endpoint{},
75			"eu-west-2":      endpoints.Endpoint{},
76			"eu-west-3":      endpoints.Endpoint{},
77			"sa-east-1":      endpoints.Endpoint{},
78			"us-east-1":      endpoints.Endpoint{},
79			"us-east-2":      endpoints.Endpoint{},
80			"us-west-1":      endpoints.Endpoint{},
81			"us-west-2":      endpoints.Endpoint{},
82		},
83	},
84	{
85		ID: "aws-cn",
86		Defaults: endpoints.Endpoint{
87			Hostname:          "mediaconnect.{region}.amazonaws.com.cn",
88			Protocols:         []string{"https"},
89			SignatureVersions: []string{"v4"},
90		},
91		RegionRegex:    partitionRegexp.AwsCn,
92		IsRegionalized: true,
93	},
94	{
95		ID: "aws-iso",
96		Defaults: endpoints.Endpoint{
97			Hostname:          "mediaconnect.{region}.c2s.ic.gov",
98			Protocols:         []string{"https"},
99			SignatureVersions: []string{"v4"},
100		},
101		RegionRegex:    partitionRegexp.AwsIso,
102		IsRegionalized: true,
103	},
104	{
105		ID: "aws-iso-b",
106		Defaults: endpoints.Endpoint{
107			Hostname:          "mediaconnect.{region}.sc2s.sgov.gov",
108			Protocols:         []string{"https"},
109			SignatureVersions: []string{"v4"},
110		},
111		RegionRegex:    partitionRegexp.AwsIsoB,
112		IsRegionalized: true,
113	},
114	{
115		ID: "aws-us-gov",
116		Defaults: endpoints.Endpoint{
117			Hostname:          "mediaconnect.{region}.amazonaws.com",
118			Protocols:         []string{"https"},
119			SignatureVersions: []string{"v4"},
120		},
121		RegionRegex:    partitionRegexp.AwsUsGov,
122		IsRegionalized: true,
123	},
124}
125