@amritk/lint 0.4.8 → 0.5.1
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.
- package/AI.md +73 -4
- package/README.md +65 -14
- package/dist/core/filter-expression.js +17 -4
- package/dist/core/filter.js +82 -35
- package/dist/core/glob.js +25 -31
- package/dist/core/jsonpath.d.ts +9 -1
- package/dist/core/jsonpath.js +74 -16
- package/dist/core/lint.d.ts +8 -1
- package/dist/core/lint.js +4 -18
- package/dist/core/order.d.ts +30 -0
- package/dist/core/order.js +36 -0
- package/dist/core/pointers.d.ts +3 -2
- package/dist/core/pointers.js +27 -18
- package/dist/core/ruleset.js +62 -20
- package/dist/core/runner.js +16 -23
- package/dist/core/severity.d.ts +11 -0
- package/dist/core/severity.js +13 -0
- package/dist/fix/apply.js +6 -1
- package/dist/fix/plugin.js +2 -1
- package/dist/functions/or.js +1 -1
- package/dist/functions/ref-index.d.ts +15 -0
- package/dist/functions/ref-index.js +33 -0
- package/dist/functions/schema.d.ts +15 -0
- package/dist/functions/schema.js +2 -0
- package/dist/functions/typed-enum.js +2 -1
- package/dist/functions/unreferenced-reusable-object.js +3 -20
- package/dist/functions/xor.js +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/index.js +24 -93
- package/dist/rules/asyncapi/asyncapi.d.ts +3 -0
- package/dist/rules/asyncapi/asyncapi.js +563 -0
- package/dist/rules/asyncapi/formats.d.ts +23 -0
- package/dist/rules/asyncapi/formats.js +49 -0
- package/dist/rules/asyncapi/functions/aas-server-variables.d.ts +8 -0
- package/dist/rules/asyncapi/functions/aas-server-variables.js +5 -0
- package/dist/rules/asyncapi/functions/aas-tags-unique.d.ts +2 -0
- package/dist/rules/asyncapi/functions/aas-tags-unique.js +5 -0
- package/dist/rules/asyncapi/functions/asyncapi-channel-parameters.d.ts +7 -0
- package/dist/rules/asyncapi/functions/asyncapi-channel-parameters.js +46 -0
- package/dist/rules/asyncapi/functions/asyncapi-channel-servers.d.ts +27 -0
- package/dist/rules/asyncapi/functions/asyncapi-channel-servers.js +61 -0
- package/dist/rules/asyncapi/functions/asyncapi-document-schema.d.ts +17 -0
- package/dist/rules/asyncapi/functions/asyncapi-document-schema.js +12 -0
- package/dist/rules/asyncapi/functions/asyncapi-headers-object.d.ts +23 -0
- package/dist/rules/asyncapi/functions/asyncapi-headers-object.js +25 -0
- package/dist/rules/asyncapi/functions/asyncapi-message-examples.d.ts +8 -0
- package/dist/rules/asyncapi/functions/asyncapi-message-examples.js +42 -0
- package/dist/rules/asyncapi/functions/asyncapi-message-id-unique.d.ts +3 -0
- package/dist/rules/asyncapi/functions/asyncapi-message-id-unique.js +30 -0
- package/dist/rules/asyncapi/functions/asyncapi-operation-id-unique.d.ts +3 -0
- package/dist/rules/asyncapi/functions/asyncapi-operation-id-unique.js +30 -0
- package/dist/rules/asyncapi/functions/asyncapi-payload.d.ts +14 -0
- package/dist/rules/asyncapi/functions/asyncapi-payload.js +32 -0
- package/dist/rules/asyncapi/functions/asyncapi-schema-validation.d.ts +11 -0
- package/dist/rules/asyncapi/functions/asyncapi-schema-validation.js +17 -0
- package/dist/rules/asyncapi/functions/asyncapi-security.d.ts +22 -0
- package/dist/rules/asyncapi/functions/asyncapi-security.js +78 -0
- package/dist/rules/asyncapi/functions/helpers.d.ts +51 -0
- package/dist/rules/asyncapi/functions/helpers.js +91 -0
- package/dist/rules/asyncapi/functions/index.d.ts +15 -0
- package/dist/rules/asyncapi/functions/index.js +53 -0
- package/dist/rules/asyncapi/functions/pointer.d.ts +11 -0
- package/dist/rules/asyncapi/functions/pointer.js +11 -0
- package/dist/rules/asyncapi/functions/schema-format.d.ts +4 -0
- package/dist/rules/asyncapi/functions/schema-format.js +7 -0
- package/dist/rules/asyncapi/index.d.ts +33 -0
- package/dist/rules/asyncapi/index.js +60 -0
- package/dist/rules/asyncapi/schemas/aas20.d.ts +2 -0
- package/dist/rules/asyncapi/schemas/aas20.js +4 -0
- package/dist/rules/asyncapi/schemas/aas21.d.ts +2 -0
- package/dist/rules/asyncapi/schemas/aas21.js +4 -0
- package/dist/rules/asyncapi/schemas/aas22.d.ts +2 -0
- package/dist/rules/asyncapi/schemas/aas22.js +4 -0
- package/dist/rules/asyncapi/schemas/aas23.d.ts +2 -0
- package/dist/rules/asyncapi/schemas/aas23.js +4 -0
- package/dist/rules/asyncapi/schemas/aas24.d.ts +2 -0
- package/dist/rules/asyncapi/schemas/aas24.js +4 -0
- package/dist/rules/asyncapi/schemas/aas25.d.ts +2 -0
- package/dist/rules/asyncapi/schemas/aas25.js +4 -0
- package/dist/rules/asyncapi/schemas/aas26.d.ts +2 -0
- package/dist/rules/asyncapi/schemas/aas26.js +4 -0
- package/dist/rules/asyncapi/schemas/aas30.d.ts +2 -0
- package/dist/rules/asyncapi/schemas/aas30.js +4 -0
- package/dist/rules/asyncapi/schemas/index.d.ts +20 -0
- package/dist/rules/asyncapi/schemas/index.js +45 -0
- package/dist/rules/openapi/fixers.d.ts +6 -2
- package/dist/rules/openapi/fixers.js +2 -0
- package/dist/rules/openapi/functions/oas-discriminator.js +1 -1
- package/dist/rules/openapi/functions/oas-mutually-exclusive.js +1 -1
- package/dist/rules/openapi/functions/oas-op-security-defined.js +1 -1
- package/dist/rules/openapi/functions/oas-server-variables.d.ts +6 -6
- package/dist/rules/openapi/functions/oas-server-variables.js +2 -45
- package/dist/rules/openapi/functions/oas-tags-unique.d.ts +2 -3
- package/dist/rules/openapi/functions/oas-tags-unique.js +2 -16
- package/dist/rules/openapi/functions/oas-unused-component.js +3 -25
- package/dist/rules/openapi/index.d.ts +9 -2
- package/dist/rules/openapi/index.js +15 -70
- package/dist/rules/openapi/schemas/index.js +5 -1
- package/dist/rules/shared/helpers.d.ts +2 -0
- package/dist/rules/shared/helpers.js +4 -0
- package/dist/rules/shared/server-variables.d.ts +27 -0
- package/dist/rules/shared/server-variables.js +55 -0
- package/dist/rules/shared/tags-unique.d.ts +7 -0
- package/dist/rules/shared/tags-unique.js +19 -0
- package/dist/ruleset-files.d.ts +47 -0
- package/dist/ruleset-files.js +92 -0
- package/package.json +8 -4
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { isObject } from "../../shared/helpers.js";
|
|
2
|
+
import { isObject as isObject2 } from "../../shared/helpers.js";
|
|
3
|
+
const V2_OPERATIONS = ["subscribe", "publish"];
|
|
4
|
+
const parseUrlVariables = (value) => typeof value !== "string" ? [] : [...value.matchAll(/\{([^}]+)\}/g)].map((match) => match[1]);
|
|
5
|
+
const componentsOf = (document) => {
|
|
6
|
+
const components = isObject(document) ? document["components"] : void 0;
|
|
7
|
+
return isObject(components) ? components : void 0;
|
|
8
|
+
};
|
|
9
|
+
function* getAllOperations(document) {
|
|
10
|
+
const roots = [
|
|
11
|
+
{ path: ["channels"], channels: isObject(document) ? document["channels"] : void 0 },
|
|
12
|
+
{ path: ["components", "channels"], channels: componentsOf(document)?.["channels"] }
|
|
13
|
+
];
|
|
14
|
+
for (const root of roots) {
|
|
15
|
+
if (!isObject(root.channels))
|
|
16
|
+
continue;
|
|
17
|
+
for (const [address, channel] of Object.entries(root.channels)) {
|
|
18
|
+
if (!isObject(channel))
|
|
19
|
+
continue;
|
|
20
|
+
for (const kind of V2_OPERATIONS) {
|
|
21
|
+
const operation = channel[kind];
|
|
22
|
+
if (isObject(operation))
|
|
23
|
+
yield { path: [...root.path, address, kind], kind, operation };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function* getAllMessages(document) {
|
|
29
|
+
for (const { path, operation } of getAllOperations(document)) {
|
|
30
|
+
const message = operation["message"];
|
|
31
|
+
if (!isObject(message))
|
|
32
|
+
continue;
|
|
33
|
+
const alternatives = message["oneOf"];
|
|
34
|
+
if (Array.isArray(alternatives)) {
|
|
35
|
+
for (const [index, alternative] of alternatives.entries()) {
|
|
36
|
+
if (isObject(alternative))
|
|
37
|
+
yield { path: [...path, "message", "oneOf", index], message: alternative };
|
|
38
|
+
}
|
|
39
|
+
} else {
|
|
40
|
+
yield { path: [...path, "message"], message };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const reusable = componentsOf(document)?.["messages"];
|
|
44
|
+
if (!isObject(reusable))
|
|
45
|
+
return;
|
|
46
|
+
for (const [name, message] of Object.entries(reusable)) {
|
|
47
|
+
if (isObject(message))
|
|
48
|
+
yield { path: ["components", "messages", name], message };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const MAX_MERGE_DEPTH = 64;
|
|
52
|
+
const ownValue = (source, key) => Object.hasOwn(source, key) ? source[key] : void 0;
|
|
53
|
+
const assignOwn = (target, key, value) => {
|
|
54
|
+
if (key === "__proto__") {
|
|
55
|
+
Object.defineProperty(target, key, { value, writable: true, enumerable: true, configurable: true });
|
|
56
|
+
} else {
|
|
57
|
+
target[key] = value;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const mergePatch = (origin, patch, depth) => {
|
|
61
|
+
if (!isObject(patch) || depth >= MAX_MERGE_DEPTH)
|
|
62
|
+
return patch;
|
|
63
|
+
const result = isObject(origin) ? { ...origin } : {};
|
|
64
|
+
for (const key of Object.keys(patch)) {
|
|
65
|
+
const patched = ownValue(patch, key);
|
|
66
|
+
if (patched === null)
|
|
67
|
+
delete result[key];
|
|
68
|
+
else
|
|
69
|
+
assignOwn(result, key, mergePatch(ownValue(result, key), patched, depth + 1));
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
};
|
|
73
|
+
const mergeTraits = (target) => {
|
|
74
|
+
const traits = target["traits"];
|
|
75
|
+
if (!Array.isArray(traits))
|
|
76
|
+
return target;
|
|
77
|
+
let merged = { ...target };
|
|
78
|
+
for (const trait of traits) {
|
|
79
|
+
if (isObject(trait))
|
|
80
|
+
merged = mergePatch(merged, trait, 0);
|
|
81
|
+
}
|
|
82
|
+
return merged;
|
|
83
|
+
};
|
|
84
|
+
export {
|
|
85
|
+
V2_OPERATIONS,
|
|
86
|
+
getAllMessages,
|
|
87
|
+
getAllOperations,
|
|
88
|
+
isObject2 as isObject,
|
|
89
|
+
mergeTraits,
|
|
90
|
+
parseUrlVariables
|
|
91
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FunctionRegistry } from '../../../core/types.js';
|
|
2
|
+
export { aasServerVariables } from './aas-server-variables.js';
|
|
3
|
+
export { aasTagsUnique } from './aas-tags-unique.js';
|
|
4
|
+
export { asyncApiChannelParameters } from './asyncapi-channel-parameters.js';
|
|
5
|
+
export { asyncApiChannelServers } from './asyncapi-channel-servers.js';
|
|
6
|
+
export { asyncApiDocumentSchema } from './asyncapi-document-schema.js';
|
|
7
|
+
export { asyncApiHeadersObject, type IAsyncApiHeadersOptions } from './asyncapi-headers-object.js';
|
|
8
|
+
export { asyncApiMessageExamples } from './asyncapi-message-examples.js';
|
|
9
|
+
export { asyncApiMessageIdUnique } from './asyncapi-message-id-unique.js';
|
|
10
|
+
export { asyncApiOperationIdUnique } from './asyncapi-operation-id-unique.js';
|
|
11
|
+
export { asyncApiPayload } from './asyncapi-payload.js';
|
|
12
|
+
export { asyncApiSchemaValidation, type IAsyncApiSchemaValidationOptions } from './asyncapi-schema-validation.js';
|
|
13
|
+
export { asyncApiSecurity, type IAsyncApiSecurityOptions } from './asyncapi-security.js';
|
|
14
|
+
/** The AsyncAPI-specific custom functions, keyed by name for ruleset `then` references. */
|
|
15
|
+
export declare const aasFunctions: FunctionRegistry;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { aasServerVariables } from "./aas-server-variables.js";
|
|
2
|
+
import { aasTagsUnique } from "./aas-tags-unique.js";
|
|
3
|
+
import { asyncApiChannelParameters } from "./asyncapi-channel-parameters.js";
|
|
4
|
+
import { asyncApiChannelServers } from "./asyncapi-channel-servers.js";
|
|
5
|
+
import { asyncApiDocumentSchema } from "./asyncapi-document-schema.js";
|
|
6
|
+
import { asyncApiHeadersObject } from "./asyncapi-headers-object.js";
|
|
7
|
+
import { asyncApiMessageExamples } from "./asyncapi-message-examples.js";
|
|
8
|
+
import { asyncApiMessageIdUnique } from "./asyncapi-message-id-unique.js";
|
|
9
|
+
import { asyncApiOperationIdUnique } from "./asyncapi-operation-id-unique.js";
|
|
10
|
+
import { asyncApiPayload } from "./asyncapi-payload.js";
|
|
11
|
+
import { asyncApiSchemaValidation } from "./asyncapi-schema-validation.js";
|
|
12
|
+
import { asyncApiSecurity } from "./asyncapi-security.js";
|
|
13
|
+
import { aasServerVariables as aasServerVariables2 } from "./aas-server-variables.js";
|
|
14
|
+
import { aasTagsUnique as aasTagsUnique2 } from "./aas-tags-unique.js";
|
|
15
|
+
import { asyncApiChannelParameters as asyncApiChannelParameters2 } from "./asyncapi-channel-parameters.js";
|
|
16
|
+
import { asyncApiChannelServers as asyncApiChannelServers2 } from "./asyncapi-channel-servers.js";
|
|
17
|
+
import { asyncApiDocumentSchema as asyncApiDocumentSchema2 } from "./asyncapi-document-schema.js";
|
|
18
|
+
import { asyncApiHeadersObject as asyncApiHeadersObject2 } from "./asyncapi-headers-object.js";
|
|
19
|
+
import { asyncApiMessageExamples as asyncApiMessageExamples2 } from "./asyncapi-message-examples.js";
|
|
20
|
+
import { asyncApiMessageIdUnique as asyncApiMessageIdUnique2 } from "./asyncapi-message-id-unique.js";
|
|
21
|
+
import { asyncApiOperationIdUnique as asyncApiOperationIdUnique2 } from "./asyncapi-operation-id-unique.js";
|
|
22
|
+
import { asyncApiPayload as asyncApiPayload2 } from "./asyncapi-payload.js";
|
|
23
|
+
import { asyncApiSchemaValidation as asyncApiSchemaValidation2 } from "./asyncapi-schema-validation.js";
|
|
24
|
+
import { asyncApiSecurity as asyncApiSecurity2 } from "./asyncapi-security.js";
|
|
25
|
+
const aasFunctions = {
|
|
26
|
+
aasServerVariables,
|
|
27
|
+
aasTagsUnique,
|
|
28
|
+
asyncApiChannelParameters,
|
|
29
|
+
asyncApiChannelServers,
|
|
30
|
+
asyncApiDocumentSchema,
|
|
31
|
+
asyncApiHeadersObject,
|
|
32
|
+
asyncApiMessageExamples,
|
|
33
|
+
asyncApiMessageIdUnique,
|
|
34
|
+
asyncApiOperationIdUnique,
|
|
35
|
+
asyncApiPayload,
|
|
36
|
+
asyncApiSchemaValidation,
|
|
37
|
+
asyncApiSecurity
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
aasFunctions,
|
|
41
|
+
aasServerVariables2 as aasServerVariables,
|
|
42
|
+
aasTagsUnique2 as aasTagsUnique,
|
|
43
|
+
asyncApiChannelParameters2 as asyncApiChannelParameters,
|
|
44
|
+
asyncApiChannelServers2 as asyncApiChannelServers,
|
|
45
|
+
asyncApiDocumentSchema2 as asyncApiDocumentSchema,
|
|
46
|
+
asyncApiHeadersObject2 as asyncApiHeadersObject,
|
|
47
|
+
asyncApiMessageExamples2 as asyncApiMessageExamples,
|
|
48
|
+
asyncApiMessageIdUnique2 as asyncApiMessageIdUnique,
|
|
49
|
+
asyncApiOperationIdUnique2 as asyncApiOperationIdUnique,
|
|
50
|
+
asyncApiPayload2 as asyncApiPayload,
|
|
51
|
+
asyncApiSchemaValidation2 as asyncApiSchemaValidation,
|
|
52
|
+
asyncApiSecurity2 as asyncApiSecurity
|
|
53
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decodes one JSON Pointer segment taken from a `$ref`: percent-escapes first
|
|
3
|
+
* (the fragment is carried in a URI, and RFC 6901 §6 requires the encoding),
|
|
4
|
+
* then `~1`/`~0`.
|
|
5
|
+
*
|
|
6
|
+
* The `$ref` is document text, so a malformed escape like `%zz` is something an
|
|
7
|
+
* author can write, and `decodeURIComponent` throws `URIError` on it — which
|
|
8
|
+
* replaced a real finding with an internal-error diagnostic on the wrong node.
|
|
9
|
+
* An undecodable segment is compared as written instead.
|
|
10
|
+
*/
|
|
11
|
+
export declare const pointerSegment: (segment: string) => string;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** True when a `schemaFormat` names the AsyncAPI Schema Object dialect, or is absent. */
|
|
2
|
+
export declare const isAsyncApiSchemaFormat: (schemaFormat: unknown) => boolean;
|
|
3
|
+
/** The same test as a filter expression, for a rule's `given`. */
|
|
4
|
+
export declare const ASYNCAPI_SCHEMA_FORMAT_FILTER = "@.schemaFormat === void 0 || @.schemaFormat.match(/^application\\/vnd\\.aai\\.asyncapi([+;])/)";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const ASYNCAPI_DIALECT = /^application\/vnd\.aai\.asyncapi([+;])/;
|
|
2
|
+
const isAsyncApiSchemaFormat = (schemaFormat) => schemaFormat === void 0 || typeof schemaFormat === "string" && ASYNCAPI_DIALECT.test(schemaFormat);
|
|
3
|
+
const ASYNCAPI_SCHEMA_FORMAT_FILTER = "@.schemaFormat === void 0 || @.schemaFormat.match(/^application\\/vnd\\.aai\\.asyncapi([+;])/)";
|
|
4
|
+
export {
|
|
5
|
+
ASYNCAPI_SCHEMA_FORMAT_FILTER,
|
|
6
|
+
isAsyncApiSchemaFormat
|
|
7
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type ResolvedExtend, type Ruleset } from '../../core/index.js';
|
|
2
|
+
import type { FunctionRegistry, RulesetDefinition } from '../../core/types.js';
|
|
3
|
+
import { type IRulesetTrustOptions } from '../../ruleset-files.js';
|
|
4
|
+
export type { IRulesetTrustOptions } from '../../ruleset-files.js';
|
|
5
|
+
export { asyncapi } from './asyncapi.js';
|
|
6
|
+
export { aas2, aas2_0, aas2_1, aas2_2, aas2_3, aas2_4, aas2_5, aas2_6, aas3, aas3_0, aasFormats, } from './formats.js';
|
|
7
|
+
export { aasFunctions } from './functions/index.js';
|
|
8
|
+
export { ASYNCAPI_VERSIONS, type AsyncApiVersion, asyncApiSchemaVersion, LATEST_ASYNCAPI_VERSION, loadAsyncApiSchema, } from './schemas/index.js';
|
|
9
|
+
/** The built-in `@amritk/lint` functions plus the AsyncAPI-specific ones, keyed by name. */
|
|
10
|
+
export declare const allFunctions: FunctionRegistry;
|
|
11
|
+
/**
|
|
12
|
+
* Resolves an `extends` reference to a ruleset definition. Extends the generic
|
|
13
|
+
* file/package resolution with the AsyncAPI preset names:
|
|
14
|
+
* - `asyncapi` / `loupe:asyncapi` / `spectral:asyncapi` → the built-in {@link asyncapi} ruleset,
|
|
15
|
+
* - local file paths (relative to `basePath`, or absolute): `.yaml` / `.yml` / `.json` / `.js`,
|
|
16
|
+
* - npm package specifiers (resolved from `basePath`), including subpaths.
|
|
17
|
+
*
|
|
18
|
+
* As with the core `resolveNamedRuleset`, `basePath` is where resolution starts,
|
|
19
|
+
* not a boundary: an absolute or `../`-escaping path is followed and a `.js`
|
|
20
|
+
* target is `require`d. Pass `restrictTo` to confine resolution to one directory
|
|
21
|
+
* tree when the ruleset is not fully trusted.
|
|
22
|
+
*/
|
|
23
|
+
export declare const resolveAsyncApiRuleset: (name: string, basePath?: string, options?: IRulesetTrustOptions) => ResolvedExtend;
|
|
24
|
+
/**
|
|
25
|
+
* Builds a runnable {@link Ruleset} for AsyncAPI, layering the built-in and
|
|
26
|
+
* AsyncAPI functions (plus any custom ones the definition declares), the
|
|
27
|
+
* AsyncAPI `formats`, and `extends` resolution that understands the `asyncapi` /
|
|
28
|
+
* `loupe:asyncapi` / `spectral:asyncapi` names. With no definition it defaults to
|
|
29
|
+
* `extends: [asyncapi]` (recommended rules only). Feed the result to
|
|
30
|
+
* `@amritk/lint`'s core `lintWithResult` (with a `$ref` resolver for
|
|
31
|
+
* `resolved: true` rules).
|
|
32
|
+
*/
|
|
33
|
+
export declare const createAsyncApiRuleset: (definition?: RulesetDefinition, basePath?: string, options?: IRulesetTrustOptions) => Ruleset;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createRuleset as createCoreRuleset } from "../../core/index.js";
|
|
2
|
+
import { builtinFunctions } from "../../functions/index.js";
|
|
3
|
+
import { collectCustomFunctions, resolveRulesetFile } from "../../ruleset-files.js";
|
|
4
|
+
import { asyncapi } from "./asyncapi.js";
|
|
5
|
+
import { aasFormats } from "./formats.js";
|
|
6
|
+
import { aasFunctions } from "./functions/index.js";
|
|
7
|
+
import { asyncapi as asyncapi2 } from "./asyncapi.js";
|
|
8
|
+
import { aas2, aas2_0, aas2_1, aas2_2, aas2_3, aas2_4, aas2_5, aas2_6, aas3, aas3_0, aasFormats as aasFormats2 } from "./formats.js";
|
|
9
|
+
import { aasFunctions as aasFunctions2 } from "./functions/index.js";
|
|
10
|
+
import { ASYNCAPI_VERSIONS, asyncApiSchemaVersion, LATEST_ASYNCAPI_VERSION, loadAsyncApiSchema } from "./schemas/index.js";
|
|
11
|
+
const allFunctions = { ...builtinFunctions, ...aasFunctions };
|
|
12
|
+
const ASYNCAPI_RULESET_NAMES = /* @__PURE__ */ new Set(["asyncapi", "loupe:asyncapi", "spectral:asyncapi"]);
|
|
13
|
+
const resolveAsyncApiRuleset = (name, basePath = process.cwd(), options = {}) => {
|
|
14
|
+
if (ASYNCAPI_RULESET_NAMES.has(name))
|
|
15
|
+
return { definition: asyncapi, basePath };
|
|
16
|
+
return resolveRulesetFile(name, basePath, options);
|
|
17
|
+
};
|
|
18
|
+
const createAsyncApiRuleset = (definition, basePath, options = {}) => {
|
|
19
|
+
const definitionOrDefault = definition ?? { extends: [asyncapi] };
|
|
20
|
+
const trust = options.restrictTo !== void 0 ? { restrictTo: options.restrictTo } : {};
|
|
21
|
+
const resolve = (name, from) => resolveAsyncApiRuleset(name, from, trust);
|
|
22
|
+
let functions = allFunctions;
|
|
23
|
+
const custom = {};
|
|
24
|
+
collectCustomFunctions(definitionOrDefault, basePath ?? process.cwd(), custom, /* @__PURE__ */ new Set(), {
|
|
25
|
+
...trust,
|
|
26
|
+
// A built-in preset name has no directory of its own, so there is nothing to
|
|
27
|
+
// walk for custom functions.
|
|
28
|
+
resolveExtend: (name, from) => ASYNCAPI_RULESET_NAMES.has(name) ? void 0 : resolve(name, from)
|
|
29
|
+
});
|
|
30
|
+
if (Object.keys(custom).length > 0)
|
|
31
|
+
functions = { ...allFunctions, ...custom };
|
|
32
|
+
return createCoreRuleset(definitionOrDefault, {
|
|
33
|
+
functions,
|
|
34
|
+
formats: aasFormats,
|
|
35
|
+
resolve,
|
|
36
|
+
...basePath !== void 0 ? { basePath } : {}
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
ASYNCAPI_VERSIONS,
|
|
41
|
+
LATEST_ASYNCAPI_VERSION,
|
|
42
|
+
aas2,
|
|
43
|
+
aas2_0,
|
|
44
|
+
aas2_1,
|
|
45
|
+
aas2_2,
|
|
46
|
+
aas2_3,
|
|
47
|
+
aas2_4,
|
|
48
|
+
aas2_5,
|
|
49
|
+
aas2_6,
|
|
50
|
+
aas3,
|
|
51
|
+
aas3_0,
|
|
52
|
+
aasFormats2 as aasFormats,
|
|
53
|
+
aasFunctions2 as aasFunctions,
|
|
54
|
+
allFunctions,
|
|
55
|
+
asyncApiSchemaVersion,
|
|
56
|
+
asyncapi2 as asyncapi,
|
|
57
|
+
createAsyncApiRuleset,
|
|
58
|
+
loadAsyncApiSchema,
|
|
59
|
+
resolveAsyncApiRuleset
|
|
60
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/** The vendored AsyncAPI meta-schema from `aas20.json`, as JSON text. Parsed on first use. */
|
|
2
|
+
export declare const aas20Json = "{\"$id\":\"http://asyncapi.com/definitions/2.0.0/asyncapi.json\",\"$schema\":\"http://json-schema.org/draft-07/schema\",\"title\":\"AsyncAPI 2.0.0 schema.\",\"type\":\"object\",\"required\":[\"asyncapi\",\"info\",\"channels\"],\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"asyncapi\":{\"type\":\"string\",\"enum\":[\"2.0.0\"],\"description\":\"The AsyncAPI specification version of this document.\"},\"id\":{\"type\":\"string\",\"description\":\"A unique id representing the application.\",\"format\":\"uri\"},\"info\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/info.json\"},\"servers\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/server.json\"}},\"defaultContentType\":{\"type\":\"string\"},\"channels\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/channels.json\"},\"components\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/components.json\"},\"tags\":{\"type\":\"array\",\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/tag.json\"},\"uniqueItems\":true},\"externalDocs\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/externalDocs.json\"}},\"definitions\":{\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\",\"description\":\"Any property starting with x- is valid.\",\"additionalProperties\":true,\"additionalItems\":true},\"http://asyncapi.com/definitions/2.0.0/info.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/info.json\",\"type\":\"object\",\"description\":\"General information about the API.\",\"required\":[\"version\",\"title\"],\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"title\":{\"type\":\"string\",\"description\":\"A unique and precise title of the API.\"},\"version\":{\"type\":\"string\",\"description\":\"A semantic version number of the API.\"},\"description\":{\"type\":\"string\",\"description\":\"A longer description of the API. Should be different from the title. CommonMark is allowed.\"},\"termsOfService\":{\"type\":\"string\",\"description\":\"A URL to the Terms of Service for the API. MUST be in the format of a URL.\",\"format\":\"uri\"},\"contact\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/contact.json\"},\"license\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/license.json\"}}},\"http://asyncapi.com/definitions/2.0.0/contact.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/contact.json\",\"type\":\"object\",\"description\":\"Contact information for the owners of the API.\",\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"The identifying name of the contact person/organization.\"},\"url\":{\"type\":\"string\",\"description\":\"The URL pointing to the contact information.\",\"format\":\"uri\"},\"email\":{\"type\":\"string\",\"description\":\"The email address of the contact person/organization.\",\"format\":\"email\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}}},\"http://asyncapi.com/definitions/2.0.0/license.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/license.json\",\"type\":\"object\",\"required\":[\"name\"],\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"The name of the license type. It's encouraged to use an OSI compatible license.\"},\"url\":{\"type\":\"string\",\"description\":\"The URL pointing to the license.\",\"format\":\"uri\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}}},\"http://asyncapi.com/definitions/2.0.0/server.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/server.json\",\"type\":\"object\",\"description\":\"An object representing a Server.\",\"required\":[\"url\",\"protocol\"],\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"url\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"protocol\":{\"type\":\"string\",\"description\":\"The transfer protocol.\"},\"protocolVersion\":{\"type\":\"string\"},\"variables\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/serverVariables.json\"},\"security\":{\"type\":\"array\",\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/SecurityRequirement.json\"}},\"bindings\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"}}},\"http://asyncapi.com/definitions/2.0.0/serverVariables.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/serverVariables.json\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/serverVariable.json\"}},\"http://asyncapi.com/definitions/2.0.0/serverVariable.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/serverVariable.json\",\"type\":\"object\",\"description\":\"An object representing a Server Variable for server URL template substitution.\",\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"enum\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"uniqueItems\":true},\"default\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"examples\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"http://asyncapi.com/definitions/2.0.0/SecurityRequirement.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/SecurityRequirement.json\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"uniqueItems\":true}},\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\",\"type\":\"object\",\"additionalProperties\":true,\"properties\":{\"http\":{},\"ws\":{},\"amqp\":{},\"amqp1\":{},\"mqtt\":{},\"mqtt5\":{},\"kafka\":{},\"nats\":{},\"jms\":{},\"sns\":{},\"sqs\":{},\"stomp\":{},\"redis\":{}}},\"http://asyncapi.com/definitions/2.0.0/channels.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/channels.json\",\"type\":\"object\",\"propertyNames\":{\"type\":\"string\",\"format\":\"uri-template\",\"minLength\":1},\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/channelItem.json\"}},\"http://asyncapi.com/definitions/2.0.0/channelItem.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/channelItem.json\",\"type\":\"object\",\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"$ref\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json\"},\"parameters\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/parameters.json\"},\"description\":{\"type\":\"string\",\"description\":\"A description of the channel.\"},\"publish\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/operation.json\"},\"subscribe\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/operation.json\"},\"deprecated\":{\"type\":\"boolean\",\"default\":false},\"bindings\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"}}},\"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json\",\"type\":\"string\",\"format\":\"uri-reference\"},\"http://asyncapi.com/definitions/2.0.0/parameters.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/parameters.json\",\"type\":\"object\",\"additionalProperties\":{\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/Reference.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/parameter.json\"}]},\"description\":\"JSON objects describing re-usable channel parameters.\"},\"http://asyncapi.com/definitions/2.0.0/Reference.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/Reference.json\",\"type\":\"object\",\"required\":[\"$ref\"],\"properties\":{\"$ref\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json\"}}},\"http://asyncapi.com/definitions/2.0.0/parameter.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/parameter.json\",\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed.\"},\"schema\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},\"location\":{\"type\":\"string\",\"description\":\"A runtime expression that specifies the location of the parameter value\",\"pattern\":\"^\\\\$message\\\\.(header|payload)#(?:\\\\/(?:[^~]|~[01])*)?\"},\"$ref\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json\"}}},\"http://asyncapi.com/definitions/2.0.0/schema.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/schema.json\",\"allOf\":[{\"$ref\":\"http://json-schema.org/draft-07/schema#\"},{\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"additionalProperties\":{\"anyOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},{\"type\":\"boolean\"}],\"default\":{}},\"items\":{\"anyOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"}}],\"default\":{}},\"allOf\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"}},\"oneOf\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"}},\"anyOf\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"}},\"not\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},\"default\":{}},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},\"default\":{}},\"propertyNames\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},\"contains\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},\"discriminator\":{\"type\":\"string\"},\"externalDocs\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/externalDocs.json\"},\"deprecated\":{\"type\":\"boolean\",\"default\":false}}}]},\"http://json-schema.org/draft-07/schema\":{\"$id\":\"http://json-schema.org/draft-07/schema\",\"title\":\"Core schema meta-schema\",\"definitions\":{\"schemaArray\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"#\"}},\"nonNegativeInteger\":{\"type\":\"integer\",\"minimum\":0},\"nonNegativeIntegerDefault0\":{\"allOf\":[{\"$ref\":\"#/definitions/nonNegativeInteger\"},{\"default\":0}]},\"simpleTypes\":{\"enum\":[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},\"stringArray\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"uniqueItems\":true,\"default\":[]}},\"type\":[\"object\",\"boolean\"],\"properties\":{\"$id\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"$schema\":{\"type\":\"string\",\"format\":\"uri\"},\"$ref\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"$comment\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"default\":true,\"readOnly\":{\"type\":\"boolean\",\"default\":false},\"writeOnly\":{\"type\":\"boolean\",\"default\":false},\"examples\":{\"type\":\"array\",\"items\":true},\"multipleOf\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"maximum\":{\"type\":\"number\"},\"exclusiveMaximum\":{\"type\":\"number\"},\"minimum\":{\"type\":\"number\"},\"exclusiveMinimum\":{\"type\":\"number\"},\"maxLength\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minLength\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"pattern\":{\"type\":\"string\",\"format\":\"regex\"},\"additionalItems\":{\"$ref\":\"#\"},\"items\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/schemaArray\"}],\"default\":true},\"maxItems\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minItems\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"uniqueItems\":{\"type\":\"boolean\",\"default\":false},\"contains\":{\"$ref\":\"#\"},\"maxProperties\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minProperties\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"required\":{\"$ref\":\"#/definitions/stringArray\"},\"additionalProperties\":{\"$ref\":\"#\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"propertyNames\":{\"format\":\"regex\"},\"default\":{}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/stringArray\"}]}},\"propertyNames\":{\"$ref\":\"#\"},\"const\":true,\"enum\":{\"type\":\"array\",\"items\":true,\"minItems\":1,\"uniqueItems\":true},\"type\":{\"anyOf\":[{\"$ref\":\"#/definitions/simpleTypes\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/simpleTypes\"},\"minItems\":1,\"uniqueItems\":true}]},\"format\":{\"type\":\"string\"},\"contentMediaType\":{\"type\":\"string\"},\"contentEncoding\":{\"type\":\"string\"},\"if\":{\"$ref\":\"#\"},\"then\":{\"$ref\":\"#\"},\"else\":{\"$ref\":\"#\"},\"allOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"anyOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"oneOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"not\":{\"$ref\":\"#\"}},\"default\":true},\"http://asyncapi.com/definitions/2.0.0/externalDocs.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/externalDocs.json\",\"type\":\"object\",\"additionalProperties\":false,\"description\":\"information about external documentation\",\"required\":[\"url\"],\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\",\"format\":\"uri\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}}},\"http://asyncapi.com/definitions/2.0.0/operation.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/operation.json\",\"type\":\"object\",\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"traits\":{\"type\":\"array\",\"items\":{\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/Reference.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/operationTrait.json\"}]}},\"summary\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"tags\":{\"type\":\"array\",\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/tag.json\"},\"uniqueItems\":true},\"externalDocs\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/externalDocs.json\"},\"operationId\":{\"type\":\"string\"},\"bindings\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"},\"message\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/message.json\"}}},\"http://asyncapi.com/definitions/2.0.0/operationTrait.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/operationTrait.json\",\"type\":\"object\",\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"summary\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"tags\":{\"type\":\"array\",\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/tag.json\"},\"uniqueItems\":true},\"externalDocs\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/externalDocs.json\"},\"operationId\":{\"type\":\"string\"},\"bindings\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"}}},\"http://asyncapi.com/definitions/2.0.0/tag.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/tag.json\",\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"externalDocs\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/externalDocs.json\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}}},\"http://asyncapi.com/definitions/2.0.0/message.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/message.json\",\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/Reference.json\"},{\"oneOf\":[{\"type\":\"object\",\"required\":[\"oneOf\"],\"additionalProperties\":false,\"properties\":{\"oneOf\":{\"type\":\"array\",\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/message.json\"}}}},{\"type\":\"object\",\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"schemaFormat\":{\"type\":\"string\"},\"contentType\":{\"type\":\"string\"},\"headers\":{\"allOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},{\"properties\":{\"type\":{\"const\":\"object\"}}}]},\"payload\":{},\"correlationId\":{\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/Reference.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/correlationId.json\"}]},\"tags\":{\"type\":\"array\",\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/tag.json\"},\"uniqueItems\":true},\"summary\":{\"type\":\"string\",\"description\":\"A brief summary of the message.\"},\"name\":{\"type\":\"string\",\"description\":\"Name of the message.\"},\"title\":{\"type\":\"string\",\"description\":\"A human-friendly title for the message.\"},\"description\":{\"type\":\"string\",\"description\":\"A longer description of the message. CommonMark is allowed.\"},\"externalDocs\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/externalDocs.json\"},\"deprecated\":{\"type\":\"boolean\",\"default\":false},\"examples\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"headers\":{\"type\":\"object\"},\"payload\":{}}}},\"bindings\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"},\"traits\":{\"type\":\"array\",\"items\":{\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/Reference.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/messageTrait.json\"}]}}},\"allOf\":[{\"if\":{\"not\":{\"required\":[\"schemaFormat\"]}},\"then\":{\"properties\":{\"payload\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"}}}},{\"if\":{\"required\":[\"schemaFormat\"],\"properties\":{\"schemaFormat\":{\"enum\":[\"application/vnd.aai.asyncapi;version=2.0.0\",\"application/vnd.aai.asyncapi+json;version=2.0.0\",\"application/vnd.aai.asyncapi+yaml;version=2.0.0\"]}}},\"then\":{\"properties\":{\"payload\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"}}}},{\"if\":{\"required\":[\"schemaFormat\"],\"properties\":{\"schemaFormat\":{\"enum\":[\"application/schema+json;version=draft-07\",\"application/schema+yaml;version=draft-07\"]}}},\"then\":{\"properties\":{\"payload\":{\"$ref\":\"http://json-schema.org/draft-07/schema\"}}}},{\"if\":{\"required\":[\"schemaFormat\"],\"properties\":{\"schemaFormat\":{\"enum\":[\"application/vnd.oai.openapi;version=3.0.0\",\"application/vnd.oai.openapi+json;version=3.0.0\",\"application/vnd.oai.openapi+yaml;version=3.0.0\"]}}},\"then\":{\"properties\":{\"payload\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/openapiSchema_3_0.json\"}}}},{\"if\":{\"required\":[\"schemaFormat\"],\"properties\":{\"schemaFormat\":{\"enum\":[\"application/vnd.apache.avro;version=1.9.0\",\"application/vnd.apache.avro+json;version=1.9.0\",\"application/vnd.apache.avro+yaml;version=1.9.0\"]}}},\"then\":{\"properties\":{\"payload\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/avroSchema_v1.json\"}}}}]}]}]},\"http://asyncapi.com/definitions/2.0.0/correlationId.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/correlationId.json\",\"type\":\"object\",\"required\":[\"location\"],\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"A optional description of the correlation ID. GitHub Flavored Markdown is allowed.\"},\"location\":{\"type\":\"string\",\"description\":\"A runtime expression that specifies the location of the correlation ID\",\"pattern\":\"^\\\\$message\\\\.(header|payload)#(?:\\\\/(?:[^~]|~[01])*)?\"}}},\"http://asyncapi.com/definitions/2.0.0/messageTrait.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/messageTrait.json\",\"type\":\"object\",\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"schemaFormat\":{\"type\":\"string\"},\"contentType\":{\"type\":\"string\"},\"headers\":{\"allOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},{\"properties\":{\"type\":{\"const\":\"object\"}}}]},\"correlationId\":{\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/Reference.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/correlationId.json\"}]},\"tags\":{\"type\":\"array\",\"items\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/tag.json\"},\"uniqueItems\":true},\"summary\":{\"type\":\"string\",\"description\":\"A brief summary of the message.\"},\"name\":{\"type\":\"string\",\"description\":\"Name of the message.\"},\"title\":{\"type\":\"string\",\"description\":\"A human-friendly title for the message.\"},\"description\":{\"type\":\"string\",\"description\":\"A longer description of the message. CommonMark is allowed.\"},\"externalDocs\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/externalDocs.json\"},\"deprecated\":{\"type\":\"boolean\",\"default\":false},\"examples\":{\"type\":\"array\",\"items\":{\"type\":\"object\"}},\"bindings\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"}}},\"http://asyncapi.com/definitions/2.0.0/openapiSchema_3_0.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/openapiSchema_3_0.json\",\"type\":\"object\",\"definitions\":{\"ExternalDocumentation\":{\"type\":\"object\",\"required\":[\"url\"],\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\",\"format\":\"uri-reference\"}},\"patternProperties\":{\"^x-\":{}},\"additionalProperties\":false},\"Discriminator\":{\"type\":\"object\",\"required\":[\"propertyName\"],\"properties\":{\"propertyName\":{\"type\":\"string\"},\"mapping\":{\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"Reference\":{\"type\":\"object\",\"required\":[\"$ref\"],\"patternProperties\":{\"^\\\\$ref$\":{\"type\":\"string\",\"format\":\"uri-reference\"}}},\"XML\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"namespace\":{\"type\":\"string\",\"format\":\"uri\"},\"prefix\":{\"type\":\"string\"},\"attribute\":{\"type\":\"boolean\",\"default\":false},\"wrapped\":{\"type\":\"boolean\",\"default\":false}},\"patternProperties\":{\"^x-\":{}},\"additionalProperties\":false}},\"properties\":{\"title\":{\"type\":\"string\"},\"multipleOf\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"maximum\":{\"type\":\"number\"},\"exclusiveMaximum\":{\"type\":\"boolean\",\"default\":false},\"minimum\":{\"type\":\"number\"},\"exclusiveMinimum\":{\"type\":\"boolean\",\"default\":false},\"maxLength\":{\"type\":\"integer\",\"minimum\":0},\"minLength\":{\"type\":\"integer\",\"minimum\":0,\"default\":0},\"pattern\":{\"type\":\"string\",\"format\":\"regex\"},\"maxItems\":{\"type\":\"integer\",\"minimum\":0},\"minItems\":{\"type\":\"integer\",\"minimum\":0,\"default\":0},\"uniqueItems\":{\"type\":\"boolean\",\"default\":false},\"maxProperties\":{\"type\":\"integer\",\"minimum\":0},\"minProperties\":{\"type\":\"integer\",\"minimum\":0,\"default\":0},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"minItems\":1,\"uniqueItems\":true},\"enum\":{\"type\":\"array\",\"items\":true,\"minItems\":1,\"uniqueItems\":false},\"type\":{\"type\":\"string\",\"enum\":[\"array\",\"boolean\",\"integer\",\"number\",\"object\",\"string\"]},\"not\":{\"oneOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/Reference\"}]},\"allOf\":{\"type\":\"array\",\"items\":{\"oneOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/Reference\"}]}},\"oneOf\":{\"type\":\"array\",\"items\":{\"oneOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/Reference\"}]}},\"anyOf\":{\"type\":\"array\",\"items\":{\"oneOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/Reference\"}]}},\"items\":{\"oneOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/Reference\"}]},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"oneOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/Reference\"}]}},\"additionalProperties\":{\"oneOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/Reference\"},{\"type\":\"boolean\"}],\"default\":true},\"description\":{\"type\":\"string\"},\"format\":{\"type\":\"string\"},\"default\":true,\"nullable\":{\"type\":\"boolean\",\"default\":false},\"discriminator\":{\"$ref\":\"#/definitions/Discriminator\"},\"readOnly\":{\"type\":\"boolean\",\"default\":false},\"writeOnly\":{\"type\":\"boolean\",\"default\":false},\"example\":true,\"externalDocs\":{\"$ref\":\"#/definitions/ExternalDocumentation\"},\"deprecated\":{\"type\":\"boolean\",\"default\":false},\"xml\":{\"$ref\":\"#/definitions/XML\"}},\"patternProperties\":{\"^x-\":true},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/avroSchema_v1.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/avroSchema_v1.json\",\"definitions\":{\"avroSchema\":{\"title\":\"Avro Schema\",\"description\":\"Root Schema\",\"oneOf\":[{\"$ref\":\"#/definitions/types\"}]},\"types\":{\"title\":\"Avro Types\",\"description\":\"Allowed Avro types\",\"oneOf\":[{\"$ref\":\"#/definitions/primitiveType\"},{\"$ref\":\"#/definitions/primitiveTypeWithMetadata\"},{\"$ref\":\"#/definitions/customTypeReference\"},{\"$ref\":\"#/definitions/avroRecord\"},{\"$ref\":\"#/definitions/avroEnum\"},{\"$ref\":\"#/definitions/avroArray\"},{\"$ref\":\"#/definitions/avroMap\"},{\"$ref\":\"#/definitions/avroFixed\"},{\"$ref\":\"#/definitions/avroUnion\"}]},\"primitiveType\":{\"title\":\"Primitive Type\",\"description\":\"Basic type primitives.\",\"type\":\"string\",\"enum\":[\"null\",\"boolean\",\"int\",\"long\",\"float\",\"double\",\"bytes\",\"string\"]},\"primitiveTypeWithMetadata\":{\"title\":\"Primitive Type With Metadata\",\"description\":\"A primitive type with metadata attached.\",\"type\":\"object\",\"properties\":{\"type\":{\"$ref\":\"#/definitions/primitiveType\"}},\"required\":[\"type\"]},\"customTypeReference\":{\"title\":\"Custom Type\",\"description\":\"Reference to a ComplexType\",\"not\":{\"$ref\":\"#/definitions/primitiveType\"},\"type\":\"string\",\"pattern\":\"^[A-Za-z_](?:[A-Za-z0-9_]|\\\\.[A-Za-z_])*$\"},\"avroUnion\":{\"title\":\"Union\",\"description\":\"A Union of types\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/avroSchema\"},\"minItems\":1},\"avroField\":{\"title\":\"Field\",\"description\":\"A field within a Record\",\"type\":\"object\",\"properties\":{\"name\":{\"$ref\":\"#/definitions/name\"},\"type\":{\"$ref\":\"#/definitions/types\"},\"doc\":{\"type\":\"string\"},\"default\":true,\"order\":{\"enum\":[\"ascending\",\"descending\",\"ignore\"]},\"aliases\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/name\"}}},\"required\":[\"name\",\"type\"]},\"avroRecord\":{\"title\":\"Record\",\"description\":\"A Record\",\"type\":\"object\",\"properties\":{\"type\":{\"type\":\"string\",\"const\":\"record\"},\"name\":{\"$ref\":\"#/definitions/name\"},\"namespace\":{\"$ref\":\"#/definitions/namespace\"},\"doc\":{\"type\":\"string\"},\"aliases\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/name\"}},\"fields\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/avroField\"}}},\"required\":[\"type\",\"name\",\"fields\"]},\"avroEnum\":{\"title\":\"Enum\",\"description\":\"An enumeration\",\"type\":\"object\",\"properties\":{\"type\":{\"type\":\"string\",\"const\":\"enum\"},\"name\":{\"$ref\":\"#/definitions/name\"},\"namespace\":{\"$ref\":\"#/definitions/namespace\"},\"doc\":{\"type\":\"string\"},\"aliases\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/name\"}},\"symbols\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/name\"}}},\"required\":[\"type\",\"name\",\"symbols\"]},\"avroArray\":{\"title\":\"Array\",\"description\":\"An array\",\"type\":\"object\",\"properties\":{\"type\":{\"type\":\"string\",\"const\":\"array\"},\"name\":{\"$ref\":\"#/definitions/name\"},\"namespace\":{\"$ref\":\"#/definitions/namespace\"},\"doc\":{\"type\":\"string\"},\"aliases\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/name\"}},\"items\":{\"$ref\":\"#/definitions/types\"}},\"required\":[\"type\",\"items\"]},\"avroMap\":{\"title\":\"Map\",\"description\":\"A map of values\",\"type\":\"object\",\"properties\":{\"type\":{\"type\":\"string\",\"const\":\"map\"},\"name\":{\"$ref\":\"#/definitions/name\"},\"namespace\":{\"$ref\":\"#/definitions/namespace\"},\"doc\":{\"type\":\"string\"},\"aliases\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/name\"}},\"values\":{\"$ref\":\"#/definitions/types\"}},\"required\":[\"type\",\"values\"]},\"avroFixed\":{\"title\":\"Fixed\",\"description\":\"A fixed sized array of bytes\",\"type\":\"object\",\"properties\":{\"type\":{\"type\":\"string\",\"const\":\"fixed\"},\"name\":{\"$ref\":\"#/definitions/name\"},\"namespace\":{\"$ref\":\"#/definitions/namespace\"},\"doc\":{\"type\":\"string\"},\"aliases\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/name\"}},\"size\":{\"type\":\"number\"}},\"required\":[\"type\",\"name\",\"size\"]},\"name\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z_][A-Za-z0-9_]*$\"},\"namespace\":{\"type\":\"string\",\"pattern\":\"^(?:[A-Za-z_](?:[A-Za-z0-9_]|\\\\.[A-Za-z_])*)?$\"}},\"description\":\"Json-Schema definition for Avro AVSC files.\",\"oneOf\":[{\"$ref\":\"#/definitions/avroSchema\"}],\"title\":\"Avro Schema Definition\"},\"http://asyncapi.com/definitions/2.0.0/components.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/components.json\",\"type\":\"object\",\"description\":\"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.\",\"additionalProperties\":false,\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"properties\":{\"schemas\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schemas.json\"},\"messages\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/messages.json\"},\"securitySchemes\":{\"type\":\"object\",\"patternProperties\":{\"^[\\\\w\\\\d\\\\.\\\\-_]+$\":{\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/Reference.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/SecurityScheme.json\"}]}}},\"parameters\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/parameters.json\"},\"correlationIds\":{\"type\":\"object\",\"patternProperties\":{\"^[\\\\w\\\\d\\\\.\\\\-_]+$\":{\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/Reference.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/correlationId.json\"}]}}},\"operationTraits\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/operationTrait.json\"}},\"messageTraits\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/messageTrait.json\"}},\"serverBindings\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"}},\"channelBindings\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"}},\"operationBindings\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"}},\"messageBindings\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/bindingsObject.json\"}}}},\"http://asyncapi.com/definitions/2.0.0/schemas.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/schemas.json\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/schema.json\"},\"description\":\"JSON objects describing schemas the API uses.\"},\"http://asyncapi.com/definitions/2.0.0/messages.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/messages.json\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/message.json\"},\"description\":\"JSON objects describing the messages being consumed and produced by the API.\"},\"http://asyncapi.com/definitions/2.0.0/SecurityScheme.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/SecurityScheme.json\",\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/userPassword.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/apiKey.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/X509.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/symmetricEncryption.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/asymmetricEncryption.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/HTTPSecurityScheme.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/oauth2Flows.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/openIdConnect.json\"}]},\"http://asyncapi.com/definitions/2.0.0/userPassword.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/userPassword.json\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"userPassword\"]},\"description\":{\"type\":\"string\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/apiKey.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/apiKey.json\",\"type\":\"object\",\"required\":[\"type\",\"in\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"apiKey\"]},\"in\":{\"type\":\"string\",\"enum\":[\"user\",\"password\"]},\"description\":{\"type\":\"string\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/X509.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/X509.json\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"X509\"]},\"description\":{\"type\":\"string\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/symmetricEncryption.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/symmetricEncryption.json\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"symmetricEncryption\"]},\"description\":{\"type\":\"string\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/asymmetricEncryption.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/asymmetricEncryption.json\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"asymmetricEncryption\"]},\"description\":{\"type\":\"string\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/HTTPSecurityScheme.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/HTTPSecurityScheme.json\",\"oneOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/NonBearerHTTPSecurityScheme.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/BearerHTTPSecurityScheme.json\"},{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/APIKeyHTTPSecurityScheme.json\"}]},\"http://asyncapi.com/definitions/2.0.0/NonBearerHTTPSecurityScheme.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/NonBearerHTTPSecurityScheme.json\",\"not\":{\"type\":\"object\",\"properties\":{\"scheme\":{\"type\":\"string\",\"enum\":[\"bearer\"]}}},\"type\":\"object\",\"required\":[\"scheme\",\"type\"],\"properties\":{\"scheme\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"http\"]}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/BearerHTTPSecurityScheme.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/BearerHTTPSecurityScheme.json\",\"type\":\"object\",\"required\":[\"type\",\"scheme\"],\"properties\":{\"scheme\":{\"type\":\"string\",\"enum\":[\"bearer\"]},\"bearerFormat\":{\"type\":\"string\"},\"type\":{\"type\":\"string\",\"enum\":[\"http\"]},\"description\":{\"type\":\"string\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/APIKeyHTTPSecurityScheme.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/APIKeyHTTPSecurityScheme.json\",\"type\":\"object\",\"required\":[\"type\",\"name\",\"in\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"httpApiKey\"]},\"name\":{\"type\":\"string\"},\"in\":{\"type\":\"string\",\"enum\":[\"header\",\"query\",\"cookie\"]},\"description\":{\"type\":\"string\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/oauth2Flows.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/oauth2Flows.json\",\"type\":\"object\",\"required\":[\"type\",\"flows\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"oauth2\"]},\"description\":{\"type\":\"string\"},\"flows\":{\"type\":\"object\",\"properties\":{\"implicit\":{\"allOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json\"},{\"required\":[\"authorizationUrl\",\"scopes\"]},{\"not\":{\"required\":[\"tokenUrl\"]}}]},\"password\":{\"allOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json\"},{\"required\":[\"tokenUrl\",\"scopes\"]},{\"not\":{\"required\":[\"authorizationUrl\"]}}]},\"clientCredentials\":{\"allOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json\"},{\"required\":[\"tokenUrl\",\"scopes\"]},{\"not\":{\"required\":[\"authorizationUrl\"]}}]},\"authorizationCode\":{\"allOf\":[{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json\"},{\"required\":[\"authorizationUrl\",\"tokenUrl\",\"scopes\"]}]}},\"additionalProperties\":false}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}}},\"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json\",\"type\":\"object\",\"properties\":{\"authorizationUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"tokenUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"refreshUrl\":{\"type\":\"string\",\"format\":\"uri\"},\"scopes\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/oauth2Scopes.json\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false},\"http://asyncapi.com/definitions/2.0.0/oauth2Scopes.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/oauth2Scopes.json\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"http://asyncapi.com/definitions/2.0.0/openIdConnect.json\":{\"$id\":\"http://asyncapi.com/definitions/2.0.0/openIdConnect.json\",\"type\":\"object\",\"required\":[\"type\",\"openIdConnectUrl\"],\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"openIdConnect\"]},\"description\":{\"type\":\"string\"},\"openIdConnectUrl\":{\"type\":\"string\",\"format\":\"uri\"}},\"patternProperties\":{\"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$\":{\"$ref\":\"http://asyncapi.com/definitions/2.0.0/specificationExtension.json\"}},\"additionalProperties\":false}},\"description\":\"!!Auto generated!! \\n Do not manually edit. \"}";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const aas20Json = `{"$id":"http://asyncapi.com/definitions/2.0.0/asyncapi.json","$schema":"http://json-schema.org/draft-07/schema","title":"AsyncAPI 2.0.0 schema.","type":"object","required":["asyncapi","info","channels"],"additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"asyncapi":{"type":"string","enum":["2.0.0"],"description":"The AsyncAPI specification version of this document."},"id":{"type":"string","description":"A unique id representing the application.","format":"uri"},"info":{"$ref":"http://asyncapi.com/definitions/2.0.0/info.json"},"servers":{"type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/server.json"}},"defaultContentType":{"type":"string"},"channels":{"$ref":"http://asyncapi.com/definitions/2.0.0/channels.json"},"components":{"$ref":"http://asyncapi.com/definitions/2.0.0/components.json"},"tags":{"type":"array","items":{"$ref":"http://asyncapi.com/definitions/2.0.0/tag.json"},"uniqueItems":true},"externalDocs":{"$ref":"http://asyncapi.com/definitions/2.0.0/externalDocs.json"}},"definitions":{"http://asyncapi.com/definitions/2.0.0/specificationExtension.json":{"$id":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json","description":"Any property starting with x- is valid.","additionalProperties":true,"additionalItems":true},"http://asyncapi.com/definitions/2.0.0/info.json":{"$id":"http://asyncapi.com/definitions/2.0.0/info.json","type":"object","description":"General information about the API.","required":["version","title"],"additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"title":{"type":"string","description":"A unique and precise title of the API."},"version":{"type":"string","description":"A semantic version number of the API."},"description":{"type":"string","description":"A longer description of the API. Should be different from the title. CommonMark is allowed."},"termsOfService":{"type":"string","description":"A URL to the Terms of Service for the API. MUST be in the format of a URL.","format":"uri"},"contact":{"$ref":"http://asyncapi.com/definitions/2.0.0/contact.json"},"license":{"$ref":"http://asyncapi.com/definitions/2.0.0/license.json"}}},"http://asyncapi.com/definitions/2.0.0/contact.json":{"$id":"http://asyncapi.com/definitions/2.0.0/contact.json","type":"object","description":"Contact information for the owners of the API.","additionalProperties":false,"properties":{"name":{"type":"string","description":"The identifying name of the contact person/organization."},"url":{"type":"string","description":"The URL pointing to the contact information.","format":"uri"},"email":{"type":"string","description":"The email address of the contact person/organization.","format":"email"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}}},"http://asyncapi.com/definitions/2.0.0/license.json":{"$id":"http://asyncapi.com/definitions/2.0.0/license.json","type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"The name of the license type. It's encouraged to use an OSI compatible license."},"url":{"type":"string","description":"The URL pointing to the license.","format":"uri"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}}},"http://asyncapi.com/definitions/2.0.0/server.json":{"$id":"http://asyncapi.com/definitions/2.0.0/server.json","type":"object","description":"An object representing a Server.","required":["url","protocol"],"additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"url":{"type":"string"},"description":{"type":"string"},"protocol":{"type":"string","description":"The transfer protocol."},"protocolVersion":{"type":"string"},"variables":{"$ref":"http://asyncapi.com/definitions/2.0.0/serverVariables.json"},"security":{"type":"array","items":{"$ref":"http://asyncapi.com/definitions/2.0.0/SecurityRequirement.json"}},"bindings":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"}}},"http://asyncapi.com/definitions/2.0.0/serverVariables.json":{"$id":"http://asyncapi.com/definitions/2.0.0/serverVariables.json","type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/serverVariable.json"}},"http://asyncapi.com/definitions/2.0.0/serverVariable.json":{"$id":"http://asyncapi.com/definitions/2.0.0/serverVariable.json","type":"object","description":"An object representing a Server Variable for server URL template substitution.","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"enum":{"type":"array","items":{"type":"string"},"uniqueItems":true},"default":{"type":"string"},"description":{"type":"string"},"examples":{"type":"array","items":{"type":"string"}}}},"http://asyncapi.com/definitions/2.0.0/SecurityRequirement.json":{"$id":"http://asyncapi.com/definitions/2.0.0/SecurityRequirement.json","type":"object","additionalProperties":{"type":"array","items":{"type":"string"},"uniqueItems":true}},"http://asyncapi.com/definitions/2.0.0/bindingsObject.json":{"$id":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json","type":"object","additionalProperties":true,"properties":{"http":{},"ws":{},"amqp":{},"amqp1":{},"mqtt":{},"mqtt5":{},"kafka":{},"nats":{},"jms":{},"sns":{},"sqs":{},"stomp":{},"redis":{}}},"http://asyncapi.com/definitions/2.0.0/channels.json":{"$id":"http://asyncapi.com/definitions/2.0.0/channels.json","type":"object","propertyNames":{"type":"string","format":"uri-template","minLength":1},"additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/channelItem.json"}},"http://asyncapi.com/definitions/2.0.0/channelItem.json":{"$id":"http://asyncapi.com/definitions/2.0.0/channelItem.json","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"$ref":{"$ref":"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json"},"parameters":{"$ref":"http://asyncapi.com/definitions/2.0.0/parameters.json"},"description":{"type":"string","description":"A description of the channel."},"publish":{"$ref":"http://asyncapi.com/definitions/2.0.0/operation.json"},"subscribe":{"$ref":"http://asyncapi.com/definitions/2.0.0/operation.json"},"deprecated":{"type":"boolean","default":false},"bindings":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"}}},"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json":{"$id":"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json","type":"string","format":"uri-reference"},"http://asyncapi.com/definitions/2.0.0/parameters.json":{"$id":"http://asyncapi.com/definitions/2.0.0/parameters.json","type":"object","additionalProperties":{"oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/Reference.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/parameter.json"}]},"description":"JSON objects describing re-usable channel parameters."},"http://asyncapi.com/definitions/2.0.0/Reference.json":{"$id":"http://asyncapi.com/definitions/2.0.0/Reference.json","type":"object","required":["$ref"],"properties":{"$ref":{"$ref":"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json"}}},"http://asyncapi.com/definitions/2.0.0/parameter.json":{"$id":"http://asyncapi.com/definitions/2.0.0/parameter.json","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"description":{"type":"string","description":"A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."},"schema":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},"location":{"type":"string","description":"A runtime expression that specifies the location of the parameter value","pattern":"^\\\\$message\\\\.(header|payload)#(?:\\\\/(?:[^~]|~[01])*)?"},"$ref":{"$ref":"http://asyncapi.com/definitions/2.0.0/ReferenceObject.json"}}},"http://asyncapi.com/definitions/2.0.0/schema.json":{"$id":"http://asyncapi.com/definitions/2.0.0/schema.json","allOf":[{"$ref":"http://json-schema.org/draft-07/schema#"},{"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"additionalProperties":{"anyOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},{"type":"boolean"}],"default":{}},"items":{"anyOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},{"type":"array","minItems":1,"items":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"}}],"default":{}},"allOf":{"type":"array","minItems":1,"items":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"}},"oneOf":{"type":"array","minItems":1,"items":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"}},"anyOf":{"type":"array","minItems":1,"items":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"}},"not":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},"properties":{"type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},"default":{}},"propertyNames":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},"contains":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},"discriminator":{"type":"string"},"externalDocs":{"$ref":"http://asyncapi.com/definitions/2.0.0/externalDocs.json"},"deprecated":{"type":"boolean","default":false}}}]},"http://json-schema.org/draft-07/schema":{"$id":"http://json-schema.org/draft-07/schema","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"writeOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true},"http://asyncapi.com/definitions/2.0.0/externalDocs.json":{"$id":"http://asyncapi.com/definitions/2.0.0/externalDocs.json","type":"object","additionalProperties":false,"description":"information about external documentation","required":["url"],"properties":{"description":{"type":"string"},"url":{"type":"string","format":"uri"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}}},"http://asyncapi.com/definitions/2.0.0/operation.json":{"$id":"http://asyncapi.com/definitions/2.0.0/operation.json","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"traits":{"type":"array","items":{"oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/Reference.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/operationTrait.json"}]}},"summary":{"type":"string"},"description":{"type":"string"},"tags":{"type":"array","items":{"$ref":"http://asyncapi.com/definitions/2.0.0/tag.json"},"uniqueItems":true},"externalDocs":{"$ref":"http://asyncapi.com/definitions/2.0.0/externalDocs.json"},"operationId":{"type":"string"},"bindings":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"},"message":{"$ref":"http://asyncapi.com/definitions/2.0.0/message.json"}}},"http://asyncapi.com/definitions/2.0.0/operationTrait.json":{"$id":"http://asyncapi.com/definitions/2.0.0/operationTrait.json","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"summary":{"type":"string"},"description":{"type":"string"},"tags":{"type":"array","items":{"$ref":"http://asyncapi.com/definitions/2.0.0/tag.json"},"uniqueItems":true},"externalDocs":{"$ref":"http://asyncapi.com/definitions/2.0.0/externalDocs.json"},"operationId":{"type":"string"},"bindings":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"}}},"http://asyncapi.com/definitions/2.0.0/tag.json":{"$id":"http://asyncapi.com/definitions/2.0.0/tag.json","type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"externalDocs":{"$ref":"http://asyncapi.com/definitions/2.0.0/externalDocs.json"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}}},"http://asyncapi.com/definitions/2.0.0/message.json":{"$id":"http://asyncapi.com/definitions/2.0.0/message.json","oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/Reference.json"},{"oneOf":[{"type":"object","required":["oneOf"],"additionalProperties":false,"properties":{"oneOf":{"type":"array","items":{"$ref":"http://asyncapi.com/definitions/2.0.0/message.json"}}}},{"type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"schemaFormat":{"type":"string"},"contentType":{"type":"string"},"headers":{"allOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},{"properties":{"type":{"const":"object"}}}]},"payload":{},"correlationId":{"oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/Reference.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/correlationId.json"}]},"tags":{"type":"array","items":{"$ref":"http://asyncapi.com/definitions/2.0.0/tag.json"},"uniqueItems":true},"summary":{"type":"string","description":"A brief summary of the message."},"name":{"type":"string","description":"Name of the message."},"title":{"type":"string","description":"A human-friendly title for the message."},"description":{"type":"string","description":"A longer description of the message. CommonMark is allowed."},"externalDocs":{"$ref":"http://asyncapi.com/definitions/2.0.0/externalDocs.json"},"deprecated":{"type":"boolean","default":false},"examples":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"headers":{"type":"object"},"payload":{}}}},"bindings":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"},"traits":{"type":"array","items":{"oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/Reference.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/messageTrait.json"}]}}},"allOf":[{"if":{"not":{"required":["schemaFormat"]}},"then":{"properties":{"payload":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"}}}},{"if":{"required":["schemaFormat"],"properties":{"schemaFormat":{"enum":["application/vnd.aai.asyncapi;version=2.0.0","application/vnd.aai.asyncapi+json;version=2.0.0","application/vnd.aai.asyncapi+yaml;version=2.0.0"]}}},"then":{"properties":{"payload":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"}}}},{"if":{"required":["schemaFormat"],"properties":{"schemaFormat":{"enum":["application/schema+json;version=draft-07","application/schema+yaml;version=draft-07"]}}},"then":{"properties":{"payload":{"$ref":"http://json-schema.org/draft-07/schema"}}}},{"if":{"required":["schemaFormat"],"properties":{"schemaFormat":{"enum":["application/vnd.oai.openapi;version=3.0.0","application/vnd.oai.openapi+json;version=3.0.0","application/vnd.oai.openapi+yaml;version=3.0.0"]}}},"then":{"properties":{"payload":{"$ref":"http://asyncapi.com/definitions/2.0.0/openapiSchema_3_0.json"}}}},{"if":{"required":["schemaFormat"],"properties":{"schemaFormat":{"enum":["application/vnd.apache.avro;version=1.9.0","application/vnd.apache.avro+json;version=1.9.0","application/vnd.apache.avro+yaml;version=1.9.0"]}}},"then":{"properties":{"payload":{"$ref":"http://asyncapi.com/definitions/2.0.0/avroSchema_v1.json"}}}}]}]}]},"http://asyncapi.com/definitions/2.0.0/correlationId.json":{"$id":"http://asyncapi.com/definitions/2.0.0/correlationId.json","type":"object","required":["location"],"additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"description":{"type":"string","description":"A optional description of the correlation ID. GitHub Flavored Markdown is allowed."},"location":{"type":"string","description":"A runtime expression that specifies the location of the correlation ID","pattern":"^\\\\$message\\\\.(header|payload)#(?:\\\\/(?:[^~]|~[01])*)?"}}},"http://asyncapi.com/definitions/2.0.0/messageTrait.json":{"$id":"http://asyncapi.com/definitions/2.0.0/messageTrait.json","type":"object","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"schemaFormat":{"type":"string"},"contentType":{"type":"string"},"headers":{"allOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},{"properties":{"type":{"const":"object"}}}]},"correlationId":{"oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/Reference.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/correlationId.json"}]},"tags":{"type":"array","items":{"$ref":"http://asyncapi.com/definitions/2.0.0/tag.json"},"uniqueItems":true},"summary":{"type":"string","description":"A brief summary of the message."},"name":{"type":"string","description":"Name of the message."},"title":{"type":"string","description":"A human-friendly title for the message."},"description":{"type":"string","description":"A longer description of the message. CommonMark is allowed."},"externalDocs":{"$ref":"http://asyncapi.com/definitions/2.0.0/externalDocs.json"},"deprecated":{"type":"boolean","default":false},"examples":{"type":"array","items":{"type":"object"}},"bindings":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"}}},"http://asyncapi.com/definitions/2.0.0/openapiSchema_3_0.json":{"$id":"http://asyncapi.com/definitions/2.0.0/openapiSchema_3_0.json","type":"object","definitions":{"ExternalDocumentation":{"type":"object","required":["url"],"properties":{"description":{"type":"string"},"url":{"type":"string","format":"uri-reference"}},"patternProperties":{"^x-":{}},"additionalProperties":false},"Discriminator":{"type":"object","required":["propertyName"],"properties":{"propertyName":{"type":"string"},"mapping":{"type":"object","additionalProperties":{"type":"string"}}}},"Reference":{"type":"object","required":["$ref"],"patternProperties":{"^\\\\$ref$":{"type":"string","format":"uri-reference"}}},"XML":{"type":"object","properties":{"name":{"type":"string"},"namespace":{"type":"string","format":"uri"},"prefix":{"type":"string"},"attribute":{"type":"boolean","default":false},"wrapped":{"type":"boolean","default":false}},"patternProperties":{"^x-":{}},"additionalProperties":false}},"properties":{"title":{"type":"string"},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"boolean","default":false},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"boolean","default":false},"maxLength":{"type":"integer","minimum":0},"minLength":{"type":"integer","minimum":0,"default":0},"pattern":{"type":"string","format":"regex"},"maxItems":{"type":"integer","minimum":0},"minItems":{"type":"integer","minimum":0,"default":0},"uniqueItems":{"type":"boolean","default":false},"maxProperties":{"type":"integer","minimum":0},"minProperties":{"type":"integer","minimum":0,"default":0},"required":{"type":"array","items":{"type":"string"},"minItems":1,"uniqueItems":true},"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":false},"type":{"type":"string","enum":["array","boolean","integer","number","object","string"]},"not":{"oneOf":[{"$ref":"#"},{"$ref":"#/definitions/Reference"}]},"allOf":{"type":"array","items":{"oneOf":[{"$ref":"#"},{"$ref":"#/definitions/Reference"}]}},"oneOf":{"type":"array","items":{"oneOf":[{"$ref":"#"},{"$ref":"#/definitions/Reference"}]}},"anyOf":{"type":"array","items":{"oneOf":[{"$ref":"#"},{"$ref":"#/definitions/Reference"}]}},"items":{"oneOf":[{"$ref":"#"},{"$ref":"#/definitions/Reference"}]},"properties":{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#"},{"$ref":"#/definitions/Reference"}]}},"additionalProperties":{"oneOf":[{"$ref":"#"},{"$ref":"#/definitions/Reference"},{"type":"boolean"}],"default":true},"description":{"type":"string"},"format":{"type":"string"},"default":true,"nullable":{"type":"boolean","default":false},"discriminator":{"$ref":"#/definitions/Discriminator"},"readOnly":{"type":"boolean","default":false},"writeOnly":{"type":"boolean","default":false},"example":true,"externalDocs":{"$ref":"#/definitions/ExternalDocumentation"},"deprecated":{"type":"boolean","default":false},"xml":{"$ref":"#/definitions/XML"}},"patternProperties":{"^x-":true},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/avroSchema_v1.json":{"$id":"http://asyncapi.com/definitions/2.0.0/avroSchema_v1.json","definitions":{"avroSchema":{"title":"Avro Schema","description":"Root Schema","oneOf":[{"$ref":"#/definitions/types"}]},"types":{"title":"Avro Types","description":"Allowed Avro types","oneOf":[{"$ref":"#/definitions/primitiveType"},{"$ref":"#/definitions/primitiveTypeWithMetadata"},{"$ref":"#/definitions/customTypeReference"},{"$ref":"#/definitions/avroRecord"},{"$ref":"#/definitions/avroEnum"},{"$ref":"#/definitions/avroArray"},{"$ref":"#/definitions/avroMap"},{"$ref":"#/definitions/avroFixed"},{"$ref":"#/definitions/avroUnion"}]},"primitiveType":{"title":"Primitive Type","description":"Basic type primitives.","type":"string","enum":["null","boolean","int","long","float","double","bytes","string"]},"primitiveTypeWithMetadata":{"title":"Primitive Type With Metadata","description":"A primitive type with metadata attached.","type":"object","properties":{"type":{"$ref":"#/definitions/primitiveType"}},"required":["type"]},"customTypeReference":{"title":"Custom Type","description":"Reference to a ComplexType","not":{"$ref":"#/definitions/primitiveType"},"type":"string","pattern":"^[A-Za-z_](?:[A-Za-z0-9_]|\\\\.[A-Za-z_])*$"},"avroUnion":{"title":"Union","description":"A Union of types","type":"array","items":{"$ref":"#/definitions/avroSchema"},"minItems":1},"avroField":{"title":"Field","description":"A field within a Record","type":"object","properties":{"name":{"$ref":"#/definitions/name"},"type":{"$ref":"#/definitions/types"},"doc":{"type":"string"},"default":true,"order":{"enum":["ascending","descending","ignore"]},"aliases":{"type":"array","items":{"$ref":"#/definitions/name"}}},"required":["name","type"]},"avroRecord":{"title":"Record","description":"A Record","type":"object","properties":{"type":{"type":"string","const":"record"},"name":{"$ref":"#/definitions/name"},"namespace":{"$ref":"#/definitions/namespace"},"doc":{"type":"string"},"aliases":{"type":"array","items":{"$ref":"#/definitions/name"}},"fields":{"type":"array","items":{"$ref":"#/definitions/avroField"}}},"required":["type","name","fields"]},"avroEnum":{"title":"Enum","description":"An enumeration","type":"object","properties":{"type":{"type":"string","const":"enum"},"name":{"$ref":"#/definitions/name"},"namespace":{"$ref":"#/definitions/namespace"},"doc":{"type":"string"},"aliases":{"type":"array","items":{"$ref":"#/definitions/name"}},"symbols":{"type":"array","items":{"$ref":"#/definitions/name"}}},"required":["type","name","symbols"]},"avroArray":{"title":"Array","description":"An array","type":"object","properties":{"type":{"type":"string","const":"array"},"name":{"$ref":"#/definitions/name"},"namespace":{"$ref":"#/definitions/namespace"},"doc":{"type":"string"},"aliases":{"type":"array","items":{"$ref":"#/definitions/name"}},"items":{"$ref":"#/definitions/types"}},"required":["type","items"]},"avroMap":{"title":"Map","description":"A map of values","type":"object","properties":{"type":{"type":"string","const":"map"},"name":{"$ref":"#/definitions/name"},"namespace":{"$ref":"#/definitions/namespace"},"doc":{"type":"string"},"aliases":{"type":"array","items":{"$ref":"#/definitions/name"}},"values":{"$ref":"#/definitions/types"}},"required":["type","values"]},"avroFixed":{"title":"Fixed","description":"A fixed sized array of bytes","type":"object","properties":{"type":{"type":"string","const":"fixed"},"name":{"$ref":"#/definitions/name"},"namespace":{"$ref":"#/definitions/namespace"},"doc":{"type":"string"},"aliases":{"type":"array","items":{"$ref":"#/definitions/name"}},"size":{"type":"number"}},"required":["type","name","size"]},"name":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]*$"},"namespace":{"type":"string","pattern":"^(?:[A-Za-z_](?:[A-Za-z0-9_]|\\\\.[A-Za-z_])*)?$"}},"description":"Json-Schema definition for Avro AVSC files.","oneOf":[{"$ref":"#/definitions/avroSchema"}],"title":"Avro Schema Definition"},"http://asyncapi.com/definitions/2.0.0/components.json":{"$id":"http://asyncapi.com/definitions/2.0.0/components.json","type":"object","description":"An object to hold a set of reusable objects for different aspects of the AsyncAPI Specification.","additionalProperties":false,"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"properties":{"schemas":{"$ref":"http://asyncapi.com/definitions/2.0.0/schemas.json"},"messages":{"$ref":"http://asyncapi.com/definitions/2.0.0/messages.json"},"securitySchemes":{"type":"object","patternProperties":{"^[\\\\w\\\\d\\\\.\\\\-_]+$":{"oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/Reference.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/SecurityScheme.json"}]}}},"parameters":{"$ref":"http://asyncapi.com/definitions/2.0.0/parameters.json"},"correlationIds":{"type":"object","patternProperties":{"^[\\\\w\\\\d\\\\.\\\\-_]+$":{"oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/Reference.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/correlationId.json"}]}}},"operationTraits":{"type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/operationTrait.json"}},"messageTraits":{"type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/messageTrait.json"}},"serverBindings":{"type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"}},"channelBindings":{"type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"}},"operationBindings":{"type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"}},"messageBindings":{"type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/bindingsObject.json"}}}},"http://asyncapi.com/definitions/2.0.0/schemas.json":{"$id":"http://asyncapi.com/definitions/2.0.0/schemas.json","type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/schema.json"},"description":"JSON objects describing schemas the API uses."},"http://asyncapi.com/definitions/2.0.0/messages.json":{"$id":"http://asyncapi.com/definitions/2.0.0/messages.json","type":"object","additionalProperties":{"$ref":"http://asyncapi.com/definitions/2.0.0/message.json"},"description":"JSON objects describing the messages being consumed and produced by the API."},"http://asyncapi.com/definitions/2.0.0/SecurityScheme.json":{"$id":"http://asyncapi.com/definitions/2.0.0/SecurityScheme.json","oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/userPassword.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/apiKey.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/X509.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/symmetricEncryption.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/asymmetricEncryption.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/HTTPSecurityScheme.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/oauth2Flows.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/openIdConnect.json"}]},"http://asyncapi.com/definitions/2.0.0/userPassword.json":{"$id":"http://asyncapi.com/definitions/2.0.0/userPassword.json","type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["userPassword"]},"description":{"type":"string"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/apiKey.json":{"$id":"http://asyncapi.com/definitions/2.0.0/apiKey.json","type":"object","required":["type","in"],"properties":{"type":{"type":"string","enum":["apiKey"]},"in":{"type":"string","enum":["user","password"]},"description":{"type":"string"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/X509.json":{"$id":"http://asyncapi.com/definitions/2.0.0/X509.json","type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["X509"]},"description":{"type":"string"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/symmetricEncryption.json":{"$id":"http://asyncapi.com/definitions/2.0.0/symmetricEncryption.json","type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["symmetricEncryption"]},"description":{"type":"string"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/asymmetricEncryption.json":{"$id":"http://asyncapi.com/definitions/2.0.0/asymmetricEncryption.json","type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["asymmetricEncryption"]},"description":{"type":"string"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/HTTPSecurityScheme.json":{"$id":"http://asyncapi.com/definitions/2.0.0/HTTPSecurityScheme.json","oneOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/NonBearerHTTPSecurityScheme.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/BearerHTTPSecurityScheme.json"},{"$ref":"http://asyncapi.com/definitions/2.0.0/APIKeyHTTPSecurityScheme.json"}]},"http://asyncapi.com/definitions/2.0.0/NonBearerHTTPSecurityScheme.json":{"$id":"http://asyncapi.com/definitions/2.0.0/NonBearerHTTPSecurityScheme.json","not":{"type":"object","properties":{"scheme":{"type":"string","enum":["bearer"]}}},"type":"object","required":["scheme","type"],"properties":{"scheme":{"type":"string"},"description":{"type":"string"},"type":{"type":"string","enum":["http"]}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/BearerHTTPSecurityScheme.json":{"$id":"http://asyncapi.com/definitions/2.0.0/BearerHTTPSecurityScheme.json","type":"object","required":["type","scheme"],"properties":{"scheme":{"type":"string","enum":["bearer"]},"bearerFormat":{"type":"string"},"type":{"type":"string","enum":["http"]},"description":{"type":"string"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/APIKeyHTTPSecurityScheme.json":{"$id":"http://asyncapi.com/definitions/2.0.0/APIKeyHTTPSecurityScheme.json","type":"object","required":["type","name","in"],"properties":{"type":{"type":"string","enum":["httpApiKey"]},"name":{"type":"string"},"in":{"type":"string","enum":["header","query","cookie"]},"description":{"type":"string"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/oauth2Flows.json":{"$id":"http://asyncapi.com/definitions/2.0.0/oauth2Flows.json","type":"object","required":["type","flows"],"properties":{"type":{"type":"string","enum":["oauth2"]},"description":{"type":"string"},"flows":{"type":"object","properties":{"implicit":{"allOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json"},{"required":["authorizationUrl","scopes"]},{"not":{"required":["tokenUrl"]}}]},"password":{"allOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json"},{"required":["tokenUrl","scopes"]},{"not":{"required":["authorizationUrl"]}}]},"clientCredentials":{"allOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json"},{"required":["tokenUrl","scopes"]},{"not":{"required":["authorizationUrl"]}}]},"authorizationCode":{"allOf":[{"$ref":"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json"},{"required":["authorizationUrl","tokenUrl","scopes"]}]}},"additionalProperties":false}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}}},"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json":{"$id":"http://asyncapi.com/definitions/2.0.0/oauth2Flow.json","type":"object","properties":{"authorizationUrl":{"type":"string","format":"uri"},"tokenUrl":{"type":"string","format":"uri"},"refreshUrl":{"type":"string","format":"uri"},"scopes":{"$ref":"http://asyncapi.com/definitions/2.0.0/oauth2Scopes.json"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false},"http://asyncapi.com/definitions/2.0.0/oauth2Scopes.json":{"$id":"http://asyncapi.com/definitions/2.0.0/oauth2Scopes.json","type":"object","additionalProperties":{"type":"string"}},"http://asyncapi.com/definitions/2.0.0/openIdConnect.json":{"$id":"http://asyncapi.com/definitions/2.0.0/openIdConnect.json","type":"object","required":["type","openIdConnectUrl"],"properties":{"type":{"type":"string","enum":["openIdConnect"]},"description":{"type":"string"},"openIdConnectUrl":{"type":"string","format":"uri"}},"patternProperties":{"^x-[\\\\w\\\\d\\\\.\\\\x2d_]+$":{"$ref":"http://asyncapi.com/definitions/2.0.0/specificationExtension.json"}},"additionalProperties":false}},"description":"!!Auto generated!! \\n Do not manually edit. "}`;
|
|
2
|
+
export {
|
|
3
|
+
aas20Json
|
|
4
|
+
};
|