File: //opt/go/pkg/mod/github.com/aws/
[email protected]/private/model/api/endpoint_arn.go
package api
import "text/template"
const endpointARNShapeTmplDef = `
{{- define "endpointARNShapeTmpl" }}
{{ range $_, $name := $.MemberNames -}}
{{ $elem := index $.MemberRefs $name -}}
{{ if $elem.EndpointARN -}}
func (s *{{ $.ShapeName }}) getEndpointARN() (arn.Resource, error) {
if s.{{ $name }} == nil {
return nil, fmt.Errorf("member {{ $name }} is nil")
}
return parseEndpointARN(*s.{{ $name }})
}
func (s *{{ $.ShapeName }}) hasEndpointARN() bool {
if s.{{ $name }} == nil {
return false
}
return arn.IsARN(*s.{{ $name }})
}
// updateArnableField updates the value of the input field that
// takes an ARN as an input. This method is useful to backfill
// the parsed resource name from ARN into the input member.
// It returns a pointer to a modified copy of input and an error.
// Note that original input is not modified.
func (s {{ $.ShapeName }}) updateArnableField(v string) (interface{}, error) {
if s.{{ $name }} == nil {
return nil, fmt.Errorf("member {{ $name }} is nil")
}
s.{{ $name }} = aws.String(v)
return &s, nil
}
{{ end -}}
{{ end }}
{{ end }}
`
var endpointARNShapeTmpl = template.Must(
template.New("endpointARNShapeTmpl").
Parse(endpointARNShapeTmplDef),
)
const outpostIDShapeTmplDef = `
{{- define "outpostIDShapeTmpl" }}
{{ range $_, $name := $.MemberNames -}}
{{ $elem := index $.MemberRefs $name -}}
{{ if $elem.OutpostIDMember -}}
func (s *{{ $.ShapeName }}) getOutpostID() (string, error) {
if s.{{ $name }} == nil {
return "", fmt.Errorf("member {{ $name }} is nil")
}
return *s.{{ $name }}, nil
}
func (s *{{ $.ShapeName }}) hasOutpostID() bool {
if s.{{ $name }} == nil {
return false
}
return true
}
{{ end -}}
{{ end }}
{{ end }}
`
var outpostIDShapeTmpl = template.Must(
template.New("outpostIDShapeTmpl").
Parse(outpostIDShapeTmplDef),
)
const accountIDWithARNShapeTmplDef = `
{{- define "accountIDWithARNShapeTmpl" }}
{{ range $_, $name := $.MemberNames -}}
{{ $elem := index $.MemberRefs $name -}}
{{ if $elem.AccountIDMemberWithARN -}}
{{ $FunctionName := $name }}
{{ if eq $name "AccountId" }}
{{ $FunctionName = "AccountID" }}
{{ end }}
// update{{ $FunctionName }} returns a pointer to a modified copy of input,
// if account id is not provided, we update the account id in modified input
// if account id is provided, but doesn't match with the one in ARN, we throw an error
// if account id is not updated, we return nil. Note that original input is not modified.
func (s {{ $.ShapeName }}) update{{ $FunctionName }}(accountId string) (interface{}, error) {
if s.{{ $name }} == nil {
s.{{ $name }} = aws.String(accountId)
return &s, nil
} else if *s.{{ $name }} != accountId {
return &s, fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field")
}
return nil, nil
}
{{ end -}}
{{ end }}
{{ end }}
`
var accountIDWithARNShapeTmpl = template.Must(
template.New("accountIDWithARNShapeTmpl").
Parse(accountIDWithARNShapeTmplDef),
)