3scale_toolbox 0.7.0 → 0.8.0
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/README.md +7 -1
- data/lib/3scale_toolbox.rb +2 -0
- data/lib/3scale_toolbox/3scale_client_factory.rb +9 -5
- data/lib/3scale_toolbox/base_command.rb +5 -1
- data/lib/3scale_toolbox/cli.rb +8 -4
- data/lib/3scale_toolbox/commands/3scale_command.rb +6 -0
- data/lib/3scale_toolbox/commands/copy_command.rb +4 -0
- data/lib/3scale_toolbox/commands/import_command.rb +4 -0
- data/lib/3scale_toolbox/commands/import_command/openapi.rb +23 -11
- data/lib/3scale_toolbox/commands/import_command/openapi/create_activedocs_step.rb +4 -2
- data/lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb +6 -1
- data/lib/3scale_toolbox/commands/import_command/openapi/method.rb +1 -1
- data/lib/3scale_toolbox/commands/import_command/openapi/resource_reader.rb +2 -0
- data/lib/3scale_toolbox/commands/import_command/openapi/step.rb +12 -0
- data/lib/3scale_toolbox/commands/import_command/openapi/threescale_api_spec.rb +36 -1
- data/lib/3scale_toolbox/commands/import_command/openapi/update_policies_step.rb +89 -0
- data/lib/3scale_toolbox/commands/import_command/openapi/update_service_oidc_conf_step.rb +59 -0
- data/lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb +68 -0
- data/lib/3scale_toolbox/commands/update_command.rb +4 -0
- data/lib/3scale_toolbox/entities/service.rb +29 -4
- data/lib/3scale_toolbox/helper.rb +6 -0
- data/lib/3scale_toolbox/proxy_logger.rb +20 -0
- data/lib/3scale_toolbox/swagger.rb +1 -0
- data/lib/3scale_toolbox/swagger/swagger.rb +121 -0
- data/lib/3scale_toolbox/tasks/update_service_settings_task.rb +19 -2
- data/lib/3scale_toolbox/version.rb +1 -1
- data/resources/swagger_meta_schema.json +1607 -0
- metadata +15 -8
@@ -0,0 +1,59 @@
|
|
1
|
+
module ThreeScaleToolbox
|
2
|
+
module Commands
|
3
|
+
module ImportCommand
|
4
|
+
module OpenAPI
|
5
|
+
class UpdateServiceOidcConfStep
|
6
|
+
include Step
|
7
|
+
|
8
|
+
##
|
9
|
+
# Updates OIDC config
|
10
|
+
def call
|
11
|
+
# setting required attrs, operation is idempotent
|
12
|
+
oidc_settings = {}
|
13
|
+
|
14
|
+
add_flow_settings(oidc_settings)
|
15
|
+
|
16
|
+
return unless oidc_settings.size.positive?
|
17
|
+
|
18
|
+
res = service.update_oidc oidc_settings
|
19
|
+
if (errors = res['errors'])
|
20
|
+
raise ThreeScaleToolbox::Error, "Service oidc has not been updated. #{errors}"
|
21
|
+
end
|
22
|
+
|
23
|
+
puts 'Service oidc updated'
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def add_flow_settings(settings)
|
29
|
+
# only applies to oauth2 sec type
|
30
|
+
return if security.nil? || security.type != 'oauth2'
|
31
|
+
|
32
|
+
oidc_configuration = {
|
33
|
+
standard_flow_enabled: false,
|
34
|
+
implicit_flow_enabled: false,
|
35
|
+
service_accounts_enabled: false,
|
36
|
+
direct_access_grants_enabled: false
|
37
|
+
}.merge(flow => true)
|
38
|
+
settings.merge!(oidc_configuration)
|
39
|
+
end
|
40
|
+
|
41
|
+
def flow
|
42
|
+
case (flow_f = security.flow)
|
43
|
+
when 'implicit'
|
44
|
+
:implicit_flow_enabled
|
45
|
+
when 'password'
|
46
|
+
:direct_access_grants_enabled
|
47
|
+
when 'application'
|
48
|
+
:service_accounts_enabled
|
49
|
+
when 'accessCode'
|
50
|
+
:standard_flow_enabled
|
51
|
+
else
|
52
|
+
raise ThreeScaleToolbox::Error, "Unexpected security flow field #{flow_f}"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module ThreeScaleToolbox
|
2
|
+
module Commands
|
3
|
+
module ImportCommand
|
4
|
+
module OpenAPI
|
5
|
+
class UpdateServiceProxyStep
|
6
|
+
include Step
|
7
|
+
|
8
|
+
##
|
9
|
+
# Updates Proxy config
|
10
|
+
def call
|
11
|
+
# setting required attrs, operation is idempotent
|
12
|
+
proxy_settings = {}
|
13
|
+
|
14
|
+
add_api_backend_settings(proxy_settings)
|
15
|
+
add_security_proxy_settings(proxy_settings)
|
16
|
+
|
17
|
+
return unless proxy_settings.size.positive?
|
18
|
+
|
19
|
+
res = service.update_proxy proxy_settings
|
20
|
+
if (errors = res['errors'])
|
21
|
+
raise ThreeScaleToolbox::Error, "Service proxy has not been updated. #{errors}"
|
22
|
+
end
|
23
|
+
|
24
|
+
puts 'Service proxy updated'
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def add_api_backend_settings(settings)
|
30
|
+
return if api_spec.host.nil?
|
31
|
+
|
32
|
+
scheme = api_spec.schemes.first || 'https'
|
33
|
+
host = api_spec.host
|
34
|
+
|
35
|
+
settings[:api_backend] = "#{scheme}://#{host}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def add_security_proxy_settings(settings)
|
39
|
+
# nothing to add on proxy settings when no security required in openapi
|
40
|
+
return if security.nil?
|
41
|
+
|
42
|
+
case security.type
|
43
|
+
when 'oauth2'
|
44
|
+
settings[:credentials_location] = 'headers'
|
45
|
+
settings[:oidc_issuer_endpoint] = oidc_issuer_endpoint unless oidc_issuer_endpoint.nil?
|
46
|
+
when 'apiKey'
|
47
|
+
settings[:credentials_location] = credentials_location
|
48
|
+
settings[:auth_user_key] = security.name
|
49
|
+
else
|
50
|
+
raise ThreeScaleToolbox::Error, "Unexpected security scheme type #{security.type}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def credentials_location
|
55
|
+
case (in_f = security.in_f)
|
56
|
+
when 'query'
|
57
|
+
'query'
|
58
|
+
when 'header'
|
59
|
+
'headers'
|
60
|
+
else
|
61
|
+
raise ThreeScaleToolbox::Error, "Unexpected security in_f field #{in_f}"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -12,6 +12,10 @@ module ThreeScaleToolbox
|
|
12
12
|
usage 'update <sub-command> [options]'
|
13
13
|
summary 'update super command'
|
14
14
|
description 'Update 3scale entities between tenants'
|
15
|
+
|
16
|
+
run do |_opts, _args, cmd|
|
17
|
+
puts cmd.help
|
18
|
+
end
|
15
19
|
end
|
16
20
|
end
|
17
21
|
add_subcommand(UpdateServiceSubcommand)
|
@@ -10,10 +10,12 @@ module ThreeScaleToolbox
|
|
10
10
|
|
11
11
|
class << self
|
12
12
|
def create(remote:, service:, system_name:)
|
13
|
-
svc_obj =
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
svc_obj = create_service(
|
14
|
+
remote: remote,
|
15
|
+
service: copy_service_params(service, system_name)
|
16
|
+
)
|
17
|
+
if (errors = svc_obj['errors'])
|
18
|
+
raise ThreeScaleToolbox::Error, "Service has not been saved. Errors: #{errors}" \
|
17
19
|
end
|
18
20
|
|
19
21
|
new(id: svc_obj.fetch('id'), remote: remote)
|
@@ -21,6 +23,21 @@ module ThreeScaleToolbox
|
|
21
23
|
|
22
24
|
private
|
23
25
|
|
26
|
+
def create_service(remote:, service:)
|
27
|
+
svc_obj = remote.create_service service
|
28
|
+
|
29
|
+
# Source and target remotes might not allow same set of deployment options
|
30
|
+
# Invalid deployment option check
|
31
|
+
# use default deployment_option
|
32
|
+
if (errors = svc_obj['errors']) &&
|
33
|
+
ThreeScaleToolbox::Helper.service_invalid_deployment_option?(errors)
|
34
|
+
service.delete('deployment_option')
|
35
|
+
svc_obj = remote.create_service(service)
|
36
|
+
end
|
37
|
+
|
38
|
+
svc_obj
|
39
|
+
end
|
40
|
+
|
24
41
|
def copy_service_params(original, system_name)
|
25
42
|
service_params = Helper.filter_params(VALID_PARAMS, original)
|
26
43
|
service_params.tap do |hash|
|
@@ -124,6 +141,14 @@ module ThreeScaleToolbox
|
|
124
141
|
activedoc['service_id'] == id.to_i
|
125
142
|
end
|
126
143
|
end
|
144
|
+
|
145
|
+
def show_oidc
|
146
|
+
remote.show_oidc id
|
147
|
+
end
|
148
|
+
|
149
|
+
def update_oidc(oidc_settings)
|
150
|
+
remote.update_oidc(id, oidc_settings)
|
151
|
+
end
|
127
152
|
end
|
128
153
|
end
|
129
154
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module ThreeScaleToolbox
|
2
|
+
class ProxyLogger < BasicObject
|
3
|
+
def initialize(subject)
|
4
|
+
@subject = subject
|
5
|
+
end
|
6
|
+
|
7
|
+
def method_missing(name, *args)
|
8
|
+
start_time = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
|
9
|
+
result = @subject.public_send(name, *args)
|
10
|
+
ensure
|
11
|
+
end_time = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC) - start_time
|
12
|
+
::Kernel.puts "-- call #{name} args |#{args.inspect[0..100]}| response |#{result.inspect[0..100]}| - (#{end_time}s)"
|
13
|
+
result
|
14
|
+
end
|
15
|
+
|
16
|
+
def respond_to_missing?(method_name, include_private = false)
|
17
|
+
super
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require '3scale_toolbox/swagger/swagger'
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require 'json-schema'
|
2
|
+
|
3
|
+
module ThreeScaleToolbox
|
4
|
+
module Swagger
|
5
|
+
META_SCHEMA_PATH = File.expand_path('../../../resources/swagger_meta_schema.json', __dir__)
|
6
|
+
|
7
|
+
def self.build(raw_specification, validate: true)
|
8
|
+
if validate
|
9
|
+
meta_schema = JSON.parse(File.read(META_SCHEMA_PATH))
|
10
|
+
JSON::Validator.validate!(meta_schema, raw_specification)
|
11
|
+
end
|
12
|
+
|
13
|
+
Specification.new(raw_specification)
|
14
|
+
end
|
15
|
+
|
16
|
+
class Info
|
17
|
+
attr_reader :title, :description
|
18
|
+
|
19
|
+
def initialize(title:, description:)
|
20
|
+
@title = title
|
21
|
+
@description = description
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Operation
|
26
|
+
attr_reader :verb, :operation_id, :path
|
27
|
+
|
28
|
+
def initialize(verb:, operation_id:, path:)
|
29
|
+
@verb = verb
|
30
|
+
@operation_id = operation_id
|
31
|
+
@path = path
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class SecurityRequirement
|
36
|
+
attr_reader :id, :type, :name, :in_f, :flow, :scopes
|
37
|
+
|
38
|
+
def initialize(id:, type:, name: nil, in_f: nil, flow: nil, scopes: [])
|
39
|
+
@id = id
|
40
|
+
@type = type
|
41
|
+
@name = name
|
42
|
+
@in_f = in_f
|
43
|
+
@flow = flow
|
44
|
+
@scopes = scopes
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class Specification
|
49
|
+
attr_reader :raw
|
50
|
+
|
51
|
+
def initialize(raw_resource)
|
52
|
+
@raw = raw_resource
|
53
|
+
end
|
54
|
+
|
55
|
+
def base_path
|
56
|
+
raw['basePath']
|
57
|
+
end
|
58
|
+
|
59
|
+
def host
|
60
|
+
raw['host']
|
61
|
+
end
|
62
|
+
|
63
|
+
def schemes
|
64
|
+
raw['schemes']
|
65
|
+
end
|
66
|
+
|
67
|
+
def info
|
68
|
+
@info ||= parse_info(raw['info'])
|
69
|
+
end
|
70
|
+
|
71
|
+
def operations
|
72
|
+
@operations ||= parse_operations
|
73
|
+
end
|
74
|
+
|
75
|
+
def global_security_requirements
|
76
|
+
@global_security_requirements ||= parse_global_security_reqs
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
def parse_operations
|
82
|
+
raw['paths'].flat_map do |path, path_obj|
|
83
|
+
path_obj.flat_map do |method, operation|
|
84
|
+
next unless %w[get head post put patch delete trace options].include? method
|
85
|
+
|
86
|
+
Operation.new(verb: method, path: path, operation_id: operation['operationId'])
|
87
|
+
end.compact
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def parse_info(info)
|
92
|
+
Info.new(title: info['title'], description: info['description'])
|
93
|
+
end
|
94
|
+
|
95
|
+
def parse_global_security_reqs
|
96
|
+
security_requirements.flat_map do |sec_req|
|
97
|
+
sec_req.map do |sec_item_name, sec_item|
|
98
|
+
sec_def = fetch_security_definition(sec_item_name)
|
99
|
+
SecurityRequirement.new(id: sec_item_name, type: sec_def['type'],
|
100
|
+
name: sec_def['name'], in_f: sec_def['in'],
|
101
|
+
flow: sec_def['flow'], scopes: sec_item)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def fetch_security_definition(name)
|
107
|
+
security_definitions.fetch(name) do |el|
|
108
|
+
raise ThreeScaleToolbox::Error, "Swagger parsing error: #{el} not found in security definitions"
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def security_requirements
|
113
|
+
raw['security'] || []
|
114
|
+
end
|
115
|
+
|
116
|
+
def security_definitions
|
117
|
+
raw['securityDefinitions'] || {}
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
@@ -11,14 +11,31 @@ module ThreeScaleToolbox
|
|
11
11
|
|
12
12
|
def call
|
13
13
|
source_obj = source.show_service
|
14
|
-
|
15
|
-
|
14
|
+
svc_obj = update_service target_service_params(source_obj)
|
15
|
+
if (errors = svc_obj['errors'])
|
16
|
+
raise ThreeScaleToolbox::Error, "Service has not been saved. Errors: #{errors}" \
|
17
|
+
end
|
16
18
|
|
17
19
|
puts "updated service settings for service id #{source.id}..."
|
18
20
|
end
|
19
21
|
|
20
22
|
private
|
21
23
|
|
24
|
+
def update_service(service)
|
25
|
+
svc_obj = target.update_service service
|
26
|
+
|
27
|
+
# Source and target remotes might not allow same set of deployment options
|
28
|
+
# Invalid deployment option check
|
29
|
+
# use default deployment_option
|
30
|
+
if (errors = svc_obj['errors']) &&
|
31
|
+
ThreeScaleToolbox::Helper.service_invalid_deployment_option?(errors)
|
32
|
+
service.delete('deployment_option')
|
33
|
+
svc_obj = target.update_service(service)
|
34
|
+
end
|
35
|
+
|
36
|
+
svc_obj
|
37
|
+
end
|
38
|
+
|
22
39
|
# system name only included when specified from options
|
23
40
|
def target_service_params(source)
|
24
41
|
target_svc_obj = ThreeScaleToolbox::Helper.filter_params(Entities::Service::VALID_PARAMS, source)
|
@@ -0,0 +1,1607 @@
|
|
1
|
+
{
|
2
|
+
"title": "A JSON Schema for Swagger 2.0 API.",
|
3
|
+
"id": "http://swagger.io/v2/schema.json#",
|
4
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
5
|
+
"type": "object",
|
6
|
+
"required": [
|
7
|
+
"swagger",
|
8
|
+
"info",
|
9
|
+
"paths"
|
10
|
+
],
|
11
|
+
"additionalProperties": false,
|
12
|
+
"patternProperties": {
|
13
|
+
"^x-": {
|
14
|
+
"$ref": "#/definitions/vendorExtension"
|
15
|
+
}
|
16
|
+
},
|
17
|
+
"properties": {
|
18
|
+
"swagger": {
|
19
|
+
"type": "string",
|
20
|
+
"enum": [
|
21
|
+
"2.0"
|
22
|
+
],
|
23
|
+
"description": "The Swagger version of this document."
|
24
|
+
},
|
25
|
+
"info": {
|
26
|
+
"$ref": "#/definitions/info"
|
27
|
+
},
|
28
|
+
"host": {
|
29
|
+
"type": "string",
|
30
|
+
"pattern": "^[^{}/ :\\\\]+(?::\\d+)?$",
|
31
|
+
"description": "The host (name or ip) of the API. Example: 'swagger.io'"
|
32
|
+
},
|
33
|
+
"basePath": {
|
34
|
+
"type": "string",
|
35
|
+
"pattern": "^/",
|
36
|
+
"description": "The base path to the API. Example: '/api'."
|
37
|
+
},
|
38
|
+
"schemes": {
|
39
|
+
"$ref": "#/definitions/schemesList"
|
40
|
+
},
|
41
|
+
"consumes": {
|
42
|
+
"description": "A list of MIME types accepted by the API.",
|
43
|
+
"allOf": [
|
44
|
+
{
|
45
|
+
"$ref": "#/definitions/mediaTypeList"
|
46
|
+
}
|
47
|
+
]
|
48
|
+
},
|
49
|
+
"produces": {
|
50
|
+
"description": "A list of MIME types the API can produce.",
|
51
|
+
"allOf": [
|
52
|
+
{
|
53
|
+
"$ref": "#/definitions/mediaTypeList"
|
54
|
+
}
|
55
|
+
]
|
56
|
+
},
|
57
|
+
"paths": {
|
58
|
+
"$ref": "#/definitions/paths"
|
59
|
+
},
|
60
|
+
"definitions": {
|
61
|
+
"$ref": "#/definitions/definitions"
|
62
|
+
},
|
63
|
+
"parameters": {
|
64
|
+
"$ref": "#/definitions/parameterDefinitions"
|
65
|
+
},
|
66
|
+
"responses": {
|
67
|
+
"$ref": "#/definitions/responseDefinitions"
|
68
|
+
},
|
69
|
+
"security": {
|
70
|
+
"$ref": "#/definitions/security"
|
71
|
+
},
|
72
|
+
"securityDefinitions": {
|
73
|
+
"$ref": "#/definitions/securityDefinitions"
|
74
|
+
},
|
75
|
+
"tags": {
|
76
|
+
"type": "array",
|
77
|
+
"items": {
|
78
|
+
"$ref": "#/definitions/tag"
|
79
|
+
},
|
80
|
+
"uniqueItems": true
|
81
|
+
},
|
82
|
+
"externalDocs": {
|
83
|
+
"$ref": "#/definitions/externalDocs"
|
84
|
+
}
|
85
|
+
},
|
86
|
+
"definitions": {
|
87
|
+
"info": {
|
88
|
+
"type": "object",
|
89
|
+
"description": "General information about the API.",
|
90
|
+
"required": [
|
91
|
+
"version",
|
92
|
+
"title"
|
93
|
+
],
|
94
|
+
"additionalProperties": false,
|
95
|
+
"patternProperties": {
|
96
|
+
"^x-": {
|
97
|
+
"$ref": "#/definitions/vendorExtension"
|
98
|
+
}
|
99
|
+
},
|
100
|
+
"properties": {
|
101
|
+
"title": {
|
102
|
+
"type": "string",
|
103
|
+
"description": "A unique and precise title of the API."
|
104
|
+
},
|
105
|
+
"version": {
|
106
|
+
"type": "string",
|
107
|
+
"description": "A semantic version number of the API."
|
108
|
+
},
|
109
|
+
"description": {
|
110
|
+
"type": "string",
|
111
|
+
"description": "A longer description of the API. Should be different from the title. GitHub Flavored Markdown is allowed."
|
112
|
+
},
|
113
|
+
"termsOfService": {
|
114
|
+
"type": "string",
|
115
|
+
"description": "The terms of service for the API."
|
116
|
+
},
|
117
|
+
"contact": {
|
118
|
+
"$ref": "#/definitions/contact"
|
119
|
+
},
|
120
|
+
"license": {
|
121
|
+
"$ref": "#/definitions/license"
|
122
|
+
}
|
123
|
+
}
|
124
|
+
},
|
125
|
+
"contact": {
|
126
|
+
"type": "object",
|
127
|
+
"description": "Contact information for the owners of the API.",
|
128
|
+
"additionalProperties": false,
|
129
|
+
"properties": {
|
130
|
+
"name": {
|
131
|
+
"type": "string",
|
132
|
+
"description": "The identifying name of the contact person/organization."
|
133
|
+
},
|
134
|
+
"url": {
|
135
|
+
"type": "string",
|
136
|
+
"description": "The URL pointing to the contact information.",
|
137
|
+
"format": "uri"
|
138
|
+
},
|
139
|
+
"email": {
|
140
|
+
"type": "string",
|
141
|
+
"description": "The email address of the contact person/organization.",
|
142
|
+
"format": "email"
|
143
|
+
}
|
144
|
+
},
|
145
|
+
"patternProperties": {
|
146
|
+
"^x-": {
|
147
|
+
"$ref": "#/definitions/vendorExtension"
|
148
|
+
}
|
149
|
+
}
|
150
|
+
},
|
151
|
+
"license": {
|
152
|
+
"type": "object",
|
153
|
+
"required": [
|
154
|
+
"name"
|
155
|
+
],
|
156
|
+
"additionalProperties": false,
|
157
|
+
"properties": {
|
158
|
+
"name": {
|
159
|
+
"type": "string",
|
160
|
+
"description": "The name of the license type. It's encouraged to use an OSI compatible license."
|
161
|
+
},
|
162
|
+
"url": {
|
163
|
+
"type": "string",
|
164
|
+
"description": "The URL pointing to the license.",
|
165
|
+
"format": "uri"
|
166
|
+
}
|
167
|
+
},
|
168
|
+
"patternProperties": {
|
169
|
+
"^x-": {
|
170
|
+
"$ref": "#/definitions/vendorExtension"
|
171
|
+
}
|
172
|
+
}
|
173
|
+
},
|
174
|
+
"paths": {
|
175
|
+
"type": "object",
|
176
|
+
"description": "Relative paths to the individual endpoints. They must be relative to the 'basePath'.",
|
177
|
+
"patternProperties": {
|
178
|
+
"^x-": {
|
179
|
+
"$ref": "#/definitions/vendorExtension"
|
180
|
+
},
|
181
|
+
"^/": {
|
182
|
+
"$ref": "#/definitions/pathItem"
|
183
|
+
}
|
184
|
+
},
|
185
|
+
"additionalProperties": false
|
186
|
+
},
|
187
|
+
"definitions": {
|
188
|
+
"type": "object",
|
189
|
+
"additionalProperties": {
|
190
|
+
"$ref": "#/definitions/schema"
|
191
|
+
},
|
192
|
+
"description": "One or more JSON objects describing the schemas being consumed and produced by the API."
|
193
|
+
},
|
194
|
+
"parameterDefinitions": {
|
195
|
+
"type": "object",
|
196
|
+
"additionalProperties": {
|
197
|
+
"$ref": "#/definitions/parameter"
|
198
|
+
},
|
199
|
+
"description": "One or more JSON representations for parameters"
|
200
|
+
},
|
201
|
+
"responseDefinitions": {
|
202
|
+
"type": "object",
|
203
|
+
"additionalProperties": {
|
204
|
+
"$ref": "#/definitions/response"
|
205
|
+
},
|
206
|
+
"description": "One or more JSON representations for responses"
|
207
|
+
},
|
208
|
+
"externalDocs": {
|
209
|
+
"type": "object",
|
210
|
+
"additionalProperties": false,
|
211
|
+
"description": "information about external documentation",
|
212
|
+
"required": [
|
213
|
+
"url"
|
214
|
+
],
|
215
|
+
"properties": {
|
216
|
+
"description": {
|
217
|
+
"type": "string"
|
218
|
+
},
|
219
|
+
"url": {
|
220
|
+
"type": "string",
|
221
|
+
"format": "uri"
|
222
|
+
}
|
223
|
+
},
|
224
|
+
"patternProperties": {
|
225
|
+
"^x-": {
|
226
|
+
"$ref": "#/definitions/vendorExtension"
|
227
|
+
}
|
228
|
+
}
|
229
|
+
},
|
230
|
+
"examples": {
|
231
|
+
"type": "object",
|
232
|
+
"additionalProperties": true
|
233
|
+
},
|
234
|
+
"mimeType": {
|
235
|
+
"type": "string",
|
236
|
+
"description": "The MIME type of the HTTP message."
|
237
|
+
},
|
238
|
+
"operation": {
|
239
|
+
"type": "object",
|
240
|
+
"required": [
|
241
|
+
"responses"
|
242
|
+
],
|
243
|
+
"additionalProperties": false,
|
244
|
+
"patternProperties": {
|
245
|
+
"^x-": {
|
246
|
+
"$ref": "#/definitions/vendorExtension"
|
247
|
+
}
|
248
|
+
},
|
249
|
+
"properties": {
|
250
|
+
"tags": {
|
251
|
+
"type": "array",
|
252
|
+
"items": {
|
253
|
+
"type": "string"
|
254
|
+
},
|
255
|
+
"uniqueItems": true
|
256
|
+
},
|
257
|
+
"summary": {
|
258
|
+
"type": "string",
|
259
|
+
"description": "A brief summary of the operation."
|
260
|
+
},
|
261
|
+
"description": {
|
262
|
+
"type": "string",
|
263
|
+
"description": "A longer description of the operation, GitHub Flavored Markdown is allowed."
|
264
|
+
},
|
265
|
+
"externalDocs": {
|
266
|
+
"$ref": "#/definitions/externalDocs"
|
267
|
+
},
|
268
|
+
"operationId": {
|
269
|
+
"type": "string",
|
270
|
+
"description": "A unique identifier of the operation."
|
271
|
+
},
|
272
|
+
"produces": {
|
273
|
+
"description": "A list of MIME types the API can produce.",
|
274
|
+
"allOf": [
|
275
|
+
{
|
276
|
+
"$ref": "#/definitions/mediaTypeList"
|
277
|
+
}
|
278
|
+
]
|
279
|
+
},
|
280
|
+
"consumes": {
|
281
|
+
"description": "A list of MIME types the API can consume.",
|
282
|
+
"allOf": [
|
283
|
+
{
|
284
|
+
"$ref": "#/definitions/mediaTypeList"
|
285
|
+
}
|
286
|
+
]
|
287
|
+
},
|
288
|
+
"parameters": {
|
289
|
+
"$ref": "#/definitions/parametersList"
|
290
|
+
},
|
291
|
+
"responses": {
|
292
|
+
"$ref": "#/definitions/responses"
|
293
|
+
},
|
294
|
+
"schemes": {
|
295
|
+
"$ref": "#/definitions/schemesList"
|
296
|
+
},
|
297
|
+
"deprecated": {
|
298
|
+
"type": "boolean",
|
299
|
+
"default": false
|
300
|
+
},
|
301
|
+
"security": {
|
302
|
+
"$ref": "#/definitions/security"
|
303
|
+
}
|
304
|
+
}
|
305
|
+
},
|
306
|
+
"pathItem": {
|
307
|
+
"type": "object",
|
308
|
+
"additionalProperties": false,
|
309
|
+
"patternProperties": {
|
310
|
+
"^x-": {
|
311
|
+
"$ref": "#/definitions/vendorExtension"
|
312
|
+
}
|
313
|
+
},
|
314
|
+
"properties": {
|
315
|
+
"$ref": {
|
316
|
+
"type": "string"
|
317
|
+
},
|
318
|
+
"get": {
|
319
|
+
"$ref": "#/definitions/operation"
|
320
|
+
},
|
321
|
+
"put": {
|
322
|
+
"$ref": "#/definitions/operation"
|
323
|
+
},
|
324
|
+
"post": {
|
325
|
+
"$ref": "#/definitions/operation"
|
326
|
+
},
|
327
|
+
"delete": {
|
328
|
+
"$ref": "#/definitions/operation"
|
329
|
+
},
|
330
|
+
"options": {
|
331
|
+
"$ref": "#/definitions/operation"
|
332
|
+
},
|
333
|
+
"head": {
|
334
|
+
"$ref": "#/definitions/operation"
|
335
|
+
},
|
336
|
+
"patch": {
|
337
|
+
"$ref": "#/definitions/operation"
|
338
|
+
},
|
339
|
+
"parameters": {
|
340
|
+
"$ref": "#/definitions/parametersList"
|
341
|
+
}
|
342
|
+
}
|
343
|
+
},
|
344
|
+
"responses": {
|
345
|
+
"type": "object",
|
346
|
+
"description": "Response objects names can either be any valid HTTP status code or 'default'.",
|
347
|
+
"minProperties": 1,
|
348
|
+
"additionalProperties": false,
|
349
|
+
"patternProperties": {
|
350
|
+
"^([0-9]{3})$|^(default)$": {
|
351
|
+
"$ref": "#/definitions/responseValue"
|
352
|
+
},
|
353
|
+
"^x-": {
|
354
|
+
"$ref": "#/definitions/vendorExtension"
|
355
|
+
}
|
356
|
+
},
|
357
|
+
"not": {
|
358
|
+
"type": "object",
|
359
|
+
"additionalProperties": false,
|
360
|
+
"patternProperties": {
|
361
|
+
"^x-": {
|
362
|
+
"$ref": "#/definitions/vendorExtension"
|
363
|
+
}
|
364
|
+
}
|
365
|
+
}
|
366
|
+
},
|
367
|
+
"responseValue": {
|
368
|
+
"oneOf": [
|
369
|
+
{
|
370
|
+
"$ref": "#/definitions/response"
|
371
|
+
},
|
372
|
+
{
|
373
|
+
"$ref": "#/definitions/jsonReference"
|
374
|
+
}
|
375
|
+
]
|
376
|
+
},
|
377
|
+
"response": {
|
378
|
+
"type": "object",
|
379
|
+
"required": [
|
380
|
+
"description"
|
381
|
+
],
|
382
|
+
"properties": {
|
383
|
+
"description": {
|
384
|
+
"type": "string"
|
385
|
+
},
|
386
|
+
"schema": {
|
387
|
+
"oneOf": [
|
388
|
+
{
|
389
|
+
"$ref": "#/definitions/schema"
|
390
|
+
},
|
391
|
+
{
|
392
|
+
"$ref": "#/definitions/fileSchema"
|
393
|
+
}
|
394
|
+
]
|
395
|
+
},
|
396
|
+
"headers": {
|
397
|
+
"$ref": "#/definitions/headers"
|
398
|
+
},
|
399
|
+
"examples": {
|
400
|
+
"$ref": "#/definitions/examples"
|
401
|
+
}
|
402
|
+
},
|
403
|
+
"additionalProperties": false,
|
404
|
+
"patternProperties": {
|
405
|
+
"^x-": {
|
406
|
+
"$ref": "#/definitions/vendorExtension"
|
407
|
+
}
|
408
|
+
}
|
409
|
+
},
|
410
|
+
"headers": {
|
411
|
+
"type": "object",
|
412
|
+
"additionalProperties": {
|
413
|
+
"$ref": "#/definitions/header"
|
414
|
+
}
|
415
|
+
},
|
416
|
+
"header": {
|
417
|
+
"type": "object",
|
418
|
+
"additionalProperties": false,
|
419
|
+
"required": [
|
420
|
+
"type"
|
421
|
+
],
|
422
|
+
"properties": {
|
423
|
+
"type": {
|
424
|
+
"type": "string",
|
425
|
+
"enum": [
|
426
|
+
"string",
|
427
|
+
"number",
|
428
|
+
"integer",
|
429
|
+
"boolean",
|
430
|
+
"array"
|
431
|
+
]
|
432
|
+
},
|
433
|
+
"format": {
|
434
|
+
"type": "string"
|
435
|
+
},
|
436
|
+
"items": {
|
437
|
+
"$ref": "#/definitions/primitivesItems"
|
438
|
+
},
|
439
|
+
"collectionFormat": {
|
440
|
+
"$ref": "#/definitions/collectionFormat"
|
441
|
+
},
|
442
|
+
"default": {
|
443
|
+
"$ref": "#/definitions/default"
|
444
|
+
},
|
445
|
+
"maximum": {
|
446
|
+
"$ref": "#/definitions/maximum"
|
447
|
+
},
|
448
|
+
"exclusiveMaximum": {
|
449
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
450
|
+
},
|
451
|
+
"minimum": {
|
452
|
+
"$ref": "#/definitions/minimum"
|
453
|
+
},
|
454
|
+
"exclusiveMinimum": {
|
455
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
456
|
+
},
|
457
|
+
"maxLength": {
|
458
|
+
"$ref": "#/definitions/maxLength"
|
459
|
+
},
|
460
|
+
"minLength": {
|
461
|
+
"$ref": "#/definitions/minLength"
|
462
|
+
},
|
463
|
+
"pattern": {
|
464
|
+
"$ref": "#/definitions/pattern"
|
465
|
+
},
|
466
|
+
"maxItems": {
|
467
|
+
"$ref": "#/definitions/maxItems"
|
468
|
+
},
|
469
|
+
"minItems": {
|
470
|
+
"$ref": "#/definitions/minItems"
|
471
|
+
},
|
472
|
+
"uniqueItems": {
|
473
|
+
"$ref": "#/definitions/uniqueItems"
|
474
|
+
},
|
475
|
+
"enum": {
|
476
|
+
"$ref": "#/definitions/enum"
|
477
|
+
},
|
478
|
+
"multipleOf": {
|
479
|
+
"$ref": "#/definitions/multipleOf"
|
480
|
+
},
|
481
|
+
"description": {
|
482
|
+
"type": "string"
|
483
|
+
}
|
484
|
+
},
|
485
|
+
"patternProperties": {
|
486
|
+
"^x-": {
|
487
|
+
"$ref": "#/definitions/vendorExtension"
|
488
|
+
}
|
489
|
+
}
|
490
|
+
},
|
491
|
+
"vendorExtension": {
|
492
|
+
"description": "Any property starting with x- is valid.",
|
493
|
+
"additionalProperties": true,
|
494
|
+
"additionalItems": true
|
495
|
+
},
|
496
|
+
"bodyParameter": {
|
497
|
+
"type": "object",
|
498
|
+
"required": [
|
499
|
+
"name",
|
500
|
+
"in",
|
501
|
+
"schema"
|
502
|
+
],
|
503
|
+
"patternProperties": {
|
504
|
+
"^x-": {
|
505
|
+
"$ref": "#/definitions/vendorExtension"
|
506
|
+
}
|
507
|
+
},
|
508
|
+
"properties": {
|
509
|
+
"description": {
|
510
|
+
"type": "string",
|
511
|
+
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
512
|
+
},
|
513
|
+
"name": {
|
514
|
+
"type": "string",
|
515
|
+
"description": "The name of the parameter."
|
516
|
+
},
|
517
|
+
"in": {
|
518
|
+
"type": "string",
|
519
|
+
"description": "Determines the location of the parameter.",
|
520
|
+
"enum": [
|
521
|
+
"body"
|
522
|
+
]
|
523
|
+
},
|
524
|
+
"required": {
|
525
|
+
"type": "boolean",
|
526
|
+
"description": "Determines whether or not this parameter is required or optional.",
|
527
|
+
"default": false
|
528
|
+
},
|
529
|
+
"schema": {
|
530
|
+
"$ref": "#/definitions/schema"
|
531
|
+
}
|
532
|
+
},
|
533
|
+
"additionalProperties": false
|
534
|
+
},
|
535
|
+
"headerParameterSubSchema": {
|
536
|
+
"additionalProperties": false,
|
537
|
+
"patternProperties": {
|
538
|
+
"^x-": {
|
539
|
+
"$ref": "#/definitions/vendorExtension"
|
540
|
+
}
|
541
|
+
},
|
542
|
+
"properties": {
|
543
|
+
"required": {
|
544
|
+
"type": "boolean",
|
545
|
+
"description": "Determines whether or not this parameter is required or optional.",
|
546
|
+
"default": false
|
547
|
+
},
|
548
|
+
"in": {
|
549
|
+
"type": "string",
|
550
|
+
"description": "Determines the location of the parameter.",
|
551
|
+
"enum": [
|
552
|
+
"header"
|
553
|
+
]
|
554
|
+
},
|
555
|
+
"description": {
|
556
|
+
"type": "string",
|
557
|
+
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
558
|
+
},
|
559
|
+
"name": {
|
560
|
+
"type": "string",
|
561
|
+
"description": "The name of the parameter."
|
562
|
+
},
|
563
|
+
"type": {
|
564
|
+
"type": "string",
|
565
|
+
"enum": [
|
566
|
+
"string",
|
567
|
+
"number",
|
568
|
+
"boolean",
|
569
|
+
"integer",
|
570
|
+
"array"
|
571
|
+
]
|
572
|
+
},
|
573
|
+
"format": {
|
574
|
+
"type": "string"
|
575
|
+
},
|
576
|
+
"items": {
|
577
|
+
"$ref": "#/definitions/primitivesItems"
|
578
|
+
},
|
579
|
+
"collectionFormat": {
|
580
|
+
"$ref": "#/definitions/collectionFormat"
|
581
|
+
},
|
582
|
+
"default": {
|
583
|
+
"$ref": "#/definitions/default"
|
584
|
+
},
|
585
|
+
"maximum": {
|
586
|
+
"$ref": "#/definitions/maximum"
|
587
|
+
},
|
588
|
+
"exclusiveMaximum": {
|
589
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
590
|
+
},
|
591
|
+
"minimum": {
|
592
|
+
"$ref": "#/definitions/minimum"
|
593
|
+
},
|
594
|
+
"exclusiveMinimum": {
|
595
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
596
|
+
},
|
597
|
+
"maxLength": {
|
598
|
+
"$ref": "#/definitions/maxLength"
|
599
|
+
},
|
600
|
+
"minLength": {
|
601
|
+
"$ref": "#/definitions/minLength"
|
602
|
+
},
|
603
|
+
"pattern": {
|
604
|
+
"$ref": "#/definitions/pattern"
|
605
|
+
},
|
606
|
+
"maxItems": {
|
607
|
+
"$ref": "#/definitions/maxItems"
|
608
|
+
},
|
609
|
+
"minItems": {
|
610
|
+
"$ref": "#/definitions/minItems"
|
611
|
+
},
|
612
|
+
"uniqueItems": {
|
613
|
+
"$ref": "#/definitions/uniqueItems"
|
614
|
+
},
|
615
|
+
"enum": {
|
616
|
+
"$ref": "#/definitions/enum"
|
617
|
+
},
|
618
|
+
"multipleOf": {
|
619
|
+
"$ref": "#/definitions/multipleOf"
|
620
|
+
}
|
621
|
+
}
|
622
|
+
},
|
623
|
+
"queryParameterSubSchema": {
|
624
|
+
"additionalProperties": false,
|
625
|
+
"patternProperties": {
|
626
|
+
"^x-": {
|
627
|
+
"$ref": "#/definitions/vendorExtension"
|
628
|
+
}
|
629
|
+
},
|
630
|
+
"properties": {
|
631
|
+
"required": {
|
632
|
+
"type": "boolean",
|
633
|
+
"description": "Determines whether or not this parameter is required or optional.",
|
634
|
+
"default": false
|
635
|
+
},
|
636
|
+
"in": {
|
637
|
+
"type": "string",
|
638
|
+
"description": "Determines the location of the parameter.",
|
639
|
+
"enum": [
|
640
|
+
"query"
|
641
|
+
]
|
642
|
+
},
|
643
|
+
"description": {
|
644
|
+
"type": "string",
|
645
|
+
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
646
|
+
},
|
647
|
+
"name": {
|
648
|
+
"type": "string",
|
649
|
+
"description": "The name of the parameter."
|
650
|
+
},
|
651
|
+
"allowEmptyValue": {
|
652
|
+
"type": "boolean",
|
653
|
+
"default": false,
|
654
|
+
"description": "allows sending a parameter by name only or with an empty value."
|
655
|
+
},
|
656
|
+
"type": {
|
657
|
+
"type": "string",
|
658
|
+
"enum": [
|
659
|
+
"string",
|
660
|
+
"number",
|
661
|
+
"boolean",
|
662
|
+
"integer",
|
663
|
+
"array"
|
664
|
+
]
|
665
|
+
},
|
666
|
+
"format": {
|
667
|
+
"type": "string"
|
668
|
+
},
|
669
|
+
"items": {
|
670
|
+
"$ref": "#/definitions/primitivesItems"
|
671
|
+
},
|
672
|
+
"collectionFormat": {
|
673
|
+
"$ref": "#/definitions/collectionFormatWithMulti"
|
674
|
+
},
|
675
|
+
"default": {
|
676
|
+
"$ref": "#/definitions/default"
|
677
|
+
},
|
678
|
+
"maximum": {
|
679
|
+
"$ref": "#/definitions/maximum"
|
680
|
+
},
|
681
|
+
"exclusiveMaximum": {
|
682
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
683
|
+
},
|
684
|
+
"minimum": {
|
685
|
+
"$ref": "#/definitions/minimum"
|
686
|
+
},
|
687
|
+
"exclusiveMinimum": {
|
688
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
689
|
+
},
|
690
|
+
"maxLength": {
|
691
|
+
"$ref": "#/definitions/maxLength"
|
692
|
+
},
|
693
|
+
"minLength": {
|
694
|
+
"$ref": "#/definitions/minLength"
|
695
|
+
},
|
696
|
+
"pattern": {
|
697
|
+
"$ref": "#/definitions/pattern"
|
698
|
+
},
|
699
|
+
"maxItems": {
|
700
|
+
"$ref": "#/definitions/maxItems"
|
701
|
+
},
|
702
|
+
"minItems": {
|
703
|
+
"$ref": "#/definitions/minItems"
|
704
|
+
},
|
705
|
+
"uniqueItems": {
|
706
|
+
"$ref": "#/definitions/uniqueItems"
|
707
|
+
},
|
708
|
+
"enum": {
|
709
|
+
"$ref": "#/definitions/enum"
|
710
|
+
},
|
711
|
+
"multipleOf": {
|
712
|
+
"$ref": "#/definitions/multipleOf"
|
713
|
+
}
|
714
|
+
}
|
715
|
+
},
|
716
|
+
"formDataParameterSubSchema": {
|
717
|
+
"additionalProperties": false,
|
718
|
+
"patternProperties": {
|
719
|
+
"^x-": {
|
720
|
+
"$ref": "#/definitions/vendorExtension"
|
721
|
+
}
|
722
|
+
},
|
723
|
+
"properties": {
|
724
|
+
"required": {
|
725
|
+
"type": "boolean",
|
726
|
+
"description": "Determines whether or not this parameter is required or optional.",
|
727
|
+
"default": false
|
728
|
+
},
|
729
|
+
"in": {
|
730
|
+
"type": "string",
|
731
|
+
"description": "Determines the location of the parameter.",
|
732
|
+
"enum": [
|
733
|
+
"formData"
|
734
|
+
]
|
735
|
+
},
|
736
|
+
"description": {
|
737
|
+
"type": "string",
|
738
|
+
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
739
|
+
},
|
740
|
+
"name": {
|
741
|
+
"type": "string",
|
742
|
+
"description": "The name of the parameter."
|
743
|
+
},
|
744
|
+
"allowEmptyValue": {
|
745
|
+
"type": "boolean",
|
746
|
+
"default": false,
|
747
|
+
"description": "allows sending a parameter by name only or with an empty value."
|
748
|
+
},
|
749
|
+
"type": {
|
750
|
+
"type": "string",
|
751
|
+
"enum": [
|
752
|
+
"string",
|
753
|
+
"number",
|
754
|
+
"boolean",
|
755
|
+
"integer",
|
756
|
+
"array",
|
757
|
+
"file"
|
758
|
+
]
|
759
|
+
},
|
760
|
+
"format": {
|
761
|
+
"type": "string"
|
762
|
+
},
|
763
|
+
"items": {
|
764
|
+
"$ref": "#/definitions/primitivesItems"
|
765
|
+
},
|
766
|
+
"collectionFormat": {
|
767
|
+
"$ref": "#/definitions/collectionFormatWithMulti"
|
768
|
+
},
|
769
|
+
"default": {
|
770
|
+
"$ref": "#/definitions/default"
|
771
|
+
},
|
772
|
+
"maximum": {
|
773
|
+
"$ref": "#/definitions/maximum"
|
774
|
+
},
|
775
|
+
"exclusiveMaximum": {
|
776
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
777
|
+
},
|
778
|
+
"minimum": {
|
779
|
+
"$ref": "#/definitions/minimum"
|
780
|
+
},
|
781
|
+
"exclusiveMinimum": {
|
782
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
783
|
+
},
|
784
|
+
"maxLength": {
|
785
|
+
"$ref": "#/definitions/maxLength"
|
786
|
+
},
|
787
|
+
"minLength": {
|
788
|
+
"$ref": "#/definitions/minLength"
|
789
|
+
},
|
790
|
+
"pattern": {
|
791
|
+
"$ref": "#/definitions/pattern"
|
792
|
+
},
|
793
|
+
"maxItems": {
|
794
|
+
"$ref": "#/definitions/maxItems"
|
795
|
+
},
|
796
|
+
"minItems": {
|
797
|
+
"$ref": "#/definitions/minItems"
|
798
|
+
},
|
799
|
+
"uniqueItems": {
|
800
|
+
"$ref": "#/definitions/uniqueItems"
|
801
|
+
},
|
802
|
+
"enum": {
|
803
|
+
"$ref": "#/definitions/enum"
|
804
|
+
},
|
805
|
+
"multipleOf": {
|
806
|
+
"$ref": "#/definitions/multipleOf"
|
807
|
+
}
|
808
|
+
}
|
809
|
+
},
|
810
|
+
"pathParameterSubSchema": {
|
811
|
+
"additionalProperties": false,
|
812
|
+
"patternProperties": {
|
813
|
+
"^x-": {
|
814
|
+
"$ref": "#/definitions/vendorExtension"
|
815
|
+
}
|
816
|
+
},
|
817
|
+
"required": [
|
818
|
+
"required"
|
819
|
+
],
|
820
|
+
"properties": {
|
821
|
+
"required": {
|
822
|
+
"type": "boolean",
|
823
|
+
"enum": [
|
824
|
+
true
|
825
|
+
],
|
826
|
+
"description": "Determines whether or not this parameter is required or optional."
|
827
|
+
},
|
828
|
+
"in": {
|
829
|
+
"type": "string",
|
830
|
+
"description": "Determines the location of the parameter.",
|
831
|
+
"enum": [
|
832
|
+
"path"
|
833
|
+
]
|
834
|
+
},
|
835
|
+
"description": {
|
836
|
+
"type": "string",
|
837
|
+
"description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
|
838
|
+
},
|
839
|
+
"name": {
|
840
|
+
"type": "string",
|
841
|
+
"description": "The name of the parameter."
|
842
|
+
},
|
843
|
+
"type": {
|
844
|
+
"type": "string",
|
845
|
+
"enum": [
|
846
|
+
"string",
|
847
|
+
"number",
|
848
|
+
"boolean",
|
849
|
+
"integer",
|
850
|
+
"array"
|
851
|
+
]
|
852
|
+
},
|
853
|
+
"format": {
|
854
|
+
"type": "string"
|
855
|
+
},
|
856
|
+
"items": {
|
857
|
+
"$ref": "#/definitions/primitivesItems"
|
858
|
+
},
|
859
|
+
"collectionFormat": {
|
860
|
+
"$ref": "#/definitions/collectionFormat"
|
861
|
+
},
|
862
|
+
"default": {
|
863
|
+
"$ref": "#/definitions/default"
|
864
|
+
},
|
865
|
+
"maximum": {
|
866
|
+
"$ref": "#/definitions/maximum"
|
867
|
+
},
|
868
|
+
"exclusiveMaximum": {
|
869
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
870
|
+
},
|
871
|
+
"minimum": {
|
872
|
+
"$ref": "#/definitions/minimum"
|
873
|
+
},
|
874
|
+
"exclusiveMinimum": {
|
875
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
876
|
+
},
|
877
|
+
"maxLength": {
|
878
|
+
"$ref": "#/definitions/maxLength"
|
879
|
+
},
|
880
|
+
"minLength": {
|
881
|
+
"$ref": "#/definitions/minLength"
|
882
|
+
},
|
883
|
+
"pattern": {
|
884
|
+
"$ref": "#/definitions/pattern"
|
885
|
+
},
|
886
|
+
"maxItems": {
|
887
|
+
"$ref": "#/definitions/maxItems"
|
888
|
+
},
|
889
|
+
"minItems": {
|
890
|
+
"$ref": "#/definitions/minItems"
|
891
|
+
},
|
892
|
+
"uniqueItems": {
|
893
|
+
"$ref": "#/definitions/uniqueItems"
|
894
|
+
},
|
895
|
+
"enum": {
|
896
|
+
"$ref": "#/definitions/enum"
|
897
|
+
},
|
898
|
+
"multipleOf": {
|
899
|
+
"$ref": "#/definitions/multipleOf"
|
900
|
+
}
|
901
|
+
}
|
902
|
+
},
|
903
|
+
"nonBodyParameter": {
|
904
|
+
"type": "object",
|
905
|
+
"required": [
|
906
|
+
"name",
|
907
|
+
"in",
|
908
|
+
"type"
|
909
|
+
],
|
910
|
+
"oneOf": [
|
911
|
+
{
|
912
|
+
"$ref": "#/definitions/headerParameterSubSchema"
|
913
|
+
},
|
914
|
+
{
|
915
|
+
"$ref": "#/definitions/formDataParameterSubSchema"
|
916
|
+
},
|
917
|
+
{
|
918
|
+
"$ref": "#/definitions/queryParameterSubSchema"
|
919
|
+
},
|
920
|
+
{
|
921
|
+
"$ref": "#/definitions/pathParameterSubSchema"
|
922
|
+
}
|
923
|
+
]
|
924
|
+
},
|
925
|
+
"parameter": {
|
926
|
+
"oneOf": [
|
927
|
+
{
|
928
|
+
"$ref": "#/definitions/bodyParameter"
|
929
|
+
},
|
930
|
+
{
|
931
|
+
"$ref": "#/definitions/nonBodyParameter"
|
932
|
+
}
|
933
|
+
]
|
934
|
+
},
|
935
|
+
"schema": {
|
936
|
+
"type": "object",
|
937
|
+
"description": "A deterministic version of a JSON Schema object.",
|
938
|
+
"patternProperties": {
|
939
|
+
"^x-": {
|
940
|
+
"$ref": "#/definitions/vendorExtension"
|
941
|
+
}
|
942
|
+
},
|
943
|
+
"properties": {
|
944
|
+
"$ref": {
|
945
|
+
"type": "string"
|
946
|
+
},
|
947
|
+
"format": {
|
948
|
+
"type": "string"
|
949
|
+
},
|
950
|
+
"title": {
|
951
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/title"
|
952
|
+
},
|
953
|
+
"description": {
|
954
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/description"
|
955
|
+
},
|
956
|
+
"default": {
|
957
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/default"
|
958
|
+
},
|
959
|
+
"multipleOf": {
|
960
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
|
961
|
+
},
|
962
|
+
"maximum": {
|
963
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
|
964
|
+
},
|
965
|
+
"exclusiveMaximum": {
|
966
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
|
967
|
+
},
|
968
|
+
"minimum": {
|
969
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
|
970
|
+
},
|
971
|
+
"exclusiveMinimum": {
|
972
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
|
973
|
+
},
|
974
|
+
"maxLength": {
|
975
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
976
|
+
},
|
977
|
+
"minLength": {
|
978
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
979
|
+
},
|
980
|
+
"pattern": {
|
981
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
|
982
|
+
},
|
983
|
+
"maxItems": {
|
984
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
985
|
+
},
|
986
|
+
"minItems": {
|
987
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
988
|
+
},
|
989
|
+
"uniqueItems": {
|
990
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
|
991
|
+
},
|
992
|
+
"maxProperties": {
|
993
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
994
|
+
},
|
995
|
+
"minProperties": {
|
996
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
997
|
+
},
|
998
|
+
"required": {
|
999
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
|
1000
|
+
},
|
1001
|
+
"enum": {
|
1002
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
|
1003
|
+
},
|
1004
|
+
"additionalProperties": {
|
1005
|
+
"anyOf": [
|
1006
|
+
{
|
1007
|
+
"$ref": "#/definitions/schema"
|
1008
|
+
},
|
1009
|
+
{
|
1010
|
+
"type": "boolean"
|
1011
|
+
}
|
1012
|
+
],
|
1013
|
+
"default": {}
|
1014
|
+
},
|
1015
|
+
"type": {
|
1016
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/type"
|
1017
|
+
},
|
1018
|
+
"items": {
|
1019
|
+
"anyOf": [
|
1020
|
+
{
|
1021
|
+
"$ref": "#/definitions/schema"
|
1022
|
+
},
|
1023
|
+
{
|
1024
|
+
"type": "array",
|
1025
|
+
"minItems": 1,
|
1026
|
+
"items": {
|
1027
|
+
"$ref": "#/definitions/schema"
|
1028
|
+
}
|
1029
|
+
}
|
1030
|
+
],
|
1031
|
+
"default": {}
|
1032
|
+
},
|
1033
|
+
"allOf": {
|
1034
|
+
"type": "array",
|
1035
|
+
"minItems": 1,
|
1036
|
+
"items": {
|
1037
|
+
"$ref": "#/definitions/schema"
|
1038
|
+
}
|
1039
|
+
},
|
1040
|
+
"properties": {
|
1041
|
+
"type": "object",
|
1042
|
+
"additionalProperties": {
|
1043
|
+
"$ref": "#/definitions/schema"
|
1044
|
+
},
|
1045
|
+
"default": {}
|
1046
|
+
},
|
1047
|
+
"discriminator": {
|
1048
|
+
"type": "string"
|
1049
|
+
},
|
1050
|
+
"readOnly": {
|
1051
|
+
"type": "boolean",
|
1052
|
+
"default": false
|
1053
|
+
},
|
1054
|
+
"xml": {
|
1055
|
+
"$ref": "#/definitions/xml"
|
1056
|
+
},
|
1057
|
+
"externalDocs": {
|
1058
|
+
"$ref": "#/definitions/externalDocs"
|
1059
|
+
},
|
1060
|
+
"example": {}
|
1061
|
+
},
|
1062
|
+
"additionalProperties": false
|
1063
|
+
},
|
1064
|
+
"fileSchema": {
|
1065
|
+
"type": "object",
|
1066
|
+
"description": "A deterministic version of a JSON Schema object.",
|
1067
|
+
"patternProperties": {
|
1068
|
+
"^x-": {
|
1069
|
+
"$ref": "#/definitions/vendorExtension"
|
1070
|
+
}
|
1071
|
+
},
|
1072
|
+
"required": [
|
1073
|
+
"type"
|
1074
|
+
],
|
1075
|
+
"properties": {
|
1076
|
+
"format": {
|
1077
|
+
"type": "string"
|
1078
|
+
},
|
1079
|
+
"title": {
|
1080
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/title"
|
1081
|
+
},
|
1082
|
+
"description": {
|
1083
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/description"
|
1084
|
+
},
|
1085
|
+
"default": {
|
1086
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/default"
|
1087
|
+
},
|
1088
|
+
"required": {
|
1089
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
|
1090
|
+
},
|
1091
|
+
"type": {
|
1092
|
+
"type": "string",
|
1093
|
+
"enum": [
|
1094
|
+
"file"
|
1095
|
+
]
|
1096
|
+
},
|
1097
|
+
"readOnly": {
|
1098
|
+
"type": "boolean",
|
1099
|
+
"default": false
|
1100
|
+
},
|
1101
|
+
"externalDocs": {
|
1102
|
+
"$ref": "#/definitions/externalDocs"
|
1103
|
+
},
|
1104
|
+
"example": {}
|
1105
|
+
},
|
1106
|
+
"additionalProperties": false
|
1107
|
+
},
|
1108
|
+
"primitivesItems": {
|
1109
|
+
"type": "object",
|
1110
|
+
"additionalProperties": false,
|
1111
|
+
"properties": {
|
1112
|
+
"type": {
|
1113
|
+
"type": "string",
|
1114
|
+
"enum": [
|
1115
|
+
"string",
|
1116
|
+
"number",
|
1117
|
+
"integer",
|
1118
|
+
"boolean",
|
1119
|
+
"array"
|
1120
|
+
]
|
1121
|
+
},
|
1122
|
+
"format": {
|
1123
|
+
"type": "string"
|
1124
|
+
},
|
1125
|
+
"items": {
|
1126
|
+
"$ref": "#/definitions/primitivesItems"
|
1127
|
+
},
|
1128
|
+
"collectionFormat": {
|
1129
|
+
"$ref": "#/definitions/collectionFormat"
|
1130
|
+
},
|
1131
|
+
"default": {
|
1132
|
+
"$ref": "#/definitions/default"
|
1133
|
+
},
|
1134
|
+
"maximum": {
|
1135
|
+
"$ref": "#/definitions/maximum"
|
1136
|
+
},
|
1137
|
+
"exclusiveMaximum": {
|
1138
|
+
"$ref": "#/definitions/exclusiveMaximum"
|
1139
|
+
},
|
1140
|
+
"minimum": {
|
1141
|
+
"$ref": "#/definitions/minimum"
|
1142
|
+
},
|
1143
|
+
"exclusiveMinimum": {
|
1144
|
+
"$ref": "#/definitions/exclusiveMinimum"
|
1145
|
+
},
|
1146
|
+
"maxLength": {
|
1147
|
+
"$ref": "#/definitions/maxLength"
|
1148
|
+
},
|
1149
|
+
"minLength": {
|
1150
|
+
"$ref": "#/definitions/minLength"
|
1151
|
+
},
|
1152
|
+
"pattern": {
|
1153
|
+
"$ref": "#/definitions/pattern"
|
1154
|
+
},
|
1155
|
+
"maxItems": {
|
1156
|
+
"$ref": "#/definitions/maxItems"
|
1157
|
+
},
|
1158
|
+
"minItems": {
|
1159
|
+
"$ref": "#/definitions/minItems"
|
1160
|
+
},
|
1161
|
+
"uniqueItems": {
|
1162
|
+
"$ref": "#/definitions/uniqueItems"
|
1163
|
+
},
|
1164
|
+
"enum": {
|
1165
|
+
"$ref": "#/definitions/enum"
|
1166
|
+
},
|
1167
|
+
"multipleOf": {
|
1168
|
+
"$ref": "#/definitions/multipleOf"
|
1169
|
+
}
|
1170
|
+
},
|
1171
|
+
"patternProperties": {
|
1172
|
+
"^x-": {
|
1173
|
+
"$ref": "#/definitions/vendorExtension"
|
1174
|
+
}
|
1175
|
+
}
|
1176
|
+
},
|
1177
|
+
"security": {
|
1178
|
+
"type": "array",
|
1179
|
+
"items": {
|
1180
|
+
"$ref": "#/definitions/securityRequirement"
|
1181
|
+
},
|
1182
|
+
"uniqueItems": true
|
1183
|
+
},
|
1184
|
+
"securityRequirement": {
|
1185
|
+
"type": "object",
|
1186
|
+
"additionalProperties": {
|
1187
|
+
"type": "array",
|
1188
|
+
"items": {
|
1189
|
+
"type": "string"
|
1190
|
+
},
|
1191
|
+
"uniqueItems": true
|
1192
|
+
}
|
1193
|
+
},
|
1194
|
+
"xml": {
|
1195
|
+
"type": "object",
|
1196
|
+
"additionalProperties": false,
|
1197
|
+
"properties": {
|
1198
|
+
"name": {
|
1199
|
+
"type": "string"
|
1200
|
+
},
|
1201
|
+
"namespace": {
|
1202
|
+
"type": "string"
|
1203
|
+
},
|
1204
|
+
"prefix": {
|
1205
|
+
"type": "string"
|
1206
|
+
},
|
1207
|
+
"attribute": {
|
1208
|
+
"type": "boolean",
|
1209
|
+
"default": false
|
1210
|
+
},
|
1211
|
+
"wrapped": {
|
1212
|
+
"type": "boolean",
|
1213
|
+
"default": false
|
1214
|
+
}
|
1215
|
+
},
|
1216
|
+
"patternProperties": {
|
1217
|
+
"^x-": {
|
1218
|
+
"$ref": "#/definitions/vendorExtension"
|
1219
|
+
}
|
1220
|
+
}
|
1221
|
+
},
|
1222
|
+
"tag": {
|
1223
|
+
"type": "object",
|
1224
|
+
"additionalProperties": false,
|
1225
|
+
"required": [
|
1226
|
+
"name"
|
1227
|
+
],
|
1228
|
+
"properties": {
|
1229
|
+
"name": {
|
1230
|
+
"type": "string"
|
1231
|
+
},
|
1232
|
+
"description": {
|
1233
|
+
"type": "string"
|
1234
|
+
},
|
1235
|
+
"externalDocs": {
|
1236
|
+
"$ref": "#/definitions/externalDocs"
|
1237
|
+
}
|
1238
|
+
},
|
1239
|
+
"patternProperties": {
|
1240
|
+
"^x-": {
|
1241
|
+
"$ref": "#/definitions/vendorExtension"
|
1242
|
+
}
|
1243
|
+
}
|
1244
|
+
},
|
1245
|
+
"securityDefinitions": {
|
1246
|
+
"type": "object",
|
1247
|
+
"additionalProperties": {
|
1248
|
+
"oneOf": [
|
1249
|
+
{
|
1250
|
+
"$ref": "#/definitions/basicAuthenticationSecurity"
|
1251
|
+
},
|
1252
|
+
{
|
1253
|
+
"$ref": "#/definitions/apiKeySecurity"
|
1254
|
+
},
|
1255
|
+
{
|
1256
|
+
"$ref": "#/definitions/oauth2ImplicitSecurity"
|
1257
|
+
},
|
1258
|
+
{
|
1259
|
+
"$ref": "#/definitions/oauth2PasswordSecurity"
|
1260
|
+
},
|
1261
|
+
{
|
1262
|
+
"$ref": "#/definitions/oauth2ApplicationSecurity"
|
1263
|
+
},
|
1264
|
+
{
|
1265
|
+
"$ref": "#/definitions/oauth2AccessCodeSecurity"
|
1266
|
+
}
|
1267
|
+
]
|
1268
|
+
}
|
1269
|
+
},
|
1270
|
+
"basicAuthenticationSecurity": {
|
1271
|
+
"type": "object",
|
1272
|
+
"additionalProperties": false,
|
1273
|
+
"required": [
|
1274
|
+
"type"
|
1275
|
+
],
|
1276
|
+
"properties": {
|
1277
|
+
"type": {
|
1278
|
+
"type": "string",
|
1279
|
+
"enum": [
|
1280
|
+
"basic"
|
1281
|
+
]
|
1282
|
+
},
|
1283
|
+
"description": {
|
1284
|
+
"type": "string"
|
1285
|
+
}
|
1286
|
+
},
|
1287
|
+
"patternProperties": {
|
1288
|
+
"^x-": {
|
1289
|
+
"$ref": "#/definitions/vendorExtension"
|
1290
|
+
}
|
1291
|
+
}
|
1292
|
+
},
|
1293
|
+
"apiKeySecurity": {
|
1294
|
+
"type": "object",
|
1295
|
+
"additionalProperties": false,
|
1296
|
+
"required": [
|
1297
|
+
"type",
|
1298
|
+
"name",
|
1299
|
+
"in"
|
1300
|
+
],
|
1301
|
+
"properties": {
|
1302
|
+
"type": {
|
1303
|
+
"type": "string",
|
1304
|
+
"enum": [
|
1305
|
+
"apiKey"
|
1306
|
+
]
|
1307
|
+
},
|
1308
|
+
"name": {
|
1309
|
+
"type": "string"
|
1310
|
+
},
|
1311
|
+
"in": {
|
1312
|
+
"type": "string",
|
1313
|
+
"enum": [
|
1314
|
+
"header",
|
1315
|
+
"query"
|
1316
|
+
]
|
1317
|
+
},
|
1318
|
+
"description": {
|
1319
|
+
"type": "string"
|
1320
|
+
}
|
1321
|
+
},
|
1322
|
+
"patternProperties": {
|
1323
|
+
"^x-": {
|
1324
|
+
"$ref": "#/definitions/vendorExtension"
|
1325
|
+
}
|
1326
|
+
}
|
1327
|
+
},
|
1328
|
+
"oauth2ImplicitSecurity": {
|
1329
|
+
"type": "object",
|
1330
|
+
"additionalProperties": false,
|
1331
|
+
"required": [
|
1332
|
+
"type",
|
1333
|
+
"flow",
|
1334
|
+
"authorizationUrl"
|
1335
|
+
],
|
1336
|
+
"properties": {
|
1337
|
+
"type": {
|
1338
|
+
"type": "string",
|
1339
|
+
"enum": [
|
1340
|
+
"oauth2"
|
1341
|
+
]
|
1342
|
+
},
|
1343
|
+
"flow": {
|
1344
|
+
"type": "string",
|
1345
|
+
"enum": [
|
1346
|
+
"implicit"
|
1347
|
+
]
|
1348
|
+
},
|
1349
|
+
"scopes": {
|
1350
|
+
"$ref": "#/definitions/oauth2Scopes"
|
1351
|
+
},
|
1352
|
+
"authorizationUrl": {
|
1353
|
+
"type": "string",
|
1354
|
+
"format": "uri"
|
1355
|
+
},
|
1356
|
+
"description": {
|
1357
|
+
"type": "string"
|
1358
|
+
}
|
1359
|
+
},
|
1360
|
+
"patternProperties": {
|
1361
|
+
"^x-": {
|
1362
|
+
"$ref": "#/definitions/vendorExtension"
|
1363
|
+
}
|
1364
|
+
}
|
1365
|
+
},
|
1366
|
+
"oauth2PasswordSecurity": {
|
1367
|
+
"type": "object",
|
1368
|
+
"additionalProperties": false,
|
1369
|
+
"required": [
|
1370
|
+
"type",
|
1371
|
+
"flow",
|
1372
|
+
"tokenUrl"
|
1373
|
+
],
|
1374
|
+
"properties": {
|
1375
|
+
"type": {
|
1376
|
+
"type": "string",
|
1377
|
+
"enum": [
|
1378
|
+
"oauth2"
|
1379
|
+
]
|
1380
|
+
},
|
1381
|
+
"flow": {
|
1382
|
+
"type": "string",
|
1383
|
+
"enum": [
|
1384
|
+
"password"
|
1385
|
+
]
|
1386
|
+
},
|
1387
|
+
"scopes": {
|
1388
|
+
"$ref": "#/definitions/oauth2Scopes"
|
1389
|
+
},
|
1390
|
+
"tokenUrl": {
|
1391
|
+
"type": "string",
|
1392
|
+
"format": "uri"
|
1393
|
+
},
|
1394
|
+
"description": {
|
1395
|
+
"type": "string"
|
1396
|
+
}
|
1397
|
+
},
|
1398
|
+
"patternProperties": {
|
1399
|
+
"^x-": {
|
1400
|
+
"$ref": "#/definitions/vendorExtension"
|
1401
|
+
}
|
1402
|
+
}
|
1403
|
+
},
|
1404
|
+
"oauth2ApplicationSecurity": {
|
1405
|
+
"type": "object",
|
1406
|
+
"additionalProperties": false,
|
1407
|
+
"required": [
|
1408
|
+
"type",
|
1409
|
+
"flow",
|
1410
|
+
"tokenUrl"
|
1411
|
+
],
|
1412
|
+
"properties": {
|
1413
|
+
"type": {
|
1414
|
+
"type": "string",
|
1415
|
+
"enum": [
|
1416
|
+
"oauth2"
|
1417
|
+
]
|
1418
|
+
},
|
1419
|
+
"flow": {
|
1420
|
+
"type": "string",
|
1421
|
+
"enum": [
|
1422
|
+
"application"
|
1423
|
+
]
|
1424
|
+
},
|
1425
|
+
"scopes": {
|
1426
|
+
"$ref": "#/definitions/oauth2Scopes"
|
1427
|
+
},
|
1428
|
+
"tokenUrl": {
|
1429
|
+
"type": "string",
|
1430
|
+
"format": "uri"
|
1431
|
+
},
|
1432
|
+
"description": {
|
1433
|
+
"type": "string"
|
1434
|
+
}
|
1435
|
+
},
|
1436
|
+
"patternProperties": {
|
1437
|
+
"^x-": {
|
1438
|
+
"$ref": "#/definitions/vendorExtension"
|
1439
|
+
}
|
1440
|
+
}
|
1441
|
+
},
|
1442
|
+
"oauth2AccessCodeSecurity": {
|
1443
|
+
"type": "object",
|
1444
|
+
"additionalProperties": false,
|
1445
|
+
"required": [
|
1446
|
+
"type",
|
1447
|
+
"flow",
|
1448
|
+
"authorizationUrl",
|
1449
|
+
"tokenUrl"
|
1450
|
+
],
|
1451
|
+
"properties": {
|
1452
|
+
"type": {
|
1453
|
+
"type": "string",
|
1454
|
+
"enum": [
|
1455
|
+
"oauth2"
|
1456
|
+
]
|
1457
|
+
},
|
1458
|
+
"flow": {
|
1459
|
+
"type": "string",
|
1460
|
+
"enum": [
|
1461
|
+
"accessCode"
|
1462
|
+
]
|
1463
|
+
},
|
1464
|
+
"scopes": {
|
1465
|
+
"$ref": "#/definitions/oauth2Scopes"
|
1466
|
+
},
|
1467
|
+
"authorizationUrl": {
|
1468
|
+
"type": "string",
|
1469
|
+
"format": "uri"
|
1470
|
+
},
|
1471
|
+
"tokenUrl": {
|
1472
|
+
"type": "string",
|
1473
|
+
"format": "uri"
|
1474
|
+
},
|
1475
|
+
"description": {
|
1476
|
+
"type": "string"
|
1477
|
+
}
|
1478
|
+
},
|
1479
|
+
"patternProperties": {
|
1480
|
+
"^x-": {
|
1481
|
+
"$ref": "#/definitions/vendorExtension"
|
1482
|
+
}
|
1483
|
+
}
|
1484
|
+
},
|
1485
|
+
"oauth2Scopes": {
|
1486
|
+
"type": "object",
|
1487
|
+
"additionalProperties": {
|
1488
|
+
"type": "string"
|
1489
|
+
}
|
1490
|
+
},
|
1491
|
+
"mediaTypeList": {
|
1492
|
+
"type": "array",
|
1493
|
+
"items": {
|
1494
|
+
"$ref": "#/definitions/mimeType"
|
1495
|
+
},
|
1496
|
+
"uniqueItems": true
|
1497
|
+
},
|
1498
|
+
"parametersList": {
|
1499
|
+
"type": "array",
|
1500
|
+
"description": "The parameters needed to send a valid API call.",
|
1501
|
+
"additionalItems": false,
|
1502
|
+
"items": {
|
1503
|
+
"oneOf": [
|
1504
|
+
{
|
1505
|
+
"$ref": "#/definitions/parameter"
|
1506
|
+
},
|
1507
|
+
{
|
1508
|
+
"$ref": "#/definitions/jsonReference"
|
1509
|
+
}
|
1510
|
+
]
|
1511
|
+
},
|
1512
|
+
"uniqueItems": true
|
1513
|
+
},
|
1514
|
+
"schemesList": {
|
1515
|
+
"type": "array",
|
1516
|
+
"description": "The transfer protocol of the API.",
|
1517
|
+
"items": {
|
1518
|
+
"type": "string",
|
1519
|
+
"enum": [
|
1520
|
+
"http",
|
1521
|
+
"https",
|
1522
|
+
"ws",
|
1523
|
+
"wss"
|
1524
|
+
]
|
1525
|
+
},
|
1526
|
+
"uniqueItems": true
|
1527
|
+
},
|
1528
|
+
"collectionFormat": {
|
1529
|
+
"type": "string",
|
1530
|
+
"enum": [
|
1531
|
+
"csv",
|
1532
|
+
"ssv",
|
1533
|
+
"tsv",
|
1534
|
+
"pipes"
|
1535
|
+
],
|
1536
|
+
"default": "csv"
|
1537
|
+
},
|
1538
|
+
"collectionFormatWithMulti": {
|
1539
|
+
"type": "string",
|
1540
|
+
"enum": [
|
1541
|
+
"csv",
|
1542
|
+
"ssv",
|
1543
|
+
"tsv",
|
1544
|
+
"pipes",
|
1545
|
+
"multi"
|
1546
|
+
],
|
1547
|
+
"default": "csv"
|
1548
|
+
},
|
1549
|
+
"title": {
|
1550
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/title"
|
1551
|
+
},
|
1552
|
+
"description": {
|
1553
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/description"
|
1554
|
+
},
|
1555
|
+
"default": {
|
1556
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/default"
|
1557
|
+
},
|
1558
|
+
"multipleOf": {
|
1559
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
|
1560
|
+
},
|
1561
|
+
"maximum": {
|
1562
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
|
1563
|
+
},
|
1564
|
+
"exclusiveMaximum": {
|
1565
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
|
1566
|
+
},
|
1567
|
+
"minimum": {
|
1568
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
|
1569
|
+
},
|
1570
|
+
"exclusiveMinimum": {
|
1571
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
|
1572
|
+
},
|
1573
|
+
"maxLength": {
|
1574
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
1575
|
+
},
|
1576
|
+
"minLength": {
|
1577
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
1578
|
+
},
|
1579
|
+
"pattern": {
|
1580
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
|
1581
|
+
},
|
1582
|
+
"maxItems": {
|
1583
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
|
1584
|
+
},
|
1585
|
+
"minItems": {
|
1586
|
+
"$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
|
1587
|
+
},
|
1588
|
+
"uniqueItems": {
|
1589
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
|
1590
|
+
},
|
1591
|
+
"enum": {
|
1592
|
+
"$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
|
1593
|
+
},
|
1594
|
+
"jsonReference": {
|
1595
|
+
"type": "object",
|
1596
|
+
"required": [
|
1597
|
+
"$ref"
|
1598
|
+
],
|
1599
|
+
"additionalProperties": false,
|
1600
|
+
"properties": {
|
1601
|
+
"$ref": {
|
1602
|
+
"type": "string"
|
1603
|
+
}
|
1604
|
+
}
|
1605
|
+
}
|
1606
|
+
}
|
1607
|
+
}
|