Documentation

Overview

Package customizations provides customizations for the Amazon Route53 API client.

This package provides support for following customizations

 Process Response Middleware: used for custom error deserializing
	Sanitize URL Middleware: used for sanitizing url with HostedZoneID member

Process Response Middleware

Route53 operation "ChangeResourceRecordSets" can have an error response returned in a slightly different format. This customization is only applicable to ChangeResourceRecordSets operation of Route53.

Here's a sample error response:

<?xml version="1.0" encoding="UTF-8"?>
<InvalidChangeBatch xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
    <Messages>
        <Message>Tried to create resource record set duplicate.example.com. type A, but it already exists</Message>
    </Messages>
</InvalidChangeBatch>

The processResponse middleware customizations enables SDK to check for an error response starting with "InvalidChangeBatch" tag prior to deserialization.

As this check in error response needs to be performed earlier than response deserialization. Since the behavior of Deserialization is in reverse order to the other stack steps its easier to consider that "after" means "before".

Middleware layering:

HTTP Response -> process response error -> deserialize

In case the returned error response has `InvalidChangeBatch` format, the error is deserialized and returned. The operation deserializer does not attempt to deserialize as an error is returned by the process response error middleware.

Sanitize URL Middleware

Route53 operations may return a response containing an id member value appended with a string, for example. an id 1234 may be returned as 'foo/1234'. While round-tripping such response id value into another operation request, SDK must strip out the additional prefix if any. The Sanitize URL Middleware strips out such additionally prepended string to the id.

The Id member with such prepended strings target shape 'ResourceId' or 'DelegationSetId'. This customization thus is applied only for operations with id's targeting those target shapes. This customization has to be applied before the input is serialized.

Middleware layering:

Input -> Sanitize URL Middleware -> serialize -> next

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddSanitizeURLMiddleware

func AddSanitizeURLMiddleware(stack *middleware.Stack, options AddSanitizeURLMiddlewareOptions) error

    AddSanitizeURLMiddleware add the middleware necessary to modify Route53 input before op serialization.

    func HandleCustomErrorDeserialization

    func HandleCustomErrorDeserialization(stack *middleware.Stack) error

      HandleCustomErrorDeserialization check if Route53 response is an error and needs custom error deserialization.

      Types

      type AddSanitizeURLMiddlewareOptions

      type AddSanitizeURLMiddlewareOptions struct {
      	// functional pointer to sanitize hosted zone id member
      	// The function is intended to take an input value,
      	// look for hosted zone id input member and sanitize the value
      	// to strip out an excess `/hostedzone/` prefix that can be present in
      	// the hosted zone id input member.
      	//
      	// returns an error if any.
      	SanitizeHostedZoneIDInput func(interface{}) error
      }

        AddSanitizeURLMiddlewareOptions provides the options for Route53SanitizeURL middleware setup