swagger-core 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/swagger.rb +1 -0
- data/lib/swagger/boolean.rb +13 -0
- data/lib/swagger/builder.rb +1 -1
- data/lib/swagger/v2/api.rb +8 -7
- data/lib/swagger/v2/deterministic_json_schema.rb +130 -0
- data/lib/swagger/v2/example.rb +1 -1
- data/lib/swagger/v2/header.rb +22 -0
- data/lib/swagger/v2/operation.rb +21 -8
- data/lib/swagger/v2/parameter.rb +3 -16
- data/lib/swagger/v2/path.rb +8 -0
- data/lib/swagger/v2/response.rb +2 -1
- data/lib/swagger/v2/security_requirement.rb +12 -0
- data/lib/swagger/v2/security_scheme.rb +25 -0
- data/lib/swagger/version.rb +1 -1
- data/resources/schemas/swagger/v2.0/schema.json +1244 -293
- data/spec/fixtures/petstore-full.yaml +123 -12
- data/spec/fixtures/swagger.yaml +1 -1
- data/spec/swagger/api_spec.rb +1 -1
- data/spec/swagger/builder_spec.rb +2 -2
- data/spec/swagger/swagger_spec.rb +1 -1
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3af93efcb0f85951fb9df1b336a6cda8734ff54
|
4
|
+
data.tar.gz: 55e2097921aed8e3a23af1e5e6dc3d1c9b53399d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d86f0c184cf88efc692b1201a0a61acb25bd1cbf29054572fdd2729c0e0b115fade5f13d1087f2e532bd344fda28da818a2f6b3db12543ca5ce6d449448fad0e
|
7
|
+
data.tar.gz: 994786ab4d0b7bcd30024b0e29212c6e4bb47284e5b8e1ce4301edc567ea1209cfeefee9fad254159376b4e8e2bd9323f04833cba7bb3f34a805156f87959132
|
data/lib/swagger.rb
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
module Swagger
|
2
|
+
class Boolean
|
3
|
+
TRUE_REGEXP = /(y|Y|yes|Yes|YES|true|True|TRUE|on|On|ON)/
|
4
|
+
FALSE_REGEXP = /(n|N|no|No|NO|false|False|FALSE|off|Off|OFF)/
|
5
|
+
|
6
|
+
def self.coerce(obj)
|
7
|
+
val = obj.to_s.downcase
|
8
|
+
return true if val.match(TRUE_REGEXP)
|
9
|
+
return false if val.match(FALSE_REGEXP)
|
10
|
+
fail ArgumentError, "#{obj} cannot be coerced to a boolean"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/swagger/builder.rb
CHANGED
@@ -19,7 +19,7 @@ module Swagger
|
|
19
19
|
end
|
20
20
|
|
21
21
|
# @api private
|
22
|
-
def self.included(dash) # rubocop:disable Metrics/MethodLength
|
22
|
+
def self.included(dash) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
23
23
|
fail TypeError, 'Bash only works on Dash' unless dash <= Hashie::Dash
|
24
24
|
dash.extend ClassMethods
|
25
25
|
dash.instance_variable_get('@required_properties').clear
|
data/lib/swagger/v2/api.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
require 'swagger/swagger_object'
|
2
|
+
require 'swagger/v2/deterministic_json_schema'
|
2
3
|
require 'swagger/v2/info'
|
3
4
|
require 'swagger/v2/path'
|
4
5
|
require 'swagger/v2/tag'
|
6
|
+
require 'swagger/v2/security_scheme'
|
7
|
+
require 'swagger/v2/security_requirement'
|
5
8
|
require 'json-schema'
|
6
9
|
|
7
10
|
module Swagger
|
@@ -15,8 +18,7 @@ module Swagger
|
|
15
18
|
# @see https://github.com/wordnik/swagger-spec/blob/master/versions/2.0.md#swagger-object- Swagger Object
|
16
19
|
class API < Swagger::API
|
17
20
|
# @group Swagger Fields
|
18
|
-
|
19
|
-
required_field :swagger, Float
|
21
|
+
required_field :swagger, String
|
20
22
|
required_field :info, Info
|
21
23
|
field :host, Swagger::URITemplate
|
22
24
|
field :basePath, Swagger::URITemplate
|
@@ -27,11 +29,10 @@ module Swagger
|
|
27
29
|
field :definitions, Hash[String => Schema]
|
28
30
|
field :parameters, Hash[String => Parameter]
|
29
31
|
field :responses, Hash[String => Response]
|
30
|
-
|
31
|
-
field :security,
|
32
|
-
#
|
33
|
-
field :
|
34
|
-
# TODO: externalDocs - Documentable Module
|
32
|
+
field :securityDefinitions, Hash[String => SecurityScheme]
|
33
|
+
field :security, Array[SecurityRequirement]
|
34
|
+
field :tags, Array[Object] # FIXME: This is actually an array of Tag objects
|
35
|
+
field :externalDocs, Object # TODO: ExternalDocs class
|
35
36
|
# @endgroup
|
36
37
|
|
37
38
|
alias_method :base_path, :basePath
|
@@ -0,0 +1,130 @@
|
|
1
|
+
module Swagger
|
2
|
+
module V2
|
3
|
+
# A Swagger Schema Object, which is subset of JSON-Schema that's constrainted to be more deterministic.
|
4
|
+
# @see https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#schema-object- Schema Object
|
5
|
+
# @see http://json-schema.org/ JSON-Schema
|
6
|
+
module DeterministicJSONSchema
|
7
|
+
# FIXME: yard group doesn't seem to work below
|
8
|
+
|
9
|
+
# @!group Deterministic JSON Schema
|
10
|
+
# @!attribute [rw] $ref
|
11
|
+
# JSON-Schema field $ref.
|
12
|
+
# @return String
|
13
|
+
# @!attribute [rw] format
|
14
|
+
# JSON-Schema field format.
|
15
|
+
# @return String
|
16
|
+
# @!attribute [rw] title
|
17
|
+
# JSON-Schema field title.
|
18
|
+
# @return String
|
19
|
+
# @!attribute [rw] description
|
20
|
+
# JSON-Schema field description.
|
21
|
+
# @return String
|
22
|
+
# @!attribute [rw] default
|
23
|
+
# JSON-Schema field default.
|
24
|
+
# @return Object
|
25
|
+
# @!attribute [rw] multipleOf
|
26
|
+
# JSON-Schema field multipleOf.
|
27
|
+
# @return Object
|
28
|
+
# @!attribute [rw] maximum
|
29
|
+
# JSON-Schema field maximum.
|
30
|
+
# @return Numeric
|
31
|
+
# @!attribute [rw] exclusiveMaximum
|
32
|
+
# JSON-Schema field exclusiveMaximum.
|
33
|
+
# @return boolean
|
34
|
+
# @!attribute [rw] minimum
|
35
|
+
# JSON-Schema field minimum.
|
36
|
+
# @return Numeric
|
37
|
+
# @!attribute [rw] exclusiveMinimum
|
38
|
+
# JSON-Schema field exclusiveMinimum.
|
39
|
+
# @return boolean
|
40
|
+
# @!attribute [rw] minLength
|
41
|
+
# JSON-Schema field minLength.
|
42
|
+
# @return Integer
|
43
|
+
# @!attribute [rw] maxLength
|
44
|
+
# JSON-Schema field maxLength.
|
45
|
+
# @return Integer
|
46
|
+
# @!attribute [rw] pattern
|
47
|
+
# JSON-Schema field pattern.
|
48
|
+
# @return Regexp
|
49
|
+
# @!attribute [rw] minItems
|
50
|
+
# JSON-Schema field minItems.
|
51
|
+
# @return Integer
|
52
|
+
# @!attribute [rw] maxItems
|
53
|
+
# JSON-Schema field maxItems.
|
54
|
+
# @return Integer
|
55
|
+
# @!attribute [rw] uniqueItems
|
56
|
+
# JSON-Schema field uniqueItems.
|
57
|
+
# @return boolean
|
58
|
+
# @!attribute [rw] maxProperties
|
59
|
+
# JSON-Schema field maxProperties.
|
60
|
+
# @return Integer
|
61
|
+
# @!attribute [rw] minProperties
|
62
|
+
# JSON-Schema field minProperties.
|
63
|
+
# @return Integer
|
64
|
+
# @!attribute [rw] required
|
65
|
+
# JSON-Schema field required.
|
66
|
+
# @return boolean
|
67
|
+
# @!attribute [rw] enum
|
68
|
+
# JSON-Schema field enum.
|
69
|
+
# @return Array[Object]
|
70
|
+
# @!attribute [rw] type
|
71
|
+
# JSON-Schema field type.
|
72
|
+
# @return Object
|
73
|
+
# @!endgroup
|
74
|
+
|
75
|
+
# @!group Swagger specific extensions
|
76
|
+
# @!attribute [rw] discriminator
|
77
|
+
# Swagger Schema field discriminator.
|
78
|
+
# @return String
|
79
|
+
# @!attribute [rw] readOnly
|
80
|
+
# Swagger Schema field readOnly.
|
81
|
+
# @return boolean
|
82
|
+
# @!attribute [rw] xml
|
83
|
+
# Swagger Schema field xml.
|
84
|
+
# @return Object
|
85
|
+
# @!attribute [rw] externalDocs
|
86
|
+
# Swagger Schema field externalDocs.
|
87
|
+
# @return ExternalDocumentation
|
88
|
+
# @!attribute [rw] example
|
89
|
+
# Swagger Schema field example.
|
90
|
+
# @return Object
|
91
|
+
# @!endgroup
|
92
|
+
|
93
|
+
def self.included(base) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
94
|
+
# Subset of standard JSON schema
|
95
|
+
base.field :$ref, String
|
96
|
+
base.field :format, String
|
97
|
+
base.field :title, String
|
98
|
+
base.field :description, String
|
99
|
+
base.field :default, Object
|
100
|
+
base.field :multipleOf, Numeric
|
101
|
+
base.field :maximum, Numeric
|
102
|
+
base.field :exclusiveMaximum, Swagger::Boolean
|
103
|
+
base.send(:alias_method, :exclusiveMaximum?, :exclusiveMaximum)
|
104
|
+
base.field :minimum, Numeric
|
105
|
+
base.field :exclusiveMinimum, Swagger::Boolean
|
106
|
+
base.send(:alias_method, :exclusiveMinimum?, :exclusiveMinimum)
|
107
|
+
base.field :maxLength, Integer
|
108
|
+
base.field :minLength, Integer
|
109
|
+
base.field :pattern, String
|
110
|
+
base.field :maxItems, Integer
|
111
|
+
base.field :minItems, Integer
|
112
|
+
base.field :uniqueItems, Swagger::Boolean
|
113
|
+
base.send(:alias_method, :uniqueItems?, :uniqueItems)
|
114
|
+
base.field :maxProperties, Integer
|
115
|
+
base.field :minProperties, Integer
|
116
|
+
base.field :required, Swagger::Boolean
|
117
|
+
base.send(:alias_method, :required?, :required)
|
118
|
+
base.field :enum, Array[Object]
|
119
|
+
base.field :type, Object
|
120
|
+
|
121
|
+
# Swagger extensions to JSON schema :\
|
122
|
+
base.field :discriminator, String
|
123
|
+
base.field :readOnly, Swagger::Boolean
|
124
|
+
base.field :xml, Object # TODO: Swagger XML object / XML support
|
125
|
+
base.field :externalDocs, Object # TODO: ExternalDocumentation class
|
126
|
+
base.field :example, Object
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
data/lib/swagger/v2/example.rb
CHANGED
@@ -20,7 +20,7 @@ module Swagger
|
|
20
20
|
# @return [Object] an object according to the +media_type+
|
21
21
|
def parse(media_type = 'application/json')
|
22
22
|
return @raw unless @raw.is_a? String
|
23
|
-
parser = Swagger::
|
23
|
+
parser = Swagger::MimeType.parser_for(media_type)
|
24
24
|
parser.parse(@raw)
|
25
25
|
end
|
26
26
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'swagger/swagger_object'
|
2
|
+
|
3
|
+
module Swagger
|
4
|
+
module V2
|
5
|
+
# Class representing a Swagger "Header Object".
|
6
|
+
# @see https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#headerObject Header Object
|
7
|
+
class Header < SwaggerObject
|
8
|
+
# @!group Fixed Fields
|
9
|
+
field :description, String
|
10
|
+
field :required, Swagger::Boolean
|
11
|
+
alias_method :required?, :required
|
12
|
+
field :type, String
|
13
|
+
field :format, String
|
14
|
+
field :items, Hash # TODO: Items Object
|
15
|
+
field :collectionFormat, String
|
16
|
+
field :default, Object
|
17
|
+
# @!endgroup
|
18
|
+
|
19
|
+
include DeterministicJSONSchema
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/swagger/v2/operation.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'swagger/swagger_object'
|
2
2
|
require 'swagger/v2/parameter'
|
3
3
|
require 'swagger/v2/response'
|
4
|
+
require 'swagger/v2/security_requirement'
|
4
5
|
|
5
6
|
module Swagger
|
6
7
|
module V2
|
@@ -10,19 +11,18 @@ module Swagger
|
|
10
11
|
extend Forwardable
|
11
12
|
def_delegators :parent, :uri_template, :path, :host
|
12
13
|
|
13
|
-
# required_field :verb, Symbol
|
14
14
|
field :summary, String
|
15
15
|
field :description, String
|
16
16
|
field :operationId, String
|
17
17
|
alias_method :operation_id, :operationId
|
18
|
-
field :produces, Array[String]
|
19
|
-
field :consumes, Array[String]
|
20
|
-
field :tags, Array[String]
|
21
|
-
field :parameters, Array[Parameter]
|
18
|
+
field :produces, Array[String] # TODO: Need a lookup that merges w/ API-level field
|
19
|
+
field :consumes, Array[String] # TODO: Need a lookup that merges w/ API-level field
|
20
|
+
field :tags, Array[String] # TODO: This is an array of tag names, need to handle resolution name -> Tag object
|
21
|
+
field :parameters, Array[Parameter] # TODO: Can't decide if default: [] is useful or troublesome
|
22
22
|
field :responses, Hash[String => Response]
|
23
|
-
field :schemes, Array[String]
|
24
|
-
|
25
|
-
# TODO:
|
23
|
+
field :schemes, Array[String] # TODO: Need a lookup that merges w/ API-level field
|
24
|
+
field :security, Array[SecurityRequirement] # TODO: Need a lookup that merges w/ API-level field
|
25
|
+
field :externalDocs, Object # TODO: ExternalDocumentation class
|
26
26
|
|
27
27
|
def api_title
|
28
28
|
root.info.title
|
@@ -32,6 +32,7 @@ module Swagger
|
|
32
32
|
"#{api_title} - #{summary}"
|
33
33
|
end
|
34
34
|
|
35
|
+
# The HTTP verb for the operation.
|
35
36
|
def verb
|
36
37
|
parent.operations.key self
|
37
38
|
end
|
@@ -47,6 +48,18 @@ module Swagger
|
|
47
48
|
# In the examples, default is actually an error
|
48
49
|
responses['200'] || responses['201'] || responses['default'] || responses.values.first
|
49
50
|
end
|
51
|
+
|
52
|
+
# Iterates over each parameter defined directly on the operation, excluding parameters
|
53
|
+
# defined at the API level.
|
54
|
+
def each_parameter
|
55
|
+
return if parameters.nil?
|
56
|
+
parameters.each do | parameter |
|
57
|
+
yield parameter
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# Iterates over all parameters defined on this operation or at the API level
|
62
|
+
# TODO: Implement all_parameters
|
50
63
|
end
|
51
64
|
end
|
52
65
|
end
|
data/lib/swagger/v2/parameter.rb
CHANGED
@@ -10,7 +10,8 @@ module Swagger
|
|
10
10
|
# required_field :in, String
|
11
11
|
field :in, String
|
12
12
|
field :description, String
|
13
|
-
field :required,
|
13
|
+
field :required, Swagger::Boolean
|
14
|
+
alias_method :required?, :required
|
14
15
|
# @!endgroup
|
15
16
|
|
16
17
|
# @!group Body Fields
|
@@ -25,21 +26,7 @@ module Swagger
|
|
25
26
|
field :default, Object
|
26
27
|
# @!endgroup
|
27
28
|
|
28
|
-
|
29
|
-
field :default, Object
|
30
|
-
field :maximum, Numeric
|
31
|
-
field :exclusiveMaximum, String # FIXME: boolean
|
32
|
-
field :minimum, Numeric
|
33
|
-
field :exclusiveMinimum, String # FIXME: boolean
|
34
|
-
field :maxLength, Integer
|
35
|
-
field :minLength, Integer
|
36
|
-
field :pattern, String
|
37
|
-
field :maxItems, Integer
|
38
|
-
field :minItems, Integer
|
39
|
-
field :uniqueItems, String # FIXME: boolean
|
40
|
-
field :enum, Array[Object]
|
41
|
-
field :multipleOf, Numeric
|
42
|
-
# @!endgroup
|
29
|
+
include DeterministicJSONSchema
|
43
30
|
end
|
44
31
|
end
|
45
32
|
end
|
data/lib/swagger/v2/path.rb
CHANGED
@@ -34,6 +34,14 @@ module Swagger
|
|
34
34
|
def path
|
35
35
|
parent.paths.key self
|
36
36
|
end
|
37
|
+
|
38
|
+
# Iterates over each Path level parameter.
|
39
|
+
def each_parameter
|
40
|
+
return if parameters.nil?
|
41
|
+
parameters.each do | parameter |
|
42
|
+
yield parameter
|
43
|
+
end
|
44
|
+
end
|
37
45
|
end
|
38
46
|
end
|
39
47
|
end
|
data/lib/swagger/v2/response.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'swagger/swagger_object'
|
2
2
|
require 'swagger/v2/example'
|
3
|
+
require 'swagger/v2/header'
|
3
4
|
|
4
5
|
module Swagger
|
5
6
|
module V2
|
@@ -8,7 +9,7 @@ module Swagger
|
|
8
9
|
class Response < SwaggerObject
|
9
10
|
field :description, String
|
10
11
|
field :schema, Swagger::Schema
|
11
|
-
field :headers,
|
12
|
+
field :headers, Hash[String => Header] # TODO: Headers
|
12
13
|
field :examples, Hash[Swagger::MimeType => Example]
|
13
14
|
|
14
15
|
def status_code
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'swagger/swagger_object'
|
2
|
+
|
3
|
+
module Swagger
|
4
|
+
module V2
|
5
|
+
# Class representing a Swagger "Security Requirement Object".
|
6
|
+
# @see https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#securityRequirementObject
|
7
|
+
# Security Requirement Object
|
8
|
+
class SecurityRequirement < Hashie::Mash
|
9
|
+
# TODO: Need proper constraints, but coercion is tricky
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'swagger/swagger_object'
|
2
|
+
|
3
|
+
module Swagger
|
4
|
+
module V2
|
5
|
+
# Class representing a Swagger "Security Scheme Object".
|
6
|
+
# @see https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#securitySchemeObject
|
7
|
+
# Security Scheme Object
|
8
|
+
class SecurityScheme < SwaggerObject
|
9
|
+
# FIXME: Swagger documentation about what's required doesn't seem accurate - OSAuth2 centric?
|
10
|
+
|
11
|
+
# According to docs, all except description are required. Schema and samples don't match.
|
12
|
+
|
13
|
+
# @!group Fixed Fields
|
14
|
+
required_field :type, String
|
15
|
+
field :description, String
|
16
|
+
field :name, String
|
17
|
+
field :in, String
|
18
|
+
required_field :flow, String
|
19
|
+
required_field :authorizationUrl, String
|
20
|
+
field :tokenUrl, String
|
21
|
+
required_field :scopes, Hash
|
22
|
+
# @!endgroup
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/swagger/version.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
{
|
2
2
|
"title": "A JSON Schema for Swagger 2.0 API.",
|
3
|
+
"id": "http://swagger.io/v2/schema.json#",
|
3
4
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
4
|
-
|
5
5
|
"type": "object",
|
6
|
-
"required": [
|
6
|
+
"required": [
|
7
|
+
"swagger",
|
8
|
+
"info",
|
9
|
+
"paths"
|
10
|
+
],
|
7
11
|
"additionalProperties": false,
|
8
12
|
"patternProperties": {
|
9
13
|
"^x-": {
|
@@ -12,20 +16,19 @@
|
|
12
16
|
},
|
13
17
|
"properties": {
|
14
18
|
"swagger": {
|
15
|
-
"type": "
|
16
|
-
"enum": [
|
19
|
+
"type": "string",
|
20
|
+
"enum": [
|
21
|
+
"2.0"
|
22
|
+
],
|
17
23
|
"description": "The Swagger version of this document."
|
18
24
|
},
|
19
25
|
"info": {
|
20
26
|
"$ref": "#/definitions/info"
|
21
27
|
},
|
22
|
-
"externalDocs": {
|
23
|
-
"$ref": "#/definitions/externalDocs"
|
24
|
-
},
|
25
28
|
"host": {
|
26
29
|
"type": "string",
|
27
30
|
"format": "uri",
|
28
|
-
"pattern": "^(
|
31
|
+
"pattern": "^[^{}/ :\\\\]+(?::\\d+)?$",
|
29
32
|
"description": "The fully qualified URI to the host of the API."
|
30
33
|
},
|
31
34
|
"basePath": {
|
@@ -34,78 +37,53 @@
|
|
34
37
|
"description": "The base path to the API. Example: '/api'."
|
35
38
|
},
|
36
39
|
"schemes": {
|
37
|
-
"
|
38
|
-
"description": "The transfer protocol of the API.",
|
39
|
-
"items": {
|
40
|
-
"type": "string",
|
41
|
-
"enum": [ "http", "https", "ws", "wss" ]
|
42
|
-
}
|
40
|
+
"$ref": "#/definitions/schemesList"
|
43
41
|
},
|
44
42
|
"consumes": {
|
45
|
-
"type": "array",
|
46
43
|
"description": "A list of MIME types accepted by the API.",
|
47
|
-
"
|
48
|
-
"$ref": "#/definitions/mimeType"
|
49
|
-
}
|
44
|
+
"$ref": "#/definitions/mediaTypeList"
|
50
45
|
},
|
51
46
|
"produces": {
|
52
|
-
"type": "array",
|
53
47
|
"description": "A list of MIME types the API can produce.",
|
54
|
-
"
|
55
|
-
"$ref": "#/definitions/mimeType"
|
56
|
-
}
|
48
|
+
"$ref": "#/definitions/mediaTypeList"
|
57
49
|
},
|
58
50
|
"paths": {
|
59
|
-
"
|
60
|
-
"description": "Relative paths to the individual endpoints. They must be relative to the 'basePath'.",
|
61
|
-
"patternProperties": {
|
62
|
-
"^x-": {
|
63
|
-
"$ref": "#/definitions/vendorExtension"
|
64
|
-
},
|
65
|
-
"^\/$|^\/.*[^\/]$": {
|
66
|
-
"$ref": "#/definitions/pathItem"
|
67
|
-
}
|
68
|
-
},
|
69
|
-
"additionalProperties": false
|
51
|
+
"$ref": "#/definitions/paths"
|
70
52
|
},
|
71
53
|
"definitions": {
|
72
|
-
"
|
73
|
-
"description": "One or more JSON objects describing the schemas being consumed and produced by the API.",
|
74
|
-
"additionalProperties": { "$ref": "#/definitions/schema" }
|
54
|
+
"$ref": "#/definitions/definitions"
|
75
55
|
},
|
76
56
|
"parameters": {
|
77
|
-
"
|
78
|
-
|
79
|
-
|
57
|
+
"$ref": "#/definitions/parameterDefinitions"
|
58
|
+
},
|
59
|
+
"responses": {
|
60
|
+
"$ref": "#/definitions/responseDefinitions"
|
61
|
+
},
|
62
|
+
"security": {
|
63
|
+
"$ref": "#/definitions/security"
|
64
|
+
},
|
65
|
+
"securityDefinitions": {
|
66
|
+
"$ref": "#/definitions/securityDefinitions"
|
80
67
|
},
|
81
|
-
"responses": { "$ref": "#/definitions/responses" },
|
82
|
-
"security": { "$ref": "#/definitions/security" },
|
83
68
|
"tags": {
|
84
69
|
"type": "array",
|
85
70
|
"items": {
|
86
71
|
"$ref": "#/definitions/tag"
|
87
|
-
}
|
72
|
+
},
|
73
|
+
"uniqueItems": true
|
74
|
+
},
|
75
|
+
"externalDocs": {
|
76
|
+
"$ref": "#/definitions/externalDocs"
|
88
77
|
}
|
89
78
|
},
|
90
79
|
"definitions": {
|
91
|
-
"externalDocs": {
|
92
|
-
"type": "object",
|
93
|
-
"description": "information about external documentation",
|
94
|
-
"required": [ "url" ],
|
95
|
-
"properties": {
|
96
|
-
"description": {
|
97
|
-
"type": "string"
|
98
|
-
},
|
99
|
-
"url": {
|
100
|
-
"type": "string",
|
101
|
-
"format": "uri"
|
102
|
-
}
|
103
|
-
}
|
104
|
-
},
|
105
80
|
"info": {
|
106
81
|
"type": "object",
|
107
82
|
"description": "General information about the API.",
|
108
|
-
"required": [
|
83
|
+
"required": [
|
84
|
+
"version",
|
85
|
+
"title"
|
86
|
+
],
|
109
87
|
"additionalProperties": false,
|
110
88
|
"patternProperties": {
|
111
89
|
"^x-": {
|
@@ -113,14 +91,14 @@
|
|
113
91
|
}
|
114
92
|
},
|
115
93
|
"properties": {
|
116
|
-
"version": {
|
117
|
-
"type": "string",
|
118
|
-
"description": "A semantic version number of the API."
|
119
|
-
},
|
120
94
|
"title": {
|
121
95
|
"type": "string",
|
122
96
|
"description": "A unique and precise title of the API."
|
123
97
|
},
|
98
|
+
"version": {
|
99
|
+
"type": "string",
|
100
|
+
"description": "A semantic version number of the API."
|
101
|
+
},
|
124
102
|
"description": {
|
125
103
|
"type": "string",
|
126
104
|
"description": "A longer description of the API. Should be different from the title. Github-flavored markdown is allowed."
|
@@ -130,45 +108,104 @@
|
|
130
108
|
"description": "The terms of service for the API."
|
131
109
|
},
|
132
110
|
"contact": {
|
133
|
-
"
|
134
|
-
"description": "Contact information for the owners of the API.",
|
135
|
-
"additionalProperties": false,
|
136
|
-
"properties": {
|
137
|
-
"name": {
|
138
|
-
"type": "string",
|
139
|
-
"description": "The identifying name of the contact person/organization."
|
140
|
-
},
|
141
|
-
"url": {
|
142
|
-
"type": "string",
|
143
|
-
"description": "The URL pointing to the contact information.",
|
144
|
-
"format": "uri"
|
145
|
-
},
|
146
|
-
"email": {
|
147
|
-
"type": "string",
|
148
|
-
"description": "The email address of the contact person/organization.",
|
149
|
-
"format": "email"
|
150
|
-
}
|
151
|
-
}
|
111
|
+
"$ref": "#/definitions/contact"
|
152
112
|
},
|
153
113
|
"license": {
|
154
|
-
"
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
114
|
+
"$ref": "#/definitions/license"
|
115
|
+
}
|
116
|
+
}
|
117
|
+
},
|
118
|
+
"contact": {
|
119
|
+
"type": "object",
|
120
|
+
"description": "Contact information for the owners of the API.",
|
121
|
+
"additionalProperties": false,
|
122
|
+
"properties": {
|
123
|
+
"name": {
|
124
|
+
"type": "string",
|
125
|
+
"description": "The identifying name of the contact person/organization."
|
126
|
+
},
|
127
|
+
"url": {
|
128
|
+
"type": "string",
|
129
|
+
"description": "The URL pointing to the contact information.",
|
130
|
+
"format": "uri"
|
131
|
+
},
|
132
|
+
"email": {
|
133
|
+
"type": "string",
|
134
|
+
"description": "The email address of the contact person/organization.",
|
135
|
+
"format": "email"
|
136
|
+
}
|
137
|
+
}
|
138
|
+
},
|
139
|
+
"license": {
|
140
|
+
"type": "object",
|
141
|
+
"required": [
|
142
|
+
"name"
|
143
|
+
],
|
144
|
+
"additionalProperties": false,
|
145
|
+
"properties": {
|
146
|
+
"name": {
|
147
|
+
"type": "string",
|
148
|
+
"description": "The name of the license type. It's encouraged to use an OSI compatible license."
|
149
|
+
},
|
150
|
+
"url": {
|
151
|
+
"type": "string",
|
152
|
+
"description": "The URL pointing to the license.",
|
153
|
+
"format": "uri"
|
154
|
+
}
|
155
|
+
}
|
156
|
+
},
|
157
|
+
"paths": {
|
158
|
+
"type": "object",
|
159
|
+
"description": "Relative paths to the individual endpoints. They must be relative to the 'basePath'.",
|
160
|
+
"patternProperties": {
|
161
|
+
"^x-": {
|
162
|
+
"$ref": "#/definitions/vendorExtension"
|
163
|
+
},
|
164
|
+
"^/": {
|
165
|
+
"$ref": "#/definitions/pathItem"
|
166
|
+
}
|
167
|
+
},
|
168
|
+
"additionalProperties": false
|
169
|
+
},
|
170
|
+
"definitions": {
|
171
|
+
"type": "object",
|
172
|
+
"additionalProperties": {
|
173
|
+
"$ref": "#/definitions/schema"
|
174
|
+
},
|
175
|
+
"description": "One or more JSON objects describing the schemas being consumed and produced by the API."
|
176
|
+
},
|
177
|
+
"parameterDefinitions": {
|
178
|
+
"type": "object",
|
179
|
+
"additionalProperties": {
|
180
|
+
"$ref": "#/definitions/parameter"
|
181
|
+
},
|
182
|
+
"description": "One or more JSON representations for parameters"
|
183
|
+
},
|
184
|
+
"responseDefinitions": {
|
185
|
+
"type": "object",
|
186
|
+
"additionalProperties": {
|
187
|
+
"$ref": "#/definitions/response"
|
188
|
+
},
|
189
|
+
"description": "One or more JSON representations for parameters"
|
190
|
+
},
|
191
|
+
"externalDocs": {
|
192
|
+
"type": "object",
|
193
|
+
"additionalProperties": false,
|
194
|
+
"description": "information about external documentation",
|
195
|
+
"required": [
|
196
|
+
"url"
|
197
|
+
],
|
198
|
+
"properties": {
|
199
|
+
"description": {
|
200
|
+
"type": "string"
|
201
|
+
},
|
202
|
+
"url": {
|
203
|
+
"type": "string",
|
204
|
+
"format": "uri"
|
168
205
|
}
|
169
206
|
}
|
170
207
|
},
|
171
|
-
"
|
208
|
+
"examples": {
|
172
209
|
"type": "object",
|
173
210
|
"patternProperties": {
|
174
211
|
"^[a-z0-9-]+/[a-z0-9\\-+]+$": {}
|
@@ -182,7 +219,9 @@
|
|
182
219
|
},
|
183
220
|
"operation": {
|
184
221
|
"type": "object",
|
185
|
-
"required": [
|
222
|
+
"required": [
|
223
|
+
"responses"
|
224
|
+
],
|
186
225
|
"additionalProperties": false,
|
187
226
|
"patternProperties": {
|
188
227
|
"^x-": {
|
@@ -194,7 +233,8 @@
|
|
194
233
|
"type": "array",
|
195
234
|
"items": {
|
196
235
|
"type": "string"
|
197
|
-
}
|
236
|
+
},
|
237
|
+
"uniqueItems": true
|
198
238
|
},
|
199
239
|
"summary": {
|
200
240
|
"type": "string",
|
@@ -212,54 +252,28 @@
|
|
212
252
|
"description": "A friendly name of the operation"
|
213
253
|
},
|
214
254
|
"produces": {
|
215
|
-
"type": "array",
|
216
255
|
"description": "A list of MIME types the API can produce.",
|
217
|
-
"
|
218
|
-
"items": {
|
219
|
-
"$ref": "#/definitions/mimeType"
|
220
|
-
}
|
256
|
+
"$ref": "#/definitions/mediaTypeList"
|
221
257
|
},
|
222
258
|
"consumes": {
|
223
|
-
"type": "array",
|
224
259
|
"description": "A list of MIME types the API can consume.",
|
225
|
-
"
|
226
|
-
"items": {
|
227
|
-
"$ref": "#/definitions/mimeType"
|
228
|
-
}
|
260
|
+
"$ref": "#/definitions/mediaTypeList"
|
229
261
|
},
|
230
262
|
"parameters": {
|
231
|
-
"
|
232
|
-
"description": "The parameters needed to send a valid API call.",
|
233
|
-
"minItems": 1,
|
234
|
-
"additionalItems": false,
|
235
|
-
"items": {
|
236
|
-
"oneOf": [
|
237
|
-
{ "$ref": "#/definitions/parameter" },
|
238
|
-
{
|
239
|
-
"type": "object",
|
240
|
-
"additionalProperties": false,
|
241
|
-
"properties": {
|
242
|
-
"$ref": {
|
243
|
-
"type": "string"
|
244
|
-
}
|
245
|
-
}
|
246
|
-
}
|
247
|
-
]
|
248
|
-
}
|
263
|
+
"$ref": "#/definitions/parametersList"
|
249
264
|
},
|
250
265
|
"responses": {
|
251
266
|
"$ref": "#/definitions/responses"
|
252
267
|
},
|
253
268
|
"schemes": {
|
254
|
-
"
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
}
|
269
|
+
"$ref": "#/definitions/schemesList"
|
270
|
+
},
|
271
|
+
"deprecated": {
|
272
|
+
"type": "boolean",
|
273
|
+
"default": false
|
260
274
|
},
|
261
275
|
"security": {
|
262
|
-
"$ref": "#/definitions/
|
276
|
+
"$ref": "#/definitions/security"
|
263
277
|
}
|
264
278
|
}
|
265
279
|
},
|
@@ -297,10 +311,7 @@
|
|
297
311
|
"$ref": "#/definitions/operation"
|
298
312
|
},
|
299
313
|
"parameters": {
|
300
|
-
"
|
301
|
-
"items": {
|
302
|
-
"$ref": "#/definitions/parameter"
|
303
|
-
}
|
314
|
+
"$ref": "#/definitions/parametersList"
|
304
315
|
}
|
305
316
|
}
|
306
317
|
},
|
@@ -310,17 +321,38 @@
|
|
310
321
|
"minProperties": 1,
|
311
322
|
"additionalProperties": false,
|
312
323
|
"patternProperties": {
|
313
|
-
"^([0-9]
|
314
|
-
"$ref": "#/definitions/
|
324
|
+
"^([0-9]{3})$|^(default)$": {
|
325
|
+
"$ref": "#/definitions/responseValue"
|
315
326
|
},
|
316
327
|
"^x-": {
|
317
328
|
"$ref": "#/definitions/vendorExtension"
|
318
329
|
}
|
330
|
+
},
|
331
|
+
"not": {
|
332
|
+
"type": "object",
|
333
|
+
"additionalProperties": false,
|
334
|
+
"patternProperties": {
|
335
|
+
"^x-": {
|
336
|
+
"$ref": "#/definitions/vendorExtension"
|
337
|
+
}
|
338
|
+
}
|
319
339
|
}
|
320
340
|
},
|
341
|
+
"responseValue": {
|
342
|
+
"oneOf": [
|
343
|
+
{
|
344
|
+
"$ref": "#/definitions/response"
|
345
|
+
},
|
346
|
+
{
|
347
|
+
"$ref": "#/definitions/jsonReference"
|
348
|
+
}
|
349
|
+
]
|
350
|
+
},
|
321
351
|
"response": {
|
322
352
|
"type": "object",
|
323
|
-
"required": [
|
353
|
+
"required": [
|
354
|
+
"description"
|
355
|
+
],
|
324
356
|
"properties": {
|
325
357
|
"description": {
|
326
358
|
"type": "string"
|
@@ -329,30 +361,86 @@
|
|
329
361
|
"$ref": "#/definitions/schema"
|
330
362
|
},
|
331
363
|
"headers": {
|
332
|
-
"
|
333
|
-
"items": {
|
334
|
-
"$ref": "#/definitions/serializableType"
|
335
|
-
}
|
364
|
+
"$ref": "#/definitions/headers"
|
336
365
|
},
|
337
366
|
"examples": {
|
338
|
-
"$ref": "#/definitions/
|
367
|
+
"$ref": "#/definitions/examples"
|
339
368
|
}
|
340
369
|
},
|
341
370
|
"additionalProperties": false
|
342
371
|
},
|
343
|
-
"
|
372
|
+
"headers": {
|
373
|
+
"type": "object",
|
374
|
+
"additionalProperties": {
|
375
|
+
"$ref": "#/definitions/header"
|
376
|
+
}
|
377
|
+
},
|
378
|
+
"header": {
|
379
|
+
"type": "object",
|
380
|
+
"additionalProperties": false,
|
381
|
+
"required": [
|
382
|
+
"type"
|
383
|
+
],
|
344
384
|
"properties": {
|
345
385
|
"type": {
|
346
386
|
"type": "string",
|
347
|
-
"enum": [
|
387
|
+
"enum": [
|
388
|
+
"string",
|
389
|
+
"number",
|
390
|
+
"integer",
|
391
|
+
"boolean",
|
392
|
+
"array"
|
393
|
+
]
|
348
394
|
},
|
349
395
|
"format": {
|
350
396
|
"type": "string"
|
351
397
|
},
|
352
398
|
"items": {
|
353
|
-
"
|
399
|
+
"$ref": "#/definitions/primitivesItems"
|
354
400
|
},
|
355
401
|
"collectionFormat": {
|
402
|
+
"$ref": "#/definitions/collectionFormat"
|
403
|
+
},
|
404
|
+
"default": {
|
405
|
+
"$ref": "#/definitions/default"
|
406
|
+
},
|
407
|
+
"maximum": {
|
408
|
+
"$ref": "#/definitions/maximum"
|
409
|
+
},
|
410
|
+
"exclusiveMaximum": {
|
411
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
412
|
+
},
|
413
|
+
"minimum": {
|
414
|
+
"$ref": "#/definitions/minimum"
|
415
|
+
},
|
416
|
+
"exclusiveMinimum": {
|
417
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
418
|
+
},
|
419
|
+
"maxLength": {
|
420
|
+
"$ref": "#/definitions/maxLength"
|
421
|
+
},
|
422
|
+
"minLength": {
|
423
|
+
"$ref": "#/definitions/minLength"
|
424
|
+
},
|
425
|
+
"pattern": {
|
426
|
+
"$ref": "#/definitions/pattern"
|
427
|
+
},
|
428
|
+
"maxItems": {
|
429
|
+
"$ref": "#/definitions/maxItems"
|
430
|
+
},
|
431
|
+
"minItems": {
|
432
|
+
"$ref": "#/definitions/minItems"
|
433
|
+
},
|
434
|
+
"uniqueItems": {
|
435
|
+
"$ref": "#/definitions/uniqueItems"
|
436
|
+
},
|
437
|
+
"enum": {
|
438
|
+
"$ref": "#/definitions/enum"
|
439
|
+
},
|
440
|
+
"multipleOf": {
|
441
|
+
"$ref": "#/definitions/multipleOf"
|
442
|
+
},
|
443
|
+
"description": {
|
356
444
|
"type": "string"
|
357
445
|
}
|
358
446
|
}
|
@@ -362,171 +450,1034 @@
|
|
362
450
|
"additionalProperties": true,
|
363
451
|
"additionalItems": true
|
364
452
|
},
|
365
|
-
"
|
366
|
-
"type": "object",
|
367
|
-
"required": [ "name", "in" ],
|
368
|
-
"oneOf": [
|
369
|
-
{
|
370
|
-
"patternProperties": {
|
371
|
-
"^x-": {
|
372
|
-
"$ref": "#/definitions/vendorExtension"
|
373
|
-
}
|
374
|
-
},
|
375
|
-
"properties": {
|
376
|
-
"name": {
|
377
|
-
"type": "string",
|
378
|
-
"description": "The name of the parameter."
|
379
|
-
},
|
380
|
-
"in": {
|
381
|
-
"type": "string",
|
382
|
-
"description": "Determines the location of the parameter.",
|
383
|
-
"enum": [ "query", "header", "path", "formData" ]
|
384
|
-
},
|
385
|
-
"description": {
|
386
|
-
"type": "string",
|
387
|
-
"description": "A brief description of the parameter. This could contain examples of use. Github-flavored markdown is allowed."
|
388
|
-
},
|
389
|
-
"required": {
|
390
|
-
"type": "boolean",
|
391
|
-
"description": "Determines whether or not this parameter is required or optional."
|
392
|
-
},
|
393
|
-
"type": {
|
394
|
-
"type": "string",
|
395
|
-
"enum": [ "string", "number", "boolean", "integer", "array" ]
|
396
|
-
},
|
397
|
-
"format": {
|
398
|
-
"type": "string"
|
399
|
-
},
|
400
|
-
"items": {
|
401
|
-
"type": "object"
|
402
|
-
},
|
403
|
-
"collectionFormat": {
|
404
|
-
"type": "string"
|
405
|
-
}
|
406
|
-
},
|
407
|
-
"additionalProperties": false
|
408
|
-
},
|
409
|
-
{
|
410
|
-
"patternProperties": {
|
411
|
-
"^x-": {
|
412
|
-
"$ref": "#/definitions/vendorExtension"
|
413
|
-
}
|
414
|
-
},
|
415
|
-
"properties": {
|
416
|
-
"name": {
|
417
|
-
"type": "string",
|
418
|
-
"description": "The name of the parameter."
|
419
|
-
},
|
420
|
-
"in": {
|
421
|
-
"type": "string",
|
422
|
-
"description": "Determines the location of the parameter.",
|
423
|
-
"enum": [ "body" ]
|
424
|
-
},
|
425
|
-
"description": {
|
426
|
-
"type": "string",
|
427
|
-
"description": "A brief description of the parameter. This could contain examples of use."
|
428
|
-
},
|
429
|
-
"required": {
|
430
|
-
"type": "boolean",
|
431
|
-
"description": "Determines whether or not this parameter is required or optional."
|
432
|
-
},
|
433
|
-
"schema": {
|
434
|
-
"$ref": "#/definitions/schema"
|
435
|
-
}
|
436
|
-
},
|
437
|
-
"additionalProperties": false
|
438
|
-
}
|
439
|
-
]
|
440
|
-
},
|
441
|
-
"schema": {
|
453
|
+
"bodyParameter": {
|
442
454
|
"type": "object",
|
443
|
-
"
|
455
|
+
"required": [
|
456
|
+
"name",
|
457
|
+
"in",
|
458
|
+
"schema"
|
459
|
+
],
|
444
460
|
"patternProperties": {
|
445
461
|
"^x-": {
|
446
462
|
"$ref": "#/definitions/vendorExtension"
|
447
463
|
}
|
448
464
|
},
|
449
465
|
"properties": {
|
450
|
-
"
|
451
|
-
|
452
|
-
|
453
|
-
"description": { "$ref": "http://json-schema.org/draft-04/schema#/properties/description" },
|
454
|
-
"default": { "$ref": "http://json-schema.org/draft-04/schema#/properties/default" },
|
455
|
-
"multipleOf": { "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" },
|
456
|
-
"maximum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" },
|
457
|
-
"exclusiveMaximum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum" },
|
458
|
-
"minimum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" },
|
459
|
-
"exclusiveMinimum": { "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum" },
|
460
|
-
"maxLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" },
|
461
|
-
"minLength": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" },
|
462
|
-
"pattern": { "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" },
|
463
|
-
"discriminator": { "type": "string" },
|
464
|
-
"xml": { "$ref": "#/definitions/xml"},
|
465
|
-
"items": {
|
466
|
-
"anyOf": [
|
467
|
-
{ "$ref": "#/definitions/schema" },
|
468
|
-
{
|
469
|
-
"type": "array",
|
470
|
-
"minItems": 1,
|
471
|
-
"items": { "$ref": "#/definitions/schema" }
|
472
|
-
}
|
473
|
-
],
|
474
|
-
"default": { }
|
475
|
-
},
|
476
|
-
"maxItems": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" },
|
477
|
-
"minItems": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" },
|
478
|
-
"uniqueItems": { "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems" },
|
479
|
-
"maxProperties": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" },
|
480
|
-
"minProperties": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" },
|
481
|
-
"required": { "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" },
|
482
|
-
"externalDocs": { "$ref": "#/definitions/externalDocs" },
|
483
|
-
"properties": {
|
484
|
-
"type": "object",
|
485
|
-
"additionalProperties": { "$ref": "#/definitions/schema" },
|
486
|
-
"default": { }
|
466
|
+
"description": {
|
467
|
+
"type": "string",
|
468
|
+
"description": "A brief description of the parameter. This could contain examples of use. Github-flavored markdown is allowed."
|
487
469
|
},
|
488
|
-
"
|
489
|
-
|
490
|
-
|
491
|
-
|
470
|
+
"name": {
|
471
|
+
"type": "string",
|
472
|
+
"description": "The name of the parameter."
|
492
473
|
},
|
493
|
-
"
|
494
|
-
"type": "
|
495
|
-
"
|
496
|
-
"
|
474
|
+
"in": {
|
475
|
+
"type": "string",
|
476
|
+
"description": "Determines the location of the parameter.",
|
477
|
+
"enum": [
|
478
|
+
"body"
|
479
|
+
]
|
480
|
+
},
|
481
|
+
"required": {
|
482
|
+
"type": "boolean",
|
483
|
+
"description": "Determines whether or not this parameter is required or optional.",
|
484
|
+
"default": false
|
485
|
+
},
|
486
|
+
"schema": {
|
487
|
+
"$ref": "#/definitions/schema"
|
497
488
|
}
|
498
|
-
}
|
499
|
-
},
|
500
|
-
"security": {
|
501
|
-
"description": "defines security definitions"
|
502
|
-
},
|
503
|
-
"securityRequirement": {
|
504
|
-
"description": "defines a security requirement",
|
505
|
-
"type": "array"
|
506
|
-
},
|
507
|
-
"xml": {
|
508
|
-
"properties": {
|
509
|
-
"name": { "type": "string"},
|
510
|
-
"namespace": { "type": "string" },
|
511
|
-
"prefix": { "type": "string" },
|
512
|
-
"attribute": { "type": "boolean" },
|
513
|
-
"wrapped": { "type": "boolean" }
|
514
489
|
},
|
515
490
|
"additionalProperties": false
|
516
491
|
},
|
517
|
-
"
|
518
|
-
"
|
519
|
-
"properties": {
|
520
|
-
"externalDocs": { "$ref": "#/definitions/externalDocs" }
|
521
|
-
},
|
492
|
+
"headerParameterSubSchema": {
|
493
|
+
"additionalProperties": false,
|
522
494
|
"patternProperties": {
|
523
495
|
"^x-": {
|
524
496
|
"$ref": "#/definitions/vendorExtension"
|
497
|
+
}
|
498
|
+
},
|
499
|
+
"properties": {
|
500
|
+
"required": {
|
501
|
+
"type": "boolean",
|
502
|
+
"description": "Determines whether or not this parameter is required or optional.",
|
503
|
+
"default": false
|
525
504
|
},
|
526
|
-
"
|
505
|
+
"in": {
|
506
|
+
"type": "string",
|
507
|
+
"description": "Determines the location of the parameter.",
|
508
|
+
"enum": [
|
509
|
+
"header"
|
510
|
+
]
|
511
|
+
},
|
512
|
+
"description": {
|
513
|
+
"type": "string",
|
514
|
+
"description": "A brief description of the parameter. This could contain examples of use. Github-flavored markdown is allowed."
|
515
|
+
},
|
516
|
+
"name": {
|
517
|
+
"type": "string",
|
518
|
+
"description": "The name of the parameter."
|
519
|
+
},
|
520
|
+
"type": {
|
521
|
+
"type": "string",
|
522
|
+
"enum": [
|
523
|
+
"string",
|
524
|
+
"number",
|
525
|
+
"boolean",
|
526
|
+
"integer",
|
527
|
+
"array"
|
528
|
+
]
|
529
|
+
},
|
530
|
+
"format": {
|
531
|
+
"type": "string"
|
532
|
+
},
|
533
|
+
"items": {
|
534
|
+
"$ref": "#/definitions/primitivesItems"
|
535
|
+
},
|
536
|
+
"collectionFormat": {
|
537
|
+
"$ref": "#/definitions/collectionFormat"
|
538
|
+
},
|
539
|
+
"default": {
|
540
|
+
"$ref": "#/definitions/default"
|
541
|
+
},
|
542
|
+
"maximum": {
|
543
|
+
"$ref": "#/definitions/maximum"
|
544
|
+
},
|
545
|
+
"exclusiveMaximum": {
|
546
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
547
|
+
},
|
548
|
+
"minimum": {
|
549
|
+
"$ref": "#/definitions/minimum"
|
550
|
+
},
|
551
|
+
"exclusiveMinimum": {
|
552
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
553
|
+
},
|
554
|
+
"maxLength": {
|
555
|
+
"$ref": "#/definitions/maxLength"
|
556
|
+
},
|
557
|
+
"minLength": {
|
558
|
+
"$ref": "#/definitions/minLength"
|
559
|
+
},
|
560
|
+
"pattern": {
|
561
|
+
"$ref": "#/definitions/pattern"
|
562
|
+
},
|
563
|
+
"maxItems": {
|
564
|
+
"$ref": "#/definitions/maxItems"
|
565
|
+
},
|
566
|
+
"minItems": {
|
567
|
+
"$ref": "#/definitions/minItems"
|
568
|
+
},
|
569
|
+
"uniqueItems": {
|
570
|
+
"$ref": "#/definitions/uniqueItems"
|
571
|
+
},
|
572
|
+
"enum": {
|
573
|
+
"$ref": "#/definitions/enum"
|
574
|
+
},
|
575
|
+
"multipleOf": {
|
576
|
+
"$ref": "#/definitions/multipleOf"
|
577
|
+
}
|
578
|
+
}
|
579
|
+
},
|
580
|
+
"queryParameterSubSchema": {
|
581
|
+
"additionalProperties": false,
|
582
|
+
"patternProperties": {
|
583
|
+
"^x-": {
|
584
|
+
"$ref": "#/definitions/vendorExtension"
|
585
|
+
}
|
586
|
+
},
|
587
|
+
"properties": {
|
588
|
+
"required": {
|
589
|
+
"type": "boolean",
|
590
|
+
"description": "Determines whether or not this parameter is required or optional.",
|
591
|
+
"default": false
|
592
|
+
},
|
593
|
+
"in": {
|
594
|
+
"type": "string",
|
595
|
+
"description": "Determines the location of the parameter.",
|
596
|
+
"enum": [
|
597
|
+
"query"
|
598
|
+
]
|
599
|
+
},
|
600
|
+
"description": {
|
601
|
+
"type": "string",
|
602
|
+
"description": "A brief description of the parameter. This could contain examples of use. Github-flavored markdown is allowed."
|
603
|
+
},
|
604
|
+
"name": {
|
605
|
+
"type": "string",
|
606
|
+
"description": "The name of the parameter."
|
607
|
+
},
|
608
|
+
"type": {
|
609
|
+
"type": "string",
|
610
|
+
"enum": [
|
611
|
+
"string",
|
612
|
+
"number",
|
613
|
+
"boolean",
|
614
|
+
"integer",
|
615
|
+
"array"
|
616
|
+
]
|
617
|
+
},
|
618
|
+
"format": {
|
619
|
+
"type": "string"
|
620
|
+
},
|
621
|
+
"items": {
|
622
|
+
"$ref": "#/definitions/primitivesItems"
|
623
|
+
},
|
624
|
+
"collectionFormat": {
|
625
|
+
"$ref": "#/definitions/collectionFormatWithMulti"
|
626
|
+
},
|
627
|
+
"default": {
|
628
|
+
"$ref": "#/definitions/default"
|
629
|
+
},
|
630
|
+
"maximum": {
|
631
|
+
"$ref": "#/definitions/maximum"
|
632
|
+
},
|
633
|
+
"exclusiveMaximum": {
|
634
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
635
|
+
},
|
636
|
+
"minimum": {
|
637
|
+
"$ref": "#/definitions/minimum"
|
638
|
+
},
|
639
|
+
"exclusiveMinimum": {
|
640
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
641
|
+
},
|
642
|
+
"maxLength": {
|
643
|
+
"$ref": "#/definitions/maxLength"
|
644
|
+
},
|
645
|
+
"minLength": {
|
646
|
+
"$ref": "#/definitions/minLength"
|
647
|
+
},
|
648
|
+
"pattern": {
|
649
|
+
"$ref": "#/definitions/pattern"
|
650
|
+
},
|
651
|
+
"maxItems": {
|
652
|
+
"$ref": "#/definitions/maxItems"
|
653
|
+
},
|
654
|
+
"minItems": {
|
655
|
+
"$ref": "#/definitions/minItems"
|
656
|
+
},
|
657
|
+
"uniqueItems": {
|
658
|
+
"$ref": "#/definitions/uniqueItems"
|
659
|
+
},
|
660
|
+
"enum": {
|
661
|
+
"$ref": "#/definitions/enum"
|
662
|
+
},
|
663
|
+
"multipleOf": {
|
664
|
+
"$ref": "#/definitions/multipleOf"
|
665
|
+
}
|
666
|
+
}
|
667
|
+
},
|
668
|
+
"formDataParameterSubSchema": {
|
669
|
+
"additionalProperties": false,
|
670
|
+
"patternProperties": {
|
671
|
+
"^x-": {
|
672
|
+
"$ref": "#/definitions/vendorExtension"
|
673
|
+
}
|
674
|
+
},
|
675
|
+
"properties": {
|
676
|
+
"required": {
|
677
|
+
"type": "boolean",
|
678
|
+
"description": "Determines whether or not this parameter is required or optional.",
|
679
|
+
"default": false
|
680
|
+
},
|
681
|
+
"in": {
|
682
|
+
"type": "string",
|
683
|
+
"description": "Determines the location of the parameter.",
|
684
|
+
"enum": [
|
685
|
+
"formData"
|
686
|
+
]
|
687
|
+
},
|
688
|
+
"description": {
|
689
|
+
"type": "string",
|
690
|
+
"description": "A brief description of the parameter. This could contain examples of use. Github-flavored markdown is allowed."
|
691
|
+
},
|
692
|
+
"name": {
|
693
|
+
"type": "string",
|
694
|
+
"description": "The name of the parameter."
|
695
|
+
},
|
696
|
+
"type": {
|
697
|
+
"type": "string",
|
698
|
+
"enum": [
|
699
|
+
"string",
|
700
|
+
"number",
|
701
|
+
"boolean",
|
702
|
+
"integer",
|
703
|
+
"array",
|
704
|
+
"file"
|
705
|
+
]
|
706
|
+
},
|
707
|
+
"format": {
|
708
|
+
"type": "string"
|
709
|
+
},
|
710
|
+
"items": {
|
711
|
+
"$ref": "#/definitions/primitivesItems"
|
712
|
+
},
|
713
|
+
"collectionFormat": {
|
714
|
+
"$ref": "#/definitions/collectionFormatWithMulti"
|
715
|
+
},
|
716
|
+
"default": {
|
717
|
+
"$ref": "#/definitions/default"
|
718
|
+
},
|
719
|
+
"maximum": {
|
720
|
+
"$ref": "#/definitions/maximum"
|
721
|
+
},
|
722
|
+
"exclusiveMaximum": {
|
723
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
724
|
+
},
|
725
|
+
"minimum": {
|
726
|
+
"$ref": "#/definitions/minimum"
|
727
|
+
},
|
728
|
+
"exclusiveMinimum": {
|
729
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
730
|
+
},
|
731
|
+
"maxLength": {
|
732
|
+
"$ref": "#/definitions/maxLength"
|
733
|
+
},
|
734
|
+
"minLength": {
|
735
|
+
"$ref": "#/definitions/minLength"
|
736
|
+
},
|
737
|
+
"pattern": {
|
738
|
+
"$ref": "#/definitions/pattern"
|
739
|
+
},
|
740
|
+
"maxItems": {
|
741
|
+
"$ref": "#/definitions/maxItems"
|
742
|
+
},
|
743
|
+
"minItems": {
|
744
|
+
"$ref": "#/definitions/minItems"
|
745
|
+
},
|
746
|
+
"uniqueItems": {
|
747
|
+
"$ref": "#/definitions/uniqueItems"
|
748
|
+
},
|
749
|
+
"enum": {
|
750
|
+
"$ref": "#/definitions/enum"
|
751
|
+
},
|
752
|
+
"multipleOf": {
|
753
|
+
"$ref": "#/definitions/multipleOf"
|
754
|
+
}
|
755
|
+
}
|
756
|
+
},
|
757
|
+
"pathParameterSubSchema": {
|
758
|
+
"additionalProperties": false,
|
759
|
+
"patternProperties": {
|
760
|
+
"^x-": {
|
761
|
+
"$ref": "#/definitions/vendorExtension"
|
762
|
+
}
|
763
|
+
},
|
764
|
+
"properties": {
|
765
|
+
"required": {
|
766
|
+
"type": "boolean",
|
767
|
+
"enum": [
|
768
|
+
true
|
769
|
+
],
|
770
|
+
"description": "Determines whether or not this parameter is required or optional."
|
771
|
+
},
|
772
|
+
"in": {
|
773
|
+
"type": "string",
|
774
|
+
"description": "Determines the location of the parameter.",
|
775
|
+
"enum": [
|
776
|
+
"path"
|
777
|
+
]
|
778
|
+
},
|
779
|
+
"description": {
|
780
|
+
"type": "string",
|
781
|
+
"description": "A brief description of the parameter. This could contain examples of use. Github-flavored markdown is allowed."
|
782
|
+
},
|
783
|
+
"name": {
|
784
|
+
"type": "string",
|
785
|
+
"description": "The name of the parameter."
|
786
|
+
},
|
787
|
+
"type": {
|
788
|
+
"type": "string",
|
789
|
+
"enum": [
|
790
|
+
"string",
|
791
|
+
"number",
|
792
|
+
"boolean",
|
793
|
+
"integer",
|
794
|
+
"array"
|
795
|
+
]
|
796
|
+
},
|
797
|
+
"format": {
|
798
|
+
"type": "string"
|
799
|
+
},
|
800
|
+
"items": {
|
801
|
+
"$ref": "#/definitions/primitivesItems"
|
802
|
+
},
|
803
|
+
"collectionFormat": {
|
804
|
+
"$ref": "#/definitions/collectionFormat"
|
805
|
+
},
|
806
|
+
"default": {
|
807
|
+
"$ref": "#/definitions/default"
|
808
|
+
},
|
809
|
+
"maximum": {
|
810
|
+
"$ref": "#/definitions/maximum"
|
811
|
+
},
|
812
|
+
"exclusiveMaximum": {
|
813
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
814
|
+
},
|
815
|
+
"minimum": {
|
816
|
+
"$ref": "#/definitions/minimum"
|
817
|
+
},
|
818
|
+
"exclusiveMinimum": {
|
819
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
820
|
+
},
|
821
|
+
"maxLength": {
|
822
|
+
"$ref": "#/definitions/maxLength"
|
823
|
+
},
|
824
|
+
"minLength": {
|
825
|
+
"$ref": "#/definitions/minLength"
|
826
|
+
},
|
827
|
+
"pattern": {
|
828
|
+
"$ref": "#/definitions/pattern"
|
829
|
+
},
|
830
|
+
"maxItems": {
|
831
|
+
"$ref": "#/definitions/maxItems"
|
832
|
+
},
|
833
|
+
"minItems": {
|
834
|
+
"$ref": "#/definitions/minItems"
|
835
|
+
},
|
836
|
+
"uniqueItems": {
|
837
|
+
"$ref": "#/definitions/uniqueItems"
|
838
|
+
},
|
839
|
+
"enum": {
|
840
|
+
"$ref": "#/definitions/enum"
|
841
|
+
},
|
842
|
+
"multipleOf": {
|
843
|
+
"$ref": "#/definitions/multipleOf"
|
844
|
+
}
|
845
|
+
}
|
846
|
+
},
|
847
|
+
"nonBodyParameter": {
|
848
|
+
"type": "object",
|
849
|
+
"required": [
|
850
|
+
"name",
|
851
|
+
"in",
|
852
|
+
"type"
|
853
|
+
],
|
854
|
+
"oneOf": [
|
855
|
+
{
|
856
|
+
"$ref": "#/definitions/headerParameterSubSchema"
|
857
|
+
},
|
858
|
+
{
|
859
|
+
"$ref": "#/definitions/formDataParameterSubSchema"
|
860
|
+
},
|
861
|
+
{
|
862
|
+
"$ref": "#/definitions/queryParameterSubSchema"
|
863
|
+
},
|
864
|
+
{
|
865
|
+
"$ref": "#/definitions/pathParameterSubSchema"
|
866
|
+
}
|
867
|
+
]
|
868
|
+
},
|
869
|
+
"parameter": {
|
870
|
+
"oneOf": [
|
871
|
+
{
|
872
|
+
"$ref": "#/definitions/bodyParameter"
|
873
|
+
},
|
874
|
+
{
|
875
|
+
"$ref": "#/definitions/nonBodyParameter"
|
876
|
+
}
|
877
|
+
]
|
878
|
+
},
|
879
|
+
"schema": {
|
880
|
+
"type": "object",
|
881
|
+
"description": "A deterministic version of a JSON Schema object.",
|
882
|
+
"patternProperties": {
|
883
|
+
"^x-": {
|
884
|
+
"$ref": "#/definitions/vendorExtension"
|
885
|
+
}
|
886
|
+
},
|
887
|
+
"properties": {
|
888
|
+
"$ref": {
|
889
|
+
"type": "string"
|
890
|
+
},
|
891
|
+
"format": {
|
892
|
+
"type": "string"
|
893
|
+
},
|
894
|
+
"title": {
|
895
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/title"
|
896
|
+
},
|
897
|
+
"description": {
|
898
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/description"
|
899
|
+
},
|
900
|
+
"default": {
|
901
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/default"
|
902
|
+
},
|
903
|
+
"multipleOf": {
|
904
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
|
905
|
+
},
|
906
|
+
"maximum": {
|
907
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
|
908
|
+
},
|
909
|
+
"exclusiveMaximum": {
|
910
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
|
911
|
+
},
|
912
|
+
"minimum": {
|
913
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
|
914
|
+
},
|
915
|
+
"exclusiveMinimum": {
|
916
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
|
917
|
+
},
|
918
|
+
"maxLength": {
|
919
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
920
|
+
},
|
921
|
+
"minLength": {
|
922
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
923
|
+
},
|
924
|
+
"pattern": {
|
925
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
|
926
|
+
},
|
927
|
+
"maxItems": {
|
928
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
929
|
+
},
|
930
|
+
"minItems": {
|
931
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
932
|
+
},
|
933
|
+
"uniqueItems": {
|
934
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
|
935
|
+
},
|
936
|
+
"maxProperties": {
|
937
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
938
|
+
},
|
939
|
+
"minProperties": {
|
940
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
941
|
+
},
|
942
|
+
"required": {
|
943
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
|
944
|
+
},
|
945
|
+
"enum": {
|
946
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
|
947
|
+
},
|
948
|
+
"type": {
|
949
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/type"
|
950
|
+
},
|
951
|
+
"items": {
|
952
|
+
"anyOf": [
|
953
|
+
{
|
954
|
+
"$ref": "#/definitions/schema"
|
955
|
+
},
|
956
|
+
{
|
957
|
+
"type": "array",
|
958
|
+
"minItems": 1,
|
959
|
+
"items": {
|
960
|
+
"$ref": "#/definitions/schema"
|
961
|
+
}
|
962
|
+
}
|
963
|
+
],
|
964
|
+
"default": {}
|
965
|
+
},
|
966
|
+
"allOf": {
|
967
|
+
"type": "array",
|
968
|
+
"minItems": 1,
|
969
|
+
"items": {
|
970
|
+
"$ref": "#/definitions/schema"
|
971
|
+
}
|
972
|
+
},
|
973
|
+
"properties": {
|
974
|
+
"type": "object",
|
975
|
+
"additionalProperties": {
|
976
|
+
"$ref": "#/definitions/schema"
|
977
|
+
},
|
978
|
+
"default": {}
|
979
|
+
},
|
980
|
+
"discriminator": {
|
981
|
+
"type": "string"
|
982
|
+
},
|
983
|
+
"readOnly": {
|
984
|
+
"type": "boolean",
|
985
|
+
"default": false
|
986
|
+
},
|
987
|
+
"xml": {
|
988
|
+
"$ref": "#/definitions/xml"
|
989
|
+
},
|
990
|
+
"externalDocs": {
|
991
|
+
"$ref": "#/definitions/externalDocs"
|
992
|
+
},
|
993
|
+
"example": {}
|
994
|
+
}
|
995
|
+
},
|
996
|
+
"primitivesItems": {
|
997
|
+
"type": "object",
|
998
|
+
"additionalProperties": false,
|
999
|
+
"properties": {
|
1000
|
+
"type": {
|
1001
|
+
"type": "string",
|
1002
|
+
"enum": [
|
1003
|
+
"string",
|
1004
|
+
"number",
|
1005
|
+
"integer",
|
1006
|
+
"boolean",
|
1007
|
+
"array"
|
1008
|
+
]
|
1009
|
+
},
|
1010
|
+
"format": {
|
1011
|
+
"type": "string"
|
1012
|
+
},
|
1013
|
+
"items": {
|
1014
|
+
"$ref": "#/definitions/primitivesItems"
|
1015
|
+
},
|
1016
|
+
"collectionFormat": {
|
1017
|
+
"$ref": "#/definitions/collectionFormat"
|
1018
|
+
},
|
1019
|
+
"default": {
|
1020
|
+
"$ref": "#/definitions/default"
|
1021
|
+
},
|
1022
|
+
"maximum": {
|
1023
|
+
"$ref": "#/definitions/maximum"
|
1024
|
+
},
|
1025
|
+
"exclusiveMaximum": {
|
1026
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
1027
|
+
},
|
1028
|
+
"minimum": {
|
1029
|
+
"$ref": "#/definitions/minimum"
|
1030
|
+
},
|
1031
|
+
"exclusiveMinimum": {
|
1032
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
1033
|
+
},
|
1034
|
+
"maxLength": {
|
1035
|
+
"$ref": "#/definitions/maxLength"
|
1036
|
+
},
|
1037
|
+
"minLength": {
|
1038
|
+
"$ref": "#/definitions/minLength"
|
1039
|
+
},
|
1040
|
+
"pattern": {
|
1041
|
+
"$ref": "#/definitions/pattern"
|
1042
|
+
},
|
1043
|
+
"maxItems": {
|
1044
|
+
"$ref": "#/definitions/maxItems"
|
1045
|
+
},
|
1046
|
+
"minItems": {
|
1047
|
+
"$ref": "#/definitions/minItems"
|
1048
|
+
},
|
1049
|
+
"uniqueItems": {
|
1050
|
+
"$ref": "#/definitions/uniqueItems"
|
1051
|
+
},
|
1052
|
+
"enum": {
|
1053
|
+
"$ref": "#/definitions/enum"
|
1054
|
+
},
|
1055
|
+
"multipleOf": {
|
1056
|
+
"$ref": "#/definitions/multipleOf"
|
1057
|
+
}
|
1058
|
+
}
|
1059
|
+
},
|
1060
|
+
"security": {
|
1061
|
+
"type": "array",
|
1062
|
+
"items": {
|
1063
|
+
"$ref": "#/definitions/securityRequirement"
|
1064
|
+
},
|
1065
|
+
"uniqueItems": true
|
1066
|
+
},
|
1067
|
+
"securityRequirement": {
|
1068
|
+
"type": "object",
|
1069
|
+
"additionalProperties": {
|
1070
|
+
"type": "array",
|
1071
|
+
"items": {
|
1072
|
+
"type": "string"
|
1073
|
+
},
|
1074
|
+
"uniqueItems": true
|
1075
|
+
}
|
1076
|
+
},
|
1077
|
+
"xml": {
|
1078
|
+
"type": "object",
|
1079
|
+
"additionalProperties": false,
|
1080
|
+
"properties": {
|
1081
|
+
"name": {
|
1082
|
+
"type": "string"
|
1083
|
+
},
|
1084
|
+
"namespace": {
|
1085
|
+
"type": "string"
|
1086
|
+
},
|
1087
|
+
"prefix": {
|
1088
|
+
"type": "string"
|
1089
|
+
},
|
1090
|
+
"attribute": {
|
1091
|
+
"type": "boolean",
|
1092
|
+
"default": false
|
1093
|
+
},
|
1094
|
+
"wrapped": {
|
1095
|
+
"type": "boolean",
|
1096
|
+
"default": false
|
1097
|
+
}
|
1098
|
+
}
|
1099
|
+
},
|
1100
|
+
"tag": {
|
1101
|
+
"type": "object",
|
1102
|
+
"additionalProperties": false,
|
1103
|
+
"required": [
|
1104
|
+
"name"
|
1105
|
+
],
|
1106
|
+
"properties": {
|
1107
|
+
"name": {
|
1108
|
+
"type": "string"
|
1109
|
+
},
|
1110
|
+
"description": {
|
1111
|
+
"type": "string"
|
1112
|
+
},
|
1113
|
+
"externalDocs": {
|
1114
|
+
"$ref": "#/definitions/externalDocs"
|
1115
|
+
}
|
1116
|
+
},
|
1117
|
+
"patternProperties": {
|
1118
|
+
"^x-": {
|
1119
|
+
"$ref": "#/definitions/vendorExtension"
|
1120
|
+
}
|
1121
|
+
}
|
1122
|
+
},
|
1123
|
+
"securityDefinitions": {
|
1124
|
+
"type": "object",
|
1125
|
+
"additionalProperties": {
|
1126
|
+
"oneOf": [
|
1127
|
+
{
|
1128
|
+
"$ref": "#/definitions/basicAuthenticationSecurity"
|
1129
|
+
},
|
1130
|
+
{
|
1131
|
+
"$ref": "#/definitions/apiKeySecurity"
|
1132
|
+
},
|
1133
|
+
{
|
1134
|
+
"$ref": "#/definitions/oauth2ImplicitSecurity"
|
1135
|
+
},
|
1136
|
+
{
|
1137
|
+
"$ref": "#/definitions/oauth2PasswordSecurity"
|
1138
|
+
},
|
1139
|
+
{
|
1140
|
+
"$ref": "#/definitions/oauth2ApplicationSecurity"
|
1141
|
+
},
|
1142
|
+
{
|
1143
|
+
"$ref": "#/definitions/oauth2AccessCodeSecurity"
|
1144
|
+
}
|
1145
|
+
]
|
1146
|
+
}
|
1147
|
+
},
|
1148
|
+
"basicAuthenticationSecurity": {
|
1149
|
+
"type": "object",
|
1150
|
+
"additionalProperties": false,
|
1151
|
+
"required": [
|
1152
|
+
"type"
|
1153
|
+
],
|
1154
|
+
"properties": {
|
1155
|
+
"type": {
|
1156
|
+
"type": "string",
|
1157
|
+
"enum": [
|
1158
|
+
"basic"
|
1159
|
+
]
|
1160
|
+
},
|
1161
|
+
"description": {
|
1162
|
+
"type": "string"
|
1163
|
+
}
|
1164
|
+
},
|
1165
|
+
"patternProperties": {
|
1166
|
+
"^x-": {
|
1167
|
+
"$ref": "#/definitions/vendorExtension"
|
1168
|
+
}
|
1169
|
+
}
|
1170
|
+
},
|
1171
|
+
"apiKeySecurity": {
|
1172
|
+
"type": "object",
|
1173
|
+
"additionalProperties": false,
|
1174
|
+
"required": [
|
1175
|
+
"type",
|
1176
|
+
"name",
|
1177
|
+
"in"
|
1178
|
+
],
|
1179
|
+
"properties": {
|
1180
|
+
"type": {
|
1181
|
+
"type": "string",
|
1182
|
+
"enum": [
|
1183
|
+
"apiKey"
|
1184
|
+
]
|
1185
|
+
},
|
1186
|
+
"name": {
|
1187
|
+
"type": "string"
|
1188
|
+
},
|
1189
|
+
"in": {
|
1190
|
+
"type": "string",
|
1191
|
+
"enum": [
|
1192
|
+
"header",
|
1193
|
+
"query"
|
1194
|
+
]
|
1195
|
+
},
|
1196
|
+
"description": {
|
1197
|
+
"type": "string"
|
1198
|
+
}
|
1199
|
+
},
|
1200
|
+
"patternProperties": {
|
1201
|
+
"^x-": {
|
1202
|
+
"$ref": "#/definitions/vendorExtension"
|
1203
|
+
}
|
1204
|
+
}
|
1205
|
+
},
|
1206
|
+
"oauth2ImplicitSecurity": {
|
1207
|
+
"type": "object",
|
1208
|
+
"additionalProperties": false,
|
1209
|
+
"required": [
|
1210
|
+
"type",
|
1211
|
+
"flow",
|
1212
|
+
"authorizationUrl"
|
1213
|
+
],
|
1214
|
+
"properties": {
|
1215
|
+
"type": {
|
1216
|
+
"type": "string",
|
1217
|
+
"enum": [
|
1218
|
+
"oauth2"
|
1219
|
+
]
|
1220
|
+
},
|
1221
|
+
"flow": {
|
1222
|
+
"type": "string",
|
1223
|
+
"enum": [
|
1224
|
+
"implicit"
|
1225
|
+
]
|
1226
|
+
},
|
1227
|
+
"scopes": {
|
1228
|
+
"$ref": "#/definitions/oauth2Scopes"
|
1229
|
+
},
|
1230
|
+
"authorizationUrl": {
|
1231
|
+
"type": "string",
|
1232
|
+
"format": "uri"
|
1233
|
+
},
|
1234
|
+
"description": {
|
1235
|
+
"type": "string"
|
1236
|
+
}
|
1237
|
+
},
|
1238
|
+
"patternProperties": {
|
1239
|
+
"^x-": {
|
1240
|
+
"$ref": "#/definitions/vendorExtension"
|
1241
|
+
}
|
1242
|
+
}
|
1243
|
+
},
|
1244
|
+
"oauth2PasswordSecurity": {
|
1245
|
+
"type": "object",
|
1246
|
+
"additionalProperties": false,
|
1247
|
+
"required": [
|
1248
|
+
"type",
|
1249
|
+
"flow",
|
1250
|
+
"tokenUrl"
|
1251
|
+
],
|
1252
|
+
"properties": {
|
1253
|
+
"type": {
|
1254
|
+
"type": "string",
|
1255
|
+
"enum": [
|
1256
|
+
"oauth2"
|
1257
|
+
]
|
1258
|
+
},
|
1259
|
+
"flow": {
|
1260
|
+
"type": "string",
|
1261
|
+
"enum": [
|
1262
|
+
"password"
|
1263
|
+
]
|
1264
|
+
},
|
1265
|
+
"scopes": {
|
1266
|
+
"$ref": "#/definitions/oauth2Scopes"
|
1267
|
+
},
|
1268
|
+
"tokenUrl": {
|
1269
|
+
"type": "string",
|
1270
|
+
"format": "uri"
|
1271
|
+
},
|
1272
|
+
"description": {
|
1273
|
+
"type": "string"
|
1274
|
+
}
|
1275
|
+
},
|
1276
|
+
"patternProperties": {
|
1277
|
+
"^x-": {
|
1278
|
+
"$ref": "#/definitions/vendorExtension"
|
1279
|
+
}
|
1280
|
+
}
|
1281
|
+
},
|
1282
|
+
"oauth2ApplicationSecurity": {
|
1283
|
+
"type": "object",
|
1284
|
+
"additionalProperties": false,
|
1285
|
+
"required": [
|
1286
|
+
"type",
|
1287
|
+
"flow",
|
1288
|
+
"tokenUrl"
|
1289
|
+
],
|
1290
|
+
"properties": {
|
1291
|
+
"type": {
|
1292
|
+
"type": "string",
|
1293
|
+
"enum": [
|
1294
|
+
"oauth2"
|
1295
|
+
]
|
1296
|
+
},
|
1297
|
+
"flow": {
|
1298
|
+
"type": "string",
|
1299
|
+
"enum": [
|
1300
|
+
"application"
|
1301
|
+
]
|
1302
|
+
},
|
1303
|
+
"scopes": {
|
1304
|
+
"$ref": "#/definitions/oauth2Scopes"
|
1305
|
+
},
|
1306
|
+
"tokenUrl": {
|
1307
|
+
"type": "string",
|
1308
|
+
"format": "uri"
|
1309
|
+
},
|
1310
|
+
"description": {
|
1311
|
+
"type": "string"
|
1312
|
+
}
|
1313
|
+
},
|
1314
|
+
"patternProperties": {
|
1315
|
+
"^x-": {
|
1316
|
+
"$ref": "#/definitions/vendorExtension"
|
1317
|
+
}
|
1318
|
+
}
|
1319
|
+
},
|
1320
|
+
"oauth2AccessCodeSecurity": {
|
1321
|
+
"type": "object",
|
1322
|
+
"additionalProperties": false,
|
1323
|
+
"required": [
|
1324
|
+
"type",
|
1325
|
+
"flow",
|
1326
|
+
"authorizationUrl",
|
1327
|
+
"tokenUrl"
|
1328
|
+
],
|
1329
|
+
"properties": {
|
1330
|
+
"type": {
|
1331
|
+
"type": "string",
|
1332
|
+
"enum": [
|
1333
|
+
"oauth2"
|
1334
|
+
]
|
1335
|
+
},
|
1336
|
+
"flow": {
|
1337
|
+
"type": "string",
|
1338
|
+
"enum": [
|
1339
|
+
"accessCode"
|
1340
|
+
]
|
1341
|
+
},
|
1342
|
+
"scopes": {
|
1343
|
+
"$ref": "#/definitions/oauth2Scopes"
|
1344
|
+
},
|
1345
|
+
"authorizationUrl": {
|
1346
|
+
"type": "string",
|
1347
|
+
"format": "uri"
|
1348
|
+
},
|
1349
|
+
"tokenUrl": {
|
1350
|
+
"type": "string",
|
1351
|
+
"format": "uri"
|
1352
|
+
},
|
1353
|
+
"description": {
|
1354
|
+
"type": "string"
|
1355
|
+
}
|
1356
|
+
},
|
1357
|
+
"patternProperties": {
|
1358
|
+
"^x-": {
|
1359
|
+
"$ref": "#/definitions/vendorExtension"
|
1360
|
+
}
|
1361
|
+
}
|
1362
|
+
},
|
1363
|
+
"oauth2Scopes": {
|
1364
|
+
"type": "object",
|
1365
|
+
"additionalProperties": {
|
1366
|
+
"type": "string"
|
1367
|
+
}
|
1368
|
+
},
|
1369
|
+
"mediaTypeList": {
|
1370
|
+
"type": "array",
|
1371
|
+
"items": {
|
1372
|
+
"$ref": "#/definitions/mimeType"
|
1373
|
+
},
|
1374
|
+
"uniqueItems": true
|
1375
|
+
},
|
1376
|
+
"parametersList": {
|
1377
|
+
"type": "array",
|
1378
|
+
"description": "The parameters needed to send a valid API call.",
|
1379
|
+
"minItems": 1,
|
1380
|
+
"additionalItems": false,
|
1381
|
+
"items": {
|
1382
|
+
"oneOf": [
|
1383
|
+
{
|
1384
|
+
"$ref": "#/definitions/parameter"
|
1385
|
+
},
|
1386
|
+
{
|
1387
|
+
"$ref": "#/definitions/jsonReference"
|
1388
|
+
}
|
1389
|
+
]
|
1390
|
+
},
|
1391
|
+
"uniqueItems": true
|
1392
|
+
},
|
1393
|
+
"schemesList": {
|
1394
|
+
"type": "array",
|
1395
|
+
"description": "The transfer protocol of the API.",
|
1396
|
+
"items": {
|
1397
|
+
"type": "string",
|
1398
|
+
"enum": [
|
1399
|
+
"http",
|
1400
|
+
"https",
|
1401
|
+
"ws",
|
1402
|
+
"wss"
|
1403
|
+
]
|
1404
|
+
},
|
1405
|
+
"uniqueItems": true
|
1406
|
+
},
|
1407
|
+
"collectionFormat": {
|
1408
|
+
"type": "string",
|
1409
|
+
"enum": [
|
1410
|
+
"csv",
|
1411
|
+
"ssv",
|
1412
|
+
"tsv",
|
1413
|
+
"pipes"
|
1414
|
+
],
|
1415
|
+
"default": "csv"
|
1416
|
+
},
|
1417
|
+
"collectionFormatWithMulti": {
|
1418
|
+
"type": "string",
|
1419
|
+
"enum": [
|
1420
|
+
"csv",
|
1421
|
+
"ssv",
|
1422
|
+
"tsv",
|
1423
|
+
"pipes",
|
1424
|
+
"multi"
|
1425
|
+
],
|
1426
|
+
"default": "csv"
|
1427
|
+
},
|
1428
|
+
"title": {
|
1429
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/title"
|
1430
|
+
},
|
1431
|
+
"description": {
|
1432
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/description"
|
1433
|
+
},
|
1434
|
+
"default": {
|
1435
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/default"
|
1436
|
+
},
|
1437
|
+
"multipleOf": {
|
1438
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
|
1439
|
+
},
|
1440
|
+
"maximum": {
|
1441
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
|
1442
|
+
},
|
1443
|
+
"exclusiveMaximum": {
|
1444
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
|
1445
|
+
},
|
1446
|
+
"minimum": {
|
1447
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
|
1448
|
+
},
|
1449
|
+
"exclusiveMinimum": {
|
1450
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
|
1451
|
+
},
|
1452
|
+
"maxLength": {
|
1453
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
1454
|
+
},
|
1455
|
+
"minLength": {
|
1456
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
1457
|
+
},
|
1458
|
+
"pattern": {
|
1459
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
|
1460
|
+
},
|
1461
|
+
"maxItems": {
|
1462
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
1463
|
+
},
|
1464
|
+
"minItems": {
|
1465
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
1466
|
+
},
|
1467
|
+
"uniqueItems": {
|
1468
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
|
1469
|
+
},
|
1470
|
+
"enum": {
|
1471
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
|
1472
|
+
},
|
1473
|
+
"jsonReference": {
|
1474
|
+
"type": "object",
|
1475
|
+
"additionalProperties": false,
|
1476
|
+
"properties": {
|
1477
|
+
"$ref": {
|
527
1478
|
"type": "string"
|
528
1479
|
}
|
529
1480
|
}
|
530
1481
|
}
|
531
1482
|
}
|
532
|
-
}
|
1483
|
+
}
|