diff --git a/fm/fed-mgr-msg b/fm/fed-mgr-msg new file mode 100644 index 0000000..ed9029c --- /dev/null +++ b/fm/fed-mgr-msg @@ -0,0 +1,129 @@ +{ + "asyncapi": "2.0.0", + + "info": { + "title": "AsyncAPI Sample App", + "description": "Draft 00: Specification of the Async API for TAP-ICP Federation Manager Messaging", + "termsOfService": "http://asyncapi.org/terms/", + "contact": { + "name": "API Support", + "url": "http://www.asyncapi.org/support", + "email": "support@asyncapi.org" + }, + + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + + "servers": { + "development": { + "url": "development.gigantic-server.com", + "description": "Development server", + "protocol": "mqtt" + }, + "staging": { + "url": "staging.gigantic-server.com", + "description": "Staging server", + "protocol": "secure-mqtt" + }, + "production": { + "url": "api.gigantic-server.com", + "description": "Production server", + "protocol": "secure-mqtt" + } + }, + + "channels": { + "FMpersonCreated": { + }, + "publish": { + "operationId": "create", + "message": { + "$ref": "#/components/messages/CRUD" + } + } + }, + + "components": { + "schemas": { + "email": { + "type": "string", + "format": "email" + }, + "sentAt": { + "type": "string", + "format": "datetime" + }, + "address": { + "type": "object", + "properties": { + "street": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "region": { + "type": "string" + }, + "country": { + "type": "string" + } + } + } + }, + + "messages": { + "CRUD": { + "summary": "Person new to FM added to FM.", + "description": "Multiline description of what this action does.\nHere you have another line.\n", + "tags": [{ + "name": "FMperson" + }, + { + "name": "created" + } + ], + + "bindings": { + "mqtt": { + "cleanSession": false, + "clientId": "myApp" + } + }, + + "headers": { + "type": "object", + "properties": { + "myAppHeader": { + "type": "string" + } + } + }, + + "payload": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "email": { + "$ref": "#/components/schemas/email" + }, + "address": { + "$ref": "#/components/schemas/address" + }, + "sentAt": { + "$ref": "#/components/schemas/sentAt" + } + } + } + } + } + } + }