Documentation ¶
Index ¶
- Constants
- Variables
- func CanSetIdempotencyToken(v reflect.Value, f reflect.StructField) bool
- func DecodeJSONValue(v string, escape EscapeMode) (aws.JSONValue, error)
- func EncodeJSONValue(v aws.JSONValue, escape EscapeMode) (string, error)
- func FormatTime(name string, t time.Time) string
- func GetIdempotencyToken() string
- func IsKnownTimestampFormat(name string) bool
- func NewHostPrefixHandler(prefix string, labelsFn func() map[string]string) request.NamedHandler
- func ParseIbmTime(formatName, value string) (time.Time, error)
- func ParseTime(formatName, value string) (time.Time, error)
- func SetIdempotencyToken(v reflect.Value)
- func UUIDVersion4(u []byte) string
- func UnmarshalDiscardBody(r *request.Request)
- func ValidHostLabel(label string) bool
- func ValidPortNumber(port string) bool
- func ValidateEndpointHost(opName, host string) error
- type ErrorUnmarshaler
- type EscapeMode
- type HandlerPayloadMarshal
- type HandlerPayloadUnmarshal
- type HostPrefixBuilder
- type PayloadMarshaler
- type PayloadUnmarshaler
- type RequireHTTPMinProtocol
- type ResponseMetadata
- type UnmarshalErrorHandler
Constants ¶
const ( RFC822TimeFormatName = "rfc822" ISO8601TimeFormatName = "iso8601" UnixTimeFormatName = "unixTimestamp" )
Names of time formats supported by the SDK
const ( // RFC 7231#section-7.1.1.1 timetamp format. e.g Tue, 29 Apr 2014 18:30:38 GMT RFC822TimeFormat = "Mon, 2 Jan 2006 15:04:05 GMT" // This format is used for output time without seconds precision RFC822OutputTimeFormat = "Mon, 02 Jan 2006 15:04:05 GMT" // RFC3339 a subset of the ISO8601 timestamp format. e.g 2014-04-29T18:30:38Z ISO8601TimeFormat = "2006-01-02T15:04:05.999999999Z" // This format is used for output time with fractional second precision up to milliseconds ISO8601OutputTimeFormat = "2006-01-02T15:04:05.999999999Z" )
Time formats supported by the SDK Output time is intended to not contain decimals
const ErrCodeMinimumHTTPProtocolError = "MinimumHTTPProtocolError"
ErrCodeMinimumHTTPProtocolError error code is returned when the target endpoint did not match the required HTTP major and minor protocol version.
const HostPrefixHandlerName = "awssdk.endpoint.HostPrefixHandler"
HostPrefixHandlerName is the handler name for the host prefix request handler.
const UnmarshalErrorHandlerName = "awssdk.protocol.UnmarshalError"
UnmarshalErrorHandlerName is the name of the named handler.
Variables ¶
var RandReader = rand.Reader
RandReader is the random reader the protocol package will use to read random bytes from. This is exported for testing, and should not be used.
var UnmarshalDiscardBodyHandler = request.NamedHandler{Name: "awssdk.shared.UnmarshalDiscardBody", Fn: UnmarshalDiscardBody}
UnmarshalDiscardBodyHandler is a named request handler to empty and close a response's body
var ValidateEndpointHostHandler = request.NamedHandler{ Name: "awssdk.protocol.ValidateEndpointHostHandler", Fn: func(r *request.Request) { err := ValidateEndpointHost(r.Operation.Name, r.HTTPRequest.URL.Host) if err != nil { r.Error = err } }, }
ValidateEndpointHostHandler is a request handler that will validate the request endpoint's hosts is a valid RFC 3986 host.
Functions ¶
func CanSetIdempotencyToken ¶
func CanSetIdempotencyToken(v reflect.Value, f reflect.StructField) bool
CanSetIdempotencyToken returns true if the struct field should be automatically populated with a Idempotency token.
Only *string and string type fields that are tagged with idempotencyToken which are not already set can be auto filled.
func DecodeJSONValue ¶
func DecodeJSONValue(v string, escape EscapeMode) (aws.JSONValue, error)
DecodeJSONValue will attempt to decode the string input as a JSONValue. Optionally decoding base64 the value first before JSON unmarshaling.
Will panic if the escape mode is unknown.
func EncodeJSONValue ¶
func EncodeJSONValue(v aws.JSONValue, escape EscapeMode) (string, error)
EncodeJSONValue marshals the value into a JSON string, and optionally base64 encodes the string before returning it.
Will panic if the escape mode is unknown.
func FormatTime ¶
FormatTime returns a string value of the time.
func GetIdempotencyToken ¶
func GetIdempotencyToken() string
GetIdempotencyToken returns a randomly generated idempotency token.
func IsKnownTimestampFormat ¶
IsKnownTimestampFormat returns if the timestamp format name is know to the SDK's protocols.
func NewHostPrefixHandler ¶
func NewHostPrefixHandler(prefix string, labelsFn func() map[string]string) request.NamedHandler
NewHostPrefixHandler constructs a build handler
func ParseIbmTime ¶ added in v1.2.0
ParseIbmTime - checks to see if first character of date string is a letter if so it tries to parse it as an RFC822 formatted date
func ParseTime ¶
ParseTime attempts to parse the time given the format. Returns the time if it was able to be parsed, and fails otherwise.
func SetIdempotencyToken ¶
SetIdempotencyToken will set the value provided with a Idempotency Token. Given that the value can be set. Will panic if value is not setable.
func UUIDVersion4 ¶
UUIDVersion4 returns a Version 4 random UUID from the byte slice provided
func UnmarshalDiscardBody ¶
UnmarshalDiscardBody is a request handler to empty a response's body and closing it.
func ValidHostLabel ¶
ValidHostLabel returns if the label is a valid RFC 3986 host label.
func ValidPortNumber ¶ added in v1.7.0
ValidPortNumber return if the port is valid RFC 3986 port
func ValidateEndpointHost ¶
ValidateEndpointHost validates that the host string passed in is a valid RFC 3986 host. Returns error if the host is not valid.
Types ¶
type ErrorUnmarshaler ¶ added in v1.3.2
type ErrorUnmarshaler interface {
UnmarshalError(*http.Response, ResponseMetadata) (error, error)
}
ErrorUnmarshaler is an abstract interface for concrete implementations to unmarshal protocol specific response errors.
type EscapeMode ¶
type EscapeMode uint
EscapeMode is the mode that should be use for escaping a value
const ( NoEscape EscapeMode = iota Base64Escape QuotedEscape )
The modes for escaping a value before it is marshaled, and unmarshaled.
type HandlerPayloadMarshal ¶
type HandlerPayloadMarshal struct {
Marshalers request.HandlerList
}
HandlerPayloadMarshal implements the PayloadMarshaler from a HandlerList. This provides support for marshaling a SDK shape into an io.Writer without needing a SDK request first.
func (HandlerPayloadMarshal) MarshalPayload ¶
func (h HandlerPayloadMarshal) MarshalPayload(w io.Writer, v interface{}) error
MarshalPayload marshals the SDK shape into the io.Writer using the Marshalers HandlerList provided. Returns an error if unable if marshal fails.
type HandlerPayloadUnmarshal ¶
type HandlerPayloadUnmarshal struct {
Unmarshalers request.HandlerList
}
HandlerPayloadUnmarshal implements the PayloadUnmarshaler from a HandlerList. This provides the support for unmarshaling a payload reader to a shape without needing a SDK request first.
func (HandlerPayloadUnmarshal) UnmarshalPayload ¶
func (h HandlerPayloadUnmarshal) UnmarshalPayload(r io.Reader, v interface{}) error
UnmarshalPayload unmarshals the io.Reader payload into the SDK shape using the Unmarshalers HandlerList provided. Returns an error if unable unmarshaling fails.
type HostPrefixBuilder ¶
HostPrefixBuilder provides the request handler to expand and prepend the host prefix into the operation's request endpoint host.
func (HostPrefixBuilder) Build ¶
func (h HostPrefixBuilder) Build(r *request.Request)
Build updates the passed in Request with the HostPrefix template expanded.
type PayloadMarshaler ¶
PayloadMarshaler provides the interface for marshaling a SDK shape into and io.Writer.
type PayloadUnmarshaler ¶
PayloadUnmarshaler provides the interface for unmarshaling a payload's reader into a SDK shape.
type RequireHTTPMinProtocol ¶ added in v1.3.2
type RequireHTTPMinProtocol struct {
Major, Minor int
}
RequireHTTPMinProtocol request handler is used to enforce that the target endpoint supports the given major and minor HTTP protocol version.
func (RequireHTTPMinProtocol) Handler ¶ added in v1.3.2
func (p RequireHTTPMinProtocol) Handler(r *request.Request)
Handler will mark the request.Request with an error if the target endpoint did not connect with the required HTTP protocol major and minor version.
type ResponseMetadata ¶ added in v1.3.2
ResponseMetadata provides the SDK response metadata attributes.
type UnmarshalErrorHandler ¶ added in v1.3.2
type UnmarshalErrorHandler struct {
// contains filtered or unexported fields
}
UnmarshalErrorHandler provides unmarshaling errors API response errors for both typed and untyped errors.
func NewUnmarshalErrorHandler ¶ added in v1.3.2
func NewUnmarshalErrorHandler(unmarshaler ErrorUnmarshaler) *UnmarshalErrorHandler
NewUnmarshalErrorHandler returns an UnmarshalErrorHandler initialized for the set of exception names to the error unmarshalers
func (*UnmarshalErrorHandler) NamedHandler ¶ added in v1.3.2
func (u *UnmarshalErrorHandler) NamedHandler() request.NamedHandler
NamedHandler returns a NamedHandler for the unmarshaler using the set of errors the unmarshaler was initialized for.
func (*UnmarshalErrorHandler) UnmarshalError ¶ added in v1.3.2
func (u *UnmarshalErrorHandler) UnmarshalError(r *request.Request)
UnmarshalError will attempt to unmarshal the API response's error message into either a generic SDK error type, or a typed error corresponding to the errors exception name.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
json
|
|
jsonutil
Package jsonutil provides JSON serialization of AWS requests and responses.
|
Package jsonutil provides JSON serialization of AWS requests and responses. |
Package jsonrpc provides JSON RPC utilities for serialization of AWS requests and responses.
|
Package jsonrpc provides JSON RPC utilities for serialization of AWS requests and responses. |
Package query provides serialization of AWS query requests, and responses.
|
Package query provides serialization of AWS query requests, and responses. |
Package rest provides RESTful serialization of AWS requests and responses.
|
Package rest provides RESTful serialization of AWS requests and responses. |
Package restjson provides RESTful JSON serialization of AWS requests and responses.
|
Package restjson provides RESTful JSON serialization of AWS requests and responses. |
Package restxml provides RESTful XML serialization of AWS requests and responses.
|
Package restxml provides RESTful XML serialization of AWS requests and responses. |
xml
|
|
xmlutil
Package xmlutil provides XML serialization of AWS requests and responses.
|
Package xmlutil provides XML serialization of AWS requests and responses. |