Files
libopenapi/datamodel/spec.go
Dave Shanley 9db542f36c Renaming models to datamodel
I over use this package name, it's going to create all kinds of conflicts in my apps, so this name is going to be slightly different.
2022-07-18 08:12:12 -04:00

36 lines
1.5 KiB
Go

package datamodel
import (
"gopkg.in/yaml.v3"
"time"
)
// SpecInfo represents information about a supplied specification.
type SpecInfo struct {
SpecType string `json:"type"`
Version string `json:"version"`
SpecFormat string `json:"format"`
SpecFileType string `json:"fileType"`
RootNode *yaml.Node `json:"-"` // reference to the root node of the spec.
SpecBytes *[]byte `json:"bytes"` // the original bytes
SpecJSONBytes *[]byte `json:"-"` // original bytes converted to JSON
SpecJSON *map[string]interface{} `json:"-"` // standard JSON map of original bytes
Error error `json:"-"` // something go wrong?
APISchema string `json:"-"` // API Schema for supplied spec type (2 or 3)
Generated time.Time `json:"-"`
jsonParsingChannel chan bool
}
// SearchResult represents the position of a result in a specification.
type SearchResult struct {
Key string `json:"key"`
Line int `json:"line"`
Col int `json:"col"`
}
// GetJSONParsingChannel returns a channel that will close once async JSON parsing is completed.
// This is required as rules may start executing before we're even done reading in the spec to JSON.
func (si SpecInfo) GetJSONParsingChannel() chan bool {
return si.jsonParsingChannel
}