blob: ad62277c46cc533ea0b73ab5905515d9bd178dc2 [file] [log] [blame]
// 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 discovery_v1
import (
"fmt"
"github.com/googleapis/gnostic/compiler"
"gopkg.in/yaml.v3"
"regexp"
"strings"
)
// Version returns the package name (and OpenAPI version).
func Version() string {
return "discovery_v1"
}
// NewAnnotations creates an object of type Annotations if possible, returning an error if not.
func NewAnnotations(in *yaml.Node, context *compiler.Context) (*Annotations, error) {
errors := make([]error, 0)
x := &Annotations{}
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{"required"}
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))
}
// repeated string required = 1;
v1 := compiler.MapValueForKey(m, "required")
if v1 != nil {
v, ok := compiler.SequenceNodeForNode(v1)
if ok {
x.Required = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v1))
errors = append(errors, compiler.NewError(context, message))
}
}
}
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)
}
// NewAuth creates an object of type Auth if possible, returning an error if not.
func NewAuth(in *yaml.Node, context *compiler.Context) (*Auth, error) {
errors := make([]error, 0)
x := &Auth{}
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{"oauth2"}
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))
}
// Oauth2 oauth2 = 1;
v1 := compiler.MapValueForKey(m, "oauth2")
if v1 != nil {
var err error
x.Oauth2, err = NewOauth2(v1, compiler.NewContext("oauth2", v1, context))
if err != nil {
errors = append(errors, err)
}
}
}
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{"discoveryVersion", "kind"}
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{"auth", "basePath", "baseUrl", "batchPath", "canonicalName", "description", "discoveryVersion", "documentationLink", "etag", "features", "fullyEncodeReservedExpansion", "icons", "id", "kind", "labels", "methods", "mtlsRootUrl", "name", "ownerDomain", "ownerName", "packagePath", "parameters", "protocol", "resources", "revision", "rootUrl", "schemas", "servicePath", "title", "version", "version_module"}
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 kind = 1;
v1 := compiler.MapValueForKey(m, "kind")
if v1 != nil {
x.Kind, ok = compiler.StringForScalarNode(v1)
if !ok {
message := fmt.Sprintf("has unexpected value for kind: %s", compiler.Display(v1))
errors = append(errors, compiler.NewError(context, message))
}
}
// string discovery_version = 2;
v2 := compiler.MapValueForKey(m, "discoveryVersion")
if v2 != nil {
x.DiscoveryVersion, ok = compiler.StringForScalarNode(v2)
if !ok {
message := fmt.Sprintf("has unexpected value for discoveryVersion: %s", compiler.Display(v2))
errors = append(errors, compiler.NewError(context, message))
}
}
// string id = 3;
v3 := compiler.MapValueForKey(m, "id")
if v3 != nil {
x.Id, ok = compiler.StringForScalarNode(v3)
if !ok {
message := fmt.Sprintf("has unexpected value for id: %s", compiler.Display(v3))
errors = append(errors, compiler.NewError(context, message))
}
}
// string name = 4;
v4 := compiler.MapValueForKey(m, "name")
if v4 != nil {
x.Name, ok = compiler.StringForScalarNode(v4)
if !ok {
message := fmt.Sprintf("has unexpected value for name: %s", compiler.Display(v4))
errors = append(errors, compiler.NewError(context, message))
}
}
// string version = 5;
v5 := compiler.MapValueForKey(m, "version")
if v5 != nil {
x.Version, ok = compiler.StringForScalarNode(v5)
if !ok {
message := fmt.Sprintf("has unexpected value for version: %s", compiler.Display(v5))
errors = append(errors, compiler.NewError(context, message))
}
}
// string revision = 6;
v6 := compiler.MapValueForKey(m, "revision")
if v6 != nil {
x.Revision, ok = compiler.StringForScalarNode(v6)
if !ok {
message := fmt.Sprintf("has unexpected value for revision: %s", compiler.Display(v6))
errors = append(errors, compiler.NewError(context, message))
}
}
// string title = 7;
v7 := compiler.MapValueForKey(m, "title")
if v7 != nil {
x.Title, ok = compiler.StringForScalarNode(v7)
if !ok {
message := fmt.Sprintf("has unexpected value for title: %s", compiler.Display(v7))
errors = append(errors, compiler.NewError(context, message))
}
}
// string description = 8;
v8 := compiler.MapValueForKey(m, "description")
if v8 != nil {
x.Description, ok = compiler.StringForScalarNode(v8)
if !ok {
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v8))
errors = append(errors, compiler.NewError(context, message))
}
}
// Icons icons = 9;
v9 := compiler.MapValueForKey(m, "icons")
if v9 != nil {
var err error
x.Icons, err = NewIcons(v9, compiler.NewContext("icons", v9, context))
if err != nil {
errors = append(errors, err)
}
}
// string documentation_link = 10;
v10 := compiler.MapValueForKey(m, "documentationLink")
if v10 != nil {
x.DocumentationLink, ok = compiler.StringForScalarNode(v10)
if !ok {
message := fmt.Sprintf("has unexpected value for documentationLink: %s", compiler.Display(v10))
errors = append(errors, compiler.NewError(context, message))
}
}
// repeated string labels = 11;
v11 := compiler.MapValueForKey(m, "labels")
if v11 != nil {
v, ok := compiler.SequenceNodeForNode(v11)
if ok {
x.Labels = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for labels: %s", compiler.Display(v11))
errors = append(errors, compiler.NewError(context, message))
}
}
// string protocol = 12;
v12 := compiler.MapValueForKey(m, "protocol")
if v12 != nil {
x.Protocol, ok = compiler.StringForScalarNode(v12)
if !ok {
message := fmt.Sprintf("has unexpected value for protocol: %s", compiler.Display(v12))
errors = append(errors, compiler.NewError(context, message))
}
}
// string base_url = 13;
v13 := compiler.MapValueForKey(m, "baseUrl")
if v13 != nil {
x.BaseUrl, ok = compiler.StringForScalarNode(v13)
if !ok {
message := fmt.Sprintf("has unexpected value for baseUrl: %s", compiler.Display(v13))
errors = append(errors, compiler.NewError(context, message))
}
}
// string base_path = 14;
v14 := compiler.MapValueForKey(m, "basePath")
if v14 != nil {
x.BasePath, ok = compiler.StringForScalarNode(v14)
if !ok {
message := fmt.Sprintf("has unexpected value for basePath: %s", compiler.Display(v14))
errors = append(errors, compiler.NewError(context, message))
}
}
// string root_url = 15;
v15 := compiler.MapValueForKey(m, "rootUrl")
if v15 != nil {
x.RootUrl, ok = compiler.StringForScalarNode(v15)
if !ok {
message := fmt.Sprintf("has unexpected value for rootUrl: %s", compiler.Display(v15))
errors = append(errors, compiler.NewError(context, message))
}
}
// string service_path = 16;
v16 := compiler.MapValueForKey(m, "servicePath")
if v16 != nil {
x.ServicePath, ok = compiler.StringForScalarNode(v16)
if !ok {
message := fmt.Sprintf("has unexpected value for servicePath: %s", compiler.Display(v16))
errors = append(errors, compiler.NewError(context, message))
}
}
// string batch_path = 17;
v17 := compiler.MapValueForKey(m, "batchPath")
if v17 != nil {
x.BatchPath, ok = compiler.StringForScalarNode(v17)
if !ok {
message := fmt.Sprintf("has unexpected value for batchPath: %s", compiler.Display(v17))
errors = append(errors, compiler.NewError(context, message))
}
}
// Parameters parameters = 18;
v18 := compiler.MapValueForKey(m, "parameters")
if v18 != nil {
var err error
x.Parameters, err = NewParameters(v18, compiler.NewContext("parameters", v18, context))
if err != nil {
errors = append(errors, err)
}
}
// Auth auth = 19;
v19 := compiler.MapValueForKey(m, "auth")
if v19 != nil {
var err error
x.Auth, err = NewAuth(v19, compiler.NewContext("auth", v19, context))
if err != nil {
errors = append(errors, err)
}
}
// repeated string features = 20;
v20 := compiler.MapValueForKey(m, "features")
if v20 != nil {
v, ok := compiler.SequenceNodeForNode(v20)
if ok {
x.Features = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for features: %s", compiler.Display(v20))
errors = append(errors, compiler.NewError(context, message))
}
}
// Schemas schemas = 21;
v21 := compiler.MapValueForKey(m, "schemas")
if v21 != nil {
var err error
x.Schemas, err = NewSchemas(v21, compiler.NewContext("schemas", v21, context))
if err != nil {
errors = append(errors, err)
}
}
// Methods methods = 22;
v22 := compiler.MapValueForKey(m, "methods")
if v22 != nil {
var err error
x.Methods, err = NewMethods(v22, compiler.NewContext("methods", v22, context))
if err != nil {
errors = append(errors, err)
}
}
// Resources resources = 23;
v23 := compiler.MapValueForKey(m, "resources")
if v23 != nil {
var err error
x.Resources, err = NewResources(v23, compiler.NewContext("resources", v23, context))
if err != nil {
errors = append(errors, err)
}
}
// string etag = 24;
v24 := compiler.MapValueForKey(m, "etag")
if v24 != nil {
x.Etag, ok = compiler.StringForScalarNode(v24)
if !ok {
message := fmt.Sprintf("has unexpected value for etag: %s", compiler.Display(v24))
errors = append(errors, compiler.NewError(context, message))
}
}
// string owner_domain = 25;
v25 := compiler.MapValueForKey(m, "ownerDomain")
if v25 != nil {
x.OwnerDomain, ok = compiler.StringForScalarNode(v25)
if !ok {
message := fmt.Sprintf("has unexpected value for ownerDomain: %s", compiler.Display(v25))
errors = append(errors, compiler.NewError(context, message))
}
}
// string owner_name = 26;
v26 := compiler.MapValueForKey(m, "ownerName")
if v26 != nil {
x.OwnerName, ok = compiler.StringForScalarNode(v26)
if !ok {
message := fmt.Sprintf("has unexpected value for ownerName: %s", compiler.Display(v26))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool version_module = 27;
v27 := compiler.MapValueForKey(m, "version_module")
if v27 != nil {
x.VersionModule, ok = compiler.BoolForScalarNode(v27)
if !ok {
message := fmt.Sprintf("has unexpected value for version_module: %s", compiler.Display(v27))
errors = append(errors, compiler.NewError(context, message))
}
}
// string canonical_name = 28;
v28 := compiler.MapValueForKey(m, "canonicalName")
if v28 != nil {
x.CanonicalName, ok = compiler.StringForScalarNode(v28)
if !ok {
message := fmt.Sprintf("has unexpected value for canonicalName: %s", compiler.Display(v28))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool fully_encode_reserved_expansion = 29;
v29 := compiler.MapValueForKey(m, "fullyEncodeReservedExpansion")
if v29 != nil {
x.FullyEncodeReservedExpansion, ok = compiler.BoolForScalarNode(v29)
if !ok {
message := fmt.Sprintf("has unexpected value for fullyEncodeReservedExpansion: %s", compiler.Display(v29))
errors = append(errors, compiler.NewError(context, message))
}
}
// string package_path = 30;
v30 := compiler.MapValueForKey(m, "packagePath")
if v30 != nil {
x.PackagePath, ok = compiler.StringForScalarNode(v30)
if !ok {
message := fmt.Sprintf("has unexpected value for packagePath: %s", compiler.Display(v30))
errors = append(errors, compiler.NewError(context, message))
}
}
// string mtls_root_url = 31;
v31 := compiler.MapValueForKey(m, "mtlsRootUrl")
if v31 != nil {
x.MtlsRootUrl, ok = compiler.StringForScalarNode(v31)
if !ok {
message := fmt.Sprintf("has unexpected value for mtlsRootUrl: %s", compiler.Display(v31))
errors = append(errors, compiler.NewError(context, message))
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewIcons creates an object of type Icons if possible, returning an error if not.
func NewIcons(in *yaml.Node, context *compiler.Context) (*Icons, error) {
errors := make([]error, 0)
x := &Icons{}
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{"x16", "x32"}
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{"x16", "x32"}
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 x16 = 1;
v1 := compiler.MapValueForKey(m, "x16")
if v1 != nil {
x.X16, ok = compiler.StringForScalarNode(v1)
if !ok {
message := fmt.Sprintf("has unexpected value for x16: %s", compiler.Display(v1))
errors = append(errors, compiler.NewError(context, message))
}
}
// string x32 = 2;
v2 := compiler.MapValueForKey(m, "x32")
if v2 != nil {
x.X32, ok = compiler.StringForScalarNode(v2)
if !ok {
message := fmt.Sprintf("has unexpected value for x32: %s", compiler.Display(v2))
errors = append(errors, compiler.NewError(context, message))
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewMediaUpload creates an object of type MediaUpload if possible, returning an error if not.
func NewMediaUpload(in *yaml.Node, context *compiler.Context) (*MediaUpload, error) {
errors := make([]error, 0)
x := &MediaUpload{}
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{"accept", "maxSize", "protocols", "supportsSubscription"}
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))
}
// repeated string accept = 1;
v1 := compiler.MapValueForKey(m, "accept")
if v1 != nil {
v, ok := compiler.SequenceNodeForNode(v1)
if ok {
x.Accept = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for accept: %s", compiler.Display(v1))
errors = append(errors, compiler.NewError(context, message))
}
}
// string max_size = 2;
v2 := compiler.MapValueForKey(m, "maxSize")
if v2 != nil {
x.MaxSize, ok = compiler.StringForScalarNode(v2)
if !ok {
message := fmt.Sprintf("has unexpected value for maxSize: %s", compiler.Display(v2))
errors = append(errors, compiler.NewError(context, message))
}
}
// Protocols protocols = 3;
v3 := compiler.MapValueForKey(m, "protocols")
if v3 != nil {
var err error
x.Protocols, err = NewProtocols(v3, compiler.NewContext("protocols", v3, context))
if err != nil {
errors = append(errors, err)
}
}
// bool supports_subscription = 4;
v4 := compiler.MapValueForKey(m, "supportsSubscription")
if v4 != nil {
x.SupportsSubscription, ok = compiler.BoolForScalarNode(v4)
if !ok {
message := fmt.Sprintf("has unexpected value for supportsSubscription: %s", compiler.Display(v4))
errors = append(errors, compiler.NewError(context, message))
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewMethod creates an object of type Method if possible, returning an error if not.
func NewMethod(in *yaml.Node, context *compiler.Context) (*Method, error) {
errors := make([]error, 0)
x := &Method{}
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", "etagRequired", "flatPath", "httpMethod", "id", "mediaUpload", "parameterOrder", "parameters", "path", "request", "response", "scopes", "supportsMediaDownload", "supportsMediaUpload", "supportsSubscription", "useMediaDownloadService"}
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 id = 1;
v1 := compiler.MapValueForKey(m, "id")
if v1 != nil {
x.Id, ok = compiler.StringForScalarNode(v1)
if !ok {
message := fmt.Sprintf("has unexpected value for id: %s", compiler.Display(v1))
errors = append(errors, compiler.NewError(context, message))
}
}
// string path = 2;
v2 := compiler.MapValueForKey(m, "path")
if v2 != nil {
x.Path, ok = compiler.StringForScalarNode(v2)
if !ok {
message := fmt.Sprintf("has unexpected value for path: %s", compiler.Display(v2))
errors = append(errors, compiler.NewError(context, message))
}
}
// string http_method = 3;
v3 := compiler.MapValueForKey(m, "httpMethod")
if v3 != nil {
x.HttpMethod, ok = compiler.StringForScalarNode(v3)
if !ok {
message := fmt.Sprintf("has unexpected value for httpMethod: %s", compiler.Display(v3))
errors = append(errors, compiler.NewError(context, message))
}
}
// string description = 4;
v4 := compiler.MapValueForKey(m, "description")
if v4 != nil {
x.Description, ok = compiler.StringForScalarNode(v4)
if !ok {
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v4))
errors = append(errors, compiler.NewError(context, message))
}
}
// Parameters parameters = 5;
v5 := compiler.MapValueForKey(m, "parameters")
if v5 != nil {
var err error
x.Parameters, err = NewParameters(v5, compiler.NewContext("parameters", v5, context))
if err != nil {
errors = append(errors, err)
}
}
// repeated string parameter_order = 6;
v6 := compiler.MapValueForKey(m, "parameterOrder")
if v6 != nil {
v, ok := compiler.SequenceNodeForNode(v6)
if ok {
x.ParameterOrder = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for parameterOrder: %s", compiler.Display(v6))
errors = append(errors, compiler.NewError(context, message))
}
}
// Request request = 7;
v7 := compiler.MapValueForKey(m, "request")
if v7 != nil {
var err error
x.Request, err = NewRequest(v7, compiler.NewContext("request", v7, context))
if err != nil {
errors = append(errors, err)
}
}
// Response response = 8;
v8 := compiler.MapValueForKey(m, "response")
if v8 != nil {
var err error
x.Response, err = NewResponse(v8, compiler.NewContext("response", v8, context))
if err != nil {
errors = append(errors, err)
}
}
// repeated string scopes = 9;
v9 := compiler.MapValueForKey(m, "scopes")
if v9 != nil {
v, ok := compiler.SequenceNodeForNode(v9)
if ok {
x.Scopes = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for scopes: %s", compiler.Display(v9))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool supports_media_download = 10;
v10 := compiler.MapValueForKey(m, "supportsMediaDownload")
if v10 != nil {
x.SupportsMediaDownload, ok = compiler.BoolForScalarNode(v10)
if !ok {
message := fmt.Sprintf("has unexpected value for supportsMediaDownload: %s", compiler.Display(v10))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool supports_media_upload = 11;
v11 := compiler.MapValueForKey(m, "supportsMediaUpload")
if v11 != nil {
x.SupportsMediaUpload, ok = compiler.BoolForScalarNode(v11)
if !ok {
message := fmt.Sprintf("has unexpected value for supportsMediaUpload: %s", compiler.Display(v11))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool use_media_download_service = 12;
v12 := compiler.MapValueForKey(m, "useMediaDownloadService")
if v12 != nil {
x.UseMediaDownloadService, ok = compiler.BoolForScalarNode(v12)
if !ok {
message := fmt.Sprintf("has unexpected value for useMediaDownloadService: %s", compiler.Display(v12))
errors = append(errors, compiler.NewError(context, message))
}
}
// MediaUpload media_upload = 13;
v13 := compiler.MapValueForKey(m, "mediaUpload")
if v13 != nil {
var err error
x.MediaUpload, err = NewMediaUpload(v13, compiler.NewContext("mediaUpload", v13, context))
if err != nil {
errors = append(errors, err)
}
}
// bool supports_subscription = 14;
v14 := compiler.MapValueForKey(m, "supportsSubscription")
if v14 != nil {
x.SupportsSubscription, ok = compiler.BoolForScalarNode(v14)
if !ok {
message := fmt.Sprintf("has unexpected value for supportsSubscription: %s", compiler.Display(v14))
errors = append(errors, compiler.NewError(context, message))
}
}
// string flat_path = 15;
v15 := compiler.MapValueForKey(m, "flatPath")
if v15 != nil {
x.FlatPath, ok = compiler.StringForScalarNode(v15)
if !ok {
message := fmt.Sprintf("has unexpected value for flatPath: %s", compiler.Display(v15))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool etag_required = 16;
v16 := compiler.MapValueForKey(m, "etagRequired")
if v16 != nil {
x.EtagRequired, ok = compiler.BoolForScalarNode(v16)
if !ok {
message := fmt.Sprintf("has unexpected value for etagRequired: %s", compiler.Display(v16))
errors = append(errors, compiler.NewError(context, message))
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewMethods creates an object of type Methods if possible, returning an error if not.
func NewMethods(in *yaml.Node, context *compiler.Context) (*Methods, error) {
errors := make([]error, 0)
x := &Methods{}
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 NamedMethod additional_properties = 1;
// MAP: Method
x.AdditionalProperties = make([]*NamedMethod, 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 := &NamedMethod{}
pair.Name = k
var err error
pair.Value, err = NewMethod(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
x.AdditionalProperties = append(x.AdditionalProperties, pair)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewNamedMethod creates an object of type NamedMethod if possible, returning an error if not.
func NewNamedMethod(in *yaml.Node, context *compiler.Context) (*NamedMethod, error) {
errors := make([]error, 0)
x := &NamedMethod{}
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))
}
}
// Method value = 2;
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
x.Value, err = NewMethod(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewNamedParameter creates an object of type NamedParameter if possible, returning an error if not.
func NewNamedParameter(in *yaml.Node, context *compiler.Context) (*NamedParameter, error) {
errors := make([]error, 0)
x := &NamedParameter{}
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))
}
}
// Parameter value = 2;
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
x.Value, err = NewParameter(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewNamedResource creates an object of type NamedResource if possible, returning an error if not.
func NewNamedResource(in *yaml.Node, context *compiler.Context) (*NamedResource, error) {
errors := make([]error, 0)
x := &NamedResource{}
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))
}
}
// Resource value = 2;
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
x.Value, err = NewResource(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewNamedSchema creates an object of type NamedSchema if possible, returning an error if not.
func NewNamedSchema(in *yaml.Node, context *compiler.Context) (*NamedSchema, error) {
errors := make([]error, 0)
x := &NamedSchema{}
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))
}
}
// Schema value = 2;
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
x.Value, err = NewSchema(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewNamedScope creates an object of type NamedScope if possible, returning an error if not.
func NewNamedScope(in *yaml.Node, context *compiler.Context) (*NamedScope, error) {
errors := make([]error, 0)
x := &NamedScope{}
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))
}
}
// Scope value = 2;
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
x.Value, err = NewScope(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewOauth2 creates an object of type Oauth2 if possible, returning an error if not.
func NewOauth2(in *yaml.Node, context *compiler.Context) (*Oauth2, error) {
errors := make([]error, 0)
x := &Oauth2{}
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{"scopes"}
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))
}
// Scopes scopes = 1;
v1 := compiler.MapValueForKey(m, "scopes")
if v1 != nil {
var err error
x.Scopes, err = NewScopes(v1, compiler.NewContext("scopes", v1, context))
if err != nil {
errors = append(errors, err)
}
}
}
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 {
allowedKeys := []string{"$ref", "additionalProperties", "annotations", "default", "description", "enum", "enumDescriptions", "format", "id", "items", "location", "maximum", "minimum", "pattern", "properties", "repeated", "required", "type"}
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 id = 1;
v1 := compiler.MapValueForKey(m, "id")
if v1 != nil {
x.Id, ok = compiler.StringForScalarNode(v1)
if !ok {
message := fmt.Sprintf("has unexpected value for id: %s", compiler.Display(v1))
errors = append(errors, compiler.NewError(context, message))
}
}
// string type = 2;
v2 := compiler.MapValueForKey(m, "type")
if v2 != nil {
x.Type, ok = compiler.StringForScalarNode(v2)
if !ok {
message := fmt.Sprintf("has unexpected value for type: %s", compiler.Display(v2))
errors = append(errors, compiler.NewError(context, message))
}
}
// string _ref = 3;
v3 := compiler.MapValueForKey(m, "$ref")
if v3 != nil {
x.XRef, ok = compiler.StringForScalarNode(v3)
if !ok {
message := fmt.Sprintf("has unexpected value for $ref: %s", compiler.Display(v3))
errors = append(errors, compiler.NewError(context, message))
}
}
// string description = 4;
v4 := compiler.MapValueForKey(m, "description")
if v4 != nil {
x.Description, ok = compiler.StringForScalarNode(v4)
if !ok {
message := fmt.Sprintf("has unexpected value for description: %s", compiler.Display(v4))
errors = append(errors, compiler.NewError(context, message))
}
}
// string default = 5;
v5 := compiler.MapValueForKey(m, "default")
if v5 != nil {
x.Default, ok = compiler.StringForScalarNode(v5)
if !ok {
message := fmt.Sprintf("has unexpected value for default: %s", compiler.Display(v5))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool required = 6;
v6 := compiler.MapValueForKey(m, "required")
if v6 != nil {
x.Required, ok = compiler.BoolForScalarNode(v6)
if !ok {
message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v6))
errors = append(errors, compiler.NewError(context, message))
}
}
// string format = 7;
v7 := compiler.MapValueForKey(m, "format")
if v7 != nil {
x.Format, ok = compiler.StringForScalarNode(v7)
if !ok {
message := fmt.Sprintf("has unexpected value for format: %s", compiler.Display(v7))
errors = append(errors, compiler.NewError(context, message))
}
}
// string pattern = 8;
v8 := compiler.MapValueForKey(m, "pattern")
if v8 != nil {
x.Pattern, ok = compiler.StringForScalarNode(v8)
if !ok {
message := fmt.Sprintf("has unexpected value for pattern: %s", compiler.Display(v8))
errors = append(errors, compiler.NewError(context, message))
}
}
// string minimum = 9;
v9 := compiler.MapValueForKey(m, "minimum")
if v9 != nil {
x.Minimum, ok = compiler.StringForScalarNode(v9)
if !ok {
message := fmt.Sprintf("has unexpected value for minimum: %s", compiler.Display(v9))
errors = append(errors, compiler.NewError(context, message))
}
}
// string maximum = 10;
v10 := compiler.MapValueForKey(m, "maximum")
if v10 != nil {
x.Maximum, ok = compiler.StringForScalarNode(v10)
if !ok {
message := fmt.Sprintf("has unexpected value for maximum: %s", compiler.Display(v10))
errors = append(errors, compiler.NewError(context, message))
}
}
// repeated string enum = 11;
v11 := compiler.MapValueForKey(m, "enum")
if v11 != nil {
v, ok := compiler.SequenceNodeForNode(v11)
if ok {
x.Enum = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for enum: %s", compiler.Display(v11))
errors = append(errors, compiler.NewError(context, message))
}
}
// repeated string enum_descriptions = 12;
v12 := compiler.MapValueForKey(m, "enumDescriptions")
if v12 != nil {
v, ok := compiler.SequenceNodeForNode(v12)
if ok {
x.EnumDescriptions = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for enumDescriptions: %s", compiler.Display(v12))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool repeated = 13;
v13 := compiler.MapValueForKey(m, "repeated")
if v13 != nil {
x.Repeated, ok = compiler.BoolForScalarNode(v13)
if !ok {
message := fmt.Sprintf("has unexpected value for repeated: %s", compiler.Display(v13))
errors = append(errors, compiler.NewError(context, message))
}
}
// string location = 14;
v14 := compiler.MapValueForKey(m, "location")
if v14 != nil {
x.Location, ok = compiler.StringForScalarNode(v14)
if !ok {
message := fmt.Sprintf("has unexpected value for location: %s", compiler.Display(v14))
errors = append(errors, compiler.NewError(context, message))
}
}
// Schemas properties = 15;
v15 := compiler.MapValueForKey(m, "properties")
if v15 != nil {
var err error
x.Properties, err = NewSchemas(v15, compiler.NewContext("properties", v15, context))
if err != nil {
errors = append(errors, err)
}
}
// Schema additional_properties = 16;
v16 := compiler.MapValueForKey(m, "additionalProperties")
if v16 != nil {
var err error
x.AdditionalProperties, err = NewSchema(v16, compiler.NewContext("additionalProperties", v16, context))
if err != nil {
errors = append(errors, err)
}
}
// Schema items = 17;
v17 := compiler.MapValueForKey(m, "items")
if v17 != nil {
var err error
x.Items, err = NewSchema(v17, compiler.NewContext("items", v17, context))
if err != nil {
errors = append(errors, err)
}
}
// Annotations annotations = 18;
v18 := compiler.MapValueForKey(m, "annotations")
if v18 != nil {
var err error
x.Annotations, err = NewAnnotations(v18, compiler.NewContext("annotations", v18, context))
if err != nil {
errors = append(errors, err)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewParameters creates an object of type Parameters if possible, returning an error if not.
func NewParameters(in *yaml.Node, context *compiler.Context) (*Parameters, error) {
errors := make([]error, 0)
x := &Parameters{}
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 NamedParameter additional_properties = 1;
// MAP: Parameter
x.AdditionalProperties = make([]*NamedParameter, 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 := &NamedParameter{}
pair.Name = k
var err error
pair.Value, err = NewParameter(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
x.AdditionalProperties = append(x.AdditionalProperties, pair)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewProtocols creates an object of type Protocols if possible, returning an error if not.
func NewProtocols(in *yaml.Node, context *compiler.Context) (*Protocols, error) {
errors := make([]error, 0)
x := &Protocols{}
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{"resumable", "simple"}
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))
}
// Simple simple = 1;
v1 := compiler.MapValueForKey(m, "simple")
if v1 != nil {
var err error
x.Simple, err = NewSimple(v1, compiler.NewContext("simple", v1, context))
if err != nil {
errors = append(errors, err)
}
}
// Resumable resumable = 2;
v2 := compiler.MapValueForKey(m, "resumable")
if v2 != nil {
var err error
x.Resumable, err = NewResumable(v2, compiler.NewContext("resumable", v2, context))
if err != nil {
errors = append(errors, err)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewRequest creates an object of type Request if possible, returning an error if not.
func NewRequest(in *yaml.Node, context *compiler.Context) (*Request, error) {
errors := make([]error, 0)
x := &Request{}
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", "parameterName"}
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 _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 parameter_name = 2;
v2 := compiler.MapValueForKey(m, "parameterName")
if v2 != nil {
x.ParameterName, ok = compiler.StringForScalarNode(v2)
if !ok {
message := fmt.Sprintf("has unexpected value for parameterName: %s", compiler.Display(v2))
errors = append(errors, compiler.NewError(context, message))
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewResource creates an object of type Resource if possible, returning an error if not.
func NewResource(in *yaml.Node, context *compiler.Context) (*Resource, error) {
errors := make([]error, 0)
x := &Resource{}
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{"methods", "resources"}
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))
}
// Methods methods = 1;
v1 := compiler.MapValueForKey(m, "methods")
if v1 != nil {
var err error
x.Methods, err = NewMethods(v1, compiler.NewContext("methods", v1, context))
if err != nil {
errors = append(errors, err)
}
}
// Resources resources = 2;
v2 := compiler.MapValueForKey(m, "resources")
if v2 != nil {
var err error
x.Resources, err = NewResources(v2, compiler.NewContext("resources", v2, context))
if err != nil {
errors = append(errors, err)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewResources creates an object of type Resources if possible, returning an error if not.
func NewResources(in *yaml.Node, context *compiler.Context) (*Resources, error) {
errors := make([]error, 0)
x := &Resources{}
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 NamedResource additional_properties = 1;
// MAP: Resource
x.AdditionalProperties = make([]*NamedResource, 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 := &NamedResource{}
pair.Name = k
var err error
pair.Value, err = NewResource(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
x.AdditionalProperties = append(x.AdditionalProperties, pair)
}
}
}
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 {
allowedKeys := []string{"$ref"}
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 _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))
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewResumable creates an object of type Resumable if possible, returning an error if not.
func NewResumable(in *yaml.Node, context *compiler.Context) (*Resumable, error) {
errors := make([]error, 0)
x := &Resumable{}
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{"multipart", "path"}
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))
}
// bool multipart = 1;
v1 := compiler.MapValueForKey(m, "multipart")
if v1 != nil {
x.Multipart, ok = compiler.BoolForScalarNode(v1)
if !ok {
message := fmt.Sprintf("has unexpected value for multipart: %s", compiler.Display(v1))
errors = append(errors, compiler.NewError(context, message))
}
}
// string path = 2;
v2 := compiler.MapValueForKey(m, "path")
if v2 != nil {
x.Path, ok = compiler.StringForScalarNode(v2)
if !ok {
message := fmt.Sprintf("has unexpected value for path: %s", compiler.Display(v2))
errors = append(errors, compiler.NewError(context, message))
}
}
}
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{"$ref", "additionalProperties", "annotations", "default", "description", "enum", "enumDescriptions", "format", "id", "items", "location", "maximum", "minimum", "pattern", "properties", "readOnly", "repeated", "required", "type"}
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 id = 1;
v1 := compiler.MapValueForKey(m, "id")
if v1 != nil {
x.Id, ok = compiler.StringForScalarNode(v1)
if !ok {
message := fmt.Sprintf("has unexpected value for id: %s", compiler.Display(v1))
errors = append(errors, compiler.NewError(context, message))
}
}
// string type = 2;
v2 := compiler.MapValueForKey(m, "type")
if v2 != nil {
x.Type, ok = compiler.StringForScalarNode(v2)
if !ok {
message := fmt.Sprintf("has unexpected value for type: %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))
}
}
// string default = 4;
v4 := compiler.MapValueForKey(m, "default")
if v4 != nil {
x.Default, ok = compiler.StringForScalarNode(v4)
if !ok {
message := fmt.Sprintf("has unexpected value for default: %s", compiler.Display(v4))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool required = 5;
v5 := compiler.MapValueForKey(m, "required")
if v5 != nil {
x.Required, ok = compiler.BoolForScalarNode(v5)
if !ok {
message := fmt.Sprintf("has unexpected value for required: %s", compiler.Display(v5))
errors = append(errors, compiler.NewError(context, message))
}
}
// string format = 6;
v6 := compiler.MapValueForKey(m, "format")
if v6 != nil {
x.Format, ok = compiler.StringForScalarNode(v6)
if !ok {
message := fmt.Sprintf("has unexpected value for format: %s", compiler.Display(v6))
errors = append(errors, compiler.NewError(context, message))
}
}
// string pattern = 7;
v7 := compiler.MapValueForKey(m, "pattern")
if v7 != nil {
x.Pattern, ok = compiler.StringForScalarNode(v7)
if !ok {
message := fmt.Sprintf("has unexpected value for pattern: %s", compiler.Display(v7))
errors = append(errors, compiler.NewError(context, message))
}
}
// string minimum = 8;
v8 := compiler.MapValueForKey(m, "minimum")
if v8 != nil {
x.Minimum, ok = compiler.StringForScalarNode(v8)
if !ok {
message := fmt.Sprintf("has unexpected value for minimum: %s", compiler.Display(v8))
errors = append(errors, compiler.NewError(context, message))
}
}
// string maximum = 9;
v9 := compiler.MapValueForKey(m, "maximum")
if v9 != nil {
x.Maximum, ok = compiler.StringForScalarNode(v9)
if !ok {
message := fmt.Sprintf("has unexpected value for maximum: %s", compiler.Display(v9))
errors = append(errors, compiler.NewError(context, message))
}
}
// repeated string enum = 10;
v10 := compiler.MapValueForKey(m, "enum")
if v10 != nil {
v, ok := compiler.SequenceNodeForNode(v10)
if ok {
x.Enum = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for enum: %s", compiler.Display(v10))
errors = append(errors, compiler.NewError(context, message))
}
}
// repeated string enum_descriptions = 11;
v11 := compiler.MapValueForKey(m, "enumDescriptions")
if v11 != nil {
v, ok := compiler.SequenceNodeForNode(v11)
if ok {
x.EnumDescriptions = compiler.StringArrayForSequenceNode(v)
} else {
message := fmt.Sprintf("has unexpected value for enumDescriptions: %s", compiler.Display(v11))
errors = append(errors, compiler.NewError(context, message))
}
}
// bool repeated = 12;
v12 := compiler.MapValueForKey(m, "repeated")
if v12 != nil {
x.Repeated, ok = compiler.BoolForScalarNode(v12)
if !ok {
message := fmt.Sprintf("has unexpected value for repeated: %s", compiler.Display(v12))
errors = append(errors, compiler.NewError(context, message))
}
}
// string location = 13;
v13 := compiler.MapValueForKey(m, "location")
if v13 != nil {
x.Location, ok = compiler.StringForScalarNode(v13)
if !ok {
message := fmt.Sprintf("has unexpected value for location: %s", compiler.Display(v13))
errors = append(errors, compiler.NewError(context, message))
}
}
// Schemas properties = 14;
v14 := compiler.MapValueForKey(m, "properties")
if v14 != nil {
var err error
x.Properties, err = NewSchemas(v14, compiler.NewContext("properties", v14, context))
if err != nil {
errors = append(errors, err)
}
}
// Schema additional_properties = 15;
v15 := compiler.MapValueForKey(m, "additionalProperties")
if v15 != nil {
var err error
x.AdditionalProperties, err = NewSchema(v15, compiler.NewContext("additionalProperties", v15, context))
if err != nil {
errors = append(errors, err)
}
}
// Schema items = 16;
v16 := compiler.MapValueForKey(m, "items")
if v16 != nil {
var err error
x.Items, err = NewSchema(v16, compiler.NewContext("items", v16, context))
if err != nil {
errors = append(errors, err)
}
}
// string _ref = 17;
v17 := compiler.MapValueForKey(m, "$ref")
if v17 != nil {
x.XRef, ok = compiler.StringForScalarNode(v17)
if !ok {
message := fmt.Sprintf("has unexpected value for $ref: %s", compiler.Display(v17))
errors = append(errors, compiler.NewError(context, message))
}
}
// Annotations annotations = 18;
v18 := compiler.MapValueForKey(m, "annotations")
if v18 != nil {
var err error
x.Annotations, err = NewAnnotations(v18, compiler.NewContext("annotations", v18, context))
if err != nil {
errors = append(errors, err)
}
}
// bool read_only = 19;
v19 := compiler.MapValueForKey(m, "readOnly")
if v19 != nil {
x.ReadOnly, ok = compiler.BoolForScalarNode(v19)
if !ok {
message := fmt.Sprintf("has unexpected value for readOnly: %s", compiler.Display(v19))
errors = append(errors, compiler.NewError(context, message))
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewSchemas creates an object of type Schemas if possible, returning an error if not.
func NewSchemas(in *yaml.Node, context *compiler.Context) (*Schemas, error) {
errors := make([]error, 0)
x := &Schemas{}
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 NamedSchema additional_properties = 1;
// MAP: Schema
x.AdditionalProperties = make([]*NamedSchema, 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 := &NamedSchema{}
pair.Name = k
var err error
pair.Value, err = NewSchema(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
x.AdditionalProperties = append(x.AdditionalProperties, pair)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewScope creates an object of type Scope if possible, returning an error if not.
func NewScope(in *yaml.Node, context *compiler.Context) (*Scope, error) {
errors := make([]error, 0)
x := &Scope{}
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"}
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 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))
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewScopes creates an object of type Scopes if possible, returning an error if not.
func NewScopes(in *yaml.Node, context *compiler.Context) (*Scopes, error) {
errors := make([]error, 0)
x := &Scopes{}
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 NamedScope additional_properties = 1;
// MAP: Scope
x.AdditionalProperties = make([]*NamedScope, 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 := &NamedScope{}
pair.Name = k
var err error
pair.Value, err = NewScope(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
x.AdditionalProperties = append(x.AdditionalProperties, pair)
}
}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
// NewSimple creates an object of type Simple if possible, returning an error if not.
func NewSimple(in *yaml.Node, context *compiler.Context) (*Simple, error) {
errors := make([]error, 0)
x := &Simple{}
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{"multipart", "path"}
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))
}
// bool multipart = 1;
v1 := compiler.MapValueForKey(m, "multipart")
if v1 != nil {
x.Multipart, ok = compiler.BoolForScalarNode(v1)
if !ok {
message := fmt.Sprintf("has unexpected value for multipart: %s", compiler.Display(v1))
errors = append(errors, compiler.NewError(context, message))
}
}
// string path = 2;
v2 := compiler.MapValueForKey(m, "path")
if v2 != nil {
x.Path, ok = compiler.StringForScalarNode(v2)
if !ok {
message := fmt.Sprintf("has unexpected value for path: %s", compiler.Display(v2))
errors = append(errors, compiler.NewError(context, message))
}
}
}
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)
}
// ResolveReferences resolves references found inside Annotations objects.
func (m *Annotations) ResolveReferences(root string) (*yaml.Node, error) {
errors := make([]error, 0)
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 Auth objects.
func (m *Auth) ResolveReferences(root string) (*yaml.Node, error) {
errors := make([]error, 0)
if m.Oauth2 != nil {
_, err := m.Oauth2.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.Icons != nil {
_, err := m.Icons.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.Auth != nil {
_, err := m.Auth.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
if m.Schemas != nil {
_, err := m.Schemas.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
if m.Methods != nil {
_, err := m.Methods.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
if m.Resources != nil {
_, err := m.Resources.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Icons objects.
func (m *Icons) ResolveReferences(root string) (*yaml.Node, error) {
errors := make([]error, 0)
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside MediaUpload objects.
func (m *MediaUpload) ResolveReferences(root string) (*yaml.Node, error) {
errors := make([]error, 0)
if m.Protocols != nil {
_, err := m.Protocols.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Method objects.
func (m *Method) 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.Request != nil {
_, err := m.Request.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
if m.Response != nil {
_, err := m.Response.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
if m.MediaUpload != nil {
_, err := m.MediaUpload.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Methods objects.
func (m *Methods) 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 NamedMethod objects.
func (m *NamedMethod) 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 NamedParameter objects.
func (m *NamedParameter) 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 NamedResource objects.
func (m *NamedResource) 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 NamedSchema objects.
func (m *NamedSchema) 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 NamedScope objects.
func (m *NamedScope) 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 Oauth2 objects.
func (m *Oauth2) 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)
}
}
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.XRef != "" {
info, err := compiler.ReadInfoForRef(root, m.XRef)
if err != nil {
return nil, err
}
if info != nil {
replacement, err := NewParameter(info, nil)
if err == nil {
*m = *replacement
return m.ResolveReferences(root)
}
}
return info, nil
}
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.Items != nil {
_, err := m.Items.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
if m.Annotations != nil {
_, err := m.Annotations.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Parameters objects.
func (m *Parameters) 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 Protocols objects.
func (m *Protocols) ResolveReferences(root string) (*yaml.Node, error) {
errors := make([]error, 0)
if m.Simple != nil {
_, err := m.Simple.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
if m.Resumable != nil {
_, err := m.Resumable.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Request objects.
func (m *Request) 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 := NewRequest(info, nil)
if err == nil {
*m = *replacement
return m.ResolveReferences(root)
}
}
return info, nil
}
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Resource objects.
func (m *Resource) ResolveReferences(root string) (*yaml.Node, error) {
errors := make([]error, 0)
if m.Methods != nil {
_, err := m.Methods.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
if m.Resources != nil {
_, err := m.Resources.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Resources objects.
func (m *Resources) 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 Response objects.
func (m *Response) 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
}
return info, nil
}
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Resumable objects.
func (m *Resumable) ResolveReferences(root string) (*yaml.Node, error) {
errors := make([]error, 0)
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.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.Items != nil {
_, err := m.Items.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
if m.XRef != "" {
info, err := compiler.ReadInfoForRef(root, m.XRef)
if err != nil {
return nil, err
}
if info != nil {
replacement, err := NewSchema(info, nil)
if err == nil {
*m = *replacement
return m.ResolveReferences(root)
}
}
return info, nil
}
if m.Annotations != nil {
_, err := m.Annotations.ResolveReferences(root)
if err != nil {
errors = append(errors, err)
}
}
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Schemas objects.
func (m *Schemas) 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 Scope objects.
func (m *Scope) ResolveReferences(root string) (*yaml.Node, error) {
errors := make([]error, 0)
return nil, compiler.NewErrorGroupOrNil(errors)
}
// ResolveReferences resolves references found inside Scopes objects.
func (m *Scopes) 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 Simple objects.
func (m *Simple) 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)
}
// ToRawInfo returns a description of Annotations suitable for JSON or YAML export.
func (m *Annotations) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
if len(m.Required) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Required))
}
return info
}
// 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 Auth suitable for JSON or YAML export.
func (m *Auth) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
if m.Oauth2 != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("oauth2"))
info.Content = append(info.Content, m.Oauth2.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("kind"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Kind))
// always include this required field.
info.Content = append(info.Content, compiler.NewScalarNodeForString("discoveryVersion"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.DiscoveryVersion))
if m.Id != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("id"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Id))
}
if m.Name != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
}
if m.Version != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("version"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Version))
}
if m.Revision != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("revision"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Revision))
}
if m.Title != "" {
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.Icons != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("icons"))
info.Content = append(info.Content, m.Icons.ToRawInfo())
}
if m.DocumentationLink != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("documentationLink"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.DocumentationLink))
}
if len(m.Labels) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("labels"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Labels))
}
if m.Protocol != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("protocol"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Protocol))
}
if m.BaseUrl != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("baseUrl"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.BaseUrl))
}
if m.BasePath != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("basePath"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.BasePath))
}
if m.RootUrl != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("rootUrl"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.RootUrl))
}
if m.ServicePath != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("servicePath"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.ServicePath))
}
if m.BatchPath != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("batchPath"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.BatchPath))
}
if m.Parameters != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
info.Content = append(info.Content, m.Parameters.ToRawInfo())
}
if m.Auth != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("auth"))
info.Content = append(info.Content, m.Auth.ToRawInfo())
}
if len(m.Features) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("features"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Features))
}
if m.Schemas != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("schemas"))
info.Content = append(info.Content, m.Schemas.ToRawInfo())
}
if m.Methods != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("methods"))
info.Content = append(info.Content, m.Methods.ToRawInfo())
}
if m.Resources != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("resources"))
info.Content = append(info.Content, m.Resources.ToRawInfo())
}
if m.Etag != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("etag"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Etag))
}
if m.OwnerDomain != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("ownerDomain"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OwnerDomain))
}
if m.OwnerName != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("ownerName"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.OwnerName))
}
if m.VersionModule != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("version_module"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.VersionModule))
}
if m.CanonicalName != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("canonicalName"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.CanonicalName))
}
if m.FullyEncodeReservedExpansion != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("fullyEncodeReservedExpansion"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.FullyEncodeReservedExpansion))
}
if m.PackagePath != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("packagePath"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.PackagePath))
}
if m.MtlsRootUrl != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("mtlsRootUrl"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.MtlsRootUrl))
}
return info
}
// ToRawInfo returns a description of Icons suitable for JSON or YAML export.
func (m *Icons) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
// always include this required field.
info.Content = append(info.Content, compiler.NewScalarNodeForString("x16"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.X16))
// always include this required field.
info.Content = append(info.Content, compiler.NewScalarNodeForString("x32"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.X32))
return info
}
// ToRawInfo returns a description of MediaUpload suitable for JSON or YAML export.
func (m *MediaUpload) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
if len(m.Accept) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("accept"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Accept))
}
if m.MaxSize != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("maxSize"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.MaxSize))
}
if m.Protocols != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("protocols"))
info.Content = append(info.Content, m.Protocols.ToRawInfo())
}
if m.SupportsSubscription != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("supportsSubscription"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.SupportsSubscription))
}
return info
}
// ToRawInfo returns a description of Method suitable for JSON or YAML export.
func (m *Method) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
if m.Id != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("id"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Id))
}
if m.Path != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("path"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Path))
}
if m.HttpMethod != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("httpMethod"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.HttpMethod))
}
if m.Description != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
}
if m.Parameters != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("parameters"))
info.Content = append(info.Content, m.Parameters.ToRawInfo())
}
if len(m.ParameterOrder) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("parameterOrder"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.ParameterOrder))
}
if m.Request != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("request"))
info.Content = append(info.Content, m.Request.ToRawInfo())
}
if m.Response != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("response"))
info.Content = append(info.Content, m.Response.ToRawInfo())
}
if len(m.Scopes) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("scopes"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Scopes))
}
if m.SupportsMediaDownload != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("supportsMediaDownload"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.SupportsMediaDownload))
}
if m.SupportsMediaUpload != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("supportsMediaUpload"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.SupportsMediaUpload))
}
if m.UseMediaDownloadService != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("useMediaDownloadService"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UseMediaDownloadService))
}
if m.MediaUpload != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("mediaUpload"))
info.Content = append(info.Content, m.MediaUpload.ToRawInfo())
}
if m.SupportsSubscription != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("supportsSubscription"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.SupportsSubscription))
}
if m.FlatPath != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("flatPath"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.FlatPath))
}
if m.EtagRequired != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("etagRequired"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.EtagRequired))
}
return info
}
// ToRawInfo returns a description of Methods suitable for JSON or YAML export.
func (m *Methods) 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 NamedMethod suitable for JSON or YAML export.
func (m *NamedMethod) 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:Method StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
return info
}
// ToRawInfo returns a description of NamedParameter suitable for JSON or YAML export.
func (m *NamedParameter) 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:Parameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
return info
}
// ToRawInfo returns a description of NamedResource suitable for JSON or YAML export.
func (m *NamedResource) 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:Resource StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
return info
}
// ToRawInfo returns a description of NamedSchema suitable for JSON or YAML export.
func (m *NamedSchema) 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:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
return info
}
// ToRawInfo returns a description of NamedScope suitable for JSON or YAML export.
func (m *NamedScope) 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:Scope StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
return info
}
// ToRawInfo returns a description of Oauth2 suitable for JSON or YAML export.
func (m *Oauth2) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
if m.Scopes != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("scopes"))
info.Content = append(info.Content, m.Scopes.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
}
if m.Id != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("id"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Id))
}
if m.Type != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("type"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))
}
if m.XRef != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("$ref"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))
}
if m.Description != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("description"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))
}
if m.Default != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("default"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Default))
}
if m.Required != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))
}
if m.Format != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("format"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))
}
if m.Pattern != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("pattern"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))
}
if m.Minimum != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("minimum"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Minimum))
}
if m.Maximum != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("maximum"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Maximum))
}
if len(m.Enum) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("enum"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Enum))
}
if len(m.EnumDescriptions) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("enumDescriptions"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.EnumDescriptions))
}
if m.Repeated != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("repeated"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Repeated))
}
if m.Location != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("location"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Location))
}
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.Items != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("items"))
info.Content = append(info.Content, m.Items.ToRawInfo())
}
if m.Annotations != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("annotations"))
info.Content = append(info.Content, m.Annotations.ToRawInfo())
}
return info
}
// ToRawInfo returns a description of Parameters suitable for JSON or YAML export.
func (m *Parameters) 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 Protocols suitable for JSON or YAML export.
func (m *Protocols) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
if m.Simple != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("simple"))
info.Content = append(info.Content, m.Simple.ToRawInfo())
}
if m.Resumable != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("resumable"))
info.Content = append(info.Content, m.Resumable.ToRawInfo())
}
return info
}
// ToRawInfo returns a description of Request suitable for JSON or YAML export.
func (m *Request) 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.ParameterName != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("parameterName"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.ParameterName))
}
return info
}
// ToRawInfo returns a description of Resource suitable for JSON or YAML export.
func (m *Resource) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
if m.Methods != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("methods"))
info.Content = append(info.Content, m.Methods.ToRawInfo())
}
if m.Resources != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("resources"))
info.Content = append(info.Content, m.Resources.ToRawInfo())
}
return info
}
// ToRawInfo returns a description of Resources suitable for JSON or YAML export.
func (m *Resources) 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 Response suitable for JSON or YAML export.
func (m *Response) 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))
}
return info
}
// ToRawInfo returns a description of Resumable suitable for JSON or YAML export.
func (m *Resumable) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
if m.Multipart != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("multipart"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Multipart))
}
if m.Path != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("path"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Path))
}
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.Id != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("id"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Id))
}
if m.Type != "" {
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.Default != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("default"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Default))
}
if m.Required != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("required"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))
}
if m.Format != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("format"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))
}
if m.Pattern != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("pattern"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))
}
if m.Minimum != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("minimum"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Minimum))
}
if m.Maximum != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("maximum"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Maximum))
}
if len(m.Enum) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("enum"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Enum))
}
if len(m.EnumDescriptions) != 0 {
info.Content = append(info.Content, compiler.NewScalarNodeForString("enumDescriptions"))
info.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.EnumDescriptions))
}
if m.Repeated != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("repeated"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Repeated))
}
if m.Location != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("location"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Location))
}
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.Items != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("items"))
info.Content = append(info.Content, m.Items.ToRawInfo())
}
if m.XRef != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("$ref"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))
}
if m.Annotations != nil {
info.Content = append(info.Content, compiler.NewScalarNodeForString("annotations"))
info.Content = append(info.Content, m.Annotations.ToRawInfo())
}
if m.ReadOnly != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("readOnly"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ReadOnly))
}
return info
}
// ToRawInfo returns a description of Schemas suitable for JSON or YAML export.
func (m *Schemas) 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 Scope suitable for JSON or YAML export.
func (m *Scope) 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))
}
return info
}
// ToRawInfo returns a description of Scopes suitable for JSON or YAML export.
func (m *Scopes) 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 Simple suitable for JSON or YAML export.
func (m *Simple) ToRawInfo() *yaml.Node {
info := compiler.NewMappingNode()
if m == nil {
return info
}
if m.Multipart != false {
info.Content = append(info.Content, compiler.NewScalarNodeForString("multipart"))
info.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Multipart))
}
if m.Path != "" {
info.Content = append(info.Content, compiler.NewScalarNodeForString("path"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Path))
}
return info
}
// ToRawInfo returns a description of StringArray suitable for JSON or YAML export.
func (m *StringArray) ToRawInfo() *yaml.Node {
return compiler.NewSequenceNodeForStringArray(m.Value)
}