diff --git a/openrpc/types/types.go b/openrpc/types/types.go index df2b5cbf925a99e81a65c35e1ec3ac2d21414a6b..83cf8caf823d42c3e8a3be2d292200bf355f5aa1 100644 --- a/openrpc/types/types.go +++ b/openrpc/types/types.go @@ -63,9 +63,10 @@ type Schema struct { } type Param struct { - Name string `json:"name"` - Required bool `json:"required"` - Schema Schema `json:"schema"` + Name string `json:"name"` + Description string `json:"description,omitempty"` + Required bool `json:"required"` + Schema Schema `json:"schema"` } type Result struct { @@ -74,10 +75,41 @@ type Result struct { } type Method struct { - Name string `json:"name"` - Summary string `json:"summary"` - Params []Param `json:"params"` - Result Result `json:"result"` + Name string `json:"name"` + Tags []Tag `json:"tags,omitempty"` + Summary string `json:"summary"` + Params []Param `json:"params"` + Result Result `json:"result"` + Examples []ExamplePairing `json:"examples,omitempty"` +} + +type Tag struct { + Ref string `json:"$ref,omitempty"` + Name string `json:"name"` + Summary string `json:"summary,omitempty"` + Description string `json:"description,omitempty"` + ExternalDocs ExternalDocumentation `json:"externalDocs,omitempty"` +} + +type ExternalDocumentation struct { + Description string `json:"description,omitempty"` + URL string `json:"url"` +} + +type ExamplePairing struct { + Name string `json:"name"` + Description string `json:"description,omitempty"` + Summary string `json:"summary,omitempty"` + Params []Example `json:"params"` + Result Example `json:"result"` +} + +type Example struct { + Ref string `json:"$ref,omitempty"` + Name string `json:"name"` + Summary string `json:"summary,omitempty"` + Description string `json:"description,omitempty"` + Value any `json:"value"` } func (m *Method) Namespace() string {