From 6db4fe5f289571848f895efa84d7509bd08573f2 Mon Sep 17 00:00:00 2001 From: Keith Hazelton Date: Tue, 1 Sep 2020 13:05:22 -0500 Subject: [PATCH] Create fed-mgr-msg-01.json --- fm/fed-mgr-msg-01.json | 201 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 fm/fed-mgr-msg-01.json diff --git a/fm/fed-mgr-msg-01.json b/fm/fed-mgr-msg-01.json new file mode 100644 index 0000000..9530413 --- /dev/null +++ b/fm/fed-mgr-msg-01.json @@ -0,0 +1,201 @@ +{ + "asyncapi": "2.0.0", + "id": "https://github.internet2.edu/internet2/msg/fmPerson", + + "info": { + "title": "Federation Manager Async API", + "description": "Draft 01: 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" + }, + "version": "1.0.0" + }, + + "servers": { + "development": { + "url": "dev.fm.internet2.edu", + "description": "Development server", + "protocol": "amqp", + "protocolVersion": "0.9.1" + }, + "staging": { + "url": "staging.fm.internet2.edu", + "description": "Staging server", + "protocol": "amqp", + "protocolVersion": "0.9.1" + }, + "production": { + "url": "api.fm.internet2.edu", + "description": "Production server", + "protocol": "amqp", + "protocolVersion": "0.9.1" + } + }, + + "channels": { + "fmPerson/": { + "publish": { + "message": { + "$ref": "#/components/messages/fmPerson" + } + }, + "subscribe": { + "message": { + "$ref": "#/components/messages/fmPerson" + } + } + } + }, + + "components": { + + "schemas": { + "lastModified": { + "type": "datetime" + }, + "schoemas": { + "type": "string" + }, + "eventType": { + "type": "string", + "description": "One of the following: create, read, update, delete" + }, + "identifier": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "type": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + }, + "email": { + "type": "array", + "description": "same as telephoneNumber in Core Attribute Specification", + "items": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verified": { + "type": "string" + } + } + } + }, + "name": { + "type": "object", + "properties": { + "family": { + "type": "string" + }, + "given": { + "type": "string" + }, + "middle": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "telephoneNumber": { + "type": "array", + "description": "same as telephoneNumber in Core Attribute Specification", + "items": { + "type": "object", + "properties": { + "number": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verified": { + "type": "string" + } + } + } + }, + "fmIsIdentityProofed": { + "type": "boolean" + } + }, + + "messages": { + "fmPerson": { + "summary": "Action taken on a Federation Manager person", + "description": "Describes a CRUD action on a person by the Federation Manager", + "name": "FMperson", + "bindings": { + "amqp": { + "clientId": "fmPersonCrudClient" + } + }, + "headers": { + "type": "object", + "properties": { + "header": { + "type": "string" + } + } + }, + "payload": { + "type": "object", + "properties": { + "resourceType": { + "type": "string" + }, + "resourceTypeVersion": { + "type": "string" + }, + "schoemas": { + "$ref": "#/components/schemas/schoemas" + }, + "eventType": { + "$ref": "#/components/schemas/eventType" + }, + "lastModified": { + "$ref": "#/components/schemas/lastModified" + }, + "identifier": { + "$ref": "#/components/schemas/identifier" + }, + "email": { + "$ref": "#/components/schemas/email" + }, + "name": { + "$ref": "#/components/schemas/name" + }, + "telephoneNumber": { + "$ref": "#/components/schemas/telephoneNumber" + }, + "fmIsIdentityProofed": { + "$ref": "#/components/schemas/fmIsIdentityProofed" + } + } + } + } + } + } +}