in service/dynamodb/endpoints.go [349:725]
func (r *resolver) ResolveEndpoint(
ctx context.Context, params EndpointParameters,
) (
endpoint smithyendpoints.Endpoint, err error,
) {
params = params.WithDefaults()
if err = params.ValidateRequired(); err != nil {
return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err)
}
_UseDualStack := *params.UseDualStack
_UseFIPS := *params.UseFIPS
if exprVal := params.Endpoint; exprVal != nil {
_Endpoint := *exprVal
_ = _Endpoint
if _UseFIPS == true {
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: FIPS and custom endpoint are not supported")
}
if _UseDualStack == true {
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: Dualstack and custom endpoint are not supported")
}
uriString := _Endpoint
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
}, nil
}
if exprVal := params.Region; exprVal != nil {
_Region := *exprVal
_ = _Region
if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
_PartitionResult := *exprVal
_ = _PartitionResult
if _Region == "local" {
if _UseFIPS == true {
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: FIPS and local endpoint are not supported")
}
if _UseDualStack == true {
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: Dualstack and local endpoint are not supported")
}
uriString := "http://localhost:8000"
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
Properties: func() smithy.Properties {
var out smithy.Properties
smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
{
SchemeID: "aws.auth#sigv4",
SignerProperties: func() smithy.Properties {
var sp smithy.Properties
smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1")
smithyhttp.SetSigV4SigningName(&sp, "dynamodb")
smithyhttp.SetSigV4ASigningName(&sp, "dynamodb")
return sp
}(),
},
})
return out
}(),
}, nil
}
if _UseFIPS == true {
if _UseDualStack == true {
if _PartitionResult.SupportsFIPS == true {
if _PartitionResult.SupportsDualStack == true {
if exprVal := params.AccountIdEndpointMode; exprVal != nil {
_AccountIdEndpointMode := *exprVal
_ = _AccountIdEndpointMode
if _AccountIdEndpointMode == "required" {
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported")
}
}
uriString := func() string {
var out strings.Builder
out.WriteString("https://dynamodb-fips.")
out.WriteString(_Region)
out.WriteString(".")
out.WriteString(_PartitionResult.DualStackDnsSuffix)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
}, nil
}
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "FIPS and DualStack are enabled, but this partition does not support one or both")
}
}
if _UseFIPS == true {
if _PartitionResult.SupportsFIPS == true {
if _PartitionResult.Name == "aws-us-gov" {
if exprVal := params.AccountIdEndpointMode; exprVal != nil {
_AccountIdEndpointMode := *exprVal
_ = _AccountIdEndpointMode
if _AccountIdEndpointMode == "required" {
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported")
}
}
uriString := func() string {
var out strings.Builder
out.WriteString("https://dynamodb.")
out.WriteString(_Region)
out.WriteString(".")
out.WriteString(_PartitionResult.DnsSuffix)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
}, nil
}
if exprVal := params.AccountIdEndpointMode; exprVal != nil {
_AccountIdEndpointMode := *exprVal
_ = _AccountIdEndpointMode
if _AccountIdEndpointMode == "required" {
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported")
}
}
uriString := func() string {
var out strings.Builder
out.WriteString("https://dynamodb-fips.")
out.WriteString(_Region)
out.WriteString(".")
out.WriteString(_PartitionResult.DnsSuffix)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
}, nil
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "FIPS is enabled but this partition does not support FIPS")
}
if _UseDualStack == true {
if _PartitionResult.SupportsDualStack == true {
if exprVal := params.AccountIdEndpointMode; exprVal != nil {
_AccountIdEndpointMode := *exprVal
_ = _AccountIdEndpointMode
if _AccountIdEndpointMode == "required" {
if !(_UseFIPS == true) {
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: AccountIdEndpointMode is required and DualStack is enabled, but DualStack account endpoints are not supported")
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported")
}
}
uriString := func() string {
var out strings.Builder
out.WriteString("https://dynamodb.")
out.WriteString(_Region)
out.WriteString(".")
out.WriteString(_PartitionResult.DualStackDnsSuffix)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
}, nil
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "DualStack is enabled but this partition does not support DualStack")
}
if exprVal := params.AccountIdEndpointMode; exprVal != nil {
_AccountIdEndpointMode := *exprVal
_ = _AccountIdEndpointMode
if !(_AccountIdEndpointMode == "disabled") {
if _PartitionResult.Name == "aws" {
if !(_UseFIPS == true) {
if !(_UseDualStack == true) {
if exprVal := params.ResourceArn; exprVal != nil {
_ResourceArn := *exprVal
_ = _ResourceArn
if exprVal := awsrulesfn.ParseARN(_ResourceArn); exprVal != nil {
_ParsedArn := *exprVal
_ = _ParsedArn
if _ParsedArn.Service == "dynamodb" {
if rulesfn.IsValidHostLabel(_ParsedArn.Region, false) {
if _ParsedArn.Region == _Region {
if rulesfn.IsValidHostLabel(_ParsedArn.AccountId, false) {
uriString := func() string {
var out strings.Builder
out.WriteString("https://")
out.WriteString(_ParsedArn.AccountId)
out.WriteString(".ddb.")
out.WriteString(_Region)
out.WriteString(".")
out.WriteString(_PartitionResult.DnsSuffix)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
}, nil
}
}
}
}
}
}
}
}
}
}
}
if exprVal := params.AccountIdEndpointMode; exprVal != nil {
_AccountIdEndpointMode := *exprVal
_ = _AccountIdEndpointMode
if !(_AccountIdEndpointMode == "disabled") {
if _PartitionResult.Name == "aws" {
if !(_UseFIPS == true) {
if !(_UseDualStack == true) {
if exprVal := params.ResourceArnList; exprVal != nil {
_ResourceArnList := stringSlice(exprVal)
_ = _ResourceArnList
if exprVal := _ResourceArnList.Get(0); exprVal != nil {
_FirstArn := *exprVal
_ = _FirstArn
if exprVal := awsrulesfn.ParseARN(_FirstArn); exprVal != nil {
_ParsedArn := *exprVal
_ = _ParsedArn
if _ParsedArn.Service == "dynamodb" {
if rulesfn.IsValidHostLabel(_ParsedArn.Region, false) {
if _ParsedArn.Region == _Region {
if rulesfn.IsValidHostLabel(_ParsedArn.AccountId, false) {
uriString := func() string {
var out strings.Builder
out.WriteString("https://")
out.WriteString(_ParsedArn.AccountId)
out.WriteString(".ddb.")
out.WriteString(_Region)
out.WriteString(".")
out.WriteString(_PartitionResult.DnsSuffix)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
}, nil
}
}
}
}
}
}
}
}
}
}
}
}
if exprVal := params.AccountIdEndpointMode; exprVal != nil {
_AccountIdEndpointMode := *exprVal
_ = _AccountIdEndpointMode
if !(_AccountIdEndpointMode == "disabled") {
if _PartitionResult.Name == "aws" {
if !(_UseFIPS == true) {
if !(_UseDualStack == true) {
if exprVal := params.AccountId; exprVal != nil {
_AccountId := *exprVal
_ = _AccountId
if rulesfn.IsValidHostLabel(_AccountId, false) {
uriString := func() string {
var out strings.Builder
out.WriteString("https://")
out.WriteString(_AccountId)
out.WriteString(".ddb.")
out.WriteString(_Region)
out.WriteString(".")
out.WriteString(_PartitionResult.DnsSuffix)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
}, nil
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "Credentials-sourced account ID parameter is invalid")
}
}
}
}
}
}
if exprVal := params.AccountIdEndpointMode; exprVal != nil {
_AccountIdEndpointMode := *exprVal
_ = _AccountIdEndpointMode
if _AccountIdEndpointMode == "required" {
if !(_UseFIPS == true) {
if !(_UseDualStack == true) {
if _PartitionResult.Name == "aws" {
return endpoint, fmt.Errorf("endpoint rule error, %s", "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded")
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: AccountIdEndpointMode is required but account endpoints are not supported in this partition")
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: AccountIdEndpointMode is required and DualStack is enabled, but DualStack account endpoints are not supported")
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported")
}
}
uriString := func() string {
var out strings.Builder
out.WriteString("https://dynamodb.")
out.WriteString(_Region)
out.WriteString(".")
out.WriteString(_PartitionResult.DnsSuffix)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
}, nil
}
return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: Missing Region")
}