mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-23 06:40:23 +00:00
c4f79d455f
As kubernetes 1.24.0 is released, updating kubernetes dependencies to 1.24.0 updates: #3086 Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
8634 lines
284 KiB
Go
8634 lines
284 KiB
Go
// Copyright 2020 Google LLC. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// THIS FILE IS AUTOMATICALLY GENERATED.
|
|
|
|
package openapi_v3
|
|
|
|
import (
|
|
"fmt"
|
|
"regexp"
|
|
"strings"
|
|
|
|
"gopkg.in/yaml.v3"
|
|
|
|
"github.com/google/gnostic/compiler"
|
|
)
|
|
|
|
// Version returns the package name (and OpenAPI version).
|
|
func Version() string {
|
|
return "openapi_v3"
|
|
}
|
|
|
|
// NewAdditionalPropertiesItem creates an object of type AdditionalPropertiesItem if possible, returning an error if not.
|
|
func NewAdditionalPropertiesItem(in *yaml.Node, context *compiler.Context) (*AdditionalPropertiesItem, error) {
|
|
errors := make([]error, 0)
|
|
x := &AdditionalPropertiesItem{}
|
|
matched := false
|
|
// SchemaOrReference schema_or_reference = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewSchemaOrReference(m, compiler.NewContext("schemaOrReference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &AdditionalPropertiesItem_SchemaOrReference{SchemaOrReference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// bool boolean = 2;
|
|
boolValue, ok := compiler.BoolForScalarNode(in)
|
|
if ok {
|
|
x.Oneof = &AdditionalPropertiesItem_Boolean{Boolean: boolValue}
|
|
matched = true
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid AdditionalPropertiesItem")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewAny creates an object of type Any if possible, returning an error if not.
|
|
func NewAny(in *yaml.Node, context *compiler.Context) (*Any, error) {
|
|
errors := make([]error, 0)
|
|
x := &Any{}
|
|
bytes := compiler.Marshal(in)
|
|
x.Yaml = string(bytes)
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewAnyOrExpression creates an object of type AnyOrExpression if possible, returning an error if not.
|
|
func NewAnyOrExpression(in *yaml.Node, context *compiler.Context) (*AnyOrExpression, error) {
|
|
errors := make([]error, 0)
|
|
x := &AnyOrExpression{}
|
|
matched := false
|
|
// Any any = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewAny(m, compiler.NewContext("any", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &AnyOrExpression_Any{Any: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Expression expression = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewExpression(m, compiler.NewContext("expression", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &AnyOrExpression_Expression{Expression: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid AnyOrExpression")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewCallback creates an object of type Callback if possible, returning an error if not.
|
|
func NewCallback(in *yaml.Node, context *compiler.Context) (*Callback, error) {
|
|
errors := make([]error, 0)
|
|
x := &Callback{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{}
|
|
allowedPatterns := []*regexp.Regexp{pattern0, pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// repeated NamedPathItem path = 1;
|
|
// MAP: PathItem ^
|
|
x.Path = make([]*NamedPathItem, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if true {
|
|
pair := &NamedPathItem{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Path = append(x.Path, pair)
|
|
}
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 2;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewCallbackOrReference creates an object of type CallbackOrReference if possible, returning an error if not.
|
|
func NewCallbackOrReference(in *yaml.Node, context *compiler.Context) (*CallbackOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &CallbackOrReference{}
|
|
matched := false
|
|
// Callback callback = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewCallback(m, compiler.NewContext("callback", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &CallbackOrReference_Callback{Callback: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Reference reference = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &CallbackOrReference_Reference{Reference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid CallbackOrReference")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewCallbacksOrReferences creates an object of type CallbacksOrReferences if possible, returning an error if not.
|
|
func NewCallbacksOrReferences(in *yaml.Node, context *compiler.Context) (*CallbacksOrReferences, error) {
|
|
errors := make([]error, 0)
|
|
x := &CallbacksOrReferences{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedCallbackOrReference additional_properties = 1;
|
|
// MAP: CallbackOrReference
|
|
x.AdditionalProperties = make([]*NamedCallbackOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedCallbackOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewCallbackOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewComponents creates an object of type Components if possible, returning an error if not.
|
|
func NewComponents(in *yaml.Node, context *compiler.Context) (*Components, error) {
|
|
errors := make([]error, 0)
|
|
x := &Components{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"callbacks", "examples", "headers", "links", "parameters", "requestBodies", "responses", "schemas", "securitySchemes"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// SchemasOrReferences schemas = 1;
|
|
v1 := compiler.MapValueForKey(m, "schemas")
|
|
if v1 != nil {
|
|
var err error
|
|
x.Schemas, err = NewSchemasOrReferences(v1, compiler.NewContext("schemas", v1, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// ResponsesOrReferences responses = 2;
|
|
v2 := compiler.MapValueForKey(m, "responses")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Responses, err = NewResponsesOrReferences(v2, compiler.NewContext("responses", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// ParametersOrReferences parameters = 3;
|
|
v3 := compiler.MapValueForKey(m, "parameters")
|
|
if v3 != nil {
|
|
var err error
|
|
x.Parameters, err = NewParametersOrReferences(v3, compiler.NewContext("parameters", v3, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// ExamplesOrReferences examples = 4;
|
|
v4 := compiler.MapValueForKey(m, "examples")
|
|
if v4 != nil {
|
|
var err error
|
|
x.Examples, err = NewExamplesOrReferences(v4, compiler.NewContext("examples", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// RequestBodiesOrReferences request_bodies = 5;
|
|
v5 := compiler.MapValueForKey(m, "requestBodies")
|
|
if v5 != nil {
|
|
var err error
|
|
x.RequestBodies, err = NewRequestBodiesOrReferences(v5, compiler.NewContext("requestBodies", v5, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// HeadersOrReferences headers = 6;
|
|
v6 := compiler.MapValueForKey(m, "headers")
|
|
if v6 != nil {
|
|
var err error
|
|
x.Headers, err = NewHeadersOrReferences(v6, compiler.NewContext("headers", v6, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// SecuritySchemesOrReferences security_schemes = 7;
|
|
v7 := compiler.MapValueForKey(m, "securitySchemes")
|
|
if v7 != nil {
|
|
var err error
|
|
x.SecuritySchemes, err = NewSecuritySchemesOrReferences(v7, compiler.NewContext("securitySchemes", v7, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// LinksOrReferences links = 8;
|
|
v8 := compiler.MapValueForKey(m, "links")
|
|
if v8 != nil {
|
|
var err error
|
|
x.Links, err = NewLinksOrReferences(v8, compiler.NewContext("links", v8, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// CallbacksOrReferences callbacks = 9;
|
|
v9 := compiler.MapValueForKey(m, "callbacks")
|
|
if v9 != nil {
|
|
var err error
|
|
x.Callbacks, err = NewCallbacksOrReferences(v9, compiler.NewContext("callbacks", v9, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 10;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewContact creates an object of type Contact if possible, returning an error if not.
|
|
func NewContact(in *yaml.Node, context *compiler.Context) (*Contact, error) {
|
|
errors := make([]error, 0)
|
|
x := &Contact{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"email", "name", "url"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string url = 2;
|
|
v2 := compiler.MapValueForKey(m, "url")
|
|
if v2 != nil {
|
|
x.Url, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for url: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string email = 3;
|
|
v3 := compiler.MapValueForKey(m, "email")
|
|
if v3 != nil {
|
|
x.Email, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for email: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 4;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewDefaultType creates an object of type DefaultType if possible, returning an error if not.
|
|
func NewDefaultType(in *yaml.Node, context *compiler.Context) (*DefaultType, error) {
|
|
errors := make([]error, 0)
|
|
x := &DefaultType{}
|
|
matched := false
|
|
switch in.Tag {
|
|
case "!!bool":
|
|
var v bool
|
|
v, matched = compiler.BoolForScalarNode(in)
|
|
x.Oneof = &DefaultType_Boolean{Boolean: v}
|
|
case "!!str":
|
|
var v string
|
|
v, matched = compiler.StringForScalarNode(in)
|
|
x.Oneof = &DefaultType_String_{String_: v}
|
|
case "!!float":
|
|
var v float64
|
|
v, matched = compiler.FloatForScalarNode(in)
|
|
x.Oneof = &DefaultType_Number{Number: v}
|
|
case "!!int":
|
|
var v int64
|
|
v, matched = compiler.IntForScalarNode(in)
|
|
x.Oneof = &DefaultType_Number{Number: float64(v)}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewDiscriminator creates an object of type Discriminator if possible, returning an error if not.
|
|
func NewDiscriminator(in *yaml.Node, context *compiler.Context) (*Discriminator, error) {
|
|
errors := make([]error, 0)
|
|
x := &Discriminator{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"propertyName"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"mapping", "propertyName"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string property_name = 1;
|
|
v1 := compiler.MapValueForKey(m, "propertyName")
|
|
if v1 != nil {
|
|
x.PropertyName, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for propertyName: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Strings mapping = 2;
|
|
v2 := compiler.MapValueForKey(m, "mapping")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Mapping, err = NewStrings(v2, compiler.NewContext("mapping", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 3;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewDocument creates an object of type Document if possible, returning an error if not.
|
|
func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
|
|
errors := make([]error, 0)
|
|
x := &Document{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"info", "openapi", "paths"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"components", "externalDocs", "info", "openapi", "paths", "security", "servers", "tags"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string openapi = 1;
|
|
v1 := compiler.MapValueForKey(m, "openapi")
|
|
if v1 != nil {
|
|
x.Openapi, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for openapi: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Info info = 2;
|
|
v2 := compiler.MapValueForKey(m, "info")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Info, err = NewInfo(v2, compiler.NewContext("info", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated Server servers = 3;
|
|
v3 := compiler.MapValueForKey(m, "servers")
|
|
if v3 != nil {
|
|
// repeated Server
|
|
x.Servers = make([]*Server, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v3)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewServer(item, compiler.NewContext("servers", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Servers = append(x.Servers, y)
|
|
}
|
|
}
|
|
}
|
|
// Paths paths = 4;
|
|
v4 := compiler.MapValueForKey(m, "paths")
|
|
if v4 != nil {
|
|
var err error
|
|
x.Paths, err = NewPaths(v4, compiler.NewContext("paths", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Components components = 5;
|
|
v5 := compiler.MapValueForKey(m, "components")
|
|
if v5 != nil {
|
|
var err error
|
|
x.Components, err = NewComponents(v5, compiler.NewContext("components", v5, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated SecurityRequirement security = 6;
|
|
v6 := compiler.MapValueForKey(m, "security")
|
|
if v6 != nil {
|
|
// repeated SecurityRequirement
|
|
x.Security = make([]*SecurityRequirement, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v6)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewSecurityRequirement(item, compiler.NewContext("security", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Security = append(x.Security, y)
|
|
}
|
|
}
|
|
}
|
|
// repeated Tag tags = 7;
|
|
v7 := compiler.MapValueForKey(m, "tags")
|
|
if v7 != nil {
|
|
// repeated Tag
|
|
x.Tags = make([]*Tag, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v7)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewTag(item, compiler.NewContext("tags", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Tags = append(x.Tags, y)
|
|
}
|
|
}
|
|
}
|
|
// ExternalDocs external_docs = 8;
|
|
v8 := compiler.MapValueForKey(m, "externalDocs")
|
|
if v8 != nil {
|
|
var err error
|
|
x.ExternalDocs, err = NewExternalDocs(v8, compiler.NewContext("externalDocs", v8, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 9;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewEncoding creates an object of type Encoding if possible, returning an error if not.
|
|
func NewEncoding(in *yaml.Node, context *compiler.Context) (*Encoding, error) {
|
|
errors := make([]error, 0)
|
|
x := &Encoding{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"allowReserved", "contentType", "explode", "headers", "style"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string content_type = 1;
|
|
v1 := compiler.MapValueForKey(m, "contentType")
|
|
if v1 != nil {
|
|
x.ContentType, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for contentType: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// HeadersOrReferences headers = 2;
|
|
v2 := compiler.MapValueForKey(m, "headers")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Headers, err = NewHeadersOrReferences(v2, compiler.NewContext("headers", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// string style = 3;
|
|
v3 := compiler.MapValueForKey(m, "style")
|
|
if v3 != nil {
|
|
x.Style, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for style: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool explode = 4;
|
|
v4 := compiler.MapValueForKey(m, "explode")
|
|
if v4 != nil {
|
|
x.Explode, ok = compiler.BoolForScalarNode(v4)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for explode: %s", compiler.Display(v4))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool allow_reserved = 5;
|
|
v5 := compiler.MapValueForKey(m, "allowReserved")
|
|
if v5 != nil {
|
|
x.AllowReserved, ok = compiler.BoolForScalarNode(v5)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for allowReserved: %s", compiler.Display(v5))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 6;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewEncodings creates an object of type Encodings if possible, returning an error if not.
|
|
func NewEncodings(in *yaml.Node, context *compiler.Context) (*Encodings, error) {
|
|
errors := make([]error, 0)
|
|
x := &Encodings{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedEncoding additional_properties = 1;
|
|
// MAP: Encoding
|
|
x.AdditionalProperties = make([]*NamedEncoding, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedEncoding{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewEncoding(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewExample creates an object of type Example if possible, returning an error if not.
|
|
func NewExample(in *yaml.Node, context *compiler.Context) (*Example, error) {
|
|
errors := make([]error, 0)
|
|
x := &Example{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"description", "externalValue", "summary", "value"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string summary = 1;
|
|
v1 := compiler.MapValueForKey(m, "summary")
|
|
if v1 != nil {
|
|
x.Summary, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 2;
|
|
v2 := compiler.MapValueForKey(m, "description")
|
|
if v2 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Any value = 3;
|
|
v3 := compiler.MapValueForKey(m, "value")
|
|
if v3 != nil {
|
|
var err error
|
|
x.Value, err = NewAny(v3, compiler.NewContext("value", v3, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// string external_value = 4;
|
|
v4 := compiler.MapValueForKey(m, "externalValue")
|
|
if v4 != nil {
|
|
x.ExternalValue, ok = compiler.StringForScalarNode(v4)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for externalValue: %s", compiler.Display(v4))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 5;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewExampleOrReference creates an object of type ExampleOrReference if possible, returning an error if not.
|
|
func NewExampleOrReference(in *yaml.Node, context *compiler.Context) (*ExampleOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &ExampleOrReference{}
|
|
matched := false
|
|
// Example example = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewExample(m, compiler.NewContext("example", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &ExampleOrReference_Example{Example: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Reference reference = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &ExampleOrReference_Reference{Reference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid ExampleOrReference")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewExamplesOrReferences creates an object of type ExamplesOrReferences if possible, returning an error if not.
|
|
func NewExamplesOrReferences(in *yaml.Node, context *compiler.Context) (*ExamplesOrReferences, error) {
|
|
errors := make([]error, 0)
|
|
x := &ExamplesOrReferences{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedExampleOrReference additional_properties = 1;
|
|
// MAP: ExampleOrReference
|
|
x.AdditionalProperties = make([]*NamedExampleOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedExampleOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewExampleOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewExpression creates an object of type Expression if possible, returning an error if not.
|
|
func NewExpression(in *yaml.Node, context *compiler.Context) (*Expression, error) {
|
|
errors := make([]error, 0)
|
|
x := &Expression{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedAny additional_properties = 1;
|
|
// MAP: Any
|
|
x.AdditionalProperties = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewExternalDocs creates an object of type ExternalDocs if possible, returning an error if not.
|
|
func NewExternalDocs(in *yaml.Node, context *compiler.Context) (*ExternalDocs, error) {
|
|
errors := make([]error, 0)
|
|
x := &ExternalDocs{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"url"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"description", "url"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string description = 1;
|
|
v1 := compiler.MapValueForKey(m, "description")
|
|
if v1 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string url = 2;
|
|
v2 := compiler.MapValueForKey(m, "url")
|
|
if v2 != nil {
|
|
x.Url, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for url: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 3;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewHeader creates an object of type Header if possible, returning an error if not.
|
|
func NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {
|
|
errors := make([]error, 0)
|
|
x := &Header{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"allowEmptyValue", "allowReserved", "content", "deprecated", "description", "example", "examples", "explode", "required", "schema", "style"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string description = 1;
|
|
v1 := compiler.MapValueForKey(m, "description")
|
|
if v1 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool required = 2;
|
|
v2 := compiler.MapValueForKey(m, "required")
|
|
if v2 != nil {
|
|
x.Required, ok = compiler.BoolForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool deprecated = 3;
|
|
v3 := compiler.MapValueForKey(m, "deprecated")
|
|
if v3 != nil {
|
|
x.Deprecated, ok = compiler.BoolForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for deprecated: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool allow_empty_value = 4;
|
|
v4 := compiler.MapValueForKey(m, "allowEmptyValue")
|
|
if v4 != nil {
|
|
x.AllowEmptyValue, ok = compiler.BoolForScalarNode(v4)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for allowEmptyValue: %s", compiler.Display(v4))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string style = 5;
|
|
v5 := compiler.MapValueForKey(m, "style")
|
|
if v5 != nil {
|
|
x.Style, ok = compiler.StringForScalarNode(v5)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for style: %s", compiler.Display(v5))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool explode = 6;
|
|
v6 := compiler.MapValueForKey(m, "explode")
|
|
if v6 != nil {
|
|
x.Explode, ok = compiler.BoolForScalarNode(v6)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for explode: %s", compiler.Display(v6))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool allow_reserved = 7;
|
|
v7 := compiler.MapValueForKey(m, "allowReserved")
|
|
if v7 != nil {
|
|
x.AllowReserved, ok = compiler.BoolForScalarNode(v7)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for allowReserved: %s", compiler.Display(v7))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// SchemaOrReference schema = 8;
|
|
v8 := compiler.MapValueForKey(m, "schema")
|
|
if v8 != nil {
|
|
var err error
|
|
x.Schema, err = NewSchemaOrReference(v8, compiler.NewContext("schema", v8, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Any example = 9;
|
|
v9 := compiler.MapValueForKey(m, "example")
|
|
if v9 != nil {
|
|
var err error
|
|
x.Example, err = NewAny(v9, compiler.NewContext("example", v9, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// ExamplesOrReferences examples = 10;
|
|
v10 := compiler.MapValueForKey(m, "examples")
|
|
if v10 != nil {
|
|
var err error
|
|
x.Examples, err = NewExamplesOrReferences(v10, compiler.NewContext("examples", v10, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// MediaTypes content = 11;
|
|
v11 := compiler.MapValueForKey(m, "content")
|
|
if v11 != nil {
|
|
var err error
|
|
x.Content, err = NewMediaTypes(v11, compiler.NewContext("content", v11, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 12;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewHeaderOrReference creates an object of type HeaderOrReference if possible, returning an error if not.
|
|
func NewHeaderOrReference(in *yaml.Node, context *compiler.Context) (*HeaderOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &HeaderOrReference{}
|
|
matched := false
|
|
// Header header = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewHeader(m, compiler.NewContext("header", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &HeaderOrReference_Header{Header: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Reference reference = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &HeaderOrReference_Reference{Reference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid HeaderOrReference")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewHeadersOrReferences creates an object of type HeadersOrReferences if possible, returning an error if not.
|
|
func NewHeadersOrReferences(in *yaml.Node, context *compiler.Context) (*HeadersOrReferences, error) {
|
|
errors := make([]error, 0)
|
|
x := &HeadersOrReferences{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedHeaderOrReference additional_properties = 1;
|
|
// MAP: HeaderOrReference
|
|
x.AdditionalProperties = make([]*NamedHeaderOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedHeaderOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewHeaderOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewInfo creates an object of type Info if possible, returning an error if not.
|
|
func NewInfo(in *yaml.Node, context *compiler.Context) (*Info, error) {
|
|
errors := make([]error, 0)
|
|
x := &Info{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"title", "version"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"contact", "description", "license", "summary", "termsOfService", "title", "version"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string title = 1;
|
|
v1 := compiler.MapValueForKey(m, "title")
|
|
if v1 != nil {
|
|
x.Title, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for title: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 2;
|
|
v2 := compiler.MapValueForKey(m, "description")
|
|
if v2 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string terms_of_service = 3;
|
|
v3 := compiler.MapValueForKey(m, "termsOfService")
|
|
if v3 != nil {
|
|
x.TermsOfService, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for termsOfService: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Contact contact = 4;
|
|
v4 := compiler.MapValueForKey(m, "contact")
|
|
if v4 != nil {
|
|
var err error
|
|
x.Contact, err = NewContact(v4, compiler.NewContext("contact", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// License license = 5;
|
|
v5 := compiler.MapValueForKey(m, "license")
|
|
if v5 != nil {
|
|
var err error
|
|
x.License, err = NewLicense(v5, compiler.NewContext("license", v5, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// string version = 6;
|
|
v6 := compiler.MapValueForKey(m, "version")
|
|
if v6 != nil {
|
|
x.Version, ok = compiler.StringForScalarNode(v6)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for version: %s", compiler.Display(v6))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string summary = 7;
|
|
v7 := compiler.MapValueForKey(m, "summary")
|
|
if v7 != nil {
|
|
x.Summary, ok = compiler.StringForScalarNode(v7)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v7))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 8;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewItemsItem creates an object of type ItemsItem if possible, returning an error if not.
|
|
func NewItemsItem(in *yaml.Node, context *compiler.Context) (*ItemsItem, error) {
|
|
errors := make([]error, 0)
|
|
x := &ItemsItem{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for item array: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
x.SchemaOrReference = make([]*SchemaOrReference, 0)
|
|
y, err := NewSchemaOrReference(m, compiler.NewContext("<array>", m, context))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
x.SchemaOrReference = append(x.SchemaOrReference, y)
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewLicense creates an object of type License if possible, returning an error if not.
|
|
func NewLicense(in *yaml.Node, context *compiler.Context) (*License, error) {
|
|
errors := make([]error, 0)
|
|
x := &License{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"name"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"name", "url"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string url = 2;
|
|
v2 := compiler.MapValueForKey(m, "url")
|
|
if v2 != nil {
|
|
x.Url, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for url: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 3;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewLink creates an object of type Link if possible, returning an error if not.
|
|
func NewLink(in *yaml.Node, context *compiler.Context) (*Link, error) {
|
|
errors := make([]error, 0)
|
|
x := &Link{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"description", "operationId", "operationRef", "parameters", "requestBody", "server"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string operation_ref = 1;
|
|
v1 := compiler.MapValueForKey(m, "operationRef")
|
|
if v1 != nil {
|
|
x.OperationRef, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for operationRef: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string operation_id = 2;
|
|
v2 := compiler.MapValueForKey(m, "operationId")
|
|
if v2 != nil {
|
|
x.OperationId, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for operationId: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// AnyOrExpression parameters = 3;
|
|
v3 := compiler.MapValueForKey(m, "parameters")
|
|
if v3 != nil {
|
|
var err error
|
|
x.Parameters, err = NewAnyOrExpression(v3, compiler.NewContext("parameters", v3, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// AnyOrExpression request_body = 4;
|
|
v4 := compiler.MapValueForKey(m, "requestBody")
|
|
if v4 != nil {
|
|
var err error
|
|
x.RequestBody, err = NewAnyOrExpression(v4, compiler.NewContext("requestBody", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// string description = 5;
|
|
v5 := compiler.MapValueForKey(m, "description")
|
|
if v5 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v5)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v5))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Server server = 6;
|
|
v6 := compiler.MapValueForKey(m, "server")
|
|
if v6 != nil {
|
|
var err error
|
|
x.Server, err = NewServer(v6, compiler.NewContext("server", v6, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 7;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewLinkOrReference creates an object of type LinkOrReference if possible, returning an error if not.
|
|
func NewLinkOrReference(in *yaml.Node, context *compiler.Context) (*LinkOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &LinkOrReference{}
|
|
matched := false
|
|
// Link link = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewLink(m, compiler.NewContext("link", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &LinkOrReference_Link{Link: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Reference reference = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &LinkOrReference_Reference{Reference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid LinkOrReference")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewLinksOrReferences creates an object of type LinksOrReferences if possible, returning an error if not.
|
|
func NewLinksOrReferences(in *yaml.Node, context *compiler.Context) (*LinksOrReferences, error) {
|
|
errors := make([]error, 0)
|
|
x := &LinksOrReferences{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedLinkOrReference additional_properties = 1;
|
|
// MAP: LinkOrReference
|
|
x.AdditionalProperties = make([]*NamedLinkOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedLinkOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewLinkOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewMediaType creates an object of type MediaType if possible, returning an error if not.
|
|
func NewMediaType(in *yaml.Node, context *compiler.Context) (*MediaType, error) {
|
|
errors := make([]error, 0)
|
|
x := &MediaType{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"encoding", "example", "examples", "schema"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// SchemaOrReference schema = 1;
|
|
v1 := compiler.MapValueForKey(m, "schema")
|
|
if v1 != nil {
|
|
var err error
|
|
x.Schema, err = NewSchemaOrReference(v1, compiler.NewContext("schema", v1, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Any example = 2;
|
|
v2 := compiler.MapValueForKey(m, "example")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Example, err = NewAny(v2, compiler.NewContext("example", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// ExamplesOrReferences examples = 3;
|
|
v3 := compiler.MapValueForKey(m, "examples")
|
|
if v3 != nil {
|
|
var err error
|
|
x.Examples, err = NewExamplesOrReferences(v3, compiler.NewContext("examples", v3, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Encodings encoding = 4;
|
|
v4 := compiler.MapValueForKey(m, "encoding")
|
|
if v4 != nil {
|
|
var err error
|
|
x.Encoding, err = NewEncodings(v4, compiler.NewContext("encoding", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 5;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewMediaTypes creates an object of type MediaTypes if possible, returning an error if not.
|
|
func NewMediaTypes(in *yaml.Node, context *compiler.Context) (*MediaTypes, error) {
|
|
errors := make([]error, 0)
|
|
x := &MediaTypes{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedMediaType additional_properties = 1;
|
|
// MAP: MediaType
|
|
x.AdditionalProperties = make([]*NamedMediaType, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedMediaType{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewMediaType(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedAny creates an object of type NamedAny if possible, returning an error if not.
|
|
func NewNamedAny(in *yaml.Node, context *compiler.Context) (*NamedAny, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedAny{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Any value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewAny(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedCallbackOrReference creates an object of type NamedCallbackOrReference if possible, returning an error if not.
|
|
func NewNamedCallbackOrReference(in *yaml.Node, context *compiler.Context) (*NamedCallbackOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedCallbackOrReference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// CallbackOrReference value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewCallbackOrReference(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedEncoding creates an object of type NamedEncoding if possible, returning an error if not.
|
|
func NewNamedEncoding(in *yaml.Node, context *compiler.Context) (*NamedEncoding, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedEncoding{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Encoding value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewEncoding(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedExampleOrReference creates an object of type NamedExampleOrReference if possible, returning an error if not.
|
|
func NewNamedExampleOrReference(in *yaml.Node, context *compiler.Context) (*NamedExampleOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedExampleOrReference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// ExampleOrReference value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewExampleOrReference(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedHeaderOrReference creates an object of type NamedHeaderOrReference if possible, returning an error if not.
|
|
func NewNamedHeaderOrReference(in *yaml.Node, context *compiler.Context) (*NamedHeaderOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedHeaderOrReference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// HeaderOrReference value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewHeaderOrReference(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedLinkOrReference creates an object of type NamedLinkOrReference if possible, returning an error if not.
|
|
func NewNamedLinkOrReference(in *yaml.Node, context *compiler.Context) (*NamedLinkOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedLinkOrReference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// LinkOrReference value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewLinkOrReference(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedMediaType creates an object of type NamedMediaType if possible, returning an error if not.
|
|
func NewNamedMediaType(in *yaml.Node, context *compiler.Context) (*NamedMediaType, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedMediaType{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// MediaType value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewMediaType(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedParameterOrReference creates an object of type NamedParameterOrReference if possible, returning an error if not.
|
|
func NewNamedParameterOrReference(in *yaml.Node, context *compiler.Context) (*NamedParameterOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedParameterOrReference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// ParameterOrReference value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewParameterOrReference(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedPathItem creates an object of type NamedPathItem if possible, returning an error if not.
|
|
func NewNamedPathItem(in *yaml.Node, context *compiler.Context) (*NamedPathItem, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedPathItem{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// PathItem value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewPathItem(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedRequestBodyOrReference creates an object of type NamedRequestBodyOrReference if possible, returning an error if not.
|
|
func NewNamedRequestBodyOrReference(in *yaml.Node, context *compiler.Context) (*NamedRequestBodyOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedRequestBodyOrReference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// RequestBodyOrReference value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewRequestBodyOrReference(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedResponseOrReference creates an object of type NamedResponseOrReference if possible, returning an error if not.
|
|
func NewNamedResponseOrReference(in *yaml.Node, context *compiler.Context) (*NamedResponseOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedResponseOrReference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// ResponseOrReference value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewResponseOrReference(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedSchemaOrReference creates an object of type NamedSchemaOrReference if possible, returning an error if not.
|
|
func NewNamedSchemaOrReference(in *yaml.Node, context *compiler.Context) (*NamedSchemaOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedSchemaOrReference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// SchemaOrReference value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewSchemaOrReference(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedSecuritySchemeOrReference creates an object of type NamedSecuritySchemeOrReference if possible, returning an error if not.
|
|
func NewNamedSecuritySchemeOrReference(in *yaml.Node, context *compiler.Context) (*NamedSecuritySchemeOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedSecuritySchemeOrReference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// SecuritySchemeOrReference value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewSecuritySchemeOrReference(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedServerVariable creates an object of type NamedServerVariable if possible, returning an error if not.
|
|
func NewNamedServerVariable(in *yaml.Node, context *compiler.Context) (*NamedServerVariable, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedServerVariable{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// ServerVariable value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewServerVariable(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedString creates an object of type NamedString if possible, returning an error if not.
|
|
func NewNamedString(in *yaml.Node, context *compiler.Context) (*NamedString, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedString{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
x.Value, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for value: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewNamedStringArray creates an object of type NamedStringArray if possible, returning an error if not.
|
|
func NewNamedStringArray(in *yaml.Node, context *compiler.Context) (*NamedStringArray, error) {
|
|
errors := make([]error, 0)
|
|
x := &NamedStringArray{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"name", "value"}
|
|
var allowedPatterns []*regexp.Regexp
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// StringArray value = 2;
|
|
v2 := compiler.MapValueForKey(m, "value")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Value, err = NewStringArray(v2, compiler.NewContext("value", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewOauthFlow creates an object of type OauthFlow if possible, returning an error if not.
|
|
func NewOauthFlow(in *yaml.Node, context *compiler.Context) (*OauthFlow, error) {
|
|
errors := make([]error, 0)
|
|
x := &OauthFlow{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"authorizationUrl", "refreshUrl", "scopes", "tokenUrl"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string authorization_url = 1;
|
|
v1 := compiler.MapValueForKey(m, "authorizationUrl")
|
|
if v1 != nil {
|
|
x.AuthorizationUrl, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for authorizationUrl: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string token_url = 2;
|
|
v2 := compiler.MapValueForKey(m, "tokenUrl")
|
|
if v2 != nil {
|
|
x.TokenUrl, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for tokenUrl: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string refresh_url = 3;
|
|
v3 := compiler.MapValueForKey(m, "refreshUrl")
|
|
if v3 != nil {
|
|
x.RefreshUrl, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for refreshUrl: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Strings scopes = 4;
|
|
v4 := compiler.MapValueForKey(m, "scopes")
|
|
if v4 != nil {
|
|
var err error
|
|
x.Scopes, err = NewStrings(v4, compiler.NewContext("scopes", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 5;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewOauthFlows creates an object of type OauthFlows if possible, returning an error if not.
|
|
func NewOauthFlows(in *yaml.Node, context *compiler.Context) (*OauthFlows, error) {
|
|
errors := make([]error, 0)
|
|
x := &OauthFlows{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"authorizationCode", "clientCredentials", "implicit", "password"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// OauthFlow implicit = 1;
|
|
v1 := compiler.MapValueForKey(m, "implicit")
|
|
if v1 != nil {
|
|
var err error
|
|
x.Implicit, err = NewOauthFlow(v1, compiler.NewContext("implicit", v1, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// OauthFlow password = 2;
|
|
v2 := compiler.MapValueForKey(m, "password")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Password, err = NewOauthFlow(v2, compiler.NewContext("password", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// OauthFlow client_credentials = 3;
|
|
v3 := compiler.MapValueForKey(m, "clientCredentials")
|
|
if v3 != nil {
|
|
var err error
|
|
x.ClientCredentials, err = NewOauthFlow(v3, compiler.NewContext("clientCredentials", v3, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// OauthFlow authorization_code = 4;
|
|
v4 := compiler.MapValueForKey(m, "authorizationCode")
|
|
if v4 != nil {
|
|
var err error
|
|
x.AuthorizationCode, err = NewOauthFlow(v4, compiler.NewContext("authorizationCode", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 5;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewObject creates an object of type Object if possible, returning an error if not.
|
|
func NewObject(in *yaml.Node, context *compiler.Context) (*Object, error) {
|
|
errors := make([]error, 0)
|
|
x := &Object{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedAny additional_properties = 1;
|
|
// MAP: Any
|
|
x.AdditionalProperties = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewOperation creates an object of type Operation if possible, returning an error if not.
|
|
func NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error) {
|
|
errors := make([]error, 0)
|
|
x := &Operation{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"responses"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"callbacks", "deprecated", "description", "externalDocs", "operationId", "parameters", "requestBody", "responses", "security", "servers", "summary", "tags"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// repeated string tags = 1;
|
|
v1 := compiler.MapValueForKey(m, "tags")
|
|
if v1 != nil {
|
|
v, ok := compiler.SequenceNodeForNode(v1)
|
|
if ok {
|
|
x.Tags = compiler.StringArrayForSequenceNode(v)
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for tags: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string summary = 2;
|
|
v2 := compiler.MapValueForKey(m, "summary")
|
|
if v2 != nil {
|
|
x.Summary, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 3;
|
|
v3 := compiler.MapValueForKey(m, "description")
|
|
if v3 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// ExternalDocs external_docs = 4;
|
|
v4 := compiler.MapValueForKey(m, "externalDocs")
|
|
if v4 != nil {
|
|
var err error
|
|
x.ExternalDocs, err = NewExternalDocs(v4, compiler.NewContext("externalDocs", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// string operation_id = 5;
|
|
v5 := compiler.MapValueForKey(m, "operationId")
|
|
if v5 != nil {
|
|
x.OperationId, ok = compiler.StringForScalarNode(v5)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for operationId: %s", compiler.Display(v5))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated ParameterOrReference parameters = 6;
|
|
v6 := compiler.MapValueForKey(m, "parameters")
|
|
if v6 != nil {
|
|
// repeated ParameterOrReference
|
|
x.Parameters = make([]*ParameterOrReference, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v6)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewParameterOrReference(item, compiler.NewContext("parameters", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Parameters = append(x.Parameters, y)
|
|
}
|
|
}
|
|
}
|
|
// RequestBodyOrReference request_body = 7;
|
|
v7 := compiler.MapValueForKey(m, "requestBody")
|
|
if v7 != nil {
|
|
var err error
|
|
x.RequestBody, err = NewRequestBodyOrReference(v7, compiler.NewContext("requestBody", v7, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Responses responses = 8;
|
|
v8 := compiler.MapValueForKey(m, "responses")
|
|
if v8 != nil {
|
|
var err error
|
|
x.Responses, err = NewResponses(v8, compiler.NewContext("responses", v8, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// CallbacksOrReferences callbacks = 9;
|
|
v9 := compiler.MapValueForKey(m, "callbacks")
|
|
if v9 != nil {
|
|
var err error
|
|
x.Callbacks, err = NewCallbacksOrReferences(v9, compiler.NewContext("callbacks", v9, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// bool deprecated = 10;
|
|
v10 := compiler.MapValueForKey(m, "deprecated")
|
|
if v10 != nil {
|
|
x.Deprecated, ok = compiler.BoolForScalarNode(v10)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for deprecated: %s", compiler.Display(v10))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated SecurityRequirement security = 11;
|
|
v11 := compiler.MapValueForKey(m, "security")
|
|
if v11 != nil {
|
|
// repeated SecurityRequirement
|
|
x.Security = make([]*SecurityRequirement, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v11)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewSecurityRequirement(item, compiler.NewContext("security", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Security = append(x.Security, y)
|
|
}
|
|
}
|
|
}
|
|
// repeated Server servers = 12;
|
|
v12 := compiler.MapValueForKey(m, "servers")
|
|
if v12 != nil {
|
|
// repeated Server
|
|
x.Servers = make([]*Server, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v12)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewServer(item, compiler.NewContext("servers", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Servers = append(x.Servers, y)
|
|
}
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 13;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewParameter creates an object of type Parameter if possible, returning an error if not.
|
|
func NewParameter(in *yaml.Node, context *compiler.Context) (*Parameter, error) {
|
|
errors := make([]error, 0)
|
|
x := &Parameter{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"in", "name"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"allowEmptyValue", "allowReserved", "content", "deprecated", "description", "example", "examples", "explode", "in", "name", "required", "schema", "style"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string in = 2;
|
|
v2 := compiler.MapValueForKey(m, "in")
|
|
if v2 != nil {
|
|
x.In, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for in: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 3;
|
|
v3 := compiler.MapValueForKey(m, "description")
|
|
if v3 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool required = 4;
|
|
v4 := compiler.MapValueForKey(m, "required")
|
|
if v4 != nil {
|
|
x.Required, ok = compiler.BoolForScalarNode(v4)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v4))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool deprecated = 5;
|
|
v5 := compiler.MapValueForKey(m, "deprecated")
|
|
if v5 != nil {
|
|
x.Deprecated, ok = compiler.BoolForScalarNode(v5)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for deprecated: %s", compiler.Display(v5))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool allow_empty_value = 6;
|
|
v6 := compiler.MapValueForKey(m, "allowEmptyValue")
|
|
if v6 != nil {
|
|
x.AllowEmptyValue, ok = compiler.BoolForScalarNode(v6)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for allowEmptyValue: %s", compiler.Display(v6))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string style = 7;
|
|
v7 := compiler.MapValueForKey(m, "style")
|
|
if v7 != nil {
|
|
x.Style, ok = compiler.StringForScalarNode(v7)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for style: %s", compiler.Display(v7))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool explode = 8;
|
|
v8 := compiler.MapValueForKey(m, "explode")
|
|
if v8 != nil {
|
|
x.Explode, ok = compiler.BoolForScalarNode(v8)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for explode: %s", compiler.Display(v8))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool allow_reserved = 9;
|
|
v9 := compiler.MapValueForKey(m, "allowReserved")
|
|
if v9 != nil {
|
|
x.AllowReserved, ok = compiler.BoolForScalarNode(v9)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for allowReserved: %s", compiler.Display(v9))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// SchemaOrReference schema = 10;
|
|
v10 := compiler.MapValueForKey(m, "schema")
|
|
if v10 != nil {
|
|
var err error
|
|
x.Schema, err = NewSchemaOrReference(v10, compiler.NewContext("schema", v10, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Any example = 11;
|
|
v11 := compiler.MapValueForKey(m, "example")
|
|
if v11 != nil {
|
|
var err error
|
|
x.Example, err = NewAny(v11, compiler.NewContext("example", v11, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// ExamplesOrReferences examples = 12;
|
|
v12 := compiler.MapValueForKey(m, "examples")
|
|
if v12 != nil {
|
|
var err error
|
|
x.Examples, err = NewExamplesOrReferences(v12, compiler.NewContext("examples", v12, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// MediaTypes content = 13;
|
|
v13 := compiler.MapValueForKey(m, "content")
|
|
if v13 != nil {
|
|
var err error
|
|
x.Content, err = NewMediaTypes(v13, compiler.NewContext("content", v13, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 14;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewParameterOrReference creates an object of type ParameterOrReference if possible, returning an error if not.
|
|
func NewParameterOrReference(in *yaml.Node, context *compiler.Context) (*ParameterOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &ParameterOrReference{}
|
|
matched := false
|
|
// Parameter parameter = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewParameter(m, compiler.NewContext("parameter", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &ParameterOrReference_Parameter{Parameter: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Reference reference = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &ParameterOrReference_Reference{Reference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid ParameterOrReference")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewParametersOrReferences creates an object of type ParametersOrReferences if possible, returning an error if not.
|
|
func NewParametersOrReferences(in *yaml.Node, context *compiler.Context) (*ParametersOrReferences, error) {
|
|
errors := make([]error, 0)
|
|
x := &ParametersOrReferences{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedParameterOrReference additional_properties = 1;
|
|
// MAP: ParameterOrReference
|
|
x.AdditionalProperties = make([]*NamedParameterOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedParameterOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewParameterOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewPathItem creates an object of type PathItem if possible, returning an error if not.
|
|
func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
|
|
errors := make([]error, 0)
|
|
x := &PathItem{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"$ref", "delete", "description", "get", "head", "options", "parameters", "patch", "post", "put", "servers", "summary", "trace"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string _ref = 1;
|
|
v1 := compiler.MapValueForKey(m, "$ref")
|
|
if v1 != nil {
|
|
x.XRef, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for $ref: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string summary = 2;
|
|
v2 := compiler.MapValueForKey(m, "summary")
|
|
if v2 != nil {
|
|
x.Summary, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 3;
|
|
v3 := compiler.MapValueForKey(m, "description")
|
|
if v3 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Operation get = 4;
|
|
v4 := compiler.MapValueForKey(m, "get")
|
|
if v4 != nil {
|
|
var err error
|
|
x.Get, err = NewOperation(v4, compiler.NewContext("get", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Operation put = 5;
|
|
v5 := compiler.MapValueForKey(m, "put")
|
|
if v5 != nil {
|
|
var err error
|
|
x.Put, err = NewOperation(v5, compiler.NewContext("put", v5, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Operation post = 6;
|
|
v6 := compiler.MapValueForKey(m, "post")
|
|
if v6 != nil {
|
|
var err error
|
|
x.Post, err = NewOperation(v6, compiler.NewContext("post", v6, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Operation delete = 7;
|
|
v7 := compiler.MapValueForKey(m, "delete")
|
|
if v7 != nil {
|
|
var err error
|
|
x.Delete, err = NewOperation(v7, compiler.NewContext("delete", v7, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Operation options = 8;
|
|
v8 := compiler.MapValueForKey(m, "options")
|
|
if v8 != nil {
|
|
var err error
|
|
x.Options, err = NewOperation(v8, compiler.NewContext("options", v8, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Operation head = 9;
|
|
v9 := compiler.MapValueForKey(m, "head")
|
|
if v9 != nil {
|
|
var err error
|
|
x.Head, err = NewOperation(v9, compiler.NewContext("head", v9, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Operation patch = 10;
|
|
v10 := compiler.MapValueForKey(m, "patch")
|
|
if v10 != nil {
|
|
var err error
|
|
x.Patch, err = NewOperation(v10, compiler.NewContext("patch", v10, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Operation trace = 11;
|
|
v11 := compiler.MapValueForKey(m, "trace")
|
|
if v11 != nil {
|
|
var err error
|
|
x.Trace, err = NewOperation(v11, compiler.NewContext("trace", v11, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated Server servers = 12;
|
|
v12 := compiler.MapValueForKey(m, "servers")
|
|
if v12 != nil {
|
|
// repeated Server
|
|
x.Servers = make([]*Server, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v12)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewServer(item, compiler.NewContext("servers", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Servers = append(x.Servers, y)
|
|
}
|
|
}
|
|
}
|
|
// repeated ParameterOrReference parameters = 13;
|
|
v13 := compiler.MapValueForKey(m, "parameters")
|
|
if v13 != nil {
|
|
// repeated ParameterOrReference
|
|
x.Parameters = make([]*ParameterOrReference, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v13)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewParameterOrReference(item, compiler.NewContext("parameters", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Parameters = append(x.Parameters, y)
|
|
}
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 14;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewPaths creates an object of type Paths if possible, returning an error if not.
|
|
func NewPaths(in *yaml.Node, context *compiler.Context) (*Paths, error) {
|
|
errors := make([]error, 0)
|
|
x := &Paths{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{}
|
|
allowedPatterns := []*regexp.Regexp{pattern2, pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// repeated NamedPathItem path = 1;
|
|
// MAP: PathItem ^/
|
|
x.Path = make([]*NamedPathItem, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "/") {
|
|
pair := &NamedPathItem{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Path = append(x.Path, pair)
|
|
}
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 2;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewProperties creates an object of type Properties if possible, returning an error if not.
|
|
func NewProperties(in *yaml.Node, context *compiler.Context) (*Properties, error) {
|
|
errors := make([]error, 0)
|
|
x := &Properties{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedSchemaOrReference additional_properties = 1;
|
|
// MAP: SchemaOrReference
|
|
x.AdditionalProperties = make([]*NamedSchemaOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedSchemaOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewSchemaOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewReference creates an object of type Reference if possible, returning an error if not.
|
|
func NewReference(in *yaml.Node, context *compiler.Context) (*Reference, error) {
|
|
errors := make([]error, 0)
|
|
x := &Reference{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"$ref"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string _ref = 1;
|
|
v1 := compiler.MapValueForKey(m, "$ref")
|
|
if v1 != nil {
|
|
x.XRef, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for $ref: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string summary = 2;
|
|
v2 := compiler.MapValueForKey(m, "summary")
|
|
if v2 != nil {
|
|
x.Summary, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for summary: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 3;
|
|
v3 := compiler.MapValueForKey(m, "description")
|
|
if v3 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewRequestBodiesOrReferences creates an object of type RequestBodiesOrReferences if possible, returning an error if not.
|
|
func NewRequestBodiesOrReferences(in *yaml.Node, context *compiler.Context) (*RequestBodiesOrReferences, error) {
|
|
errors := make([]error, 0)
|
|
x := &RequestBodiesOrReferences{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedRequestBodyOrReference additional_properties = 1;
|
|
// MAP: RequestBodyOrReference
|
|
x.AdditionalProperties = make([]*NamedRequestBodyOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedRequestBodyOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewRequestBodyOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewRequestBody creates an object of type RequestBody if possible, returning an error if not.
|
|
func NewRequestBody(in *yaml.Node, context *compiler.Context) (*RequestBody, error) {
|
|
errors := make([]error, 0)
|
|
x := &RequestBody{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"content"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"content", "description", "required"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string description = 1;
|
|
v1 := compiler.MapValueForKey(m, "description")
|
|
if v1 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// MediaTypes content = 2;
|
|
v2 := compiler.MapValueForKey(m, "content")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Content, err = NewMediaTypes(v2, compiler.NewContext("content", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// bool required = 3;
|
|
v3 := compiler.MapValueForKey(m, "required")
|
|
if v3 != nil {
|
|
x.Required, ok = compiler.BoolForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 4;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewRequestBodyOrReference creates an object of type RequestBodyOrReference if possible, returning an error if not.
|
|
func NewRequestBodyOrReference(in *yaml.Node, context *compiler.Context) (*RequestBodyOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &RequestBodyOrReference{}
|
|
matched := false
|
|
// RequestBody request_body = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewRequestBody(m, compiler.NewContext("requestBody", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &RequestBodyOrReference_RequestBody{RequestBody: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Reference reference = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &RequestBodyOrReference_Reference{Reference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid RequestBodyOrReference")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewResponse creates an object of type Response if possible, returning an error if not.
|
|
func NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {
|
|
errors := make([]error, 0)
|
|
x := &Response{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"description"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"content", "description", "headers", "links"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string description = 1;
|
|
v1 := compiler.MapValueForKey(m, "description")
|
|
if v1 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// HeadersOrReferences headers = 2;
|
|
v2 := compiler.MapValueForKey(m, "headers")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Headers, err = NewHeadersOrReferences(v2, compiler.NewContext("headers", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// MediaTypes content = 3;
|
|
v3 := compiler.MapValueForKey(m, "content")
|
|
if v3 != nil {
|
|
var err error
|
|
x.Content, err = NewMediaTypes(v3, compiler.NewContext("content", v3, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// LinksOrReferences links = 4;
|
|
v4 := compiler.MapValueForKey(m, "links")
|
|
if v4 != nil {
|
|
var err error
|
|
x.Links, err = NewLinksOrReferences(v4, compiler.NewContext("links", v4, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 5;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewResponseOrReference creates an object of type ResponseOrReference if possible, returning an error if not.
|
|
func NewResponseOrReference(in *yaml.Node, context *compiler.Context) (*ResponseOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &ResponseOrReference{}
|
|
matched := false
|
|
// Response response = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewResponse(m, compiler.NewContext("response", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &ResponseOrReference_Response{Response: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Reference reference = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &ResponseOrReference_Reference{Reference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid ResponseOrReference")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewResponses creates an object of type Responses if possible, returning an error if not.
|
|
func NewResponses(in *yaml.Node, context *compiler.Context) (*Responses, error) {
|
|
errors := make([]error, 0)
|
|
x := &Responses{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"default"}
|
|
allowedPatterns := []*regexp.Regexp{pattern3, pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// ResponseOrReference default = 1;
|
|
v1 := compiler.MapValueForKey(m, "default")
|
|
if v1 != nil {
|
|
var err error
|
|
x.Default, err = NewResponseOrReference(v1, compiler.NewContext("default", v1, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedResponseOrReference response_or_reference = 2;
|
|
// MAP: ResponseOrReference ^([0-9X]{3})$
|
|
x.ResponseOrReference = make([]*NamedResponseOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if pattern3.MatchString(k) {
|
|
pair := &NamedResponseOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewResponseOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.ResponseOrReference = append(x.ResponseOrReference, pair)
|
|
}
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 3;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewResponsesOrReferences creates an object of type ResponsesOrReferences if possible, returning an error if not.
|
|
func NewResponsesOrReferences(in *yaml.Node, context *compiler.Context) (*ResponsesOrReferences, error) {
|
|
errors := make([]error, 0)
|
|
x := &ResponsesOrReferences{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedResponseOrReference additional_properties = 1;
|
|
// MAP: ResponseOrReference
|
|
x.AdditionalProperties = make([]*NamedResponseOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedResponseOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewResponseOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewSchema creates an object of type Schema if possible, returning an error if not.
|
|
func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
|
|
errors := make([]error, 0)
|
|
x := &Schema{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"additionalProperties", "allOf", "anyOf", "default", "deprecated", "description", "discriminator", "enum", "example", "exclusiveMaximum", "exclusiveMinimum", "externalDocs", "format", "items", "maxItems", "maxLength", "maxProperties", "maximum", "minItems", "minLength", "minProperties", "minimum", "multipleOf", "not", "nullable", "oneOf", "pattern", "properties", "readOnly", "required", "title", "type", "uniqueItems", "writeOnly", "xml"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// bool nullable = 1;
|
|
v1 := compiler.MapValueForKey(m, "nullable")
|
|
if v1 != nil {
|
|
x.Nullable, ok = compiler.BoolForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for nullable: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Discriminator discriminator = 2;
|
|
v2 := compiler.MapValueForKey(m, "discriminator")
|
|
if v2 != nil {
|
|
var err error
|
|
x.Discriminator, err = NewDiscriminator(v2, compiler.NewContext("discriminator", v2, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// bool read_only = 3;
|
|
v3 := compiler.MapValueForKey(m, "readOnly")
|
|
if v3 != nil {
|
|
x.ReadOnly, ok = compiler.BoolForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for readOnly: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool write_only = 4;
|
|
v4 := compiler.MapValueForKey(m, "writeOnly")
|
|
if v4 != nil {
|
|
x.WriteOnly, ok = compiler.BoolForScalarNode(v4)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for writeOnly: %s", compiler.Display(v4))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// Xml xml = 5;
|
|
v5 := compiler.MapValueForKey(m, "xml")
|
|
if v5 != nil {
|
|
var err error
|
|
x.Xml, err = NewXml(v5, compiler.NewContext("xml", v5, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// ExternalDocs external_docs = 6;
|
|
v6 := compiler.MapValueForKey(m, "externalDocs")
|
|
if v6 != nil {
|
|
var err error
|
|
x.ExternalDocs, err = NewExternalDocs(v6, compiler.NewContext("externalDocs", v6, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Any example = 7;
|
|
v7 := compiler.MapValueForKey(m, "example")
|
|
if v7 != nil {
|
|
var err error
|
|
x.Example, err = NewAny(v7, compiler.NewContext("example", v7, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// bool deprecated = 8;
|
|
v8 := compiler.MapValueForKey(m, "deprecated")
|
|
if v8 != nil {
|
|
x.Deprecated, ok = compiler.BoolForScalarNode(v8)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for deprecated: %s", compiler.Display(v8))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string title = 9;
|
|
v9 := compiler.MapValueForKey(m, "title")
|
|
if v9 != nil {
|
|
x.Title, ok = compiler.StringForScalarNode(v9)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for title: %s", compiler.Display(v9))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// float multiple_of = 10;
|
|
v10 := compiler.MapValueForKey(m, "multipleOf")
|
|
if v10 != nil {
|
|
v, ok := compiler.FloatForScalarNode(v10)
|
|
if ok {
|
|
x.MultipleOf = v
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for multipleOf: %s", compiler.Display(v10))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// float maximum = 11;
|
|
v11 := compiler.MapValueForKey(m, "maximum")
|
|
if v11 != nil {
|
|
v, ok := compiler.FloatForScalarNode(v11)
|
|
if ok {
|
|
x.Maximum = v
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for maximum: %s", compiler.Display(v11))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool exclusive_maximum = 12;
|
|
v12 := compiler.MapValueForKey(m, "exclusiveMaximum")
|
|
if v12 != nil {
|
|
x.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v12)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for exclusiveMaximum: %s", compiler.Display(v12))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// float minimum = 13;
|
|
v13 := compiler.MapValueForKey(m, "minimum")
|
|
if v13 != nil {
|
|
v, ok := compiler.FloatForScalarNode(v13)
|
|
if ok {
|
|
x.Minimum = v
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for minimum: %s", compiler.Display(v13))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool exclusive_minimum = 14;
|
|
v14 := compiler.MapValueForKey(m, "exclusiveMinimum")
|
|
if v14 != nil {
|
|
x.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v14)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for exclusiveMinimum: %s", compiler.Display(v14))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// int64 max_length = 15;
|
|
v15 := compiler.MapValueForKey(m, "maxLength")
|
|
if v15 != nil {
|
|
t, ok := compiler.IntForScalarNode(v15)
|
|
if ok {
|
|
x.MaxLength = int64(t)
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for maxLength: %s", compiler.Display(v15))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// int64 min_length = 16;
|
|
v16 := compiler.MapValueForKey(m, "minLength")
|
|
if v16 != nil {
|
|
t, ok := compiler.IntForScalarNode(v16)
|
|
if ok {
|
|
x.MinLength = int64(t)
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for minLength: %s", compiler.Display(v16))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string pattern = 17;
|
|
v17 := compiler.MapValueForKey(m, "pattern")
|
|
if v17 != nil {
|
|
x.Pattern, ok = compiler.StringForScalarNode(v17)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for pattern: %s", compiler.Display(v17))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// int64 max_items = 18;
|
|
v18 := compiler.MapValueForKey(m, "maxItems")
|
|
if v18 != nil {
|
|
t, ok := compiler.IntForScalarNode(v18)
|
|
if ok {
|
|
x.MaxItems = int64(t)
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for maxItems: %s", compiler.Display(v18))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// int64 min_items = 19;
|
|
v19 := compiler.MapValueForKey(m, "minItems")
|
|
if v19 != nil {
|
|
t, ok := compiler.IntForScalarNode(v19)
|
|
if ok {
|
|
x.MinItems = int64(t)
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for minItems: %s", compiler.Display(v19))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool unique_items = 20;
|
|
v20 := compiler.MapValueForKey(m, "uniqueItems")
|
|
if v20 != nil {
|
|
x.UniqueItems, ok = compiler.BoolForScalarNode(v20)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for uniqueItems: %s", compiler.Display(v20))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// int64 max_properties = 21;
|
|
v21 := compiler.MapValueForKey(m, "maxProperties")
|
|
if v21 != nil {
|
|
t, ok := compiler.IntForScalarNode(v21)
|
|
if ok {
|
|
x.MaxProperties = int64(t)
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for maxProperties: %s", compiler.Display(v21))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// int64 min_properties = 22;
|
|
v22 := compiler.MapValueForKey(m, "minProperties")
|
|
if v22 != nil {
|
|
t, ok := compiler.IntForScalarNode(v22)
|
|
if ok {
|
|
x.MinProperties = int64(t)
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for minProperties: %s", compiler.Display(v22))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated string required = 23;
|
|
v23 := compiler.MapValueForKey(m, "required")
|
|
if v23 != nil {
|
|
v, ok := compiler.SequenceNodeForNode(v23)
|
|
if ok {
|
|
x.Required = compiler.StringArrayForSequenceNode(v)
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v23))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated Any enum = 24;
|
|
v24 := compiler.MapValueForKey(m, "enum")
|
|
if v24 != nil {
|
|
// repeated Any
|
|
x.Enum = make([]*Any, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v24)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewAny(item, compiler.NewContext("enum", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.Enum = append(x.Enum, y)
|
|
}
|
|
}
|
|
}
|
|
// string type = 25;
|
|
v25 := compiler.MapValueForKey(m, "type")
|
|
if v25 != nil {
|
|
x.Type, ok = compiler.StringForScalarNode(v25)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for type: %s", compiler.Display(v25))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated SchemaOrReference all_of = 26;
|
|
v26 := compiler.MapValueForKey(m, "allOf")
|
|
if v26 != nil {
|
|
// repeated SchemaOrReference
|
|
x.AllOf = make([]*SchemaOrReference, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v26)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewSchemaOrReference(item, compiler.NewContext("allOf", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AllOf = append(x.AllOf, y)
|
|
}
|
|
}
|
|
}
|
|
// repeated SchemaOrReference one_of = 27;
|
|
v27 := compiler.MapValueForKey(m, "oneOf")
|
|
if v27 != nil {
|
|
// repeated SchemaOrReference
|
|
x.OneOf = make([]*SchemaOrReference, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v27)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewSchemaOrReference(item, compiler.NewContext("oneOf", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.OneOf = append(x.OneOf, y)
|
|
}
|
|
}
|
|
}
|
|
// repeated SchemaOrReference any_of = 28;
|
|
v28 := compiler.MapValueForKey(m, "anyOf")
|
|
if v28 != nil {
|
|
// repeated SchemaOrReference
|
|
x.AnyOf = make([]*SchemaOrReference, 0)
|
|
a, ok := compiler.SequenceNodeForNode(v28)
|
|
if ok {
|
|
for _, item := range a.Content {
|
|
y, err := NewSchemaOrReference(item, compiler.NewContext("anyOf", item, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AnyOf = append(x.AnyOf, y)
|
|
}
|
|
}
|
|
}
|
|
// Schema not = 29;
|
|
v29 := compiler.MapValueForKey(m, "not")
|
|
if v29 != nil {
|
|
var err error
|
|
x.Not, err = NewSchema(v29, compiler.NewContext("not", v29, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// ItemsItem items = 30;
|
|
v30 := compiler.MapValueForKey(m, "items")
|
|
if v30 != nil {
|
|
var err error
|
|
x.Items, err = NewItemsItem(v30, compiler.NewContext("items", v30, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// Properties properties = 31;
|
|
v31 := compiler.MapValueForKey(m, "properties")
|
|
if v31 != nil {
|
|
var err error
|
|
x.Properties, err = NewProperties(v31, compiler.NewContext("properties", v31, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// AdditionalPropertiesItem additional_properties = 32;
|
|
v32 := compiler.MapValueForKey(m, "additionalProperties")
|
|
if v32 != nil {
|
|
var err error
|
|
x.AdditionalProperties, err = NewAdditionalPropertiesItem(v32, compiler.NewContext("additionalProperties", v32, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// DefaultType default = 33;
|
|
v33 := compiler.MapValueForKey(m, "default")
|
|
if v33 != nil {
|
|
var err error
|
|
x.Default, err = NewDefaultType(v33, compiler.NewContext("default", v33, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// string description = 34;
|
|
v34 := compiler.MapValueForKey(m, "description")
|
|
if v34 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v34)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v34))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string format = 35;
|
|
v35 := compiler.MapValueForKey(m, "format")
|
|
if v35 != nil {
|
|
x.Format, ok = compiler.StringForScalarNode(v35)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for format: %s", compiler.Display(v35))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 36;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewSchemaOrReference creates an object of type SchemaOrReference if possible, returning an error if not.
|
|
func NewSchemaOrReference(in *yaml.Node, context *compiler.Context) (*SchemaOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &SchemaOrReference{}
|
|
matched := false
|
|
// Schema schema = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewSchema(m, compiler.NewContext("schema", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &SchemaOrReference_Schema{Schema: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Reference reference = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &SchemaOrReference_Reference{Reference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid SchemaOrReference")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewSchemasOrReferences creates an object of type SchemasOrReferences if possible, returning an error if not.
|
|
func NewSchemasOrReferences(in *yaml.Node, context *compiler.Context) (*SchemasOrReferences, error) {
|
|
errors := make([]error, 0)
|
|
x := &SchemasOrReferences{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedSchemaOrReference additional_properties = 1;
|
|
// MAP: SchemaOrReference
|
|
x.AdditionalProperties = make([]*NamedSchemaOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedSchemaOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewSchemaOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewSecurityRequirement creates an object of type SecurityRequirement if possible, returning an error if not.
|
|
func NewSecurityRequirement(in *yaml.Node, context *compiler.Context) (*SecurityRequirement, error) {
|
|
errors := make([]error, 0)
|
|
x := &SecurityRequirement{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedStringArray additional_properties = 1;
|
|
// MAP: StringArray
|
|
x.AdditionalProperties = make([]*NamedStringArray, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedStringArray{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewStringArray(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewSecurityScheme creates an object of type SecurityScheme if possible, returning an error if not.
|
|
func NewSecurityScheme(in *yaml.Node, context *compiler.Context) (*SecurityScheme, error) {
|
|
errors := make([]error, 0)
|
|
x := &SecurityScheme{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"type"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"bearerFormat", "description", "flows", "in", "name", "openIdConnectUrl", "scheme", "type"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string type = 1;
|
|
v1 := compiler.MapValueForKey(m, "type")
|
|
if v1 != nil {
|
|
x.Type, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for type: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 2;
|
|
v2 := compiler.MapValueForKey(m, "description")
|
|
if v2 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string name = 3;
|
|
v3 := compiler.MapValueForKey(m, "name")
|
|
if v3 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string in = 4;
|
|
v4 := compiler.MapValueForKey(m, "in")
|
|
if v4 != nil {
|
|
x.In, ok = compiler.StringForScalarNode(v4)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for in: %s", compiler.Display(v4))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string scheme = 5;
|
|
v5 := compiler.MapValueForKey(m, "scheme")
|
|
if v5 != nil {
|
|
x.Scheme, ok = compiler.StringForScalarNode(v5)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for scheme: %s", compiler.Display(v5))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string bearer_format = 6;
|
|
v6 := compiler.MapValueForKey(m, "bearerFormat")
|
|
if v6 != nil {
|
|
x.BearerFormat, ok = compiler.StringForScalarNode(v6)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for bearerFormat: %s", compiler.Display(v6))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// OauthFlows flows = 7;
|
|
v7 := compiler.MapValueForKey(m, "flows")
|
|
if v7 != nil {
|
|
var err error
|
|
x.Flows, err = NewOauthFlows(v7, compiler.NewContext("flows", v7, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// string open_id_connect_url = 8;
|
|
v8 := compiler.MapValueForKey(m, "openIdConnectUrl")
|
|
if v8 != nil {
|
|
x.OpenIdConnectUrl, ok = compiler.StringForScalarNode(v8)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for openIdConnectUrl: %s", compiler.Display(v8))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 9;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewSecuritySchemeOrReference creates an object of type SecuritySchemeOrReference if possible, returning an error if not.
|
|
func NewSecuritySchemeOrReference(in *yaml.Node, context *compiler.Context) (*SecuritySchemeOrReference, error) {
|
|
errors := make([]error, 0)
|
|
x := &SecuritySchemeOrReference{}
|
|
matched := false
|
|
// SecurityScheme security_scheme = 1;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewSecurityScheme(m, compiler.NewContext("securityScheme", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &SecuritySchemeOrReference_SecurityScheme{SecurityScheme: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
// Reference reference = 2;
|
|
{
|
|
m, ok := compiler.UnpackMap(in)
|
|
if ok {
|
|
// errors might be ok here, they mean we just don't have the right subtype
|
|
t, matchingError := NewReference(m, compiler.NewContext("reference", m, context))
|
|
if matchingError == nil {
|
|
x.Oneof = &SecuritySchemeOrReference_Reference{Reference: t}
|
|
matched = true
|
|
} else {
|
|
errors = append(errors, matchingError)
|
|
}
|
|
}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
} else {
|
|
message := fmt.Sprintf("contains an invalid SecuritySchemeOrReference")
|
|
err := compiler.NewError(context, message)
|
|
errors = []error{err}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewSecuritySchemesOrReferences creates an object of type SecuritySchemesOrReferences if possible, returning an error if not.
|
|
func NewSecuritySchemesOrReferences(in *yaml.Node, context *compiler.Context) (*SecuritySchemesOrReferences, error) {
|
|
errors := make([]error, 0)
|
|
x := &SecuritySchemesOrReferences{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedSecuritySchemeOrReference additional_properties = 1;
|
|
// MAP: SecuritySchemeOrReference
|
|
x.AdditionalProperties = make([]*NamedSecuritySchemeOrReference, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedSecuritySchemeOrReference{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewSecuritySchemeOrReference(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewServer creates an object of type Server if possible, returning an error if not.
|
|
func NewServer(in *yaml.Node, context *compiler.Context) (*Server, error) {
|
|
errors := make([]error, 0)
|
|
x := &Server{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"url"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"description", "url", "variables"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string url = 1;
|
|
v1 := compiler.MapValueForKey(m, "url")
|
|
if v1 != nil {
|
|
x.Url, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for url: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 2;
|
|
v2 := compiler.MapValueForKey(m, "description")
|
|
if v2 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// ServerVariables variables = 3;
|
|
v3 := compiler.MapValueForKey(m, "variables")
|
|
if v3 != nil {
|
|
var err error
|
|
x.Variables, err = NewServerVariables(v3, compiler.NewContext("variables", v3, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 4;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewServerVariable creates an object of type ServerVariable if possible, returning an error if not.
|
|
func NewServerVariable(in *yaml.Node, context *compiler.Context) (*ServerVariable, error) {
|
|
errors := make([]error, 0)
|
|
x := &ServerVariable{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"default"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"default", "description", "enum"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// repeated string enum = 1;
|
|
v1 := compiler.MapValueForKey(m, "enum")
|
|
if v1 != nil {
|
|
v, ok := compiler.SequenceNodeForNode(v1)
|
|
if ok {
|
|
x.Enum = compiler.StringArrayForSequenceNode(v)
|
|
} else {
|
|
message := fmt.Sprintf("has unexpected value for enum: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string default = 2;
|
|
v2 := compiler.MapValueForKey(m, "default")
|
|
if v2 != nil {
|
|
x.Default, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for default: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 3;
|
|
v3 := compiler.MapValueForKey(m, "description")
|
|
if v3 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 4;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewServerVariables creates an object of type ServerVariables if possible, returning an error if not.
|
|
func NewServerVariables(in *yaml.Node, context *compiler.Context) (*ServerVariables, error) {
|
|
errors := make([]error, 0)
|
|
x := &ServerVariables{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedServerVariable additional_properties = 1;
|
|
// MAP: ServerVariable
|
|
x.AdditionalProperties = make([]*NamedServerVariable, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedServerVariable{}
|
|
pair.Name = k
|
|
var err error
|
|
pair.Value, err = NewServerVariable(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewSpecificationExtension creates an object of type SpecificationExtension if possible, returning an error if not.
|
|
func NewSpecificationExtension(in *yaml.Node, context *compiler.Context) (*SpecificationExtension, error) {
|
|
errors := make([]error, 0)
|
|
x := &SpecificationExtension{}
|
|
matched := false
|
|
switch in.Tag {
|
|
case "!!bool":
|
|
var v bool
|
|
v, matched = compiler.BoolForScalarNode(in)
|
|
x.Oneof = &SpecificationExtension_Boolean{Boolean: v}
|
|
case "!!str":
|
|
var v string
|
|
v, matched = compiler.StringForScalarNode(in)
|
|
x.Oneof = &SpecificationExtension_String_{String_: v}
|
|
case "!!float":
|
|
var v float64
|
|
v, matched = compiler.FloatForScalarNode(in)
|
|
x.Oneof = &SpecificationExtension_Number{Number: v}
|
|
case "!!int":
|
|
var v int64
|
|
v, matched = compiler.IntForScalarNode(in)
|
|
x.Oneof = &SpecificationExtension_Number{Number: float64(v)}
|
|
}
|
|
if matched {
|
|
// since the oneof matched one of its possibilities, discard any matching errors
|
|
errors = make([]error, 0)
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewStringArray creates an object of type StringArray if possible, returning an error if not.
|
|
func NewStringArray(in *yaml.Node, context *compiler.Context) (*StringArray, error) {
|
|
errors := make([]error, 0)
|
|
x := &StringArray{}
|
|
x.Value = make([]string, 0)
|
|
for _, node := range in.Content {
|
|
s, _ := compiler.StringForScalarNode(node)
|
|
x.Value = append(x.Value, s)
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewStrings creates an object of type Strings if possible, returning an error if not.
|
|
func NewStrings(in *yaml.Node, context *compiler.Context) (*Strings, error) {
|
|
errors := make([]error, 0)
|
|
x := &Strings{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
// repeated NamedString additional_properties = 1;
|
|
// MAP: string
|
|
x.AdditionalProperties = make([]*NamedString, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
pair := &NamedString{}
|
|
pair.Name = k
|
|
pair.Value, _ = compiler.StringForScalarNode(v)
|
|
x.AdditionalProperties = append(x.AdditionalProperties, pair)
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewTag creates an object of type Tag if possible, returning an error if not.
|
|
func NewTag(in *yaml.Node, context *compiler.Context) (*Tag, error) {
|
|
errors := make([]error, 0)
|
|
x := &Tag{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
requiredKeys := []string{"name"}
|
|
missingKeys := compiler.MissingKeysInMap(m, requiredKeys)
|
|
if len(missingKeys) > 0 {
|
|
message := fmt.Sprintf("is missing required %s: %+v", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
allowedKeys := []string{"description", "externalDocs", "name"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string description = 2;
|
|
v2 := compiler.MapValueForKey(m, "description")
|
|
if v2 != nil {
|
|
x.Description, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// ExternalDocs external_docs = 3;
|
|
v3 := compiler.MapValueForKey(m, "externalDocs")
|
|
if v3 != nil {
|
|
var err error
|
|
x.ExternalDocs, err = NewExternalDocs(v3, compiler.NewContext("externalDocs", v3, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 4;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// NewXml creates an object of type Xml if possible, returning an error if not.
|
|
func NewXml(in *yaml.Node, context *compiler.Context) (*Xml, error) {
|
|
errors := make([]error, 0)
|
|
x := &Xml{}
|
|
m, ok := compiler.UnpackMap(in)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value: %+v (%T)", in, in)
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
} else {
|
|
allowedKeys := []string{"attribute", "name", "namespace", "prefix", "wrapped"}
|
|
allowedPatterns := []*regexp.Regexp{pattern1}
|
|
invalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)
|
|
if len(invalidKeys) > 0 {
|
|
message := fmt.Sprintf("has invalid %s: %+v", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, ", "))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
// string name = 1;
|
|
v1 := compiler.MapValueForKey(m, "name")
|
|
if v1 != nil {
|
|
x.Name, ok = compiler.StringForScalarNode(v1)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v1))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string namespace = 2;
|
|
v2 := compiler.MapValueForKey(m, "namespace")
|
|
if v2 != nil {
|
|
x.Namespace, ok = compiler.StringForScalarNode(v2)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for namespace: %s", compiler.Display(v2))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// string prefix = 3;
|
|
v3 := compiler.MapValueForKey(m, "prefix")
|
|
if v3 != nil {
|
|
x.Prefix, ok = compiler.StringForScalarNode(v3)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for prefix: %s", compiler.Display(v3))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool attribute = 4;
|
|
v4 := compiler.MapValueForKey(m, "attribute")
|
|
if v4 != nil {
|
|
x.Attribute, ok = compiler.BoolForScalarNode(v4)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for attribute: %s", compiler.Display(v4))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// bool wrapped = 5;
|
|
v5 := compiler.MapValueForKey(m, "wrapped")
|
|
if v5 != nil {
|
|
x.Wrapped, ok = compiler.BoolForScalarNode(v5)
|
|
if !ok {
|
|
message := fmt.Sprintf("has unexpected value for wrapped: %s", compiler.Display(v5))
|
|
errors = append(errors, compiler.NewError(context, message))
|
|
}
|
|
}
|
|
// repeated NamedAny specification_extension = 6;
|
|
// MAP: Any ^x-
|
|
x.SpecificationExtension = make([]*NamedAny, 0)
|
|
for i := 0; i < len(m.Content); i += 2 {
|
|
k, ok := compiler.StringForScalarNode(m.Content[i])
|
|
if ok {
|
|
v := m.Content[i+1]
|
|
if strings.HasPrefix(k, "x-") {
|
|
pair := &NamedAny{}
|
|
pair.Name = k
|
|
result := &Any{}
|
|
handled, resultFromExt, err := compiler.CallExtension(context, v, k)
|
|
if handled {
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
} else {
|
|
bytes := compiler.Marshal(v)
|
|
result.Yaml = string(bytes)
|
|
result.Value = resultFromExt
|
|
pair.Value = result
|
|
}
|
|
} else {
|
|
pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
x.SpecificationExtension = append(x.SpecificationExtension, pair)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return x, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside AdditionalPropertiesItem objects.
|
|
func (m *AdditionalPropertiesItem) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*AdditionalPropertiesItem_SchemaOrReference)
|
|
if ok {
|
|
_, err := p.SchemaOrReference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Any objects.
|
|
func (m *Any) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside AnyOrExpression objects.
|
|
func (m *AnyOrExpression) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*AnyOrExpression_Any)
|
|
if ok {
|
|
_, err := p.Any.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*AnyOrExpression_Expression)
|
|
if ok {
|
|
_, err := p.Expression.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Callback objects.
|
|
func (m *Callback) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.Path {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside CallbackOrReference objects.
|
|
func (m *CallbackOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*CallbackOrReference_Callback)
|
|
if ok {
|
|
_, err := p.Callback.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*CallbackOrReference_Reference)
|
|
if ok {
|
|
_, err := p.Reference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside CallbacksOrReferences objects.
|
|
func (m *CallbacksOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Components objects.
|
|
func (m *Components) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Schemas != nil {
|
|
_, err := m.Schemas.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Responses != nil {
|
|
_, err := m.Responses.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Parameters != nil {
|
|
_, err := m.Parameters.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Examples != nil {
|
|
_, err := m.Examples.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.RequestBodies != nil {
|
|
_, err := m.RequestBodies.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Headers != nil {
|
|
_, err := m.Headers.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.SecuritySchemes != nil {
|
|
_, err := m.SecuritySchemes.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Links != nil {
|
|
_, err := m.Links.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Callbacks != nil {
|
|
_, err := m.Callbacks.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Contact objects.
|
|
func (m *Contact) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside DefaultType objects.
|
|
func (m *DefaultType) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Discriminator objects.
|
|
func (m *Discriminator) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Mapping != nil {
|
|
_, err := m.Mapping.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Document objects.
|
|
func (m *Document) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Info != nil {
|
|
_, err := m.Info.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.Servers {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
if m.Paths != nil {
|
|
_, err := m.Paths.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Components != nil {
|
|
_, err := m.Components.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.Security {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.Tags {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
if m.ExternalDocs != nil {
|
|
_, err := m.ExternalDocs.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Encoding objects.
|
|
func (m *Encoding) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Headers != nil {
|
|
_, err := m.Headers.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Encodings objects.
|
|
func (m *Encodings) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Example objects.
|
|
func (m *Example) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ExampleOrReference objects.
|
|
func (m *ExampleOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*ExampleOrReference_Example)
|
|
if ok {
|
|
_, err := p.Example.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*ExampleOrReference_Reference)
|
|
if ok {
|
|
_, err := p.Reference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ExamplesOrReferences objects.
|
|
func (m *ExamplesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Expression objects.
|
|
func (m *Expression) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ExternalDocs objects.
|
|
func (m *ExternalDocs) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Header objects.
|
|
func (m *Header) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Schema != nil {
|
|
_, err := m.Schema.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Example != nil {
|
|
_, err := m.Example.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Examples != nil {
|
|
_, err := m.Examples.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Content != nil {
|
|
_, err := m.Content.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside HeaderOrReference objects.
|
|
func (m *HeaderOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*HeaderOrReference_Header)
|
|
if ok {
|
|
_, err := p.Header.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*HeaderOrReference_Reference)
|
|
if ok {
|
|
_, err := p.Reference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside HeadersOrReferences objects.
|
|
func (m *HeadersOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Info objects.
|
|
func (m *Info) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Contact != nil {
|
|
_, err := m.Contact.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.License != nil {
|
|
_, err := m.License.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ItemsItem objects.
|
|
func (m *ItemsItem) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.SchemaOrReference {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside License objects.
|
|
func (m *License) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Link objects.
|
|
func (m *Link) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Parameters != nil {
|
|
_, err := m.Parameters.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.RequestBody != nil {
|
|
_, err := m.RequestBody.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Server != nil {
|
|
_, err := m.Server.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside LinkOrReference objects.
|
|
func (m *LinkOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*LinkOrReference_Link)
|
|
if ok {
|
|
_, err := p.Link.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*LinkOrReference_Reference)
|
|
if ok {
|
|
_, err := p.Reference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside LinksOrReferences objects.
|
|
func (m *LinksOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside MediaType objects.
|
|
func (m *MediaType) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Schema != nil {
|
|
_, err := m.Schema.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Example != nil {
|
|
_, err := m.Example.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Examples != nil {
|
|
_, err := m.Examples.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Encoding != nil {
|
|
_, err := m.Encoding.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside MediaTypes objects.
|
|
func (m *MediaTypes) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedAny objects.
|
|
func (m *NamedAny) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedCallbackOrReference objects.
|
|
func (m *NamedCallbackOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedEncoding objects.
|
|
func (m *NamedEncoding) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedExampleOrReference objects.
|
|
func (m *NamedExampleOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedHeaderOrReference objects.
|
|
func (m *NamedHeaderOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedLinkOrReference objects.
|
|
func (m *NamedLinkOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedMediaType objects.
|
|
func (m *NamedMediaType) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedParameterOrReference objects.
|
|
func (m *NamedParameterOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedPathItem objects.
|
|
func (m *NamedPathItem) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedRequestBodyOrReference objects.
|
|
func (m *NamedRequestBodyOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedResponseOrReference objects.
|
|
func (m *NamedResponseOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedSchemaOrReference objects.
|
|
func (m *NamedSchemaOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedSecuritySchemeOrReference objects.
|
|
func (m *NamedSecuritySchemeOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedServerVariable objects.
|
|
func (m *NamedServerVariable) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedString objects.
|
|
func (m *NamedString) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside NamedStringArray objects.
|
|
func (m *NamedStringArray) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Value != nil {
|
|
_, err := m.Value.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside OauthFlow objects.
|
|
func (m *OauthFlow) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Scopes != nil {
|
|
_, err := m.Scopes.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside OauthFlows objects.
|
|
func (m *OauthFlows) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Implicit != nil {
|
|
_, err := m.Implicit.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Password != nil {
|
|
_, err := m.Password.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.ClientCredentials != nil {
|
|
_, err := m.ClientCredentials.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.AuthorizationCode != nil {
|
|
_, err := m.AuthorizationCode.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Object objects.
|
|
func (m *Object) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Operation objects.
|
|
func (m *Operation) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.ExternalDocs != nil {
|
|
_, err := m.ExternalDocs.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.Parameters {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
if m.RequestBody != nil {
|
|
_, err := m.RequestBody.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Responses != nil {
|
|
_, err := m.Responses.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Callbacks != nil {
|
|
_, err := m.Callbacks.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.Security {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.Servers {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Parameter objects.
|
|
func (m *Parameter) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Schema != nil {
|
|
_, err := m.Schema.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Example != nil {
|
|
_, err := m.Example.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Examples != nil {
|
|
_, err := m.Examples.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Content != nil {
|
|
_, err := m.Content.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ParameterOrReference objects.
|
|
func (m *ParameterOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*ParameterOrReference_Parameter)
|
|
if ok {
|
|
_, err := p.Parameter.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*ParameterOrReference_Reference)
|
|
if ok {
|
|
_, err := p.Reference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ParametersOrReferences objects.
|
|
func (m *ParametersOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside PathItem objects.
|
|
func (m *PathItem) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.XRef != "" {
|
|
info, err := compiler.ReadInfoForRef(root, m.XRef)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if info != nil {
|
|
replacement, err := NewPathItem(info, nil)
|
|
if err == nil {
|
|
*m = *replacement
|
|
return m.ResolveReferences(root)
|
|
}
|
|
}
|
|
return info, nil
|
|
}
|
|
if m.Get != nil {
|
|
_, err := m.Get.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Put != nil {
|
|
_, err := m.Put.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Post != nil {
|
|
_, err := m.Post.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Delete != nil {
|
|
_, err := m.Delete.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Options != nil {
|
|
_, err := m.Options.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Head != nil {
|
|
_, err := m.Head.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Patch != nil {
|
|
_, err := m.Patch.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Trace != nil {
|
|
_, err := m.Trace.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.Servers {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.Parameters {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Paths objects.
|
|
func (m *Paths) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.Path {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Properties objects.
|
|
func (m *Properties) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Reference objects.
|
|
func (m *Reference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.XRef != "" {
|
|
info, err := compiler.ReadInfoForRef(root, m.XRef)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if info != nil {
|
|
replacement, err := NewReference(info, nil)
|
|
if err == nil {
|
|
*m = *replacement
|
|
return m.ResolveReferences(root)
|
|
}
|
|
}
|
|
return info, nil
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside RequestBodiesOrReferences objects.
|
|
func (m *RequestBodiesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside RequestBody objects.
|
|
func (m *RequestBody) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Content != nil {
|
|
_, err := m.Content.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside RequestBodyOrReference objects.
|
|
func (m *RequestBodyOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*RequestBodyOrReference_RequestBody)
|
|
if ok {
|
|
_, err := p.RequestBody.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*RequestBodyOrReference_Reference)
|
|
if ok {
|
|
_, err := p.Reference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Response objects.
|
|
func (m *Response) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Headers != nil {
|
|
_, err := m.Headers.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Content != nil {
|
|
_, err := m.Content.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Links != nil {
|
|
_, err := m.Links.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ResponseOrReference objects.
|
|
func (m *ResponseOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*ResponseOrReference_Response)
|
|
if ok {
|
|
_, err := p.Response.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*ResponseOrReference_Reference)
|
|
if ok {
|
|
_, err := p.Reference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Responses objects.
|
|
func (m *Responses) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Default != nil {
|
|
_, err := m.Default.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.ResponseOrReference {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ResponsesOrReferences objects.
|
|
func (m *ResponsesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Schema objects.
|
|
func (m *Schema) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Discriminator != nil {
|
|
_, err := m.Discriminator.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Xml != nil {
|
|
_, err := m.Xml.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.ExternalDocs != nil {
|
|
_, err := m.ExternalDocs.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Example != nil {
|
|
_, err := m.Example.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.Enum {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.AllOf {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.OneOf {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
for _, item := range m.AnyOf {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
if m.Not != nil {
|
|
_, err := m.Not.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Items != nil {
|
|
_, err := m.Items.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Properties != nil {
|
|
_, err := m.Properties.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
_, err := m.AdditionalProperties.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
if m.Default != nil {
|
|
_, err := m.Default.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside SchemaOrReference objects.
|
|
func (m *SchemaOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*SchemaOrReference_Schema)
|
|
if ok {
|
|
_, err := p.Schema.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*SchemaOrReference_Reference)
|
|
if ok {
|
|
_, err := p.Reference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside SchemasOrReferences objects.
|
|
func (m *SchemasOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside SecurityRequirement objects.
|
|
func (m *SecurityRequirement) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside SecurityScheme objects.
|
|
func (m *SecurityScheme) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Flows != nil {
|
|
_, err := m.Flows.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside SecuritySchemeOrReference objects.
|
|
func (m *SecuritySchemeOrReference) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
{
|
|
p, ok := m.Oneof.(*SecuritySchemeOrReference_SecurityScheme)
|
|
if ok {
|
|
_, err := p.SecurityScheme.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
{
|
|
p, ok := m.Oneof.(*SecuritySchemeOrReference_Reference)
|
|
if ok {
|
|
_, err := p.Reference.ResolveReferences(root)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside SecuritySchemesOrReferences objects.
|
|
func (m *SecuritySchemesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Server objects.
|
|
func (m *Server) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.Variables != nil {
|
|
_, err := m.Variables.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ServerVariable objects.
|
|
func (m *ServerVariable) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside ServerVariables objects.
|
|
func (m *ServerVariables) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside SpecificationExtension objects.
|
|
func (m *SpecificationExtension) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside StringArray objects.
|
|
func (m *StringArray) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Strings objects.
|
|
func (m *Strings) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.AdditionalProperties {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Tag objects.
|
|
func (m *Tag) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
if m.ExternalDocs != nil {
|
|
_, err := m.ExternalDocs.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ResolveReferences resolves references found inside Xml objects.
|
|
func (m *Xml) ResolveReferences(root string) (*yaml.Node, error) {
|
|
errors := make([]error, 0)
|
|
for _, item := range m.SpecificationExtension {
|
|
if item != nil {
|
|
_, err := item.ResolveReferences(root)
|
|
if err != nil {
|
|
errors = append(errors, err)
|
|
}
|
|
}
|
|
}
|
|
return nil, compiler.NewErrorGroupOrNil(errors)
|
|
}
|
|
|
|
// ToRawInfo returns a description of AdditionalPropertiesItem suitable for JSON or YAML export.
|
|
func (m *AdditionalPropertiesItem) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// AdditionalPropertiesItem
|
|
// {Name:schemaOrReference Type:SchemaOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetSchemaOrReference()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
if v1, ok := m.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {
|
|
return compiler.NewScalarNodeForBool(v1.Boolean)
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of Any suitable for JSON or YAML export.
|
|
func (m *Any) ToRawInfo() *yaml.Node {
|
|
var err error
|
|
var node yaml.Node
|
|
err = yaml.Unmarshal([]byte(m.Yaml), &node)
|
|
if err == nil {
|
|
if node.Kind == yaml.DocumentNode {
|
|
return node.Content[0]
|
|
}
|
|
return &node
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of AnyOrExpression suitable for JSON or YAML export.
|
|
func (m *AnyOrExpression) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// AnyOrExpression
|
|
// {Name:any Type:Any StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetAny()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:expression Type:Expression StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetExpression()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of Callback suitable for JSON or YAML export.
|
|
func (m *Callback) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Path != nil {
|
|
for _, item := range m.Path {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of CallbackOrReference suitable for JSON or YAML export.
|
|
func (m *CallbackOrReference) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// CallbackOrReference
|
|
// {Name:callback Type:Callback StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetCallback()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetReference()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of CallbacksOrReferences suitable for JSON or YAML export.
|
|
func (m *CallbacksOrReferences) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Components suitable for JSON or YAML export.
|
|
func (m *Components) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Schemas != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("schemas"))
|
|
info.Content = append(info.Content, m.Schemas.ToRawInfo())
|
|
}
|
|
if m.Responses != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("responses"))
|
|
info.Content = append(info.Content, m.Responses.ToRawInfo())
|
|
}
|
|
if m.Parameters != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
|
|
info.Content = append(info.Content, m.Parameters.ToRawInfo())
|
|
}
|
|
if m.Examples != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("examples"))
|
|
info.Content = append(info.Content, m.Examples.ToRawInfo())
|
|
}
|
|
if m.RequestBodies != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("requestBodies"))
|
|
info.Content = append(info.Content, m.RequestBodies.ToRawInfo())
|
|
}
|
|
if m.Headers != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("headers"))
|
|
info.Content = append(info.Content, m.Headers.ToRawInfo())
|
|
}
|
|
if m.SecuritySchemes != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("securitySchemes"))
|
|
info.Content = append(info.Content, m.SecuritySchemes.ToRawInfo())
|
|
}
|
|
if m.Links != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("links"))
|
|
info.Content = append(info.Content, m.Links.ToRawInfo())
|
|
}
|
|
if m.Callbacks != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("callbacks"))
|
|
info.Content = append(info.Content, m.Callbacks.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Contact suitable for JSON or YAML export.
|
|
func (m *Contact) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
if m.Url != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("url"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))
|
|
}
|
|
if m.Email != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("email"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Email))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of DefaultType suitable for JSON or YAML export.
|
|
func (m *DefaultType) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// DefaultType
|
|
// {Name:number Type:float StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
if v0, ok := m.GetOneof().(*DefaultType_Number); ok {
|
|
return compiler.NewScalarNodeForFloat(v0.Number)
|
|
}
|
|
// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
if v1, ok := m.GetOneof().(*DefaultType_Boolean); ok {
|
|
return compiler.NewScalarNodeForBool(v1.Boolean)
|
|
}
|
|
// {Name:string Type:string StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
if v2, ok := m.GetOneof().(*DefaultType_String_); ok {
|
|
return compiler.NewScalarNodeForString(v2.String_)
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of Discriminator suitable for JSON or YAML export.
|
|
func (m *Discriminator) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("propertyName"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.PropertyName))
|
|
if m.Mapping != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("mapping"))
|
|
info.Content = append(info.Content, m.Mapping.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Document suitable for JSON or YAML export.
|
|
func (m *Document) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("openapi"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Openapi))
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("info"))
|
|
info.Content = append(info.Content, m.Info.ToRawInfo())
|
|
if len(m.Servers) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Servers {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("servers"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("paths"))
|
|
info.Content = append(info.Content, m.Paths.ToRawInfo())
|
|
if m.Components != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("components"))
|
|
info.Content = append(info.Content, m.Components.ToRawInfo())
|
|
}
|
|
if len(m.Security) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Security {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("security"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if len(m.Tags) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Tags {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("tags"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if m.ExternalDocs != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("externalDocs"))
|
|
info.Content = append(info.Content, m.ExternalDocs.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Encoding suitable for JSON or YAML export.
|
|
func (m *Encoding) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.ContentType != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("contentType"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.ContentType))
|
|
}
|
|
if m.Headers != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("headers"))
|
|
info.Content = append(info.Content, m.Headers.ToRawInfo())
|
|
}
|
|
if m.Style != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("style"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))
|
|
}
|
|
if m.Explode != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("explode"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))
|
|
}
|
|
if m.AllowReserved != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("allowReserved"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Encodings suitable for JSON or YAML export.
|
|
func (m *Encodings) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Example suitable for JSON or YAML export.
|
|
func (m *Example) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Summary != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
|
|
}
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.Value != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("value"))
|
|
info.Content = append(info.Content, m.Value.ToRawInfo())
|
|
}
|
|
if m.ExternalValue != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("externalValue"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.ExternalValue))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of ExampleOrReference suitable for JSON or YAML export.
|
|
func (m *ExampleOrReference) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// ExampleOrReference
|
|
// {Name:example Type:Example StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetExample()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetReference()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of ExamplesOrReferences suitable for JSON or YAML export.
|
|
func (m *ExamplesOrReferences) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Expression suitable for JSON or YAML export.
|
|
func (m *Expression) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of ExternalDocs suitable for JSON or YAML export.
|
|
func (m *ExternalDocs) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("url"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Header suitable for JSON or YAML export.
|
|
func (m *Header) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.Required != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))
|
|
}
|
|
if m.Deprecated != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("deprecated"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))
|
|
}
|
|
if m.AllowEmptyValue != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("allowEmptyValue"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))
|
|
}
|
|
if m.Style != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("style"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))
|
|
}
|
|
if m.Explode != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("explode"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))
|
|
}
|
|
if m.AllowReserved != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("allowReserved"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))
|
|
}
|
|
if m.Schema != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("schema"))
|
|
info.Content = append(info.Content, m.Schema.ToRawInfo())
|
|
}
|
|
if m.Example != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("example"))
|
|
info.Content = append(info.Content, m.Example.ToRawInfo())
|
|
}
|
|
if m.Examples != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("examples"))
|
|
info.Content = append(info.Content, m.Examples.ToRawInfo())
|
|
}
|
|
if m.Content != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("content"))
|
|
info.Content = append(info.Content, m.Content.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of HeaderOrReference suitable for JSON or YAML export.
|
|
func (m *HeaderOrReference) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// HeaderOrReference
|
|
// {Name:header Type:Header StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetHeader()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetReference()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of HeadersOrReferences suitable for JSON or YAML export.
|
|
func (m *HeadersOrReferences) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Info suitable for JSON or YAML export.
|
|
func (m *Info) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("title"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.TermsOfService != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("termsOfService"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.TermsOfService))
|
|
}
|
|
if m.Contact != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("contact"))
|
|
info.Content = append(info.Content, m.Contact.ToRawInfo())
|
|
}
|
|
if m.License != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("license"))
|
|
info.Content = append(info.Content, m.License.ToRawInfo())
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("version"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Version))
|
|
if m.Summary != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of ItemsItem suitable for JSON or YAML export.
|
|
func (m *ItemsItem) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if len(m.SchemaOrReference) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.SchemaOrReference {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("schemaOrReference"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of License suitable for JSON or YAML export.
|
|
func (m *License) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
if m.Url != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("url"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Link suitable for JSON or YAML export.
|
|
func (m *Link) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.OperationRef != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("operationRef"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationRef))
|
|
}
|
|
if m.OperationId != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("operationId"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))
|
|
}
|
|
if m.Parameters != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
|
|
info.Content = append(info.Content, m.Parameters.ToRawInfo())
|
|
}
|
|
if m.RequestBody != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("requestBody"))
|
|
info.Content = append(info.Content, m.RequestBody.ToRawInfo())
|
|
}
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.Server != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("server"))
|
|
info.Content = append(info.Content, m.Server.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of LinkOrReference suitable for JSON or YAML export.
|
|
func (m *LinkOrReference) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// LinkOrReference
|
|
// {Name:link Type:Link StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetLink()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetReference()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of LinksOrReferences suitable for JSON or YAML export.
|
|
func (m *LinksOrReferences) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of MediaType suitable for JSON or YAML export.
|
|
func (m *MediaType) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Schema != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("schema"))
|
|
info.Content = append(info.Content, m.Schema.ToRawInfo())
|
|
}
|
|
if m.Example != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("example"))
|
|
info.Content = append(info.Content, m.Example.ToRawInfo())
|
|
}
|
|
if m.Examples != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("examples"))
|
|
info.Content = append(info.Content, m.Examples.ToRawInfo())
|
|
}
|
|
if m.Encoding != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("encoding"))
|
|
info.Content = append(info.Content, m.Encoding.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of MediaTypes suitable for JSON or YAML export.
|
|
func (m *MediaTypes) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedAny suitable for JSON or YAML export.
|
|
func (m *NamedAny) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
if m.Value != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("value"))
|
|
info.Content = append(info.Content, m.Value.ToRawInfo())
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedCallbackOrReference suitable for JSON or YAML export.
|
|
func (m *NamedCallbackOrReference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:CallbackOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedEncoding suitable for JSON or YAML export.
|
|
func (m *NamedEncoding) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:Encoding StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedExampleOrReference suitable for JSON or YAML export.
|
|
func (m *NamedExampleOrReference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:ExampleOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedHeaderOrReference suitable for JSON or YAML export.
|
|
func (m *NamedHeaderOrReference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:HeaderOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedLinkOrReference suitable for JSON or YAML export.
|
|
func (m *NamedLinkOrReference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:LinkOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedMediaType suitable for JSON or YAML export.
|
|
func (m *NamedMediaType) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:MediaType StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedParameterOrReference suitable for JSON or YAML export.
|
|
func (m *NamedParameterOrReference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:ParameterOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedPathItem suitable for JSON or YAML export.
|
|
func (m *NamedPathItem) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:PathItem StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedRequestBodyOrReference suitable for JSON or YAML export.
|
|
func (m *NamedRequestBodyOrReference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:RequestBodyOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedResponseOrReference suitable for JSON or YAML export.
|
|
func (m *NamedResponseOrReference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:ResponseOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedSchemaOrReference suitable for JSON or YAML export.
|
|
func (m *NamedSchemaOrReference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:SchemaOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedSecuritySchemeOrReference suitable for JSON or YAML export.
|
|
func (m *NamedSecuritySchemeOrReference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:SecuritySchemeOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedServerVariable suitable for JSON or YAML export.
|
|
func (m *NamedServerVariable) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:ServerVariable StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedString suitable for JSON or YAML export.
|
|
func (m *NamedString) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
if m.Value != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("value"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Value))
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of NamedStringArray suitable for JSON or YAML export.
|
|
func (m *NamedStringArray) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
// &{Name:value Type:StringArray StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of OauthFlow suitable for JSON or YAML export.
|
|
func (m *OauthFlow) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AuthorizationUrl != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("authorizationUrl"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.AuthorizationUrl))
|
|
}
|
|
if m.TokenUrl != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("tokenUrl"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))
|
|
}
|
|
if m.RefreshUrl != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("refreshUrl"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.RefreshUrl))
|
|
}
|
|
if m.Scopes != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("scopes"))
|
|
info.Content = append(info.Content, m.Scopes.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of OauthFlows suitable for JSON or YAML export.
|
|
func (m *OauthFlows) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Implicit != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("implicit"))
|
|
info.Content = append(info.Content, m.Implicit.ToRawInfo())
|
|
}
|
|
if m.Password != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("password"))
|
|
info.Content = append(info.Content, m.Password.ToRawInfo())
|
|
}
|
|
if m.ClientCredentials != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("clientCredentials"))
|
|
info.Content = append(info.Content, m.ClientCredentials.ToRawInfo())
|
|
}
|
|
if m.AuthorizationCode != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("authorizationCode"))
|
|
info.Content = append(info.Content, m.AuthorizationCode.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Object suitable for JSON or YAML export.
|
|
func (m *Object) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Operation suitable for JSON or YAML export.
|
|
func (m *Operation) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if len(m.Tags) != 0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("tags"))
|
|
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Tags))
|
|
}
|
|
if m.Summary != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
|
|
}
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.ExternalDocs != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("externalDocs"))
|
|
info.Content = append(info.Content, m.ExternalDocs.ToRawInfo())
|
|
}
|
|
if m.OperationId != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("operationId"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))
|
|
}
|
|
if len(m.Parameters) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Parameters {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if m.RequestBody != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("requestBody"))
|
|
info.Content = append(info.Content, m.RequestBody.ToRawInfo())
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("responses"))
|
|
info.Content = append(info.Content, m.Responses.ToRawInfo())
|
|
if m.Callbacks != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("callbacks"))
|
|
info.Content = append(info.Content, m.Callbacks.ToRawInfo())
|
|
}
|
|
if m.Deprecated != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("deprecated"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))
|
|
}
|
|
if len(m.Security) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Security {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("security"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if len(m.Servers) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Servers {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("servers"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Parameter suitable for JSON or YAML export.
|
|
func (m *Parameter) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("in"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.Required != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))
|
|
}
|
|
if m.Deprecated != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("deprecated"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))
|
|
}
|
|
if m.AllowEmptyValue != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("allowEmptyValue"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))
|
|
}
|
|
if m.Style != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("style"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))
|
|
}
|
|
if m.Explode != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("explode"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))
|
|
}
|
|
if m.AllowReserved != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("allowReserved"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))
|
|
}
|
|
if m.Schema != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("schema"))
|
|
info.Content = append(info.Content, m.Schema.ToRawInfo())
|
|
}
|
|
if m.Example != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("example"))
|
|
info.Content = append(info.Content, m.Example.ToRawInfo())
|
|
}
|
|
if m.Examples != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("examples"))
|
|
info.Content = append(info.Content, m.Examples.ToRawInfo())
|
|
}
|
|
if m.Content != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("content"))
|
|
info.Content = append(info.Content, m.Content.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of ParameterOrReference suitable for JSON or YAML export.
|
|
func (m *ParameterOrReference) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// ParameterOrReference
|
|
// {Name:parameter Type:Parameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetParameter()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetReference()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of ParametersOrReferences suitable for JSON or YAML export.
|
|
func (m *ParametersOrReferences) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of PathItem suitable for JSON or YAML export.
|
|
func (m *PathItem) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.XRef != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("$ref"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))
|
|
}
|
|
if m.Summary != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
|
|
}
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.Get != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("get"))
|
|
info.Content = append(info.Content, m.Get.ToRawInfo())
|
|
}
|
|
if m.Put != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("put"))
|
|
info.Content = append(info.Content, m.Put.ToRawInfo())
|
|
}
|
|
if m.Post != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("post"))
|
|
info.Content = append(info.Content, m.Post.ToRawInfo())
|
|
}
|
|
if m.Delete != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("delete"))
|
|
info.Content = append(info.Content, m.Delete.ToRawInfo())
|
|
}
|
|
if m.Options != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("options"))
|
|
info.Content = append(info.Content, m.Options.ToRawInfo())
|
|
}
|
|
if m.Head != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("head"))
|
|
info.Content = append(info.Content, m.Head.ToRawInfo())
|
|
}
|
|
if m.Patch != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("patch"))
|
|
info.Content = append(info.Content, m.Patch.ToRawInfo())
|
|
}
|
|
if m.Trace != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("trace"))
|
|
info.Content = append(info.Content, m.Trace.ToRawInfo())
|
|
}
|
|
if len(m.Servers) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Servers {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("servers"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if len(m.Parameters) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Parameters {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Paths suitable for JSON or YAML export.
|
|
func (m *Paths) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Path != nil {
|
|
for _, item := range m.Path {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Properties suitable for JSON or YAML export.
|
|
func (m *Properties) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Reference suitable for JSON or YAML export.
|
|
func (m *Reference) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("$ref"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))
|
|
if m.Summary != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("summary"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))
|
|
}
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of RequestBodiesOrReferences suitable for JSON or YAML export.
|
|
func (m *RequestBodiesOrReferences) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of RequestBody suitable for JSON or YAML export.
|
|
func (m *RequestBody) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("content"))
|
|
info.Content = append(info.Content, m.Content.ToRawInfo())
|
|
if m.Required != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of RequestBodyOrReference suitable for JSON or YAML export.
|
|
func (m *RequestBodyOrReference) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// RequestBodyOrReference
|
|
// {Name:requestBody Type:RequestBody StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetRequestBody()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetReference()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of Response suitable for JSON or YAML export.
|
|
func (m *Response) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
if m.Headers != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("headers"))
|
|
info.Content = append(info.Content, m.Headers.ToRawInfo())
|
|
}
|
|
if m.Content != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("content"))
|
|
info.Content = append(info.Content, m.Content.ToRawInfo())
|
|
}
|
|
if m.Links != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("links"))
|
|
info.Content = append(info.Content, m.Links.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of ResponseOrReference suitable for JSON or YAML export.
|
|
func (m *ResponseOrReference) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// ResponseOrReference
|
|
// {Name:response Type:Response StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetResponse()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetReference()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of Responses suitable for JSON or YAML export.
|
|
func (m *Responses) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Default != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("default"))
|
|
info.Content = append(info.Content, m.Default.ToRawInfo())
|
|
}
|
|
if m.ResponseOrReference != nil {
|
|
for _, item := range m.ResponseOrReference {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of ResponsesOrReferences suitable for JSON or YAML export.
|
|
func (m *ResponsesOrReferences) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Schema suitable for JSON or YAML export.
|
|
func (m *Schema) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Nullable != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("nullable"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Nullable))
|
|
}
|
|
if m.Discriminator != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("discriminator"))
|
|
info.Content = append(info.Content, m.Discriminator.ToRawInfo())
|
|
}
|
|
if m.ReadOnly != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("readOnly"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ReadOnly))
|
|
}
|
|
if m.WriteOnly != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("writeOnly"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.WriteOnly))
|
|
}
|
|
if m.Xml != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("xml"))
|
|
info.Content = append(info.Content, m.Xml.ToRawInfo())
|
|
}
|
|
if m.ExternalDocs != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("externalDocs"))
|
|
info.Content = append(info.Content, m.ExternalDocs.ToRawInfo())
|
|
}
|
|
if m.Example != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("example"))
|
|
info.Content = append(info.Content, m.Example.ToRawInfo())
|
|
}
|
|
if m.Deprecated != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("deprecated"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))
|
|
}
|
|
if m.Title != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("title"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))
|
|
}
|
|
if m.MultipleOf != 0.0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("multipleOf"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))
|
|
}
|
|
if m.Maximum != 0.0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("maximum"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))
|
|
}
|
|
if m.ExclusiveMaximum != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("exclusiveMaximum"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))
|
|
}
|
|
if m.Minimum != 0.0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("minimum"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))
|
|
}
|
|
if m.ExclusiveMinimum != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("exclusiveMinimum"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))
|
|
}
|
|
if m.MaxLength != 0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("maxLength"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))
|
|
}
|
|
if m.MinLength != 0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("minLength"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))
|
|
}
|
|
if m.Pattern != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("pattern"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))
|
|
}
|
|
if m.MaxItems != 0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("maxItems"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))
|
|
}
|
|
if m.MinItems != 0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("minItems"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))
|
|
}
|
|
if m.UniqueItems != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("uniqueItems"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))
|
|
}
|
|
if m.MaxProperties != 0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("maxProperties"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxProperties))
|
|
}
|
|
if m.MinProperties != 0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("minProperties"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinProperties))
|
|
}
|
|
if len(m.Required) != 0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
|
|
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Required))
|
|
}
|
|
if len(m.Enum) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Enum {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("enum"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if m.Type != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("type"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))
|
|
}
|
|
if len(m.AllOf) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.AllOf {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("allOf"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if len(m.OneOf) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.OneOf {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("oneOf"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if len(m.AnyOf) != 0 {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.AnyOf {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("anyOf"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if m.Not != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("not"))
|
|
info.Content = append(info.Content, m.Not.ToRawInfo())
|
|
}
|
|
if m.Items != nil {
|
|
items := compiler.NewSequenceNode()
|
|
for _, item := range m.Items.SchemaOrReference {
|
|
items.Content = append(items.Content, item.ToRawInfo())
|
|
}
|
|
if len(items.Content) == 1 {
|
|
items = items.Content[0]
|
|
}
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("items"))
|
|
info.Content = append(info.Content, items)
|
|
}
|
|
if m.Properties != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("properties"))
|
|
info.Content = append(info.Content, m.Properties.ToRawInfo())
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("additionalProperties"))
|
|
info.Content = append(info.Content, m.AdditionalProperties.ToRawInfo())
|
|
}
|
|
if m.Default != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("default"))
|
|
info.Content = append(info.Content, m.Default.ToRawInfo())
|
|
}
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.Format != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("format"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of SchemaOrReference suitable for JSON or YAML export.
|
|
func (m *SchemaOrReference) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// SchemaOrReference
|
|
// {Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetSchema()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetReference()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of SchemasOrReferences suitable for JSON or YAML export.
|
|
func (m *SchemasOrReferences) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of SecurityRequirement suitable for JSON or YAML export.
|
|
func (m *SecurityRequirement) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of SecurityScheme suitable for JSON or YAML export.
|
|
func (m *SecurityScheme) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("type"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
if m.In != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("in"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))
|
|
}
|
|
if m.Scheme != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("scheme"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Scheme))
|
|
}
|
|
if m.BearerFormat != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("bearerFormat"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.BearerFormat))
|
|
}
|
|
if m.Flows != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("flows"))
|
|
info.Content = append(info.Content, m.Flows.ToRawInfo())
|
|
}
|
|
if m.OpenIdConnectUrl != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("openIdConnectUrl"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OpenIdConnectUrl))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of SecuritySchemeOrReference suitable for JSON or YAML export.
|
|
func (m *SecuritySchemeOrReference) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// SecuritySchemeOrReference
|
|
// {Name:securityScheme Type:SecurityScheme StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v0 := m.GetSecurityScheme()
|
|
if v0 != nil {
|
|
return v0.ToRawInfo()
|
|
}
|
|
// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
v1 := m.GetReference()
|
|
if v1 != nil {
|
|
return v1.ToRawInfo()
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of SecuritySchemesOrReferences suitable for JSON or YAML export.
|
|
func (m *SecuritySchemesOrReferences) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Server suitable for JSON or YAML export.
|
|
func (m *Server) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("url"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.Variables != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("variables"))
|
|
info.Content = append(info.Content, m.Variables.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of ServerVariable suitable for JSON or YAML export.
|
|
func (m *ServerVariable) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if len(m.Enum) != 0 {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("enum"))
|
|
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Enum))
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("default"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Default))
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of ServerVariables suitable for JSON or YAML export.
|
|
func (m *ServerVariables) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.AdditionalProperties != nil {
|
|
for _, item := range m.AdditionalProperties {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of SpecificationExtension suitable for JSON or YAML export.
|
|
func (m *SpecificationExtension) ToRawInfo() *yaml.Node {
|
|
// ONE OF WRAPPER
|
|
// SpecificationExtension
|
|
// {Name:number Type:float StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
if v0, ok := m.GetOneof().(*SpecificationExtension_Number); ok {
|
|
return compiler.NewScalarNodeForFloat(v0.Number)
|
|
}
|
|
// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
if v1, ok := m.GetOneof().(*SpecificationExtension_Boolean); ok {
|
|
return compiler.NewScalarNodeForBool(v1.Boolean)
|
|
}
|
|
// {Name:string Type:string StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}
|
|
if v2, ok := m.GetOneof().(*SpecificationExtension_String_); ok {
|
|
return compiler.NewScalarNodeForString(v2.String_)
|
|
}
|
|
return compiler.NewNullNode()
|
|
}
|
|
|
|
// ToRawInfo returns a description of StringArray suitable for JSON or YAML export.
|
|
func (m *StringArray) ToRawInfo() *yaml.Node {
|
|
return compiler.NewSequenceNodeForStringArray(m.Value)
|
|
}
|
|
|
|
// ToRawInfo returns a description of Strings suitable for JSON or YAML export.
|
|
func (m *Strings) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Tag suitable for JSON or YAML export.
|
|
func (m *Tag) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
// always include this required field.
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
if m.Description != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
|
|
}
|
|
if m.ExternalDocs != nil {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("externalDocs"))
|
|
info.Content = append(info.Content, m.ExternalDocs.ToRawInfo())
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
// ToRawInfo returns a description of Xml suitable for JSON or YAML export.
|
|
func (m *Xml) ToRawInfo() *yaml.Node {
|
|
info := compiler.NewMappingNode()
|
|
if m == nil {
|
|
return info
|
|
}
|
|
if m.Name != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
|
|
}
|
|
if m.Namespace != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("namespace"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Namespace))
|
|
}
|
|
if m.Prefix != "" {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("prefix"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Prefix))
|
|
}
|
|
if m.Attribute != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("attribute"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Attribute))
|
|
}
|
|
if m.Wrapped != false {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString("wrapped"))
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Wrapped))
|
|
}
|
|
if m.SpecificationExtension != nil {
|
|
for _, item := range m.SpecificationExtension {
|
|
info.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))
|
|
info.Content = append(info.Content, item.Value.ToRawInfo())
|
|
}
|
|
}
|
|
return info
|
|
}
|
|
|
|
var (
|
|
pattern0 = regexp.MustCompile("^")
|
|
pattern1 = regexp.MustCompile("^x-")
|
|
pattern2 = regexp.MustCompile("^/")
|
|
pattern3 = regexp.MustCompile("^([0-9X]{3})$")
|
|
)
|