Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
jonaslagoni committed Jun 25, 2024
1 parent 2bb7c0a commit 82339df
Show file tree
Hide file tree
Showing 3 changed files with 356 additions and 0 deletions.
256 changes: 256 additions & 0 deletions definitions/2.6.0/messageObject.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,256 @@
{
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^x-[\\w\\d\\.\\x2d_]+$": {
"$ref": "http://asyncapi.com/definitions/2.6.0/specificationExtension.json"
}
},
"properties": {
"schemaFormat": {
"type": "string"
},
"contentType": {
"type": "string"
},
"headers": {
"allOf": [
{
"$ref": "http://asyncapi.com/definitions/2.6.0/schema.json"
},
{
"properties": {
"type": {
"const": "object"
}
}
}
]
},
"messageId": {
"type": "string"
},
"payload": {},
"correlationId": {
"oneOf": [
{
"$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json"
},
{
"$ref": "http://asyncapi.com/definitions/2.6.0/correlationId.json"
}
]
},
"tags": {
"type": "array",
"items": {
"$ref": "http://asyncapi.com/definitions/2.6.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.6.0/externalDocs.json"
},
"deprecated": {
"type": "boolean",
"default": false
},
"examples": {
"type": "array",
"description": "List of examples.",
"items": {
"type": "object",
"additionalProperties": false,
"anyOf": [
{
"required": ["payload"]
},
{
"required": ["headers"]
}
],
"properties": {
"name": {
"type": "string",
"description": "Machine readable name of the message example."
},
"summary": {
"type": "string",
"description": "A brief summary of the message example."
},
"headers": {
"type": "object",
"description": "Schema definition of the application headers."
},
"payload": {
"description": "Definition of the message payload. It can be of any type"
}
}
}
},
"bindings": {
"$ref": "http://asyncapi.com/definitions/2.6.0/bindingsObject.json"
},
"traits": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json"
},
{
"$ref": "http://asyncapi.com/definitions/2.6.0/messageTrait.json"
}
]
}
}
},
"allOf": [
{
"if": {
"not": {
"required": [
"schemaFormat"
]
}
},
"then": {
"properties": {
"payload": {
"$ref": "http://asyncapi.com/definitions/2.6.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",
"application/vnd.aai.asyncapi;version=2.1.0",
"application/vnd.aai.asyncapi+json;version=2.1.0",
"application/vnd.aai.asyncapi+yaml;version=2.1.0",
"application/vnd.aai.asyncapi;version=2.2.0",
"application/vnd.aai.asyncapi+json;version=2.2.0",
"application/vnd.aai.asyncapi+yaml;version=2.2.0",
"application/vnd.aai.asyncapi;version=2.3.0",
"application/vnd.aai.asyncapi+json;version=2.3.0",
"application/vnd.aai.asyncapi+yaml;version=2.3.0",
"application/vnd.aai.asyncapi;version=2.4.0",
"application/vnd.aai.asyncapi+json;version=2.4.0",
"application/vnd.aai.asyncapi+yaml;version=2.4.0",
"application/vnd.aai.asyncapi;version=2.5.0",
"application/vnd.aai.asyncapi+json;version=2.5.0",
"application/vnd.aai.asyncapi+yaml;version=2.5.0",
"application/vnd.aai.asyncapi;version=2.6.0",
"application/vnd.aai.asyncapi+json;version=2.6.0",
"application/vnd.aai.asyncapi+yaml;version=2.6.0"
]
}
}
},
"then": {
"properties": {
"payload": {
"$ref": "http://asyncapi.com/definitions/2.6.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/common/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/common/avroSchema_v1.json"
}
}
}
}
],
"example": {
"$ref": "http://asyncapi.com/examples/2.6.0/messageObject.json"
},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://asyncapi.com/definitions/2.6.0/messageObject.json"
}
22 changes: 22 additions & 0 deletions definitions/2.6.0/messageObjectMultiple.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"type": "object",
"required": ["oneOf"],
"additionalProperties": false,
"properties": {
"oneOf": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "http://asyncapi.com/definitions/2.6.0/Reference.json"
},
{
"$ref": "http://asyncapi.com/definitions/2.6.0/messageObject.json"
}
]
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://asyncapi.com/definitions/2.6.0/messageObjectMultiple.json"
}
78 changes: 78 additions & 0 deletions examples/2.6.0/messageObject.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
[
{
"messageId": "userSignup",
"name": "UserSignup",
"title": "User signup",
"summary": "Action to sign a user up.",
"description": "A longer description",
"contentType": "application/json",
"tags": [
{ "name": "user" },
{ "name": "signup" },
{ "name": "register" }
],
"headers": {
"type": "object",
"properties": {
"correlationId": {
"description": "Correlation ID set by application",
"type": "string"
},
"applicationInstanceId": {
"description": "Unique identifier for a given instance of the publishing application",
"type": "string"
}
}
},
"payload": {
"type": "object",
"properties": {
"user": {
"$ref": "#/components/schemas/userCreate"
},
"signup": {
"$ref": "#/components/schemas/signup"
}
}
},
"correlationId": {
"description": "Default Correlation ID",
"location": "$message.header#/correlationId"
},
"traits": [{ "$ref": "#/components/messageTraits/commonHeaders" }],
"examples": [
{
"name": "SimpleSignup",
"summary": "A simple UserSignup example message",
"headers": {
"correlationId": "my-correlation-id",
"applicationInstanceId": "myInstanceId"
},
"payload": {
"user": {
"someUserKey": "someUserValue"
},
"signup": {
"someSignupKey": "someSignupValue"
}
}
}
]
},
{
"messageId": "userSignup",
"name": "UserSignup",
"title": "User signup",
"summary": "Action to sign a user up.",
"description": "A longer description",
"tags": [
{ "name": "user" },
{ "name": "signup" },
{ "name": "register" }
],
"schemaFormat": "application/vnd.apache.avro+json;version=1.9.0",
"payload": {
"$ref": "path/to/user-create.avsc#/UserCreate"
}
}
]

0 comments on commit 82339df

Please sign in to comment.