Files
catalyst/generator/swagger.go
2021-12-13 00:39:15 +01:00

62 lines
2.5 KiB
Go

package main
type Swagger struct {
Swagger string `yaml:"swagger" json:"swagger"`
Info Info `yaml:"info" json:"info"`
Paths map[string]PathItem `yaml:"paths" json:"paths"`
Definitions map[string]Definition `yaml:"definitions" json:"definitions"`
}
type Info struct {
Version string `yaml:"version" json:"version"`
Title string `yaml:"title" json:"title"`
}
type PathItem struct {
Get Operation `yaml:"get" json:"get"`
Post Operation `yaml:"post" json:"post"`
}
type Operation struct {
Tags []string `yaml:"tags" json:"tags"`
Summary string `yaml:"summary" json:"summary"`
Description string `yaml:"description" json:"description"`
OperationID string `yaml:"operationId" json:"operationId"`
Parameters []Parameter `yaml:"parameters" json:"parameters"`
Responses map[string]Response `yaml:"responses" json:"responses"`
}
type Parameter struct {
// Description string `yaml:"description" json:"description"`
Name string `yaml:"name" json:"name"`
In string `yaml:"in" json:"in"`
Required bool `yaml:"required" json:"required"`
Schema Schema `yaml:"schema" json:"schema"`
Direct Schema `yaml:"-,inline" json:"-,inline"`
}
type Schema struct {
Ref string `yaml:"$ref,omitempty" json:"$ref,omitempty"`
Format string `yaml:"format,omitempty" json:"format,omitempty"`
Title string `yaml:"title,omitempty" json:"title,omitempty"`
Description string `yaml:"description" json:"description,omitempty"`
Default interface{} `yaml:"default,omitempty" json:"default,omitempty"`
Maximum interface{} `yaml:"maximum,omitempty" json:"maximum,omitempty"`
Items *Schema `yaml:"items,omitempty" json:"items,omitempty"`
Type string `yaml:"type" json:"type,omitempty"`
AdditionalProperties *Schema `yaml:"additionalProperties,omitempty" json:"additionalProperties,omitempty"`
Enum []string `yaml:"enum,omitempty" json:"enum,omitempty"`
}
type Response struct {
Description string `yaml:"description" json:"description"`
Schema Schema `yaml:"schema" json:"schema"`
}
type Definition struct {
Type string `yaml:"type" json:"type"`
Required []string `yaml:"required,omitempty" json:"required,omitempty"`
Embed string `yaml:"x-embed" json:"x-embed"`
Properties map[string]Schema `yaml:"properties" json:"properties"`
}