Documentation
¶
Overview ¶
Package api represents API abstractions for rendering service generated files.
Index ¶
- type API
- func (a *API) APIGoCode() string
- func (a *API) Attach(filename string)
- func (a *API) AttachPaginators(filename string)
- func (a *API) AttachString(str string)
- func (a *API) ExampleGoCode() string
- func (a *API) ExportableName(name string) string
- func (a *API) InterfaceGoCode() string
- func (a *API) InterfacePackageName() string
- func (a *API) InterfaceTestGoCode() string
- func (a *API) NewAPIGoCodeWithPkgName(cfg string) string
- func (a *API) NiceName() string
- func (a *API) OperationList() []*Operation
- func (a *API) OperationNames() []string
- func (a *API) PackageName() string
- func (a *API) ProtocolPackage() string
- func (a *API) ServiceGoCode() string
- func (a *API) Setup()
- func (a *API) ShapeList() []*Shape
- func (a *API) ShapeNames() []string
- func (a *API) StructName() string
- func (a *API) UseInitMethods() bool
- type HTTPInfo
- type Metadata
- type Operation
- type Paginator
- type Shape
- func (s *Shape) Docstring() string
- func (s *Shape) GoCode() string
- func (s *Shape) GoType() string
- func (s *Shape) GoTypeElem() string
- func (s *Shape) GoTypeWithPkgName() string
- func (s *Shape) IsRequired(member string) bool
- func (s *Shape) MemberNames() []string
- func (s *Shape) Rename(newName string)
- type ShapeRef
- type XMLInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
Metadata Metadata
Operations map[string]*Operation
Shapes map[string]*Shape
// Disables inflection checks. Only use this when generating tests
NoInflections bool
// Set to true to avoid removing unused shapes
NoRemoveUnusedShapes bool
// Set to true to ignore service/request init methods (for testing)
NoInitMethods bool
// contains filtered or unexported fields
}
An API defines a service API's definition. and logic to serialize the definition.
func Load ¶
func Load(api, docs, paginators, waiters string) *API
Load takes a set of files for each filetype and returns an API pointer. The API will be initialized once all files have been loaded and parsed.
Will panic if any failure opening the definition JSON files, or there are unrecognized exported names.
func (*API) APIGoCode ¶
func (a *API) APIGoCode() string
APIGoCode renders the API in Go code. Returning it as a string
func (*API) Attach ¶
func (a *API) Attach(filename string)
Attach opens a file by name, and unmarshal its JSON data. Will proceed to setup the API if not already done so.
func (*API) AttachPaginators ¶
func (a *API) AttachPaginators(filename string)
AttachPaginators attaches pagination configuration from filename to the API.
func (*API) AttachString ¶
func (a *API) AttachString(str string)
AttachString will unmarshal a raw JSON string, and setup the API if not already done so.
func (*API) ExampleGoCode ¶
func (a *API) ExampleGoCode() string
ExampleGoCode renders service example code. Returning it as a string.
func (*API) ExportableName ¶
func (a *API) ExportableName(name string) string
ExportableName a name which is exportable as a value or name in Go code
func (*API) InterfaceGoCode ¶
func (a *API) InterfaceGoCode() string
InterfaceGoCode returns the go code for the service's API operations as an interface{}. Assumes that the interface is being created in a different package than the service API's package.
func (*API) InterfacePackageName ¶
func (a *API) InterfacePackageName() string
InterfacePackageName returns the package name for the interface.
func (*API) InterfaceTestGoCode ¶
func (a *API) InterfaceTestGoCode() string
InterfaceTestGoCode returns the go code for the testing of a service interface.
func (*API) NewAPIGoCodeWithPkgName ¶
func (a *API) NewAPIGoCodeWithPkgName(cfg string) string
NewAPIGoCodeWithPkgName returns a string of instantiating the API prefixed with its package name. Takes a string depicting the Config.
func (*API) NiceName ¶
func (a *API) NiceName() string
NiceName returns the human friendly API name.
func (*API) OperationList ¶
func (a *API) OperationList() []*Operation
OperationList returns a slice of API operation pointers
func (*API) OperationNames ¶
func (a *API) OperationNames() []string
OperationNames returns a slice of API operations supported.
func (*API) ProtocolPackage ¶
func (a *API) ProtocolPackage() string
ProtocolPackage returns the package name of the protocol this API uses.
func (*API) ServiceGoCode ¶
func (a *API) ServiceGoCode() string
ServiceGoCode renders service go code. Returning it as a string.
func (*API) ShapeList ¶
func (a *API) ShapeList() []*Shape
ShapeList returns a slice of shape pointers used by the API.
func (*API) ShapeNames ¶
func (a *API) ShapeNames() []string
ShapeNames returns a slice of names for each shape used by the API.
func (*API) StructName ¶
func (a *API) StructName() string
StructName returns the struct name for a given API.
func (*API) UseInitMethods ¶
func (a *API) UseInitMethods() bool
UseInitMethods returns if the service's init method should be rendered.
type HTTPInfo ¶
type HTTPInfo struct {
Method string
RequestURI string
ResponseCode uint
}
A HTTPInfo defines the method of HTTP request for the Operation.
type Metadata ¶
type Metadata struct {
APIVersion string
EndpointPrefix string
SigningName string
ServiceAbbreviation string
ServiceFullName string
SignatureVersion string
JSONVersion string
TargetPrefix string
Protocol string
}
A Metadata is the metadata about an API's definition.
type Operation ¶
type Operation struct {
API *API `json:"-"`
ExportedName string
Name string
Documentation string
HTTP HTTPInfo
InputRef ShapeRef `json:"input"`
OutputRef ShapeRef `json:"output"`
Paginator *Paginator
}
An Operation defines a specific API Operation.
func (*Operation) Docstring ¶
func (o *Operation) Docstring() string
Docstring returns the docstring formated documentation for the Operation
func (*Operation) Example ¶
func (o *Operation) Example() string
Example returns a string of the rendered Go code for the Operation
func (*Operation) ExampleInput ¶
func (o *Operation) ExampleInput() string
ExampleInput return a string of the rendered Go code for an example's input parameters
func (*Operation) GoCode ¶
func (o *Operation) GoCode() string
GoCode returns a string of rendered GoCode for this Operation
func (*Operation) HasInput ¶
func (o *Operation) HasInput() bool
HasInput returns if the Operation accepts an input paramater
func (*Operation) HasOutput ¶
func (o *Operation) HasOutput() bool
HasOutput returns if the Operation accepts an output parameter
func (*Operation) InterfaceSignature ¶
func (o *Operation) InterfaceSignature() string
InterfaceSignature returns a string representing the Operation's interface{} functional signature.
type Paginator ¶
type Paginator struct {
InputTokens interface{} `json:"input_token"`
OutputTokens interface{} `json:"output_token"`
LimitKey string `json:"limit_key"`
MoreResults string `json:"more_results"`
}
Paginator keeps track of pagination configuration for an API operation.
func (*Paginator) InputTokensString ¶
func (p *Paginator) InputTokensString() string
InputTokensString returns output tokens formatted as a list
func (*Paginator) OutputTokensString ¶
func (p *Paginator) OutputTokensString() string
OutputTokensString returns output tokens formatted as a list
type Shape ¶
type Shape struct {
API *API `json:"-"`
ShapeName string
Documentation string
MemberRefs map[string]*ShapeRef `json:"members"`
MemberRef ShapeRef `json:"member"`
KeyRef ShapeRef `json:"key"`
ValueRef ShapeRef `json:"value"`
Required []string
Payload string
Type string
Exception bool
Enum []string
Flattened bool
Streaming bool
Location string
LocationName string
XMLNamespace XMLInfo
// contains filtered or unexported fields
}
A Shape defines the definition of a shape type
func (*Shape) Docstring ¶
func (s *Shape) Docstring() string
Docstring returns the godocs formated documentation
func (*Shape) GoCode ¶
func (s *Shape) GoCode() string
GoCode returns the rendered Go code for the Shape.
func (*Shape) GoTypeElem ¶
func (s *Shape) GoTypeElem() string
GoTypeElem returns the Go type for the Shape. If the shape type is a pointer just the type will be returned minus the pointer *.
func (*Shape) GoTypeWithPkgName ¶
func (s *Shape) GoTypeWithPkgName() string
GoTypeWithPkgName returns a shape's type as a string with the package name in <packageName>.<type> format. Package naming only applies to structures.
func (*Shape) IsRequired ¶
func (s *Shape) IsRequired(member string) bool
IsRequired returns if member is a required field.
func (*Shape) MemberNames ¶
func (s *Shape) MemberNames() []string
MemberNames returns a slice of struct member names.
type ShapeRef ¶
type ShapeRef struct {
API *API `json:"-"`
Shape *Shape `json:"-"`
Documentation string
ShapeName string `json:"shape"`
Location string
LocationName string
QueryName string
Flattened bool
Streaming bool
XMLAttribute bool
XMLNamespace XMLInfo
Payload string
}
A ShapeRef defines the usage of a shape within the API.
func (*ShapeRef) Docstring ¶
func (ref *ShapeRef) Docstring() string
Docstring returns the godocs formated documentation
func (*ShapeRef) GoTags ¶
func (ref *ShapeRef) GoTags(toplevel bool, isRequired bool) string
GoTags returns the rendered tags string for the ShapeRef
func (*ShapeRef) GoType ¶
func (ref *ShapeRef) GoType() string
GoType returns a shape ref's Go type.
func (*ShapeRef) GoTypeElem ¶
func (ref *ShapeRef) GoTypeElem() string
GoTypeElem returns the Go type for the Shape. If the shape type is a pointer just the type will be returned minus the pointer *.
func (*ShapeRef) GoTypeWithPkgName ¶
func (ref *ShapeRef) GoTypeWithPkgName() string
GoTypeWithPkgName returns a shape's type as a string with the package name in <packageName>.<type> format. Package naming only applies to structures.