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, error)
- func GetIdempotencyToken() string
- func GetValue(r reflect.Value) (string, error)
- func IsKnownTimestampFormat(name string) bool
- func IsNotSetError(err error) bool
- func NewHostPrefixHandler(prefix string, labelsFn func() map[string]string) aws.NamedHandler
- func ParseTime(formatName, value string) (time.Time, error)
- func SetIdempotencyToken(v reflect.Value)
- func UUIDVersion4(u []byte) string
- func UnmarshalDiscardBody(r *aws.Request)
- func ValidHostLabel(label string) bool
- func ValidateEndpointHost(opName, host string) error
- type Attribute
- type BoolValue
- type BytesStream
- type BytesValue
- type ErrValueNotSet
- type EscapeMode
- type FieldBuffer
- type FieldEncoder
- type FieldMarshaler
- type FieldMarshalerFunc
- type Float64Value
- type HeaderListEncoder
- type HeaderMapEncoder
- func (e *HeaderMapEncoder) End()
- func (e *HeaderMapEncoder) List(k string) ListEncoder
- func (e *HeaderMapEncoder) Map(k string) MapEncoder
- func (e *HeaderMapEncoder) MapSetFields(k string, m FieldMarshaler)
- func (e *HeaderMapEncoder) MapSetValue(k string, v ValueMarshaler)
- func (e *HeaderMapEncoder) Start()
- type HostPrefixBuilder
- type Int64Value
- type JSONValue
- type ListEncoder
- type MapEncoder
- type MapMarshaler
- type MarshalListValues
- type Metadata
- type PathReplace
- type QueryListEncoder
- type QueryMapEncoder
- func (e *QueryMapEncoder) End()
- func (e *QueryMapEncoder) List(k string) ListEncoder
- func (e *QueryMapEncoder) Map(k string) MapEncoder
- func (e *QueryMapEncoder) MapSetFields(k string, m FieldMarshaler)
- func (e *QueryMapEncoder) MapSetValue(k string, v ValueMarshaler)
- func (e *QueryMapEncoder) Start()
- type QuotedValue
- type ReadSeekerStream
- type StreamMarshaler
- type StringStream
- type StringValue
- type Target
- type TimeValue
- type ValueMarshaler
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" // RFC3339 a subset of the ISO8601 timestamp format. e.g 2014-04-29T18:30:38.999999999Z ISO8601TimeFormat = "2006-01-02T15:04:05.999999999Z" // RFC Output TimeStamp format is used for output time without seconds precision RFC822OutputTimeFormat = "Mon, 02 Jan 2006 15:04:05 GMT" // ISO output TimeStamp format is used for output time without seconds precision ISO8601OutputTimeFormat = "2006-01-02T15:04:05Z" )
Time formats supported by the SDK
const HostPrefixHandlerName = "awssdk.endpoint.HostPrefixHandler"
HostPrefixHandlerName is the handler name for the host prefix request 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 = aws.NamedHandler{Name: "awssdk.shared.UnmarshalDiscardBody", Fn: UnmarshalDiscardBody}
UnmarshalDiscardBodyHandler is a named request handler to empty and close a response's body
var ValidateEndpointHostHandler = aws.NamedHandler{ Name: "awssdk.protocol.ValidateEndpointHostHandler", Fn: func(r *aws.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 ¶ added in v0.11.0
FormatTime returns a string value of the time.
func GetIdempotencyToken ¶
func GetIdempotencyToken() string
GetIdempotencyToken returns a randomly generated idempotency token.
func GetValue ¶
GetValue will return the value that is associated with the reflect.Value. If that value is not set, this will return an ErrValueNotSet
func IsKnownTimestampFormat ¶ added in v0.11.0
IsKnownTimestampFormat returns if the timestamp format name is know to the SDK's protocols.
func IsNotSetError ¶
IsNotSetError will return true if the error is of ErrValueNotSet
func NewHostPrefixHandler ¶ added in v0.6.0
func NewHostPrefixHandler(prefix string, labelsFn func() map[string]string) aws.NamedHandler
NewHostPrefixHandler constructs a build handler
func ParseTime ¶ added in v0.11.0
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 ¶ added in v0.6.0
ValidHostLabel returns if the label is a valid RFC 3986 host label.
func ValidateEndpointHost ¶ added in v0.6.0
ValidateEndpointHost validates that the host string passed in is a valid RFC 3986 host. Returns error if the host is not valid.
Types ¶
type Attribute ¶ added in v0.3.0
type Attribute struct { Name string Value ValueMarshaler Meta Metadata }
An Attribute is a FieldValue that resides within the imediant context of another field. Such as XML attribute for tags.
type BoolValue ¶ added in v0.3.0
type BoolValue bool
BoolValue provides encoding of bool for AWS protocols.
func (BoolValue) MarshalValue ¶ added in v0.3.0
MarshalValue formats the value into a string for encoding.
func (BoolValue) MarshalValueBuf ¶ added in v0.3.0
MarshalValueBuf formats the value into a byte slice for encoding. If there is enough room in the passed in slice v will be appended to it.
Will reset the length of the passed in slice to 0.
type BytesStream ¶ added in v0.3.0
type BytesStream []byte
A BytesStream aliases a byte slice to be used as a StreamMarshaler.
func (BytesStream) MarshalStream ¶ added in v0.3.0
func (v BytesStream) MarshalStream() (io.ReadSeeker, error)
MarshalStream marshals a byte slice into an io.ReadSeeker for encoding.
type BytesValue ¶ added in v0.3.0
type BytesValue string
BytesValue provies encoding of string for AWS protocols.
func (BytesValue) MarshalValue ¶ added in v0.3.0
func (v BytesValue) MarshalValue() (string, error)
MarshalValue formats the value into a string for encoding.
func (BytesValue) MarshalValueBuf ¶ added in v0.3.0
func (v BytesValue) MarshalValueBuf(b []byte) ([]byte, error)
MarshalValueBuf formats the value into a byte slice for encoding. If there is enough room in the passed in slice v will be appended to it.
type ErrValueNotSet ¶
type ErrValueNotSet struct{}
ErrValueNotSet is an error that is returned when the value has not been set.
func (*ErrValueNotSet) Error ¶
func (err *ErrValueNotSet) Error() string
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 FieldBuffer ¶ added in v0.3.0
type FieldBuffer struct {
// contains filtered or unexported fields
}
A FieldBuffer provides buffering of fields so the number of allocations are reduced by providng a persistent buffer that is used between fields.
func (*FieldBuffer) GetValue ¶ added in v0.3.0
func (b *FieldBuffer) GetValue(m ValueMarshaler) ([]byte, error)
GetValue will retrieve the ValueMarshaler's value by appending the value to the buffer. Will return the buffer that was populated.
This buffer is only valid until the next time GetValue is called.
type FieldEncoder ¶ added in v0.3.0
type FieldEncoder interface { SetValue(t Target, k string, m ValueMarshaler, meta Metadata) SetStream(t Target, k string, m StreamMarshaler, meta Metadata) SetFields(t Target, k string, m FieldMarshaler, meta Metadata) Map(t Target, k string, meta Metadata) MapEncoder List(t Target, k string, meta Metadata) ListEncoder }
A FieldEncoder provides the interface for encoding struct field members.
type FieldMarshaler ¶ added in v0.3.0
type FieldMarshaler interface {
MarshalFields(FieldEncoder) error
}
A FieldMarshaler interface is used to marshal struct fields when encoding.
type FieldMarshalerFunc ¶ added in v0.3.0
type FieldMarshalerFunc func(FieldEncoder) error
FieldMarshalerFunc is a helper utility that wrapps a function and allows that function to be called as a FieldMarshaler.
func (FieldMarshalerFunc) MarshalFields ¶ added in v0.3.0
func (fn FieldMarshalerFunc) MarshalFields(e FieldEncoder) error
MarshalFields will call the underlying function passing in the field encoder with the protocol field encoder.
type Float64Value ¶ added in v0.3.0
type Float64Value float64
Float64Value provides encoding of float64 for AWS protocols.
func (Float64Value) MarshalValue ¶ added in v0.3.0
func (v Float64Value) MarshalValue() (string, error)
MarshalValue formats the value into a string for encoding.
func (Float64Value) MarshalValueBuf ¶ added in v0.3.0
func (v Float64Value) MarshalValueBuf(b []byte) ([]byte, error)
MarshalValueBuf formats the value into a byte slice for encoding. If there is enough room in the passed in slice v will be appended to it.
Will reset the length of the passed in slice to 0.
type HeaderListEncoder ¶ added in v0.3.0
HeaderListEncoder will encode list values nested into a header key.
func (*HeaderListEncoder) End ¶ added in v0.3.0
func (e *HeaderListEncoder) End()
End does nothing for header list encodings.
func (*HeaderListEncoder) List ¶ added in v0.3.0
func (e *HeaderListEncoder) List() ListEncoder
List Is not implemented, header list of list is undefined.
func (*HeaderListEncoder) ListAddFields ¶ added in v0.3.0
func (e *HeaderListEncoder) ListAddFields(m FieldMarshaler)
ListAddFields Is not implemented, query list of FieldMarshaler is undefined.
func (*HeaderListEncoder) ListAddValue ¶ added in v0.3.0
func (e *HeaderListEncoder) ListAddValue(v ValueMarshaler)
ListAddValue encodes an individual list value into the header.
func (*HeaderListEncoder) Map ¶ added in v0.3.0
func (e *HeaderListEncoder) Map() MapEncoder
Map Is not implemented, header list of map is undefined.
func (*HeaderListEncoder) Start ¶ added in v0.3.0
func (e *HeaderListEncoder) Start()
Start does nothing for header list encodings.
type HeaderMapEncoder ¶ added in v0.3.0
HeaderMapEncoder builds a map valu
func (*HeaderMapEncoder) End ¶ added in v0.3.0
func (e *HeaderMapEncoder) End()
End does nothing for header encodings.
func (*HeaderMapEncoder) List ¶ added in v0.3.0
func (e *HeaderMapEncoder) List(k string) ListEncoder
List executes the passed in callback with a list encoder based on the context of this HeaderMapEncoder.
func (*HeaderMapEncoder) Map ¶ added in v0.3.0
func (e *HeaderMapEncoder) Map(k string) MapEncoder
Map sets the header element with nested maps appending the passed in k to the prefix if one was set.
func (*HeaderMapEncoder) MapSetFields ¶ added in v0.3.0
func (e *HeaderMapEncoder) MapSetFields(k string, m FieldMarshaler)
MapSetFields Is not implemented, query map of FieldMarshaler is undefined.
func (*HeaderMapEncoder) MapSetValue ¶ added in v0.3.0
func (e *HeaderMapEncoder) MapSetValue(k string, v ValueMarshaler)
MapSetValue adds a single value to the header.
func (*HeaderMapEncoder) Start ¶ added in v0.3.0
func (e *HeaderMapEncoder) Start()
Start does nothing for header encodings.
type HostPrefixBuilder ¶ added in v0.6.0
HostPrefixBuilder provides the request handler to expand and prepend the host prefix into the operation's request endpoint host.
func (HostPrefixBuilder) Build ¶ added in v0.6.0
func (h HostPrefixBuilder) Build(r *aws.Request)
Build updates the passed in Request with the HostPrefix template expanded.
type Int64Value ¶ added in v0.3.0
type Int64Value int64
Int64Value provies encoding of int64 for AWS protocols.
func (Int64Value) MarshalValue ¶ added in v0.3.0
func (v Int64Value) MarshalValue() (string, error)
MarshalValue formats the value into a string for encoding.
func (Int64Value) MarshalValueBuf ¶ added in v0.3.0
func (v Int64Value) MarshalValueBuf(b []byte) ([]byte, error)
MarshalValueBuf formats the value into a byte slice for encoding. If there is enough room in the passed in slice v will be appended to it.
Will reset the length of the passed in slice to 0.
type JSONValue ¶ added in v0.3.0
type JSONValue struct { V aws.JSONValue EscapeMode EscapeMode }
JSONValue provies encoding of aws.JSONValues for AWS protocols.
func (JSONValue) MarshalValue ¶ added in v0.3.0
MarshalValue formats the value into a string for encoding.
func (JSONValue) MarshalValueBuf ¶ added in v0.3.0
MarshalValueBuf formats the value into a byte slice for encoding. If there is enough room in the passed in slice v will be appended to it.
Will reset the length of the passed in slice to 0.
type ListEncoder ¶ added in v0.3.0
type ListEncoder interface { Start() End() Map() MapEncoder List() ListEncoder ListAddValue(v ValueMarshaler) ListAddFields(m FieldMarshaler) }
A ListEncoder provides the interface for encoders that will encode List elements.
type MapEncoder ¶ added in v0.3.0
type MapEncoder interface { Start() End() Map(k string) MapEncoder List(k string) ListEncoder MapSetValue(k string, v ValueMarshaler) MapSetFields(k string, m FieldMarshaler) }
A MapEncoder provides the interface for encoders that will encode map elements.
type MapMarshaler ¶ added in v0.3.0
type MapMarshaler interface {
MarshalValues(enc MapEncoder) error
}
MapMarshaler is a marshaler for map encoders.
type MarshalListValues ¶ added in v0.3.0
type MarshalListValues interface {
MarshalValues(enc ListEncoder) error
}
MarshalListValues is a marshaler for list encoders.
type Metadata ¶ added in v0.3.0
type Metadata struct { Attributes []Attribute Flatten bool ListLocationName string MapLocationNameKey string MapLocationNameValue string XMLNamespacePrefix string XMLNamespaceURI string }
Metadata is a collection of configuration flags for encoders to render the output.
type PathReplace ¶ added in v0.3.0
type PathReplace struct {
// contains filtered or unexported fields
}
PathReplace replaces path elements using field buffers
func NewPathReplace ¶ added in v0.3.0
func NewPathReplace(path string) PathReplace
NewPathReplace creats a built PathReplace value that can be used to replace path elements.
func (*PathReplace) Encode ¶ added in v0.3.0
func (r *PathReplace) Encode() (path string, rawPath string)
Encode returns an unescaped path, and escaped path.
func (*PathReplace) ReplaceElement ¶ added in v0.3.0
func (r *PathReplace) ReplaceElement(key, val string) (err error)
ReplaceElement replaces a single element in the path string.
type QueryListEncoder ¶ added in v0.3.0
QueryListEncoder will encode list values nested into a query key.
func (*QueryListEncoder) End ¶ added in v0.3.0
func (e *QueryListEncoder) End()
End does nothing for the query protocol.
func (*QueryListEncoder) List ¶ added in v0.3.0
func (e *QueryListEncoder) List() ListEncoder
List will return a new QueryListEncoder.
func (*QueryListEncoder) ListAddFields ¶ added in v0.3.0
func (e *QueryListEncoder) ListAddFields(m FieldMarshaler)
ListAddFields Is not implemented, query list of FieldMarshaler is undefined.
func (*QueryListEncoder) ListAddValue ¶ added in v0.3.0
func (e *QueryListEncoder) ListAddValue(v ValueMarshaler)
ListAddValue encodes an individual list value into the querystring.
func (*QueryListEncoder) Map ¶ added in v0.3.0
func (e *QueryListEncoder) Map() MapEncoder
Map will return a new QueryMapEncoder.
func (*QueryListEncoder) Start ¶ added in v0.3.0
func (e *QueryListEncoder) Start()
Start does nothing for the query protocol.
type QueryMapEncoder ¶ added in v0.3.0
QueryMapEncoder builds a query string.
func (*QueryMapEncoder) List ¶ added in v0.3.0
func (e *QueryMapEncoder) List(k string) ListEncoder
List will return a new QueryListEncoder.
func (*QueryMapEncoder) Map ¶ added in v0.3.0
func (e *QueryMapEncoder) Map(k string) MapEncoder
Map will return a new QueryMapEncoder.
func (*QueryMapEncoder) MapSetFields ¶ added in v0.3.0
func (e *QueryMapEncoder) MapSetFields(k string, m FieldMarshaler)
MapSetFields Is not implemented, query map of map is undefined.
func (*QueryMapEncoder) MapSetValue ¶ added in v0.3.0
func (e *QueryMapEncoder) MapSetValue(k string, v ValueMarshaler)
MapSetValue adds a single value to the query.
func (*QueryMapEncoder) Start ¶ added in v0.3.0
func (e *QueryMapEncoder) Start()
Start does nothing.
type QuotedValue ¶ added in v0.3.0
type QuotedValue struct {
ValueMarshaler
}
QuotedValue represents a type that should be quoted when encoding a string value.
type ReadSeekerStream ¶ added in v0.3.0
type ReadSeekerStream struct {
V io.ReadSeeker
}
A ReadSeekerStream wrapps an io.ReadSeeker to be used as a StreamMarshaler.
func (ReadSeekerStream) MarshalStream ¶ added in v0.3.0
func (v ReadSeekerStream) MarshalStream() (io.ReadSeeker, error)
MarshalStream returns the wrapped io.ReadSeeker for encoding.
type StreamMarshaler ¶ added in v0.3.0
type StreamMarshaler interface {
MarshalStream() (io.ReadSeeker, error)
}
A StreamMarshaler interface is used to marshal a stream when encoding.
type StringStream ¶ added in v0.3.0
type StringStream string
A StringStream aliases a string to be used as a StreamMarshaler.
func (StringStream) MarshalStream ¶ added in v0.3.0
func (v StringStream) MarshalStream() (io.ReadSeeker, error)
MarshalStream marshals a string into an io.ReadSeeker for encoding.
type StringValue ¶ added in v0.3.0
type StringValue string
StringValue provides encoding of string for AWS protocols.
func (StringValue) MarshalValue ¶ added in v0.3.0
func (v StringValue) MarshalValue() (string, error)
MarshalValue formats the value into a string for encoding.
func (StringValue) MarshalValueBuf ¶ added in v0.3.0
func (v StringValue) MarshalValueBuf(b []byte) ([]byte, error)
MarshalValueBuf formats the value into a byte slice for encoding. If there is enough room in the passed in slice v will be appended to it.
Will reset the length of the passed in slice to 0.
type Target ¶ added in v0.3.0
type Target int
Target is the encode and decode targets of protocol marshaling.
type TimeValue ¶ added in v0.3.0
TimeValue provies encoding of time.Time for AWS protocols.
func (TimeValue) MarshalValue ¶ added in v0.3.0
MarshalValue formats the value into a string given a format for encoding.
func (TimeValue) MarshalValueBuf ¶ added in v0.3.0
MarshalValueBuf formats the value into a byte slice for encoding. If there is enough room in the passed in slice v will be appended to it.
Will reset the length of the passed in slice to 0.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package ec2query provides serialization of AWS EC2 requests and responses.
|
Package ec2query provides serialization of AWS EC2 requests and responses. |
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. |
xmlutil
Package xmlutil provides XML serialization of AWS requests and responses.
|
Package xmlutil provides XML serialization of AWS requests and responses. |