UNPKG

@asyncapi/specs

Version:
1,224 lines (1,223 loc) 398 kB
{ "$id": "http://asyncapi.com/definitions/3.0.0/asyncapi.json", "$schema": "http://json-schema.org/draft-07/schema", "title": "AsyncAPI 3.0.0 schema.", "type": "object", "required": [ "asyncapi", "info" ], "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "properties": { "asyncapi": { "type": "string", "const": "3.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/3.0.0/info.json" }, "servers": { "$ref": "http://asyncapi.com/definitions/3.0.0/servers.json" }, "defaultContentType": { "type": "string", "description": "Default content type to use when encoding/decoding a message's payload." }, "channels": { "$ref": "http://asyncapi.com/definitions/3.0.0/channels.json" }, "operations": { "$ref": "http://asyncapi.com/definitions/3.0.0/operations.json" }, "components": { "$ref": "http://asyncapi.com/definitions/3.0.0/components.json" } }, "definitions": { "http://asyncapi.com/definitions/3.0.0/specificationExtension.json": { "$id": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json", "description": "Any property starting with x- is valid.", "additionalProperties": true, "additionalItems": true }, "http://asyncapi.com/definitions/3.0.0/info.json": { "$id": "http://asyncapi.com/definitions/3.0.0/info.json", "description": "The object provides metadata about the API. The metadata can be used by the clients if needed.", "allOf": [ { "type": "object", "required": [ "version", "title" ], "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.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/3.0.0/contact.json" }, "license": { "$ref": "http://asyncapi.com/definitions/3.0.0/license.json" }, "tags": { "type": "array", "description": "A list of tags for application API documentation control. Tags can be used for logical grouping of applications.", "items": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" } ] }, "uniqueItems": true }, "externalDocs": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" } ] } } }, { "$ref": "http://asyncapi.com/definitions/3.0.0/infoExtensions.json" } ], "examples": [ { "title": "AsyncAPI Sample App", "version": "1.0.1", "description": "This is a sample app.", "termsOfService": "https://asyncapi.org/terms/", "contact": { "name": "API Support", "url": "https://www.asyncapi.org/support", "email": "support@asyncapi.org" }, "license": { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, "externalDocs": { "description": "Find more info here", "url": "https://www.asyncapi.org" }, "tags": [ { "name": "e-commerce" } ] } ] }, "http://asyncapi.com/definitions/3.0.0/contact.json": { "$id": "http://asyncapi.com/definitions/3.0.0/contact.json", "type": "object", "description": "Contact information for the exposed 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/3.0.0/specificationExtension.json" } }, "examples": [ { "name": "API Support", "url": "https://www.example.com/support", "email": "support@example.com" } ] }, "http://asyncapi.com/definitions/3.0.0/license.json": { "$id": "http://asyncapi.com/definitions/3.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/3.0.0/specificationExtension.json" } }, "examples": [ { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" } ] }, "http://asyncapi.com/definitions/3.0.0/Reference.json": { "$id": "http://asyncapi.com/definitions/3.0.0/Reference.json", "type": "object", "description": "A simple object to allow referencing other components in the specification, internally and externally.", "required": [ "$ref" ], "properties": { "$ref": { "description": "The reference string.", "$ref": "http://asyncapi.com/definitions/3.0.0/ReferenceObject.json" } }, "examples": [ { "$ref": "#/components/schemas/Pet" } ] }, "http://asyncapi.com/definitions/3.0.0/ReferenceObject.json": { "$id": "http://asyncapi.com/definitions/3.0.0/ReferenceObject.json", "type": "string", "format": "uri-reference" }, "http://asyncapi.com/definitions/3.0.0/tag.json": { "$id": "http://asyncapi.com/definitions/3.0.0/tag.json", "type": "object", "description": "Allows adding metadata to a single tag.", "additionalProperties": false, "required": [ "name" ], "properties": { "name": { "type": "string", "description": "The name of the tag." }, "description": { "type": "string", "description": "A short description for the tag. CommonMark syntax can be used for rich text representation." }, "externalDocs": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" } ] } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "examples": [ { "name": "user", "description": "User-related messages" } ] }, "http://asyncapi.com/definitions/3.0.0/externalDocs.json": { "$id": "http://asyncapi.com/definitions/3.0.0/externalDocs.json", "type": "object", "additionalProperties": false, "description": "Allows referencing an external resource for extended documentation.", "required": [ "url" ], "properties": { "description": { "type": "string", "description": "A short description of the target documentation. CommonMark syntax can be used for rich text representation." }, "url": { "type": "string", "description": "The URL for the target documentation. This MUST be in the form of an absolute URL.", "format": "uri" } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "examples": [ { "description": "Find more info here", "url": "https://example.com" } ] }, "http://asyncapi.com/definitions/3.0.0/infoExtensions.json": { "$id": "http://asyncapi.com/definitions/3.0.0/infoExtensions.json", "type": "object", "description": "The object that lists all the extensions of Info", "properties": { "x-x": { "$ref": "http://asyncapi.com/extensions/x/0.1.0/schema.json" }, "x-linkedin": { "$ref": "http://asyncapi.com/extensions/linkedin/0.1.0/schema.json" } } }, "http://asyncapi.com/extensions/x/0.1.0/schema.json": { "$id": "http://asyncapi.com/extensions/x/0.1.0/schema.json", "type": "string", "description": "This extension allows you to provide the Twitter username of the account representing the team/company of the API.", "example": [ "sambhavgupta75", "AsyncAPISpec" ] }, "http://asyncapi.com/extensions/linkedin/0.1.0/schema.json": { "$id": "http://asyncapi.com/extensions/linkedin/0.1.0/schema.json", "type": "string", "pattern": "^http(s)?://(www\\.)?linkedin\\.com.*$", "description": "This extension allows you to provide the Linkedin profile URL of the account representing the team/company of the API.", "example": [ "https://www.linkedin.com/company/asyncapi/", "https://www.linkedin.com/in/sambhavgupta0705/" ] }, "http://asyncapi.com/definitions/3.0.0/servers.json": { "$id": "http://asyncapi.com/definitions/3.0.0/servers.json", "description": "An object representing multiple servers.", "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/server.json" } ] }, "examples": [ { "development": { "host": "localhost:5672", "description": "Development AMQP broker.", "protocol": "amqp", "protocolVersion": "0-9-1", "tags": [ { "name": "env:development", "description": "This environment is meant for developers to run their own tests." } ] }, "staging": { "host": "rabbitmq-staging.in.mycompany.com:5672", "description": "RabbitMQ broker for the staging environment.", "protocol": "amqp", "protocolVersion": "0-9-1", "tags": [ { "name": "env:staging", "description": "This environment is a replica of the production environment." } ] }, "production": { "host": "rabbitmq.in.mycompany.com:5672", "description": "RabbitMQ broker for the production environment.", "protocol": "amqp", "protocolVersion": "0-9-1", "tags": [ { "name": "env:production", "description": "This environment is the live environment available for final users." } ] } } ] }, "http://asyncapi.com/definitions/3.0.0/server.json": { "$id": "http://asyncapi.com/definitions/3.0.0/server.json", "type": "object", "description": "An object representing a message broker, a server or any other kind of computer program capable of sending and/or receiving data.", "required": [ "host", "protocol" ], "additionalProperties": false, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "properties": { "host": { "type": "string", "description": "The server host name. It MAY include the port. This field supports Server Variables. Variable substitutions will be made when a variable is named in {braces}." }, "pathname": { "type": "string", "description": "The path to a resource in the host. This field supports Server Variables. Variable substitutions will be made when a variable is named in {braces}." }, "title": { "type": "string", "description": "A human-friendly title for the server." }, "summary": { "type": "string", "description": "A brief summary of the server." }, "description": { "type": "string", "description": "A longer description of the server. CommonMark is allowed." }, "protocol": { "type": "string", "description": "The protocol this server supports for connection." }, "protocolVersion": { "type": "string", "description": "An optional string describing the server. CommonMark syntax MAY be used for rich text representation." }, "variables": { "$ref": "http://asyncapi.com/definitions/3.0.0/serverVariables.json" }, "security": { "$ref": "http://asyncapi.com/definitions/3.0.0/securityRequirements.json" }, "tags": { "type": "array", "items": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/tag.json" } ] }, "uniqueItems": true }, "externalDocs": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/externalDocs.json" } ] }, "bindings": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/serverBindingsObject.json" } ] } }, "examples": [ { "host": "kafka.in.mycompany.com:9092", "description": "Production Kafka broker.", "protocol": "kafka", "protocolVersion": "3.2" }, { "host": "rabbitmq.in.mycompany.com:5672", "pathname": "/production", "protocol": "amqp", "description": "Production RabbitMQ broker (uses the `production` vhost)." } ] }, "http://asyncapi.com/definitions/3.0.0/serverVariables.json": { "$id": "http://asyncapi.com/definitions/3.0.0/serverVariables.json", "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/serverVariable.json" } ] } }, "http://asyncapi.com/definitions/3.0.0/serverVariable.json": { "$id": "http://asyncapi.com/definitions/3.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/3.0.0/specificationExtension.json" } }, "properties": { "enum": { "type": "array", "description": "An enumeration of string values to be used if the substitution options are from a limited set.", "items": { "type": "string" }, "uniqueItems": true }, "default": { "type": "string", "description": "The default value to use for substitution, and to send, if an alternate value is not supplied." }, "description": { "type": "string", "description": "An optional description for the server variable. CommonMark syntax MAY be used for rich text representation." }, "examples": { "type": "array", "description": "An array of examples of the server variable.", "items": { "type": "string" } } }, "examples": [ { "host": "rabbitmq.in.mycompany.com:5672", "pathname": "/{env}", "protocol": "amqp", "description": "RabbitMQ broker. Use the `env` variable to point to either `production` or `staging`.", "variables": { "env": { "description": "Environment to connect to. It can be either `production` or `staging`.", "enum": [ "production", "staging" ] } } } ] }, "http://asyncapi.com/definitions/3.0.0/securityRequirements.json": { "$id": "http://asyncapi.com/definitions/3.0.0/securityRequirements.json", "description": "An array representing security requirements.", "type": "array", "items": { "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/SecurityScheme.json" } ] } }, "http://asyncapi.com/definitions/3.0.0/SecurityScheme.json": { "$id": "http://asyncapi.com/definitions/3.0.0/SecurityScheme.json", "description": "Defines a security scheme that can be used by the operations.", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/userPassword.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/apiKey.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/X509.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/symmetricEncryption.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/asymmetricEncryption.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/HTTPSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Flows.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/openIdConnect.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/SaslSecurityScheme.json" } ], "examples": [ { "type": "userPassword" } ] }, "http://asyncapi.com/definitions/3.0.0/userPassword.json": { "$id": "http://asyncapi.com/definitions/3.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/3.0.0/specificationExtension.json" } }, "additionalProperties": false, "examples": [ { "type": "userPassword" } ] }, "http://asyncapi.com/definitions/3.0.0/apiKey.json": { "$id": "http://asyncapi.com/definitions/3.0.0/apiKey.json", "type": "object", "required": [ "type", "in" ], "properties": { "type": { "type": "string", "description": "The type of the security scheme", "enum": [ "apiKey" ] }, "in": { "type": "string", "description": " The location of the API key.", "enum": [ "user", "password" ] }, "description": { "type": "string", "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation." } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false, "examples": [ { "type": "apiKey", "in": "user" } ] }, "http://asyncapi.com/definitions/3.0.0/X509.json": { "$id": "http://asyncapi.com/definitions/3.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/3.0.0/specificationExtension.json" } }, "additionalProperties": false, "examples": [ { "type": "X509" } ] }, "http://asyncapi.com/definitions/3.0.0/symmetricEncryption.json": { "$id": "http://asyncapi.com/definitions/3.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/3.0.0/specificationExtension.json" } }, "additionalProperties": false, "examples": [ { "type": "symmetricEncryption" } ] }, "http://asyncapi.com/definitions/3.0.0/asymmetricEncryption.json": { "$id": "http://asyncapi.com/definitions/3.0.0/asymmetricEncryption.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "description": "The type of the security scheme.", "enum": [ "asymmetricEncryption" ] }, "description": { "type": "string", "description": "A short description for security scheme." } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/3.0.0/HTTPSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/3.0.0/HTTPSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/NonBearerHTTPSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/BearerHTTPSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/APIKeyHTTPSecurityScheme.json" } ] }, "http://asyncapi.com/definitions/3.0.0/NonBearerHTTPSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/3.0.0/NonBearerHTTPSecurityScheme.json", "not": { "type": "object", "properties": { "scheme": { "type": "string", "description": "A short description for security scheme.", "enum": [ "bearer" ] } } }, "type": "object", "required": [ "scheme", "type" ], "properties": { "scheme": { "type": "string", "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235." }, "description": { "type": "string", "description": "A short description for security scheme." }, "type": { "type": "string", "description": "The type of the security scheme.", "enum": [ "http" ] } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/3.0.0/BearerHTTPSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/3.0.0/BearerHTTPSecurityScheme.json", "type": "object", "required": [ "type", "scheme" ], "properties": { "scheme": { "type": "string", "description": "The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235.", "enum": [ "bearer" ] }, "bearerFormat": { "type": "string", "description": "A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes." }, "type": { "type": "string", "description": "The type of the security scheme.", "enum": [ "http" ] }, "description": { "type": "string", "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation." } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/3.0.0/APIKeyHTTPSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/3.0.0/APIKeyHTTPSecurityScheme.json", "type": "object", "required": [ "type", "name", "in" ], "properties": { "type": { "type": "string", "description": "The type of the security scheme.", "enum": [ "httpApiKey" ] }, "name": { "type": "string", "description": "The name of the header, query or cookie parameter to be used." }, "in": { "type": "string", "description": "The location of the API key", "enum": [ "header", "query", "cookie" ] }, "description": { "type": "string", "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation." } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false, "examples": [ { "type": "httpApiKey", "name": "api_key", "in": "header" } ] }, "http://asyncapi.com/definitions/3.0.0/oauth2Flows.json": { "$id": "http://asyncapi.com/definitions/3.0.0/oauth2Flows.json", "type": "object", "description": "Allows configuration of the supported OAuth Flows.", "required": [ "type", "flows" ], "properties": { "type": { "type": "string", "description": "The type of the security scheme.", "enum": [ "oauth2" ] }, "description": { "type": "string", "description": "A short description for security scheme." }, "flows": { "type": "object", "properties": { "implicit": { "description": "Configuration for the OAuth Implicit flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json" }, { "required": [ "authorizationUrl", "availableScopes" ] }, { "not": { "required": [ "tokenUrl" ] } } ] }, "password": { "description": "Configuration for the OAuth Resource Owner Protected Credentials flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json" }, { "required": [ "tokenUrl", "availableScopes" ] }, { "not": { "required": [ "authorizationUrl" ] } } ] }, "clientCredentials": { "description": "Configuration for the OAuth Client Credentials flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json" }, { "required": [ "tokenUrl", "availableScopes" ] }, { "not": { "required": [ "authorizationUrl" ] } } ] }, "authorizationCode": { "description": "Configuration for the OAuth Authorization Code flow.", "allOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json" }, { "required": [ "authorizationUrl", "tokenUrl", "availableScopes" ] } ] } }, "additionalProperties": false }, "scopes": { "type": "array", "description": "List of the needed scope names.", "items": { "type": "string" } } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } } }, "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json": { "$id": "http://asyncapi.com/definitions/3.0.0/oauth2Flow.json", "type": "object", "description": "Configuration details for a supported OAuth Flow", "properties": { "authorizationUrl": { "type": "string", "format": "uri", "description": "The authorization URL to be used for this flow. This MUST be in the form of an absolute URL." }, "tokenUrl": { "type": "string", "format": "uri", "description": "The token URL to be used for this flow. This MUST be in the form of an absolute URL." }, "refreshUrl": { "type": "string", "format": "uri", "description": "The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL." }, "availableScopes": { "$ref": "http://asyncapi.com/definitions/3.0.0/oauth2Scopes.json", "description": "The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it." } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false, "examples": [ { "authorizationUrl": "https://example.com/api/oauth/dialog", "tokenUrl": "https://example.com/api/oauth/token", "availableScopes": { "write:pets": "modify pets in your account", "read:pets": "read your pets" } } ] }, "http://asyncapi.com/definitions/3.0.0/oauth2Scopes.json": { "$id": "http://asyncapi.com/definitions/3.0.0/oauth2Scopes.json", "type": "object", "additionalProperties": { "type": "string" } }, "http://asyncapi.com/definitions/3.0.0/openIdConnect.json": { "$id": "http://asyncapi.com/definitions/3.0.0/openIdConnect.json", "type": "object", "required": [ "type", "openIdConnectUrl" ], "properties": { "type": { "type": "string", "description": "The type of the security scheme.", "enum": [ "openIdConnect" ] }, "description": { "type": "string", "description": "A short description for security scheme. CommonMark syntax MAY be used for rich text representation." }, "openIdConnectUrl": { "type": "string", "format": "uri", "description": "OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of an absolute URL." }, "scopes": { "type": "array", "description": "List of the needed scope names. An empty array means no scopes are needed.", "items": { "type": "string" } } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false }, "http://asyncapi.com/definitions/3.0.0/SaslSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/3.0.0/SaslSecurityScheme.json", "oneOf": [ { "$ref": "http://asyncapi.com/definitions/3.0.0/SaslPlainSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/SaslScramSecurityScheme.json" }, { "$ref": "http://asyncapi.com/definitions/3.0.0/SaslGssapiSecurityScheme.json" } ] }, "http://asyncapi.com/definitions/3.0.0/SaslPlainSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/3.0.0/SaslPlainSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "description": "The type of the security scheme. Valid values", "enum": [ "plain" ] }, "description": { "type": "string", "description": "A short description for security scheme." } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false, "examples": [ { "type": "scramSha512" } ] }, "http://asyncapi.com/definitions/3.0.0/SaslScramSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/3.0.0/SaslScramSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "description": "The type of the security scheme.", "enum": [ "scramSha256", "scramSha512" ] }, "description": { "type": "string", "description": "A short description for security scheme." } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false, "examples": [ { "type": "scramSha512" } ] }, "http://asyncapi.com/definitions/3.0.0/SaslGssapiSecurityScheme.json": { "$id": "http://asyncapi.com/definitions/3.0.0/SaslGssapiSecurityScheme.json", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "description": "The type of the security scheme.", "enum": [ "gssapi" ] }, "description": { "type": "string", "description": "A short description for security scheme." } }, "patternProperties": { "^x-[\\w\\d\\.\\x2d_]+$": { "$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" } }, "additionalProperties": false, "examples": [ {