forked from kubernetes-sigs/aws-load-balancer-controller
/
wafregional.go
35 lines (29 loc) · 959 Bytes
/
wafregional.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package services
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/endpoints"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/wafregional"
"github.com/aws/aws-sdk-go/service/wafregional/wafregionaliface"
)
type WAFRegional interface {
wafregionaliface.WAFRegionalAPI
Available() bool
}
// NewWAFRegional constructs new WAFRegional implementation.
func NewWAFRegional(session *session.Session, region string) WAFRegional {
return &defaultWAFRegional{
WAFRegionalAPI: wafregional.New(session, aws.NewConfig().WithRegion(region)),
region: region,
}
}
// default implementation for WAFRegional.
type defaultWAFRegional struct {
wafregionaliface.WAFRegionalAPI
region string
}
func (c *defaultWAFRegional) Available() bool {
resolver := endpoints.DefaultResolver()
_, err := resolver.EndpointFor(wafregional.EndpointsID, c.region, endpoints.StrictMatchingOption)
return err == nil
}