This commit is contained in:
2018-11-16 23:52:12 +08:00
parent e525ac65fe
commit 2131f91c44
172 changed files with 50784 additions and 4 deletions
File diff suppressed because it is too large Load Diff
+42
View File
@@ -0,0 +1,42 @@
package route53
import (
"net/url"
"regexp"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/private/protocol/restxml"
)
func init() {
initClient = func(c *client.Client) {
c.Handlers.Build.PushBack(sanitizeURL)
}
initRequest = func(r *request.Request) {
switch r.Operation.Name {
case opChangeResourceRecordSets:
r.Handlers.UnmarshalError.Remove(restxml.UnmarshalErrorHandler)
r.Handlers.UnmarshalError.PushBack(unmarshalChangeResourceRecordSetsError)
}
}
}
var reSanitizeURL = regexp.MustCompile(`\/%2F\w+%2F`)
func sanitizeURL(r *request.Request) {
r.HTTPRequest.URL.RawPath =
reSanitizeURL.ReplaceAllString(r.HTTPRequest.URL.RawPath, "/")
// Update Path so that it reflects the cleaned RawPath
updated, err := url.Parse(r.HTTPRequest.URL.RawPath)
if err != nil {
r.Error = awserr.New("SerializationError", "failed to clean Route53 URL", err)
return
}
// Take the updated path so the requests's URL Path has parity with RawPath.
r.HTTPRequest.URL.Path = updated.Path
}
+26
View File
@@ -0,0 +1,26 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
// Package route53 provides the client and types for making API
// requests to Amazon Route 53.
//
// See https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01 for more information on this service.
//
// See route53 package documentation for more information.
// https://docs.aws.amazon.com/sdk-for-go/api/service/route53/
//
// Using the Client
//
// To contact Amazon Route 53 with the SDK use the New function to create
// a new service client. With that client you can make API requests to the service.
// These clients are safe to use concurrently.
//
// See the SDK's documentation for more information on how to use the SDK.
// https://docs.aws.amazon.com/sdk-for-go/api/
//
// See aws.Config documentation for more information on configuring SDK clients.
// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config
//
// See the Amazon Route 53 client Route53 for more
// information on creating client for this service.
// https://docs.aws.amazon.com/sdk-for-go/api/service/route53/#New
package route53
+435
View File
@@ -0,0 +1,435 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package route53
const (
// ErrCodeConcurrentModification for service response error code
// "ConcurrentModification".
//
// Another user submitted a request to create, update, or delete the object
// at the same time that you did. Retry the request.
ErrCodeConcurrentModification = "ConcurrentModification"
// ErrCodeConflictingDomainExists for service response error code
// "ConflictingDomainExists".
//
// The cause of this error depends on whether you're trying to create a public
// or a private hosted zone:
//
// * Public hosted zone: Two hosted zones that have the same name or that
// have a parent/child relationship (example.com and test.example.com) can't
// have any common name servers. You tried to create a hosted zone that has
// the same name as an existing hosted zone or that's the parent or child
// of an existing hosted zone, and you specified a delegation set that shares
// one or more name servers with the existing hosted zone. For more information,
// see CreateReusableDelegationSet.
//
// * Private hosted zone: You specified an Amazon VPC that you're already
// using for another hosted zone, and the domain that you specified for one
// of the hosted zones is a subdomain of the domain that you specified for
// the other hosted zone. For example, you can't use the same Amazon VPC
// for the hosted zones for example.com and test.example.com.
ErrCodeConflictingDomainExists = "ConflictingDomainExists"
// ErrCodeConflictingTypes for service response error code
// "ConflictingTypes".
//
// You tried to update a traffic policy instance by using a traffic policy version
// that has a different DNS type than the current type for the instance. You
// specified the type in the JSON document in the CreateTrafficPolicy or CreateTrafficPolicyVersionrequest.
ErrCodeConflictingTypes = "ConflictingTypes"
// ErrCodeDelegationSetAlreadyCreated for service response error code
// "DelegationSetAlreadyCreated".
//
// A delegation set with the same owner and caller reference combination has
// already been created.
ErrCodeDelegationSetAlreadyCreated = "DelegationSetAlreadyCreated"
// ErrCodeDelegationSetAlreadyReusable for service response error code
// "DelegationSetAlreadyReusable".
//
// The specified delegation set has already been marked as reusable.
ErrCodeDelegationSetAlreadyReusable = "DelegationSetAlreadyReusable"
// ErrCodeDelegationSetInUse for service response error code
// "DelegationSetInUse".
//
// The specified delegation contains associated hosted zones which must be deleted
// before the reusable delegation set can be deleted.
ErrCodeDelegationSetInUse = "DelegationSetInUse"
// ErrCodeDelegationSetNotAvailable for service response error code
// "DelegationSetNotAvailable".
//
// You can create a hosted zone that has the same name as an existing hosted
// zone (example.com is common), but there is a limit to the number of hosted
// zones that have the same name. If you get this error, Amazon Route 53 has
// reached that limit. If you own the domain name and Route 53 generates this
// error, contact Customer Support.
ErrCodeDelegationSetNotAvailable = "DelegationSetNotAvailable"
// ErrCodeDelegationSetNotReusable for service response error code
// "DelegationSetNotReusable".
//
// A reusable delegation set with the specified ID does not exist.
ErrCodeDelegationSetNotReusable = "DelegationSetNotReusable"
// ErrCodeHealthCheckAlreadyExists for service response error code
// "HealthCheckAlreadyExists".
//
// The health check you're attempting to create already exists. Amazon Route
// 53 returns this error when you submit a request that has the following values:
//
// * The same value for CallerReference as an existing health check, and
// one or more values that differ from the existing health check that has
// the same caller reference.
//
// * The same value for CallerReference as a health check that you created
// and later deleted, regardless of the other settings in the request.
ErrCodeHealthCheckAlreadyExists = "HealthCheckAlreadyExists"
// ErrCodeHealthCheckInUse for service response error code
// "HealthCheckInUse".
//
// This error code is not in use.
ErrCodeHealthCheckInUse = "HealthCheckInUse"
// ErrCodeHealthCheckVersionMismatch for service response error code
// "HealthCheckVersionMismatch".
//
// The value of HealthCheckVersion in the request doesn't match the value of
// HealthCheckVersion in the health check.
ErrCodeHealthCheckVersionMismatch = "HealthCheckVersionMismatch"
// ErrCodeHostedZoneAlreadyExists for service response error code
// "HostedZoneAlreadyExists".
//
// The hosted zone you're trying to create already exists. Amazon Route 53 returns
// this error when a hosted zone has already been created with the specified
// CallerReference.
ErrCodeHostedZoneAlreadyExists = "HostedZoneAlreadyExists"
// ErrCodeHostedZoneNotEmpty for service response error code
// "HostedZoneNotEmpty".
//
// The hosted zone contains resource records that are not SOA or NS records.
ErrCodeHostedZoneNotEmpty = "HostedZoneNotEmpty"
// ErrCodeHostedZoneNotFound for service response error code
// "HostedZoneNotFound".
//
// The specified HostedZone can't be found.
ErrCodeHostedZoneNotFound = "HostedZoneNotFound"
// ErrCodeHostedZoneNotPrivate for service response error code
// "HostedZoneNotPrivate".
//
// The specified hosted zone is a public hosted zone, not a private hosted zone.
ErrCodeHostedZoneNotPrivate = "HostedZoneNotPrivate"
// ErrCodeIncompatibleVersion for service response error code
// "IncompatibleVersion".
//
// The resource you're trying to access is unsupported on this Amazon Route
// 53 endpoint.
ErrCodeIncompatibleVersion = "IncompatibleVersion"
// ErrCodeInsufficientCloudWatchLogsResourcePolicy for service response error code
// "InsufficientCloudWatchLogsResourcePolicy".
//
// Amazon Route 53 doesn't have the permissions required to create log streams
// and send query logs to log streams. Possible causes include the following:
//
// * There is no resource policy that specifies the log group ARN in the
// value for Resource.
//
// * The resource policy that includes the log group ARN in the value for
// Resource doesn't have the necessary permissions.
//
// * The resource policy hasn't finished propagating yet.
ErrCodeInsufficientCloudWatchLogsResourcePolicy = "InsufficientCloudWatchLogsResourcePolicy"
// ErrCodeInvalidArgument for service response error code
// "InvalidArgument".
//
// Parameter name is invalid.
ErrCodeInvalidArgument = "InvalidArgument"
// ErrCodeInvalidChangeBatch for service response error code
// "InvalidChangeBatch".
//
// This exception contains a list of messages that might contain one or more
// error messages. Each error message indicates one error in the change batch.
ErrCodeInvalidChangeBatch = "InvalidChangeBatch"
// ErrCodeInvalidDomainName for service response error code
// "InvalidDomainName".
//
// The specified domain name is not valid.
ErrCodeInvalidDomainName = "InvalidDomainName"
// ErrCodeInvalidInput for service response error code
// "InvalidInput".
//
// The input is not valid.
ErrCodeInvalidInput = "InvalidInput"
// ErrCodeInvalidPaginationToken for service response error code
// "InvalidPaginationToken".
//
// The value that you specified to get the second or subsequent page of results
// is invalid.
ErrCodeInvalidPaginationToken = "InvalidPaginationToken"
// ErrCodeInvalidTrafficPolicyDocument for service response error code
// "InvalidTrafficPolicyDocument".
//
// The format of the traffic policy document that you specified in the Document
// element is invalid.
ErrCodeInvalidTrafficPolicyDocument = "InvalidTrafficPolicyDocument"
// ErrCodeInvalidVPCId for service response error code
// "InvalidVPCId".
//
// The VPC ID that you specified either isn't a valid ID or the current account
// is not authorized to access this VPC.
ErrCodeInvalidVPCId = "InvalidVPCId"
// ErrCodeLastVPCAssociation for service response error code
// "LastVPCAssociation".
//
// The VPC that you're trying to disassociate from the private hosted zone is
// the last VPC that is associated with the hosted zone. Amazon Route 53 doesn't
// support disassociating the last VPC from a hosted zone.
ErrCodeLastVPCAssociation = "LastVPCAssociation"
// ErrCodeLimitsExceeded for service response error code
// "LimitsExceeded".
//
// This operation can't be completed either because the current account has
// reached the limit on reusable delegation sets that it can create or because
// you've reached the limit on the number of Amazon VPCs that you can associate
// with a private hosted zone. To get the current limit on the number of reusable
// delegation sets, see GetAccountLimit. To get the current limit on the number
// of Amazon VPCs that you can associate with a private hosted zone, see GetHostedZoneLimit.
// To request a higher limit, create a case (http://aws.amazon.com/route53-request)
// with the AWS Support Center.
ErrCodeLimitsExceeded = "LimitsExceeded"
// ErrCodeNoSuchChange for service response error code
// "NoSuchChange".
//
// A change with the specified change ID does not exist.
ErrCodeNoSuchChange = "NoSuchChange"
// ErrCodeNoSuchCloudWatchLogsLogGroup for service response error code
// "NoSuchCloudWatchLogsLogGroup".
//
// There is no CloudWatch Logs log group with the specified ARN.
ErrCodeNoSuchCloudWatchLogsLogGroup = "NoSuchCloudWatchLogsLogGroup"
// ErrCodeNoSuchDelegationSet for service response error code
// "NoSuchDelegationSet".
//
// A reusable delegation set with the specified ID does not exist.
ErrCodeNoSuchDelegationSet = "NoSuchDelegationSet"
// ErrCodeNoSuchGeoLocation for service response error code
// "NoSuchGeoLocation".
//
// Amazon Route 53 doesn't support the specified geographic location.
ErrCodeNoSuchGeoLocation = "NoSuchGeoLocation"
// ErrCodeNoSuchHealthCheck for service response error code
// "NoSuchHealthCheck".
//
// No health check exists with the specified ID.
ErrCodeNoSuchHealthCheck = "NoSuchHealthCheck"
// ErrCodeNoSuchHostedZone for service response error code
// "NoSuchHostedZone".
//
// No hosted zone exists with the ID that you specified.
ErrCodeNoSuchHostedZone = "NoSuchHostedZone"
// ErrCodeNoSuchQueryLoggingConfig for service response error code
// "NoSuchQueryLoggingConfig".
//
// There is no DNS query logging configuration with the specified ID.
ErrCodeNoSuchQueryLoggingConfig = "NoSuchQueryLoggingConfig"
// ErrCodeNoSuchTrafficPolicy for service response error code
// "NoSuchTrafficPolicy".
//
// No traffic policy exists with the specified ID.
ErrCodeNoSuchTrafficPolicy = "NoSuchTrafficPolicy"
// ErrCodeNoSuchTrafficPolicyInstance for service response error code
// "NoSuchTrafficPolicyInstance".
//
// No traffic policy instance exists with the specified ID.
ErrCodeNoSuchTrafficPolicyInstance = "NoSuchTrafficPolicyInstance"
// ErrCodeNotAuthorizedException for service response error code
// "NotAuthorizedException".
//
// Associating the specified VPC with the specified hosted zone has not been
// authorized.
ErrCodeNotAuthorizedException = "NotAuthorizedException"
// ErrCodePriorRequestNotComplete for service response error code
// "PriorRequestNotComplete".
//
// If Amazon Route 53 can't process a request before the next request arrives,
// it will reject subsequent requests for the same hosted zone and return an
// HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
// the same request, we recommend that you wait, in intervals of increasing
// duration, before you try the request again.
ErrCodePriorRequestNotComplete = "PriorRequestNotComplete"
// ErrCodePublicZoneVPCAssociation for service response error code
// "PublicZoneVPCAssociation".
//
// You're trying to associate a VPC with a public hosted zone. Amazon Route
// 53 doesn't support associating a VPC with a public hosted zone.
ErrCodePublicZoneVPCAssociation = "PublicZoneVPCAssociation"
// ErrCodeQueryLoggingConfigAlreadyExists for service response error code
// "QueryLoggingConfigAlreadyExists".
//
// You can create only one query logging configuration for a hosted zone, and
// a query logging configuration already exists for this hosted zone.
ErrCodeQueryLoggingConfigAlreadyExists = "QueryLoggingConfigAlreadyExists"
// ErrCodeThrottlingException for service response error code
// "ThrottlingException".
//
// The limit on the number of requests per second was exceeded.
ErrCodeThrottlingException = "ThrottlingException"
// ErrCodeTooManyHealthChecks for service response error code
// "TooManyHealthChecks".
//
// This health check can't be created because the current account has reached
// the limit on the number of active health checks.
//
// For information about default limits, see Limits (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
// in the Amazon Route 53 Developer Guide.
//
// For information about how to get the current limit for an account, see GetAccountLimit.
// To request a higher limit, create a case (http://aws.amazon.com/route53-request)
// with the AWS Support Center.
//
// You have reached the maximum number of active health checks for an AWS account.
// To request a higher limit, create a case (http://aws.amazon.com/route53-request)
// with the AWS Support Center.
ErrCodeTooManyHealthChecks = "TooManyHealthChecks"
// ErrCodeTooManyHostedZones for service response error code
// "TooManyHostedZones".
//
// This operation can't be completed either because the current account has
// reached the limit on the number of hosted zones or because you've reached
// the limit on the number of hosted zones that can be associated with a reusable
// delegation set.
//
// For information about default limits, see Limits (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
// in the Amazon Route 53 Developer Guide.
//
// To get the current limit on hosted zones that can be created by an account,
// see GetAccountLimit.
//
// To get the current limit on hosted zones that can be associated with a reusable
// delegation set, see GetReusableDelegationSetLimit.
//
// To request a higher limit, create a case (http://aws.amazon.com/route53-request)
// with the AWS Support Center.
ErrCodeTooManyHostedZones = "TooManyHostedZones"
// ErrCodeTooManyTrafficPolicies for service response error code
// "TooManyTrafficPolicies".
//
// This traffic policy can't be created because the current account has reached
// the limit on the number of traffic policies.
//
// For information about default limits, see Limits (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
// in the Amazon Route 53 Developer Guide.
//
// To get the current limit for an account, see GetAccountLimit.
//
// To request a higher limit, create a case (http://aws.amazon.com/route53-request)
// with the AWS Support Center.
ErrCodeTooManyTrafficPolicies = "TooManyTrafficPolicies"
// ErrCodeTooManyTrafficPolicyInstances for service response error code
// "TooManyTrafficPolicyInstances".
//
// This traffic policy instance can't be created because the current account
// has reached the limit on the number of traffic policy instances.
//
// For information about default limits, see Limits (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
// in the Amazon Route 53 Developer Guide.
//
// For information about how to get the current limit for an account, see GetAccountLimit.
//
// To request a higher limit, create a case (http://aws.amazon.com/route53-request)
// with the AWS Support Center.
ErrCodeTooManyTrafficPolicyInstances = "TooManyTrafficPolicyInstances"
// ErrCodeTooManyTrafficPolicyVersionsForCurrentPolicy for service response error code
// "TooManyTrafficPolicyVersionsForCurrentPolicy".
//
// This traffic policy version can't be created because you've reached the limit
// of 1000 on the number of versions that you can create for the current traffic
// policy.
//
// To create more traffic policy versions, you can use GetTrafficPolicy to get
// the traffic policy document for a specified traffic policy version, and then
// use CreateTrafficPolicy to create a new traffic policy using the traffic
// policy document.
ErrCodeTooManyTrafficPolicyVersionsForCurrentPolicy = "TooManyTrafficPolicyVersionsForCurrentPolicy"
// ErrCodeTooManyVPCAssociationAuthorizations for service response error code
// "TooManyVPCAssociationAuthorizations".
//
// You've created the maximum number of authorizations that can be created for
// the specified hosted zone. To authorize another VPC to be associated with
// the hosted zone, submit a DeleteVPCAssociationAuthorization request to remove
// an existing authorization. To get a list of existing authorizations, submit
// a ListVPCAssociationAuthorizations request.
ErrCodeTooManyVPCAssociationAuthorizations = "TooManyVPCAssociationAuthorizations"
// ErrCodeTrafficPolicyAlreadyExists for service response error code
// "TrafficPolicyAlreadyExists".
//
// A traffic policy that has the same value for Name already exists.
ErrCodeTrafficPolicyAlreadyExists = "TrafficPolicyAlreadyExists"
// ErrCodeTrafficPolicyInUse for service response error code
// "TrafficPolicyInUse".
//
// One or more traffic policy instances were created by using the specified
// traffic policy.
ErrCodeTrafficPolicyInUse = "TrafficPolicyInUse"
// ErrCodeTrafficPolicyInstanceAlreadyExists for service response error code
// "TrafficPolicyInstanceAlreadyExists".
//
// There is already a traffic policy instance with the specified ID.
ErrCodeTrafficPolicyInstanceAlreadyExists = "TrafficPolicyInstanceAlreadyExists"
// ErrCodeVPCAssociationAuthorizationNotFound for service response error code
// "VPCAssociationAuthorizationNotFound".
//
// The VPC that you specified is not authorized to be associated with the hosted
// zone.
ErrCodeVPCAssociationAuthorizationNotFound = "VPCAssociationAuthorizationNotFound"
// ErrCodeVPCAssociationNotFound for service response error code
// "VPCAssociationNotFound".
//
// The specified VPC and hosted zone are not currently associated.
ErrCodeVPCAssociationNotFound = "VPCAssociationNotFound"
)
+95
View File
@@ -0,0 +1,95 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package route53
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/client/metadata"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/aws/signer/v4"
"github.com/aws/aws-sdk-go/private/protocol/restxml"
)
// Route53 provides the API operation methods for making requests to
// Amazon Route 53. See this package's package overview docs
// for details on the service.
//
// Route53 methods are safe to use concurrently. It is not safe to
// modify mutate any of the struct's properties though.
type Route53 struct {
*client.Client
}
// Used for custom client initialization logic
var initClient func(*client.Client)
// Used for custom request initialization logic
var initRequest func(*request.Request)
// Service information constants
const (
ServiceName = "route53" // Name of service.
EndpointsID = ServiceName // ID to lookup a service endpoint with.
ServiceID = "Route 53" // ServiceID is a unique identifer of a specific service.
)
// New creates a new instance of the Route53 client with a session.
// If additional configuration is needed for the client instance use the optional
// aws.Config parameter to add your extra config.
//
// Example:
// // Create a Route53 client from just a session.
// svc := route53.New(mySession)
//
// // Create a Route53 client with additional configuration
// svc := route53.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
func New(p client.ConfigProvider, cfgs ...*aws.Config) *Route53 {
c := p.ClientConfig(EndpointsID, cfgs...)
return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName)
}
// newClient creates, initializes and returns a new service client instance.
func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *Route53 {
svc := &Route53{
Client: client.New(
cfg,
metadata.ClientInfo{
ServiceName: ServiceName,
ServiceID: ServiceID,
SigningName: signingName,
SigningRegion: signingRegion,
Endpoint: endpoint,
APIVersion: "2013-04-01",
},
handlers,
),
}
// Handlers
svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
svc.Handlers.Build.PushBackNamed(restxml.BuildHandler)
svc.Handlers.Unmarshal.PushBackNamed(restxml.UnmarshalHandler)
svc.Handlers.UnmarshalMeta.PushBackNamed(restxml.UnmarshalMetaHandler)
svc.Handlers.UnmarshalError.PushBackNamed(restxml.UnmarshalErrorHandler)
// Run custom client initialization if present
if initClient != nil {
initClient(svc.Client)
}
return svc
}
// newRequest creates a new request for a Route53 operation and runs any
// custom request initialization.
func (c *Route53) newRequest(op *request.Operation, params, data interface{}) *request.Request {
req := c.NewRequest(op, params, data)
// Run custom request initialization if present
if initRequest != nil {
initRequest(req)
}
return req
}
+77
View File
@@ -0,0 +1,77 @@
package route53
import (
"bytes"
"encoding/xml"
"io/ioutil"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/private/protocol/restxml"
)
type baseXMLErrorResponse struct {
XMLName xml.Name
}
type standardXMLErrorResponse struct {
XMLName xml.Name `xml:"ErrorResponse"`
Code string `xml:"Error>Code"`
Message string `xml:"Error>Message"`
RequestID string `xml:"RequestId"`
}
type invalidChangeBatchXMLErrorResponse struct {
XMLName xml.Name `xml:"InvalidChangeBatch"`
Messages []string `xml:"Messages>Message"`
}
func unmarshalChangeResourceRecordSetsError(r *request.Request) {
defer r.HTTPResponse.Body.Close()
responseBody, err := ioutil.ReadAll(r.HTTPResponse.Body)
if err != nil {
r.Error = awserr.New("SerializationError", "failed to read Route53 XML error response", err)
return
}
baseError := &baseXMLErrorResponse{}
if err := xml.Unmarshal(responseBody, baseError); err != nil {
r.Error = awserr.New("SerializationError", "failed to decode Route53 XML error response", err)
return
}
switch baseError.XMLName.Local {
case "InvalidChangeBatch":
unmarshalInvalidChangeBatchError(r, responseBody)
default:
r.HTTPResponse.Body = ioutil.NopCloser(bytes.NewReader(responseBody))
restxml.UnmarshalError(r)
}
}
func unmarshalInvalidChangeBatchError(r *request.Request, requestBody []byte) {
resp := &invalidChangeBatchXMLErrorResponse{}
err := xml.Unmarshal(requestBody, resp)
if err != nil {
r.Error = awserr.New("SerializationError", "failed to decode query XML error response", err)
return
}
const errorCode = "InvalidChangeBatch"
errors := []error{}
for _, msg := range resp.Messages {
errors = append(errors, awserr.New(errorCode, msg, nil))
}
r.Error = awserr.NewRequestFailure(
awserr.NewBatchError(errorCode, "ChangeBatch errors occurred", errors),
r.HTTPResponse.StatusCode,
r.RequestID,
)
}
+56
View File
@@ -0,0 +1,56 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package route53
import (
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/request"
)
// WaitUntilResourceRecordSetsChanged uses the Route 53 API operation
// GetChange to wait for a condition to be met before returning.
// If the condition is not met within the max attempt window, an error will
// be returned.
func (c *Route53) WaitUntilResourceRecordSetsChanged(input *GetChangeInput) error {
return c.WaitUntilResourceRecordSetsChangedWithContext(aws.BackgroundContext(), input)
}
// WaitUntilResourceRecordSetsChangedWithContext is an extended version of WaitUntilResourceRecordSetsChanged.
// With the support for passing in a context and options to configure the
// Waiter and the underlying request options.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Route53) WaitUntilResourceRecordSetsChangedWithContext(ctx aws.Context, input *GetChangeInput, opts ...request.WaiterOption) error {
w := request.Waiter{
Name: "WaitUntilResourceRecordSetsChanged",
MaxAttempts: 60,
Delay: request.ConstantWaiterDelay(30 * time.Second),
Acceptors: []request.WaiterAcceptor{
{
State: request.SuccessWaiterState,
Matcher: request.PathWaiterMatch, Argument: "ChangeInfo.Status",
Expected: "INSYNC",
},
},
Logger: c.Config.Logger,
NewRequest: func(opts []request.Option) (*request.Request, error) {
var inCpy *GetChangeInput
if input != nil {
tmp := *input
inCpy = &tmp
}
req, _ := c.GetChangeRequest(inCpy)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return req, nil
},
}
w.ApplyOptions(opts...)
return w.WaitWithContext(ctx)
}
File diff suppressed because it is too large Load Diff
+12
View File
@@ -0,0 +1,12 @@
package sts
import "github.com/aws/aws-sdk-go/aws/request"
func init() {
initRequest = func(r *request.Request) {
switch r.Operation.Name {
case opAssumeRoleWithSAML, opAssumeRoleWithWebIdentity:
r.Handlers.Sign.Clear() // these operations are unsigned
}
}
}
+72
View File
@@ -0,0 +1,72 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
// Package sts provides the client and types for making API
// requests to AWS Security Token Service.
//
// The AWS Security Token Service (STS) is a web service that enables you to
// request temporary, limited-privilege credentials for AWS Identity and Access
// Management (IAM) users or for users that you authenticate (federated users).
// This guide provides descriptions of the STS API. For more detailed information
// about using this service, go to Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html).
//
// As an alternative to using the API, you can use one of the AWS SDKs, which
// consist of libraries and sample code for various programming languages and
// platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient
// way to create programmatic access to STS. For example, the SDKs take care
// of cryptographically signing requests, managing errors, and retrying requests
// automatically. For information about the AWS SDKs, including how to download
// and install them, see the Tools for Amazon Web Services page (http://aws.amazon.com/tools/).
//
// For information about setting up signatures and authorization through the
// API, go to Signing AWS API Requests (http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)
// in the AWS General Reference. For general information about the Query API,
// go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
// in Using IAM. For information about using security tokens with other AWS
// products, go to AWS Services That Work with IAM (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)
// in the IAM User Guide.
//
// If you're new to AWS and need additional technical information about a specific
// AWS product, you can find the product's technical documentation at http://aws.amazon.com/documentation/
// (http://aws.amazon.com/documentation/).
//
// Endpoints
//
// The AWS Security Token Service (STS) has a default endpoint of https://sts.amazonaws.com
// that maps to the US East (N. Virginia) region. Additional regions are available
// and are activated by default. For more information, see Activating and Deactivating
// AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the IAM User Guide.
//
// For information about STS endpoints, see Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region)
// in the AWS General Reference.
//
// Recording API requests
//
// STS supports AWS CloudTrail, which is a service that records AWS calls for
// your AWS account and delivers log files to an Amazon S3 bucket. By using
// information collected by CloudTrail, you can determine what requests were
// successfully made to STS, who made the request, when it was made, and so
// on. To learn more about CloudTrail, including how to turn it on and find
// your log files, see the AWS CloudTrail User Guide (http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html).
//
// See https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15 for more information on this service.
//
// See sts package documentation for more information.
// https://docs.aws.amazon.com/sdk-for-go/api/service/sts/
//
// Using the Client
//
// To contact AWS Security Token Service with the SDK use the New function to create
// a new service client. With that client you can make API requests to the service.
// These clients are safe to use concurrently.
//
// See the SDK's documentation for more information on how to use the SDK.
// https://docs.aws.amazon.com/sdk-for-go/api/
//
// See aws.Config documentation for more information on configuring SDK clients.
// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config
//
// See the AWS Security Token Service client STS for more
// information on creating client for this service.
// https://docs.aws.amazon.com/sdk-for-go/api/service/sts/#New
package sts
+73
View File
@@ -0,0 +1,73 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package sts
const (
// ErrCodeExpiredTokenException for service response error code
// "ExpiredTokenException".
//
// The web identity token that was passed is expired or is not valid. Get a
// new identity token from the identity provider and then retry the request.
ErrCodeExpiredTokenException = "ExpiredTokenException"
// ErrCodeIDPCommunicationErrorException for service response error code
// "IDPCommunicationError".
//
// The request could not be fulfilled because the non-AWS identity provider
// (IDP) that was asked to verify the incoming identity token could not be reached.
// This is often a transient error caused by network conditions. Retry the request
// a limited number of times so that you don't exceed the request rate. If the
// error persists, the non-AWS identity provider might be down or not responding.
ErrCodeIDPCommunicationErrorException = "IDPCommunicationError"
// ErrCodeIDPRejectedClaimException for service response error code
// "IDPRejectedClaim".
//
// The identity provider (IdP) reported that authentication failed. This might
// be because the claim is invalid.
//
// If this error is returned for the AssumeRoleWithWebIdentity operation, it
// can also mean that the claim has expired or has been explicitly revoked.
ErrCodeIDPRejectedClaimException = "IDPRejectedClaim"
// ErrCodeInvalidAuthorizationMessageException for service response error code
// "InvalidAuthorizationMessageException".
//
// The error returned if the message passed to DecodeAuthorizationMessage was
// invalid. This can happen if the token contains invalid characters, such as
// linebreaks.
ErrCodeInvalidAuthorizationMessageException = "InvalidAuthorizationMessageException"
// ErrCodeInvalidIdentityTokenException for service response error code
// "InvalidIdentityToken".
//
// The web identity token that was passed could not be validated by AWS. Get
// a new identity token from the identity provider and then retry the request.
ErrCodeInvalidIdentityTokenException = "InvalidIdentityToken"
// ErrCodeMalformedPolicyDocumentException for service response error code
// "MalformedPolicyDocument".
//
// The request was rejected because the policy document was malformed. The error
// message describes the specific error.
ErrCodeMalformedPolicyDocumentException = "MalformedPolicyDocument"
// ErrCodePackedPolicyTooLargeException for service response error code
// "PackedPolicyTooLarge".
//
// The request was rejected because the policy document was too large. The error
// message describes how big the policy document is, in packed form, as a percentage
// of what the API allows.
ErrCodePackedPolicyTooLargeException = "PackedPolicyTooLarge"
// ErrCodeRegionDisabledException for service response error code
// "RegionDisabledException".
//
// STS is not activated in the requested region for the account that is being
// asked to generate credentials. The account administrator must use the IAM
// console to activate STS in that region. For more information, see Activating
// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the IAM User Guide.
ErrCodeRegionDisabledException = "RegionDisabledException"
)
+95
View File
@@ -0,0 +1,95 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package sts
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/client/metadata"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/aws/signer/v4"
"github.com/aws/aws-sdk-go/private/protocol/query"
)
// STS provides the API operation methods for making requests to
// AWS Security Token Service. See this package's package overview docs
// for details on the service.
//
// STS methods are safe to use concurrently. It is not safe to
// modify mutate any of the struct's properties though.
type STS struct {
*client.Client
}
// Used for custom client initialization logic
var initClient func(*client.Client)
// Used for custom request initialization logic
var initRequest func(*request.Request)
// Service information constants
const (
ServiceName = "sts" // Name of service.
EndpointsID = ServiceName // ID to lookup a service endpoint with.
ServiceID = "STS" // ServiceID is a unique identifer of a specific service.
)
// New creates a new instance of the STS client with a session.
// If additional configuration is needed for the client instance use the optional
// aws.Config parameter to add your extra config.
//
// Example:
// // Create a STS client from just a session.
// svc := sts.New(mySession)
//
// // Create a STS client with additional configuration
// svc := sts.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
func New(p client.ConfigProvider, cfgs ...*aws.Config) *STS {
c := p.ClientConfig(EndpointsID, cfgs...)
return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName)
}
// newClient creates, initializes and returns a new service client instance.
func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *STS {
svc := &STS{
Client: client.New(
cfg,
metadata.ClientInfo{
ServiceName: ServiceName,
ServiceID: ServiceID,
SigningName: signingName,
SigningRegion: signingRegion,
Endpoint: endpoint,
APIVersion: "2011-06-15",
},
handlers,
),
}
// Handlers
svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
svc.Handlers.Build.PushBackNamed(query.BuildHandler)
svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
// Run custom client initialization if present
if initClient != nil {
initClient(svc.Client)
}
return svc
}
// newRequest creates a new request for a STS operation and runs any
// custom request initialization.
func (c *STS) newRequest(op *request.Operation, params, data interface{}) *request.Request {
req := c.NewRequest(op, params, data)
// Run custom request initialization if present
if initRequest != nil {
initRequest(req)
}
return req
}