smithy

package module
v1.17.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2023 License: Apache-2.0 Imports: 3 Imported by: 2,328

README

Smithy Go

Go Build StatusCodegen Build Status

Smithy code generators for Go.

WARNING: All interfaces are subject to change.

Can I use this?

In order to generate a usable smithy client you must provide a protocol definition, such as AWS restJson1, in order to generate transport mechanisms and serialization/deserialization code ("serde") accordingly.

The code generator does not currently support any protocols out of the box, therefore the useability of this project on its own is currently limited. Support for all AWS protocols exists in aws-sdk-go-v2. We are tracking the movement of those out of the SDK into smithy-go in #458, but there's currently no timeline for doing so.

License

This project is licensed under the Apache-2.0 License.

Documentation

Overview

Package smithy provides the core components for a Smithy SDK.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIError

type APIError interface {
	error

	// ErrorCode returns the error code for the API exception.
	ErrorCode() string
	// ErrorMessage returns the error message for the API exception.
	ErrorMessage() string
	// ErrorFault returns the fault for the API exception.
	ErrorFault() ErrorFault
}

APIError provides the generic API and protocol agnostic error type all SDK generated exception types will implement.

type CanceledError

type CanceledError struct {
	Err error
}

CanceledError is the error that will be returned by an API request that was canceled. API operations given a Context may return this error when canceled.

func (*CanceledError) CanceledError

func (*CanceledError) CanceledError() bool

CanceledError returns true to satisfy interfaces checking for canceled errors.

func (*CanceledError) Error

func (e *CanceledError) Error() string

func (*CanceledError) Unwrap

func (e *CanceledError) Unwrap() error

Unwrap returns the underlying error, if there was one.

type DeserializationError

type DeserializationError struct {
	Err      error //  original error
	Snapshot []byte
}

DeserializationError provides a wrapper for an error that occurs during deserialization.

func (*DeserializationError) Error

func (e *DeserializationError) Error() string

Error returns a formatted error for DeserializationError

func (*DeserializationError) Unwrap

func (e *DeserializationError) Unwrap() error

Unwrap returns the underlying Error in DeserializationError

type Document deprecated

type Document interface {
	UnmarshalDocument(interface{}) error
	GetValue() (interface{}, error)
}

Document provides access to loosely structured data in a document-like format.

Deprecated: See the github.com/aws/smithy-go/document package.

type ErrorFault

type ErrorFault int

ErrorFault provides the type for a Smithy API error fault.

const (
	FaultUnknown ErrorFault = iota
	FaultServer
	FaultClient
)

ErrorFault enumeration values

func (ErrorFault) String

func (f ErrorFault) String() string

type GenericAPIError

type GenericAPIError struct {
	Code    string
	Message string
	Fault   ErrorFault
}

GenericAPIError provides a generic concrete API error type that SDKs can use to deserialize error responses into. Should be used for unmodeled or untyped errors.

func (*GenericAPIError) Error

func (e *GenericAPIError) Error() string

func (*GenericAPIError) ErrorCode

func (e *GenericAPIError) ErrorCode() string

ErrorCode returns the error code for the API exception.

func (*GenericAPIError) ErrorFault

func (e *GenericAPIError) ErrorFault() ErrorFault

ErrorFault returns the fault for the API exception.

func (*GenericAPIError) ErrorMessage

func (e *GenericAPIError) ErrorMessage() string

ErrorMessage returns the error message for the API exception.

type InvalidParamError

type InvalidParamError interface {
	error

	// Field name the error occurred on.
	Field() string

	// SetContext updates the context of the error.
	SetContext(string)

	// AddNestedContext updates the error's context to include a nested level.
	AddNestedContext(string)
}

An InvalidParamError represents an invalid parameter error type.

type InvalidParamsError

type InvalidParamsError struct {
	// Context is the base context of the invalid parameter group.
	Context string
	// contains filtered or unexported fields
}

An InvalidParamsError provides wrapping of invalid parameter errors found when validating API operation input parameters.

func (*InvalidParamsError) Add

Add adds a new invalid parameter error to the collection of invalid parameters. The context of the invalid parameter will be updated to reflect this collection.

func (*InvalidParamsError) AddNested

func (e *InvalidParamsError) AddNested(nestedCtx string, nested InvalidParamsError)

AddNested adds the invalid parameter errors from another InvalidParamsError value into this collection. The nested errors will have their nested context updated and base context to reflect the merging.

Use for nested validations errors.

func (InvalidParamsError) Error

func (e InvalidParamsError) Error() string

Error returns the string formatted form of the invalid parameters.

func (InvalidParamsError) Errs

func (e InvalidParamsError) Errs() []error

Errs returns a slice of the invalid parameters

func (*InvalidParamsError) Len

func (e *InvalidParamsError) Len() int

Len returns the number of invalid parameter errors

type OperationError

type OperationError struct {
	ServiceID     string
	OperationName string
	Err           error
}

OperationError decorates an underlying error which occurred while invoking an operation with names of the operation and API.

func (*OperationError) Error

func (e *OperationError) Error() string

func (*OperationError) Operation

func (e *OperationError) Operation() string

Operation returns the name of the API operation the error occurred with.

func (*OperationError) Service

func (e *OperationError) Service() string

Service returns the name of the API service the error occurred with.

func (*OperationError) Unwrap

func (e *OperationError) Unwrap() error

Unwrap returns the nested error if any, or nil.

type ParamRequiredError

type ParamRequiredError struct {
	// contains filtered or unexported fields
}

An ParamRequiredError represents an required parameter error.

func NewErrParamRequired

func NewErrParamRequired(field string) *ParamRequiredError

NewErrParamRequired creates a new required parameter error.

func (*ParamRequiredError) AddNestedContext

func (e *ParamRequiredError) AddNestedContext(ctx string)

AddNestedContext prepends a context to the field's path.

func (ParamRequiredError) Error

func (e ParamRequiredError) Error() string

Error returns the string version of the invalid parameter error.

func (ParamRequiredError) Field

func (e ParamRequiredError) Field() string

Field Returns the field and context the error occurred.

func (*ParamRequiredError) SetContext

func (e *ParamRequiredError) SetContext(ctx string)

SetContext updates the base context of the error.

type Properties added in v1.14.0

type Properties struct {
	// contains filtered or unexported fields
}

Properties provides storing and reading metadata values. Keys may be any comparable value type. Get and Set will panic if a key is not comparable.

The zero value for a Properties instance is ready for reads/writes without any additional initialization.

func (*Properties) Get added in v1.14.0

func (m *Properties) Get(key interface{}) interface{}

Get attempts to retrieve the value the key points to. Returns nil if the key was not found.

Panics if key type is not comparable.

func (*Properties) Has added in v1.14.0

func (m *Properties) Has(key interface{}) bool

Has returns whether the key exists in the metadata.

Panics if the key type is not comparable.

func (*Properties) Set added in v1.14.0

func (m *Properties) Set(key, value interface{})

Set stores the value pointed to by the key. If a value already exists at that key it will be replaced with the new value.

Panics if the key type is not comparable.

func (*Properties) SetAll added in v1.17.0

func (m *Properties) SetAll(other *Properties)

SetAll accepts all of the given Properties into the receiver, overwriting any existing keys in the case of conflicts.

type PropertiesReader added in v1.14.0

type PropertiesReader interface {
	Get(key interface{}) interface{}
}

PropertiesReader provides an interface for reading metadata from the underlying metadata container.

type SerializationError

type SerializationError struct {
	Err error // original error
}

SerializationError represents an error that occurred while attempting to serialize a request

func (*SerializationError) Error

func (e *SerializationError) Error() string

Error returns a formatted error for SerializationError

func (*SerializationError) Unwrap

func (e *SerializationError) Unwrap() error

Unwrap returns the underlying Error in SerializationError

Directories

Path Synopsis
Package auth defines protocol-agnostic authentication types for smithy clients.
Package auth defines protocol-agnostic authentication types for smithy clients.
bearer
Package bearer provides middleware and utilities for authenticating API operation calls with a Bearer Token.
Package bearer provides middleware and utilities for authenticating API operation calls with a Bearer Token.
codegen module
container
private/cache
Package cache defines the interface for a key-based data store.
Package cache defines the interface for a key-based data store.
private/cache/lru
Package lru implements [cache.Cache] with an LRU eviction policy.
Package lru implements [cache.Cache] with an LRU eviction policy.
Package document provides interface definitions and error types for document types.
Package document provides interface definitions and error types for document types.
json
Package json provides a document Encoder and Decoder implementation that is used to implement Smithy document types for JSON based protocols.
Package json provides a document Encoder and Decoder implementation that is used to implement Smithy document types for JSON based protocols.
xml
Package xml holds the XMl encoder utility.
Package xml holds the XMl encoder utility.
internal
Package io provides utilities for Smithy generated API clients.
Package io provides utilities for Smithy generated API clients.
metrics
Package middleware provides transport agnostic middleware for decorating SDK handlers.
Package middleware provides transport agnostic middleware for decorating SDK handlers.
private
Package ptr provides utilities for converting scalar literal type values to and from pointers inline.
Package ptr provides utilities for converting scalar literal type values to and from pointers inline.
Package rand provides utilities for creating and working with random value generators.
Package rand provides utilities for creating and working with random value generators.
Package testing provides utilities for testing smith clients and protocols.
Package testing provides utilities for testing smith clients and protocols.
xml
package xml is xml testing package that supports xml comparison utility.
package xml is xml testing package that supports xml comparison utility.
tracing
transport
http
Package http provides the HTTP transport client and request/response types needed to round trip API operation calls with an service.
Package http provides the HTTP transport client and request/response types needed to round trip API operation calls with an service.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL