asyncapi

package
v0.21.2 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2023 License: Apache-2.0 Imports: 5 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Any

type Any struct {
	AllOf       []*Any          `json:"allOf"`
	AnyOf       []*Any          `json:"anyOf"`
	OneOf       []*Any          `json:"oneOf"`
	Type        string          `json:"type"`
	Description string          `json:"description"`
	Format      string          `json:"format"`
	Properties  map[string]*Any `json:"properties"`
	Items       *Any            `json:"items"`
	Reference   string          `json:"$ref"`
	Required    []string        `json:"required"`

	// Non AsyncAPI fields
	Name        string `json:"-"`
	ReferenceTo *Any   `json:"-"`
	IsRequired  bool   `json:"-"`

	// Embedded extended fields
	Extensions
}

Any is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#schemaObject

func NewAny added in v0.5.0

func NewAny() Any

NewAny creates a new Any structure with initialized fields

func (Any) IsFieldRequired added in v0.4.0

func (a Any) IsFieldRequired(field string) bool

IsFieldRequired checks if a field is required in the asyncapi struct.

func (*Any) MergeWith added in v0.9.0

func (a *Any) MergeWith(spec Specification, a2 Any)

MergeWith merges the given Any structure with another one (basically for AllOf, AnyOf, OneOf, etc)

func (*Any) Process added in v0.5.0

func (a *Any) Process(name string, spec Specification, isRequired bool)

Process processes the Any structure to make it ready for code generation

type Channel

type Channel struct {
	Parameters map[string]*Parameter `json:"parameters"`

	Subscribe *Operation `json:"subscribe"`
	Publish   *Operation `json:"publish"`

	// Non AsyncAPI fields
	Name string `json:"-"`
	Path string `json:"-"`
}

Channel is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#channelItemObject

func (Channel) GetChannelMessage added in v0.2.0

func (c Channel) GetChannelMessage() *Message

GetChannelMessage will return the channel message WARNING: if there is a reference, then it won't be followed.

func (*Channel) Process added in v0.2.0

func (c *Channel) Process(path string, spec Specification)

Process processes the Channel to make it ready for code generation

type Components

type Components struct {
	Messages   map[string]*Message   `json:"messages"`
	Schemas    map[string]*Any       `json:"schemas"`
	Parameters map[string]*Parameter `json:"parameters"`
}

Components is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#componentsObject

func (*Components) Process added in v0.2.0

func (c *Components) Process(spec Specification)

Process processes the Components structure to make it ready for code generation

type CorrelationID added in v0.1.1

type CorrelationID struct {
	Description string `json:"description"`
	Location    string `json:"location"`
}

CorrelationID is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#correlationIdObject

type Extensions added in v0.18.0

type Extensions struct {
	// Setting custom Go type when generating schemas
	ExtGoType string `json:"x-go-type"`

	// Setting custom import statements for ExtGoType
	ExtGoTypeImport *GoTypeImportExtension `json:"x-go-type-import"`
}

Extensions holds additional properties defined for asyncapi-codegen that are out of the AsyncAPI spec.

type GoTypeImportExtension added in v0.18.0

type GoTypeImportExtension struct {
	Name GoTypeImportName `json:"name"` // Package name for import, optional
	Path GoTypeImportPath `json:"path"` // Path to package to import
}

GoTypeImportExtension specifies the required import statement for the x-go-type extension. For example, GoTypeImportExtension{Name: "myuuid", Path: "github.com/google/uuid"} will generate `import myuuid github.com/google/uuid`

type GoTypeImportName added in v0.18.0

type GoTypeImportName string

GoTypeImportName is the import name type for x-go-type-import

type GoTypeImportPath added in v0.18.0

type GoTypeImportPath string

GoTypeImportPath is the import path type for x-go-type-import

type Info

type Info struct {
	Title       string `json:"title"`
	Version     string `json:"version"`
	Description string `json:"description"`
}

Info is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#infoObject

type Message

type Message struct {
	Description   string         `json:"description"`
	Headers       *Any           `json:"headers"`
	OneOf         []*Message     `json:"oneOf"`
	Payload       *Any           `json:"payload"`
	CorrelationID *CorrelationID `json:"correlationID"`
	Reference     string         `json:"$ref"`

	// --- Non AsyncAPI fields -------------------------------------------------
	Name        string   `json:"-"`
	ReferenceTo *Message `json:"-"`

	// CorrelationIDLocation will indicate where the correlation id is
	// According to: https://www.asyncapi.com/docs/reference/specification/v2.6.0#correlationIDObject
	CorrelationIDLocation string `json:"-"`
	CorrelationIDRequired bool   `json:"-"`
}

Message is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#messageObject

func (*Message) MergeWith added in v0.9.0

func (msg *Message) MergeWith(spec Specification, msg2 Message)

MergeWith merges the Message with another one

func (*Message) Process added in v0.2.0

func (msg *Message) Process(name string, spec Specification)

Process processes the Message to make it ready for code generation

type Operation

type Operation struct {
	Message Message `json:"message"`
}

Operation is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#operationObject

type Parameter added in v0.9.0

type Parameter struct {
	Description string `json:"description"`
	Schema      *Any   `json:"schema"`
	Location    string `json:"location"`
	Reference   string `json:"$ref"`

	// Non AsyncAPI fields
	Name        string     `json:"-"`
	ReferenceTo *Parameter `json:"-"`
}

Parameter is a representation of the corresponding asyncapi object filled from an asyncapi specification that will be used to generate code. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#parameterObject

func (*Parameter) Process added in v0.9.0

func (p *Parameter) Process(name string, spec Specification)

Process processes the Parameter structure to make it ready for code generation

type Specification

type Specification struct {
	Version    string              `json:"asyncapi"`
	Info       Info                `json:"info"`
	Channels   map[string]*Channel `json:"channels"`
	Components Components          `json:"components"`
}

Specification is the asyncapi specification struct that will be used to generate code. It should contains every information given in the asyncapi specification. Source: https://www.asyncapi.com/docs/reference/specification/v2.6.0#schema

func (Specification) CustomImports added in v0.18.0

func (s Specification) CustomImports() ([]string, error)

CustomImports collects all custom import paths set by x-go-type-imports in all Schema Objects in the Specification. Returns import strings like `alias "abc.xyz/repo/package"` for code generation. Returns error when import name conflicts.

func (Specification) GetPublishSubscribeCount added in v0.1.2

func (s Specification) GetPublishSubscribeCount() (publishCount, subscribeCount uint)

GetPublishSubscribeCount gets the count of 'publish' channels and the count of 'subscribe' channels inside the Specification

func (*Specification) Process

func (s *Specification) Process()

Process processes the Specification to make it ready for code generation

func (Specification) ReferenceAny added in v0.5.0

func (s Specification) ReferenceAny(ref string) *Any

ReferenceAny returns the Any struct corresponding to the given reference

func (Specification) ReferenceMessage

func (s Specification) ReferenceMessage(ref string) *Message

ReferenceMessage returns the Message struct corresponding to the given reference

func (Specification) ReferenceParameter added in v0.12.0

func (s Specification) ReferenceParameter(ref string) *Parameter

ReferenceParameter returns the Parameter struct corresponding to the given reference

Jump to

Keyboard shortcuts

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