@redocly/openapi-core 2.15.0 → 2.15.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.
Files changed (89) hide show
  1. package/lib/config/group-assertion-rules.d.ts.map +1 -1
  2. package/lib/config/group-assertion-rules.js +2 -1
  3. package/lib/config/group-assertion-rules.js.map +1 -1
  4. package/lib/config/utils.js +1 -1
  5. package/lib/config/utils.js.map +1 -1
  6. package/lib/oas-types.d.ts +190 -0
  7. package/lib/oas-types.d.ts.map +1 -1
  8. package/lib/rules/arazzo/parameters-unique.d.ts.map +1 -1
  9. package/lib/rules/arazzo/parameters-unique.js +1 -3
  10. package/lib/rules/arazzo/parameters-unique.js.map +1 -1
  11. package/lib/rules/arazzo/step-onFailure-unique.d.ts.map +1 -1
  12. package/lib/rules/arazzo/step-onFailure-unique.js +1 -3
  13. package/lib/rules/arazzo/step-onFailure-unique.js.map +1 -1
  14. package/lib/rules/arazzo/step-onSuccess-unique.d.ts.map +1 -1
  15. package/lib/rules/arazzo/step-onSuccess-unique.js +1 -3
  16. package/lib/rules/arazzo/step-onSuccess-unique.js.map +1 -1
  17. package/lib/rules/catalog-entity/entity-key-valid.d.ts.map +1 -1
  18. package/lib/rules/catalog-entity/entity-key-valid.js +2 -1
  19. package/lib/rules/catalog-entity/entity-key-valid.js.map +1 -1
  20. package/lib/rules/common/assertions/asserts.js +1 -1
  21. package/lib/rules/common/assertions/asserts.js.map +1 -1
  22. package/lib/rules/common/assertions/index.d.ts.map +1 -1
  23. package/lib/rules/common/assertions/index.js +2 -1
  24. package/lib/rules/common/assertions/index.js.map +1 -1
  25. package/lib/rules/common/no-invalid-parameter-examples.d.ts.map +1 -1
  26. package/lib/rules/common/no-invalid-parameter-examples.js +3 -2
  27. package/lib/rules/common/no-invalid-parameter-examples.js.map +1 -1
  28. package/lib/rules/common/no-invalid-schema-examples.js +1 -1
  29. package/lib/rules/common/no-invalid-schema-examples.js.map +1 -1
  30. package/lib/rules/common/path-params-defined.d.ts +1 -1
  31. package/lib/rules/common/path-params-defined.d.ts.map +1 -1
  32. package/lib/rules/common/path-params-defined.js +2 -1
  33. package/lib/rules/common/path-params-defined.js.map +1 -1
  34. package/lib/rules/oas3/no-invalid-media-type-examples.d.ts.map +1 -1
  35. package/lib/rules/oas3/no-invalid-media-type-examples.js +2 -1
  36. package/lib/rules/oas3/no-invalid-media-type-examples.js.map +1 -1
  37. package/lib/rules/other/stats.d.ts.map +1 -1
  38. package/lib/rules/other/stats.js +8 -6
  39. package/lib/rules/other/stats.js.map +1 -1
  40. package/lib/rules/utils.js +1 -1
  41. package/lib/rules/utils.js.map +1 -1
  42. package/lib/types/arazzo.d.ts.map +1 -1
  43. package/lib/types/arazzo.js +196 -44
  44. package/lib/types/arazzo.js.map +1 -1
  45. package/lib/types/asyncapi2.d.ts.map +1 -1
  46. package/lib/types/asyncapi2.js +307 -57
  47. package/lib/types/asyncapi2.js.map +1 -1
  48. package/lib/types/asyncapi3.d.ts +1 -1
  49. package/lib/types/asyncapi3.d.ts.map +1 -1
  50. package/lib/types/asyncapi3.js +213 -48
  51. package/lib/types/asyncapi3.js.map +1 -1
  52. package/lib/types/index.d.ts +18 -2
  53. package/lib/types/index.d.ts.map +1 -1
  54. package/lib/types/index.js +4 -2
  55. package/lib/types/index.js.map +1 -1
  56. package/lib/types/oas2.d.ts +22 -0
  57. package/lib/types/oas2.d.ts.map +1 -1
  58. package/lib/types/oas3.d.ts +44 -0
  59. package/lib/types/oas3.d.ts.map +1 -1
  60. package/lib/types/oas3.js +344 -70
  61. package/lib/types/oas3.js.map +1 -1
  62. package/lib/types/oas3_1.d.ts +46 -0
  63. package/lib/types/oas3_1.d.ts.map +1 -1
  64. package/lib/types/oas3_1.js +37 -29
  65. package/lib/types/oas3_1.js.map +1 -1
  66. package/lib/types/oas3_2.d.ts +46 -0
  67. package/lib/types/oas3_2.d.ts.map +1 -1
  68. package/lib/types/oas3_2.js +96 -23
  69. package/lib/types/oas3_2.js.map +1 -1
  70. package/lib/types/openrpc.d.ts +32 -0
  71. package/lib/types/openrpc.d.ts.map +1 -1
  72. package/lib/types/openrpc.js +200 -46
  73. package/lib/types/openrpc.js.map +1 -1
  74. package/lib/types/overlay.d.ts.map +1 -1
  75. package/lib/types/overlay.js +31 -7
  76. package/lib/types/overlay.js.map +1 -1
  77. package/lib/types/redocly-yaml.d.ts +1 -1
  78. package/lib/types/redocly-yaml.d.ts.map +1 -1
  79. package/lib/types/redocly-yaml.js +150 -38
  80. package/lib/types/redocly-yaml.js.map +1 -1
  81. package/lib/typings/openapi.d.ts.map +1 -1
  82. package/lib/utils/read-file-from-url.js +1 -1
  83. package/lib/utils/read-file-from-url.js.map +1 -1
  84. package/lib/visitors.js +1 -1
  85. package/lib/visitors.js.map +1 -1
  86. package/lib/walk.d.ts.map +1 -1
  87. package/lib/walk.js +2 -1
  88. package/lib/walk.js.map +1 -1
  89. package/package.json +2 -2
@@ -4,7 +4,10 @@ const Root = {
4
4
  properties: {
5
5
  asyncapi: null, // TODO: validate semver format and supported version
6
6
  info: 'Info',
7
- id: { type: 'string' },
7
+ id: {
8
+ type: 'string',
9
+ description: 'Identifier of the application the AsyncAPI document is defining.',
10
+ },
8
11
  servers: 'ServerMap',
9
12
  channels: 'ChannelMap',
10
13
  components: 'Components',
@@ -16,13 +19,21 @@ const Root = {
16
19
  };
17
20
  const Channel = {
18
21
  properties: {
19
- description: { type: 'string' },
22
+ description: {
23
+ type: 'string',
24
+ description: 'An optional description of this channel item. CommonMark syntax can be used for rich text representation.',
25
+ },
20
26
  subscribe: 'Operation',
21
27
  publish: 'Operation',
22
28
  parameters: 'ParametersMap',
23
29
  bindings: 'ChannelBindings',
24
- servers: { type: 'array', items: { type: 'string' } },
30
+ servers: {
31
+ type: 'array',
32
+ items: { type: 'string' },
33
+ description: 'The servers on which this channel is available, specified as an optional unordered list of names (string keys) of Server Objects defined in the Servers Object (a map).',
34
+ },
25
35
  },
36
+ description: 'Describes the operations available on a single channel.',
26
37
  };
27
38
  const ChannelMap = {
28
39
  properties: {},
@@ -55,25 +66,38 @@ const ChannelBindings = {
55
66
  ];
56
67
  },
57
68
  additionalProperties: { type: 'object' },
69
+ description: 'Map describing protocol-specific definitions for a channel.',
58
70
  };
59
71
  export const Tag = {
60
72
  properties: {
61
- name: { type: 'string' },
62
- description: { type: 'string' },
73
+ name: { type: 'string', description: 'REQUIRED. The name of the tag.' },
74
+ description: {
75
+ type: 'string',
76
+ description: 'A short description for the tag. CommonMark syntax can be used for rich text representation.',
77
+ },
63
78
  externalDocs: 'ExternalDocs',
64
79
  },
65
80
  required: ['name'],
81
+ description: 'Allows adding meta data to a single tag.',
66
82
  };
67
83
  export const ExternalDocs = {
68
84
  properties: {
69
- description: { type: 'string' },
70
- url: { type: 'string' },
85
+ description: {
86
+ type: 'string',
87
+ description: 'A short description of the target documentation. CommonMark syntax can be used for rich text representation.',
88
+ },
89
+ url: {
90
+ type: 'string',
91
+ description: 'REQUIRED. The URL for the target documentation. This MUST be in the form of an absolute URL.',
92
+ },
71
93
  },
72
94
  required: ['url'],
95
+ description: 'Allows referencing an external resource for extended documentation.',
73
96
  };
74
97
  const SecurityRequirement = {
75
98
  properties: {},
76
99
  additionalProperties: { type: 'array', items: { type: 'string' } },
100
+ description: 'Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object.',
77
101
  };
78
102
  const ServerBindings = {
79
103
  properties: {},
@@ -102,19 +126,33 @@ const ServerBindings = {
102
126
  ];
103
127
  },
104
128
  additionalProperties: { type: 'object' },
129
+ description: 'Map describing protocol-specific definitions for a server.',
105
130
  };
106
131
  const Server = {
107
132
  properties: {
108
- url: { type: 'string' },
109
- protocol: { type: 'string' },
110
- protocolVersion: { type: 'string' },
111
- description: { type: 'string' },
133
+ url: {
134
+ type: 'string',
135
+ description: 'REQUIRED. A URL to the target host. This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the AsyncAPI document is being served. Variable substitutions will be made when a variable is named in {braces}.',
136
+ },
137
+ protocol: {
138
+ type: 'string',
139
+ description: 'REQUIRED. The protocol this URL supports for connection. Supported protocol include, but are not limited to: amqp, amqps, http, https, ibmmq, jms, kafka, kafka-secure, anypointmq, mqtt, secure-mqtt, solace, stomp, stomps, ws, wss, mercure, googlepubsub, pulsar.',
140
+ },
141
+ protocolVersion: {
142
+ type: 'string',
143
+ description: 'The version of the protocol used for connection. For instance: AMQP 0.9.1, HTTP 2.0, Kafka 1.0.0, etc.',
144
+ },
145
+ description: {
146
+ type: 'string',
147
+ description: 'An optional string describing the host designated by the URL. CommonMark syntax MAY be used for rich text representation.',
148
+ },
112
149
  variables: 'ServerVariablesMap',
113
150
  security: 'SecurityRequirementList',
114
151
  bindings: 'ServerBindings',
115
152
  tags: 'TagList',
116
153
  },
117
154
  required: ['url', 'protocol'],
155
+ description: 'An object representing a message broker, a server or any other kind of computer program capable of sending and/or receiving data. This object is used to capture details such as URIs, protocols and security configuration. Variable substitution can be used so that some details, for example usernames and passwords, can be injected by code generation tools.',
118
156
  };
119
157
  export const ServerMap = {
120
158
  properties: {},
@@ -127,67 +165,141 @@ export const ServerVariable = {
127
165
  enum: {
128
166
  type: 'array',
129
167
  items: { type: 'string' },
168
+ description: 'An enumeration of string values to be used if the substitution options are from a limited set.',
169
+ },
170
+ default: {
171
+ type: 'string',
172
+ description: 'The default value to use for substitution, and to send, if an alternate value is not supplied.',
173
+ },
174
+ description: {
175
+ type: 'string',
176
+ description: 'An optional description for the server variable. CommonMark syntax MAY be used for rich text representation.',
130
177
  },
131
- default: { type: 'string' },
132
- description: { type: 'string' },
133
178
  examples: {
134
179
  type: 'array',
135
180
  items: { type: 'string' },
181
+ description: 'An array of examples of the server variable.',
136
182
  },
137
183
  },
138
184
  required: [],
185
+ description: 'An object representing a Server Variable for server URL template substitution.',
139
186
  };
140
187
  const Info = {
141
188
  properties: {
142
- title: { type: 'string' },
143
- version: { type: 'string' },
144
- description: { type: 'string' },
145
- termsOfService: { type: 'string' },
189
+ title: {
190
+ type: 'string',
191
+ description: 'REQUIRED. The title of the application.',
192
+ },
193
+ version: {
194
+ type: 'string',
195
+ description: 'REQUIRED Provides the version of the application API (not to be confused with the specification version).',
196
+ },
197
+ description: {
198
+ type: 'string',
199
+ description: 'A short description of the application. CommonMark syntax can be used for rich text representation.',
200
+ },
201
+ termsOfService: {
202
+ type: 'string',
203
+ description: 'A URL to the Terms of Service for the API. This MUST be in the form of an absolute URL.',
204
+ },
146
205
  contact: 'Contact',
147
206
  license: 'License',
148
207
  },
149
208
  required: ['title', 'version'],
209
+ description: 'The object provides metadata about the API. The metadata can be used by the clients if needed.',
150
210
  };
151
211
  export const Contact = {
152
212
  properties: {
153
- name: { type: 'string' },
154
- url: { type: 'string' },
155
- email: { type: 'string' },
213
+ name: {
214
+ type: 'string',
215
+ description: 'The identifying name of the contact person/organization.',
216
+ },
217
+ url: {
218
+ type: 'string',
219
+ description: 'The URL pointing to the contact information. This MUST be in the form of an absolute URL.',
220
+ },
221
+ email: {
222
+ type: 'string',
223
+ description: 'The email address of the contact person/organization. MUST be in the format of an email address.',
224
+ },
156
225
  },
226
+ description: 'Contact information for the exposed API.',
157
227
  };
158
228
  export const License = {
159
229
  properties: {
160
- name: { type: 'string' },
161
- url: { type: 'string' },
230
+ name: {
231
+ type: 'string',
232
+ description: 'REQUIRED. The license name used for the API.',
233
+ },
234
+ url: {
235
+ type: 'string',
236
+ description: 'A URL to the license used for the API. This MUST be in the form of an absolute URL.',
237
+ },
162
238
  },
163
239
  required: ['name'],
240
+ description: 'License information for the exposed API.',
164
241
  };
165
242
  const Parameter = {
166
243
  properties: {
167
- description: { type: 'string' },
244
+ description: {
245
+ type: 'string',
246
+ description: 'A verbose explanation of the parameter. CommonMark syntax can be used for rich text representation.',
247
+ },
168
248
  schema: 'Schema',
169
- location: { type: 'string' },
249
+ location: {
250
+ type: 'string',
251
+ description: 'A runtime expression that specifies the location of the parameter value. Even when a definition for the target field exists, it MUST NOT be used to validate this parameter but, instead, the schema property MUST be used.',
252
+ },
170
253
  },
254
+ description: 'Describes a parameter included in a channel name.',
171
255
  };
172
256
  export const CorrelationId = {
173
257
  properties: {
174
- description: { type: 'string' },
175
- location: { type: 'string' },
258
+ description: {
259
+ type: 'string',
260
+ description: 'An optional description of the identifier. CommonMark syntax can be used for rich text representation.',
261
+ },
262
+ location: {
263
+ type: 'string',
264
+ description: 'REQUIRED. A runtime expression that specifies the location of the correlation ID.',
265
+ },
176
266
  },
177
267
  required: ['location'],
268
+ description: 'An object that specifies an identifier at design time that can used for message tracing and correlation.',
178
269
  };
179
270
  const Message = {
180
271
  properties: {
181
- messageId: { type: 'string' },
272
+ messageId: {
273
+ type: 'string',
274
+ description: 'Unique string used to identify the message. The id MUST be unique among all messages described in the API. The messageId value is case-sensitive. Tools and libraries MAY use the messageId to uniquely identify a message, therefore, it is RECOMMENDED to follow common programming naming conventions.',
275
+ },
182
276
  headers: 'Schema',
183
277
  payload: 'Schema', // TODO: strictly this does not cover all cases
184
278
  correlationId: 'CorrelationId',
185
- schemaFormat: { type: 'string' }, // TODO: support official list of schema formats and custom values
186
- contentType: { type: 'string' },
187
- name: { type: 'string' },
188
- title: { type: 'string' },
189
- summary: { type: 'string' },
190
- description: { type: 'string' },
279
+ schemaFormat: {
280
+ type: 'string',
281
+ description: 'A string containing the name of the schema format used to define the message payload. If omitted, implementations should parse the payload as a Schema object. When the payload is defined using a $ref to a remote file, it is RECOMMENDED the schema format includes the file encoding type to allow implementations to parse the file correctly.',
282
+ }, // TODO: support official list of schema formats and custom values
283
+ contentType: {
284
+ type: 'string',
285
+ description: `The content type to use when encoding/decoding a message's payload. The value MUST be a specific media type (e.g. application/json). When omitted, the value MUST be the one specified on the defaultContentType field.`,
286
+ },
287
+ name: {
288
+ type: 'string',
289
+ description: 'A machine-friendly name for the message.',
290
+ },
291
+ title: {
292
+ type: 'string',
293
+ description: 'A human-friendly title for the message.',
294
+ },
295
+ summary: {
296
+ type: 'string',
297
+ description: 'A short summary of what the message is about.',
298
+ },
299
+ description: {
300
+ type: 'string',
301
+ description: 'A verbose explanation of the message. CommonMark syntax can be used for rich text representation.',
302
+ },
191
303
  tags: 'TagList',
192
304
  externalDocs: 'ExternalDocs',
193
305
  bindings: 'MessageBindings',
@@ -195,6 +307,7 @@ const Message = {
195
307
  traits: 'MessageTraitList',
196
308
  },
197
309
  additionalProperties: {},
310
+ description: 'Describes a message received on a given channel and operation.',
198
311
  };
199
312
  const MessageBindings = {
200
313
  properties: {},
@@ -223,6 +336,7 @@ const MessageBindings = {
223
336
  ];
224
337
  },
225
338
  additionalProperties: { type: 'object' },
339
+ description: 'Map describing protocol-specific definitions for a message.',
226
340
  };
227
341
  const OperationBindings = {
228
342
  properties: {},
@@ -251,58 +365,114 @@ const OperationBindings = {
251
365
  ];
252
366
  },
253
367
  additionalProperties: { type: 'object' },
368
+ description: 'Map describing protocol-specific definitions for an operation.',
254
369
  };
255
370
  const OperationTrait = {
256
371
  properties: {
257
372
  tags: 'TagList',
258
- summary: { type: 'string' },
259
- description: { type: 'string' },
373
+ summary: {
374
+ type: 'string',
375
+ description: 'A short summary of what the operation is about.',
376
+ },
377
+ description: {
378
+ type: 'string',
379
+ description: 'A verbose explanation of the operation. CommonMark syntax can be used for rich text representation.',
380
+ },
260
381
  externalDocs: 'ExternalDocs',
261
- operationId: { type: 'string' },
382
+ operationId: {
383
+ type: 'string',
384
+ description: 'Unique string used to identify the operation. The id MUST be unique among all operations described in the API. The operationId value is case-sensitive. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow common programming naming conventions.',
385
+ },
262
386
  security: 'SecurityRequirementList',
263
387
  bindings: 'OperationBindings',
264
388
  },
265
389
  required: [],
390
+ description: 'Describes a trait that MAY be applied to an Operation Object. This object MAY contain any property from the Operation Object, except message and traits.',
266
391
  };
267
392
  const MessageTrait = {
268
393
  properties: {
269
- messageId: { type: 'string' },
394
+ messageId: {
395
+ type: 'string',
396
+ description: 'Unique string used to identify the message. The id MUST be unique among all messages described in the API. The messageId value is case-sensitive. Tools and libraries MAY use the messageId to uniquely identify a message, therefore, it is RECOMMENDED to follow common programming naming conventions.',
397
+ },
270
398
  headers: 'Schema',
271
399
  correlationId: 'CorrelationId',
272
- schemaFormat: { type: 'string' },
273
- contentType: { type: 'string' },
274
- name: { type: 'string' },
275
- title: { type: 'string' },
276
- summary: { type: 'string' },
277
- description: { type: 'string' },
400
+ schemaFormat: {
401
+ type: 'string',
402
+ description: 'A string containing the name of the schema format/language used to define the message payload. If omitted, implementations should parse the payload as a Schema object.',
403
+ },
404
+ contentType: {
405
+ type: 'string',
406
+ description: `The content type to use when encoding/decoding a message's payload. The value MUST be a specific media type (e.g. application/json). When omitted, the value MUST be the one specified on the defaultContentType field.`,
407
+ },
408
+ name: {
409
+ type: 'string',
410
+ description: 'A verbose explanation of the message. CommonMark syntax can be used for rich text representation.',
411
+ },
412
+ title: {
413
+ type: 'string',
414
+ description: 'A human-friendly title for the message.',
415
+ },
416
+ summary: {
417
+ type: 'string',
418
+ description: 'A short summary of what the message is about.',
419
+ },
420
+ description: {
421
+ type: 'string',
422
+ description: 'A verbose explanation of the message. CommonMark syntax can be used for rich text representation.',
423
+ },
278
424
  tags: 'TagList',
279
425
  externalDocs: 'ExternalDocs',
280
426
  bindings: 'MessageBindings',
281
427
  examples: 'MessageExampleList',
282
428
  },
283
429
  additionalProperties: {},
430
+ description: 'Describes a trait that MAY be applied to a Message Object. This object MAY contain any property from the Message Object, except payload and traits.',
284
431
  };
285
432
  const Operation = {
286
433
  properties: {
287
434
  tags: 'TagList',
288
- summary: { type: 'string' },
289
- description: { type: 'string' },
435
+ summary: {
436
+ type: 'string',
437
+ description: 'A short summary of what the operation is about.',
438
+ },
439
+ description: {
440
+ type: 'string',
441
+ description: 'A verbose explanation of the operation. CommonMark syntax can be used for rich text representation.',
442
+ },
290
443
  externalDocs: 'ExternalDocs',
291
- operationId: { type: 'string' },
444
+ operationId: {
445
+ type: 'string',
446
+ description: 'Unique string used to identify the operation. The id MUST be unique among all operations described in the API. The operationId value is case-sensitive. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow common programming naming conventions.',
447
+ },
292
448
  security: 'SecurityRequirementList',
293
449
  bindings: 'OperationBindings',
294
450
  traits: 'OperationTraitList',
295
451
  message: 'Message',
296
452
  },
297
453
  required: [],
454
+ description: 'Describes a publish or a subscribe operation. This provides a place to document how and why messages are sent and received.',
298
455
  };
299
456
  export const MessageExample = {
300
457
  properties: {
301
- payload: { isExample: true },
302
- summary: { type: 'string' },
303
- name: { type: 'string' },
304
- headers: { type: 'object' },
458
+ payload: {
459
+ isExample: true,
460
+ description: `The value of this field MUST validate against the Message Object's payload field.`,
461
+ },
462
+ summary: {
463
+ type: 'string',
464
+ description: 'A short summary of what the example is about.',
465
+ },
466
+ name: {
467
+ type: 'string',
468
+ description: 'A machine-friendly name.',
469
+ },
470
+ headers: {
471
+ type: 'object',
472
+ description: `The value of this field MUST validate against the Message Object's headers field.`,
473
+ },
305
474
  },
475
+ description: 'Message Example Object represents an example of a Message Object and MUST contain either headers and/or payload fields.',
306
476
  };
307
477
  const Components = {
308
478
  properties: {
@@ -329,6 +499,7 @@ const ImplicitFlow = {
329
499
  authorizationUrl: { type: 'string' },
330
500
  },
331
501
  required: ['authorizationUrl', 'scopes'],
502
+ description: 'Configuration for the OAuth Implicit flow.',
332
503
  };
333
504
  const PasswordFlow = {
334
505
  properties: {
@@ -337,6 +508,7 @@ const PasswordFlow = {
337
508
  tokenUrl: { type: 'string' },
338
509
  },
339
510
  required: ['tokenUrl', 'scopes'],
511
+ description: 'Configuration for the OAuth Password flow.',
340
512
  };
341
513
  const ClientCredentials = {
342
514
  properties: {
@@ -345,6 +517,7 @@ const ClientCredentials = {
345
517
  tokenUrl: { type: 'string' },
346
518
  },
347
519
  required: ['tokenUrl', 'scopes'],
520
+ description: 'Configuration for the OAuth Client Credentials flow.',
348
521
  };
349
522
  const AuthorizationCode = {
350
523
  properties: {
@@ -354,6 +527,7 @@ const AuthorizationCode = {
354
527
  tokenUrl: { type: 'string' },
355
528
  },
356
529
  required: ['authorizationUrl', 'tokenUrl', 'scopes'],
530
+ description: 'Configuration for the OAuth Authorization Code flow.',
357
531
  };
358
532
  export const SecuritySchemeFlows = {
359
533
  properties: {
@@ -382,13 +556,32 @@ const SecurityScheme = {
382
556
  'gssapi',
383
557
  ],
384
558
  },
385
- description: { type: 'string' },
386
- name: { type: 'string' },
387
- in: { type: 'string', enum: ['query', 'header', 'cookie', 'user', 'password'] },
388
- scheme: { type: 'string' },
389
- bearerFormat: { type: 'string' },
559
+ description: {
560
+ type: 'string',
561
+ description: 'A short description for security scheme. CommonMark syntax MAY be used for rich text representation.',
562
+ },
563
+ name: {
564
+ type: 'string',
565
+ description: 'REQUIRED. The name of the header, query or cookie parameter to be used.',
566
+ },
567
+ in: {
568
+ type: 'string',
569
+ enum: ['query', 'header', 'cookie', 'user', 'password'],
570
+ description: 'REQUIRED. The location of the API key. Valid values are "user" and "password" for apiKey and "query", "header" or "cookie" for httpApiKey.',
571
+ },
572
+ scheme: {
573
+ type: 'string',
574
+ description: 'REQUIRED. The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.',
575
+ },
576
+ bearerFormat: {
577
+ type: 'string',
578
+ description: 'A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes.',
579
+ },
390
580
  flows: 'SecuritySchemeFlows',
391
- openIdConnectUrl: { type: 'string' },
581
+ openIdConnectUrl: {
582
+ type: 'string',
583
+ description: 'REQUIRED. OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of an absolute URL.',
584
+ },
392
585
  },
393
586
  required(value) {
394
587
  switch (value?.type) {
@@ -423,15 +616,18 @@ const SecurityScheme = {
423
616
  }
424
617
  },
425
618
  extensionsPrefix: 'x-',
619
+ description: 'Defines a security scheme that can be used by the operations.',
426
620
  };
427
621
  // --- Per-protocol node types
428
622
  // http
429
623
  const HttpChannelBinding = {
430
624
  properties: {}, // empty object
625
+ description: 'Protocol-specific information for an HTTP channel.',
431
626
  };
432
627
  ChannelBindings.properties.http = HttpChannelBinding;
433
628
  const HttpServerBinding = {
434
629
  properties: {}, // empty object
630
+ description: 'Protocol-specific information for an HTTP server.',
435
631
  };
436
632
  ServerBindings.properties.http = HttpServerBinding;
437
633
  const HttpMessageBinding = {
@@ -439,6 +635,7 @@ const HttpMessageBinding = {
439
635
  headers: 'Schema',
440
636
  bindingVersion: { type: 'string' },
441
637
  },
638
+ description: 'Protocol-specific information for an HTTP message, i.e., a request or a response.',
442
639
  };
443
640
  MessageBindings.properties.http = HttpMessageBinding;
444
641
  const HttpOperationBinding = {
@@ -451,6 +648,7 @@ const HttpOperationBinding = {
451
648
  headers: 'Schema',
452
649
  bindingVersion: { type: 'string' },
453
650
  },
651
+ description: 'Protocol-specific information for an HTTP operation.',
454
652
  };
455
653
  OperationBindings.properties.http = HttpOperationBinding;
456
654
  // ws
@@ -461,18 +659,22 @@ const WsChannelBinding = {
461
659
  headers: 'Schema',
462
660
  bindingVersion: { type: 'string' },
463
661
  },
662
+ description: 'Protocol-specific information for a WebSockets channel.',
464
663
  };
465
664
  ChannelBindings.properties.ws = WsChannelBinding;
466
665
  const WsServerBinding = {
467
666
  properties: {}, // empty object
667
+ description: 'Protocol-specific information for a WebSockets server.',
468
668
  };
469
669
  ServerBindings.properties.ws = WsServerBinding;
470
670
  const WsMessageBinding = {
471
671
  properties: {}, // empty object
672
+ description: 'Protocol-specific information for a WebSockets message.',
472
673
  };
473
674
  MessageBindings.properties.ws = WsMessageBinding;
474
675
  const WsOperationBinding = {
475
676
  properties: {}, // empty object
677
+ description: 'Protocol-specific information for a WebSockets operation.',
476
678
  };
477
679
  OperationBindings.properties.ws = WsOperationBinding;
478
680
  // kafka
@@ -493,10 +695,12 @@ const KafkaChannelBinding = {
493
695
  topicConfiguration: 'KafkaTopicConfiguration',
494
696
  bindingVersion: { type: 'string' },
495
697
  },
698
+ description: 'Protocol-specific information for a Kafka channel.',
496
699
  };
497
700
  ChannelBindings.properties.kafka = KafkaChannelBinding;
498
701
  const KafkaServerBinding = {
499
702
  properties: {}, // empty object
703
+ description: 'Protocol-specific information for a Kafka server.',
500
704
  };
501
705
  ServerBindings.properties.kafka = KafkaServerBinding;
502
706
  const KafkaMessageBinding = {
@@ -507,6 +711,7 @@ const KafkaMessageBinding = {
507
711
  schemaLookupStrategy: { type: 'string' },
508
712
  bindingVersion: { type: 'string' },
509
713
  },
714
+ description: 'Protocol-specific information for a Kafka message.',
510
715
  };
511
716
  MessageBindings.properties.kafka = KafkaMessageBinding;
512
717
  const KafkaOperationBinding = {
@@ -515,6 +720,7 @@ const KafkaOperationBinding = {
515
720
  clientId: 'Schema',
516
721
  bindingVersion: { type: 'string' },
517
722
  },
723
+ description: 'Protocol-specific information for a Kafka operation.',
518
724
  };
519
725
  OperationBindings.properties.kafka = KafkaOperationBinding;
520
726
  // anypointmq
@@ -524,10 +730,12 @@ const AnypointmqChannelBinding = {
524
730
  destinationType: { type: 'string' },
525
731
  bindingVersion: { type: 'string' },
526
732
  },
733
+ description: 'Protocol-specific information for an Anypoint MQ channel.',
527
734
  };
528
735
  ChannelBindings.properties.anypointmq = AnypointmqChannelBinding;
529
736
  const AnypointmqServerBinding = {
530
737
  properties: {}, // empty object
738
+ description: 'Protocol-specific information for an Anypoint MQ server.',
531
739
  };
532
740
  ServerBindings.properties.anypointmq = AnypointmqServerBinding;
533
741
  const AnypointmqMessageBinding = {
@@ -535,19 +743,23 @@ const AnypointmqMessageBinding = {
535
743
  headers: 'Schema',
536
744
  bindingVersion: { type: 'string' },
537
745
  },
746
+ description: 'Protocol-specific information for an Anypoint MQ message.',
538
747
  };
539
748
  MessageBindings.properties.anypointmq = AnypointmqMessageBinding;
540
749
  const AnypointmqOperationBinding = {
541
750
  properties: {}, // empty object
751
+ description: 'Protocol-specific information for an Anypoint MQ operation.',
542
752
  };
543
753
  OperationBindings.properties.anypointmq = AnypointmqOperationBinding;
544
754
  // amqp
545
755
  const AmqpChannelBinding = {
546
756
  properties: {}, // empty object
757
+ description: 'Protocol-specific information for an AMQP 0-9-1 channel.',
547
758
  };
548
759
  ChannelBindings.properties.amqp = AmqpChannelBinding;
549
760
  const AmqpServerBinding = {
550
761
  properties: {}, // empty object
762
+ description: 'Protocol-specific information for an AMQP 0-9-1 server.',
551
763
  };
552
764
  ServerBindings.properties.amqp = AmqpServerBinding;
553
765
  const AmqpMessageBinding = {
@@ -556,6 +768,7 @@ const AmqpMessageBinding = {
556
768
  messageType: { type: 'string' },
557
769
  bindingVersion: { type: 'string' },
558
770
  },
771
+ description: 'Protocol-specific information for an AMQP 0-9-1 message.',
559
772
  };
560
773
  MessageBindings.properties.amqp = AmqpMessageBinding;
561
774
  const AmqpOperationBinding = {
@@ -573,23 +786,28 @@ const AmqpOperationBinding = {
573
786
  ack: { type: 'boolean' },
574
787
  bindingVersion: { type: 'string' },
575
788
  },
789
+ description: 'Protocol-specific information for an AMQP 0-9-1 operation.',
576
790
  };
577
791
  OperationBindings.properties.amqp = AmqpOperationBinding;
578
792
  // amqp1
579
793
  const Amqp1ChannelBinding = {
580
794
  properties: {}, // empty object
795
+ description: 'Protocol-specific information for an AMQP 1.0 channel.',
581
796
  };
582
797
  ChannelBindings.properties.amqp1 = Amqp1ChannelBinding;
583
798
  const Amqp1ServerBinding = {
584
799
  properties: {}, // empty object
800
+ description: 'Protocol-specific information for an AMQP 1.0 server.',
585
801
  };
586
802
  ServerBindings.properties.amqp1 = Amqp1ServerBinding;
587
803
  const Amqp1MessageBinding = {
588
804
  properties: {}, // empty object
805
+ description: 'Binding Protocol-specific information for an AMQP 1.0 message.',
589
806
  };
590
807
  MessageBindings.properties.amqp1 = Amqp1MessageBinding;
591
808
  const Amqp1OperationBinding = {
592
- properties: {}, // empty object
809
+ properties: {}, // empty object,
810
+ description: 'Protocol-specific information for an AMQP 1.0 operation.',
593
811
  };
594
812
  OperationBindings.properties.amqp1 = Amqp1OperationBinding;
595
813
  // mqtt
@@ -599,6 +817,7 @@ const MqttChannelBinding = {
599
817
  retain: { type: 'boolean' },
600
818
  bindingVersion: { type: 'string' },
601
819
  },
820
+ description: 'Protocol-specific information for an MQTT channel.',
602
821
  };
603
822
  ChannelBindings.properties.mqtt = MqttChannelBinding;
604
823
  const MqttServerBindingLastWill = {
@@ -617,12 +836,14 @@ const MqttServerBinding = {
617
836
  keepAlive: { type: 'integer' },
618
837
  bindingVersion: { type: 'string' },
619
838
  },
839
+ description: 'Protocol-specific information for an MQTT server.',
620
840
  };
621
841
  ServerBindings.properties.mqtt = MqttServerBinding;
622
842
  const MqttMessageBinding = {
623
843
  properties: {
624
844
  bindingVersion: { type: 'string' },
625
845
  },
846
+ description: 'Protocol-specific information for an MQTT message.',
626
847
  };
627
848
  MessageBindings.properties.mqtt = MqttMessageBinding;
628
849
  const MqttOperationBinding = {
@@ -631,36 +852,44 @@ const MqttOperationBinding = {
631
852
  retain: { type: 'boolean' },
632
853
  bindingVersion: { type: 'string' },
633
854
  },
855
+ description: 'Protocol-specific information for an MQTT operation.',
634
856
  };
635
857
  OperationBindings.properties.mqtt = MqttOperationBinding;
636
858
  // mqtt5
637
859
  const Mqtt5ChannelBinding = {
638
860
  properties: {}, // empty object
861
+ description: 'Protocol-specific information for an MQTT 5 channel.',
639
862
  };
640
863
  ChannelBindings.properties.mqtt5 = Mqtt5ChannelBinding;
641
864
  const Mqtt5ServerBinding = {
642
865
  properties: {}, // empty object
866
+ description: 'Protocol-specific information for an MQTT 5 server.',
643
867
  };
644
868
  ServerBindings.properties.mqtt5 = Mqtt5ServerBinding;
645
869
  const Mqtt5MessageBinding = {
646
870
  properties: {}, // empty object
871
+ description: 'Protocol-specific information for an MQTT 5 message.',
647
872
  };
648
873
  MessageBindings.properties.mqtt5 = Mqtt5MessageBinding;
649
874
  const Mqtt5OperationBinding = {
650
875
  properties: {}, // empty object
876
+ description: 'Protocol-specific information for an MQTT 5 operation.',
651
877
  };
652
878
  OperationBindings.properties.mqtt5 = Mqtt5OperationBinding;
653
879
  // nats
654
880
  const NatsChannelBinding = {
655
881
  properties: {}, // empty object
882
+ description: 'Protocol-specific information for a NATS channel.',
656
883
  };
657
884
  ChannelBindings.properties.nats = NatsChannelBinding;
658
885
  const NatsServerBinding = {
659
886
  properties: {}, // empty object
887
+ description: 'Protocol-specific information for a NATS server.',
660
888
  };
661
889
  ServerBindings.properties.nats = NatsServerBinding;
662
890
  const NatsMessageBinding = {
663
891
  properties: {}, // empty object
892
+ description: 'Protocol-specific information for a NATS message.',
664
893
  };
665
894
  MessageBindings.properties.nats = NatsMessageBinding;
666
895
  const NatsOperationBinding = {
@@ -668,6 +897,7 @@ const NatsOperationBinding = {
668
897
  queue: { type: 'string' },
669
898
  bindingVersion: { type: 'string' },
670
899
  },
900
+ description: 'Protocol-specific information for a NATS operation.',
671
901
  };
672
902
  OperationBindings.properties.nats = NatsOperationBinding;
673
903
  // jms
@@ -677,10 +907,12 @@ const JmsChannelBinding = {
677
907
  destinationType: { type: 'string' },
678
908
  bindingVersion: { type: 'string' },
679
909
  },
910
+ description: 'Protocol-specific information for a JMS channel.',
680
911
  };
681
912
  ChannelBindings.properties.jms = JmsChannelBinding;
682
913
  const JmsServerBinding = {
683
914
  properties: {}, // empty object
915
+ description: 'Protocol-specific information for a JMS server.',
684
916
  };
685
917
  ServerBindings.properties.jms = JmsServerBinding;
686
918
  const JmsMessageBinding = {
@@ -688,6 +920,7 @@ const JmsMessageBinding = {
688
920
  headers: 'Schema',
689
921
  bindingVersion: { type: 'string' },
690
922
  },
923
+ description: 'Protocol-specific information for a JMS message.',
691
924
  };
692
925
  MessageBindings.properties.jms = JmsMessageBinding;
693
926
  const JmsOperationBinding = {
@@ -695,12 +928,14 @@ const JmsOperationBinding = {
695
928
  headers: 'Schema',
696
929
  bindingVersion: { type: 'string' },
697
930
  },
931
+ description: 'Protocol-specific information for a JMS operation.',
698
932
  };
699
933
  OperationBindings.properties.jms = JmsOperationBinding;
700
934
  // sns
701
935
  // solace
702
936
  const SolaceChannelBinding = {
703
937
  properties: {}, // empty object
938
+ description: 'Protocol-specific information for a Solace channel.',
704
939
  };
705
940
  ChannelBindings.properties.solace = SolaceChannelBinding;
706
941
  const SolaceServerBinding = {
@@ -708,10 +943,12 @@ const SolaceServerBinding = {
708
943
  bindingVersion: { type: 'string' },
709
944
  msgVpn: { type: 'string' },
710
945
  },
946
+ description: 'Protocol-specific information for a Solace message.',
711
947
  };
712
948
  ServerBindings.properties.solace = SolaceServerBinding;
713
949
  const SolaceMessageBinding = {
714
950
  properties: {}, // empty object
951
+ description: 'Protocol-specific information for a Solace message.',
715
952
  };
716
953
  MessageBindings.properties.solace = SolaceMessageBinding;
717
954
  const SolaceDestination = {
@@ -731,58 +968,71 @@ const SolaceOperationBinding = {
731
968
  bindingVersion: { type: 'string' },
732
969
  destinations: listOf('SolaceDestination'),
733
970
  },
971
+ description: 'Protocol-specific information for a Solace operation.',
734
972
  };
735
973
  OperationBindings.properties.solace = SolaceOperationBinding;
736
974
  // sqs
737
975
  // stomp
738
976
  const StompChannelBinding = {
739
977
  properties: {}, // empty object
978
+ description: 'Protocol-specific information for a STOMP channel.',
740
979
  };
741
980
  ChannelBindings.properties.stomp = StompChannelBinding;
742
981
  const StompServerBinding = {
743
982
  properties: {}, // empty object
983
+ description: 'Protocol-specific information for a STOMP server.',
744
984
  };
745
985
  ServerBindings.properties.stomp = StompServerBinding;
746
986
  const StompMessageBinding = {
747
987
  properties: {}, // empty object
988
+ description: 'Protocol-specific information for a STOMP message.',
748
989
  };
749
990
  MessageBindings.properties.stomp = StompMessageBinding;
750
991
  const StompOperationBinding = {
751
992
  properties: {}, // empty object
993
+ description: 'Protocol-specific information for a STOMP operation.',
752
994
  };
753
995
  OperationBindings.properties.stomp = StompOperationBinding;
754
996
  // redis
755
997
  const RedisChannelBinding = {
756
998
  properties: {}, // empty object
999
+ description: 'Protocol-specific information for a Redis channel.',
757
1000
  };
758
1001
  ChannelBindings.properties.redis = RedisChannelBinding;
759
1002
  const RedisServerBinding = {
760
1003
  properties: {}, // empty object
1004
+ description: 'Protocol-specific information for a Redis server.',
761
1005
  };
762
1006
  ServerBindings.properties.redis = RedisServerBinding;
763
1007
  const RedisMessageBinding = {
764
1008
  properties: {}, // empty object
1009
+ description: 'Protocol-specific information for a Redis message.',
765
1010
  };
766
1011
  MessageBindings.properties.redis = RedisMessageBinding;
767
1012
  const RedisOperationBinding = {
768
1013
  properties: {}, // empty object
1014
+ description: 'Protocol-specific information for a Redis operation.',
769
1015
  };
770
1016
  OperationBindings.properties.redis = RedisOperationBinding;
771
1017
  // mercure
772
1018
  const MercureChannelBinding = {
773
1019
  properties: {}, // empty object
1020
+ description: 'Protocol-specific information for a Mercure channel.',
774
1021
  };
775
1022
  ChannelBindings.properties.mercure = MercureChannelBinding;
776
1023
  const MercureServerBinding = {
777
1024
  properties: {}, // empty object
1025
+ description: 'Protocol-specific information for a Mercure server.',
778
1026
  };
779
1027
  ServerBindings.properties.mercure = MercureServerBinding;
780
1028
  const MercureMessageBinding = {
781
1029
  properties: {}, // empty object
1030
+ description: 'Protocol-specific information for a Mercure message.',
782
1031
  };
783
1032
  MessageBindings.properties.mercure = MercureMessageBinding;
784
1033
  const MercureOperationBinding = {
785
1034
  properties: {}, // empty object
1035
+ description: 'Protocol-specific information for a Mercure operation.',
786
1036
  };
787
1037
  OperationBindings.properties.mercure = MercureOperationBinding;
788
1038
  // ibmmq