forked from hashicorp/terraform-provider-aws
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathservice_endpoint_resolver_gen.go
82 lines (67 loc) · 2.26 KB
/
service_endpoint_resolver_gen.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// Code generated by internal/generate/servicepackage/main.go; DO NOT EDIT.
package greengrass
import (
"context"
"fmt"
"net"
aws_sdkv2 "github.com/aws/aws-sdk-go-v2/aws"
greengrass_sdkv2 "github.com/aws/aws-sdk-go-v2/service/greengrass"
smithyendpoints "github.com/aws/smithy-go/endpoints"
"github.com/hashicorp/terraform-plugin-log/tflog"
"github.com/hashicorp/terraform-provider-aws/internal/errs"
)
var _ greengrass_sdkv2.EndpointResolverV2 = resolverSDKv2{}
type resolverSDKv2 struct {
defaultResolver greengrass_sdkv2.EndpointResolverV2
}
func newEndpointResolverSDKv2() resolverSDKv2 {
return resolverSDKv2{
defaultResolver: greengrass_sdkv2.NewDefaultEndpointResolverV2(),
}
}
func (r resolverSDKv2) ResolveEndpoint(ctx context.Context, params greengrass_sdkv2.EndpointParameters) (endpoint smithyendpoints.Endpoint, err error) {
params = params.WithDefaults()
useFIPS := aws_sdkv2.ToBool(params.UseFIPS)
if eps := params.Endpoint; aws_sdkv2.ToString(eps) != "" {
tflog.Debug(ctx, "setting endpoint", map[string]any{
"tf_aws.endpoint": endpoint,
})
if useFIPS {
tflog.Debug(ctx, "endpoint set, ignoring UseFIPSEndpoint setting")
params.UseFIPS = aws_sdkv2.Bool(false)
}
return r.defaultResolver.ResolveEndpoint(ctx, params)
} else if useFIPS {
ctx = tflog.SetField(ctx, "tf_aws.use_fips", useFIPS)
endpoint, err = r.defaultResolver.ResolveEndpoint(ctx, params)
if err != nil {
return endpoint, err
}
tflog.Debug(ctx, "endpoint resolved", map[string]any{
"tf_aws.endpoint": endpoint.URI.String(),
})
hostname := endpoint.URI.Hostname()
_, err = net.LookupHost(hostname)
if err != nil {
if dnsErr, ok := errs.As[*net.DNSError](err); ok && dnsErr.IsNotFound {
tflog.Debug(ctx, "default endpoint host not found, disabling FIPS", map[string]any{
"tf_aws.hostname": hostname,
})
params.UseFIPS = aws_sdkv2.Bool(false)
} else {
err = fmt.Errorf("looking up greengrass endpoint %q: %s", hostname, err)
return
}
} else {
return endpoint, err
}
}
return r.defaultResolver.ResolveEndpoint(ctx, params)
}
func withBaseEndpoint(endpoint string) func(*greengrass_sdkv2.Options) {
return func(o *greengrass_sdkv2.Options) {
if endpoint != "" {
o.BaseEndpoint = aws_sdkv2.String(endpoint)
}
}
}