| /* |
| Copyright 2017 The Kubernetes Authors. |
| |
| 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. |
| */ |
| |
| package apiextensions |
| |
| // JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). |
| type JSONSchemaProps struct { |
| ID string |
| Schema JSONSchemaURL |
| Ref *string |
| Description string |
| Type string |
| Format string |
| Title string |
| Default *JSON |
| Maximum *float64 |
| ExclusiveMaximum bool |
| Minimum *float64 |
| ExclusiveMinimum bool |
| MaxLength *int64 |
| MinLength *int64 |
| Pattern string |
| MaxItems *int64 |
| MinItems *int64 |
| UniqueItems bool |
| MultipleOf *float64 |
| Enum []JSON |
| MaxProperties *int64 |
| MinProperties *int64 |
| Required []string |
| Items *JSONSchemaPropsOrArray |
| AllOf []JSONSchemaProps |
| OneOf []JSONSchemaProps |
| AnyOf []JSONSchemaProps |
| Not *JSONSchemaProps |
| Properties map[string]JSONSchemaProps |
| AdditionalProperties *JSONSchemaPropsOrBool |
| PatternProperties map[string]JSONSchemaProps |
| Dependencies JSONSchemaDependencies |
| AdditionalItems *JSONSchemaPropsOrBool |
| Definitions JSONSchemaDefinitions |
| ExternalDocs *ExternalDocumentation |
| Example *JSON |
| } |
| |
| // JSON represents any valid JSON value. |
| // These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. |
| type JSON interface{} |
| |
| // JSONSchemaURL represents a schema url. |
| type JSONSchemaURL string |
| |
| // JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps |
| // or an array of JSONSchemaProps. Mainly here for serialization purposes. |
| type JSONSchemaPropsOrArray struct { |
| Schema *JSONSchemaProps |
| JSONSchemas []JSONSchemaProps |
| } |
| |
| // JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. |
| // Defaults to true for the boolean property. |
| type JSONSchemaPropsOrBool struct { |
| Allows bool |
| Schema *JSONSchemaProps |
| } |
| |
| // JSONSchemaDependencies represent a dependencies property. |
| type JSONSchemaDependencies map[string]JSONSchemaPropsOrStringArray |
| |
| // JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. |
| type JSONSchemaPropsOrStringArray struct { |
| Schema *JSONSchemaProps |
| Property []string |
| } |
| |
| // JSONSchemaDefinitions contains the models explicitly defined in this spec. |
| type JSONSchemaDefinitions map[string]JSONSchemaProps |
| |
| // ExternalDocumentation allows referencing an external resource for extended documentation. |
| type ExternalDocumentation struct { |
| Description string |
| URL string |
| } |