| { |
| "swagger": "2.0", |
| "info": { |
| "description": "DMaaP MR REST API", |
| "version": "4.0.0", |
| "title": "DMaaP MR REST API" |
| }, |
| "host": "message-router:30227", |
| "basePath": "/", |
| "tags": [ |
| { |
| "name": "Topic", |
| "description": "Operations about topic" |
| }, |
| { |
| "name": "MirrorMaker", |
| "description": "Operations about mirror maker" |
| }, |
| { |
| "name": "MirrorMaker Whitelist", |
| "description": "Operations about mirror maker whitelist" |
| } |
| ], |
| "schemes": [ |
| "http", |
| "https" |
| ], |
| "paths": { |
| "/topics/create": { |
| "post": { |
| "tags": [ |
| "Topic" |
| ], |
| "summary": "Create a Topic", |
| "description": "AAF Permissions required to create authenticated topics: org.onap.dmaap.mr.topicFactory|:org.onap.dmaap.mr.topic:org.onap.dmaap.mr|create ", |
| "operationId": "Create a Topic", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "Topic details", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/createTopic" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "409": { |
| "description": "topic already exist" |
| }, |
| "500": { |
| "description": "failed to create a topic" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| }, |
| "/topics": { |
| "get": { |
| "tags": [ |
| "Topic" |
| ], |
| "summary": "Get all topics", |
| "description": "", |
| "operationId": "view all topics", |
| "produces": [ |
| "application/json" |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "500": { |
| "description": "failed to return the topics" |
| } |
| } |
| } |
| }, |
| "/topics/{topicName}": { |
| "get": { |
| "tags": [ |
| "Topic" |
| ], |
| "summary": "Get individual topic details", |
| "description": "", |
| "operationId": "view the topic", |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "name": "topicName", |
| "in": "path", |
| "description": "topicName", |
| "required": true, |
| "type": "string" |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "404": { |
| "description": "topic not found" |
| }, |
| "500": { |
| "description": "failed to return the topics" |
| } |
| } |
| } |
| }, |
| "/topics/listAll": { |
| "get": { |
| "tags": [ |
| "Topic" |
| ], |
| "summary": "Get all topics list with details", |
| "description": "", |
| "operationId": "view all topics details", |
| "produces": [ |
| "application/json" |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "500": { |
| "description": "failed to return the topics" |
| } |
| } |
| } |
| }, |
| "/events/{topic}/{consumergroup}/{consumerid}": { |
| "get": { |
| "tags": [ |
| "Topic" |
| ], |
| "summary": "Get events from a topic", |
| "description": "Subscribe to a topic. If already subscribed read the events from the topic. Basic Auth header is required for subcribing to a topic. AAF permissions required for subscribing to a authenticated topic: org.onap.dmaap.mr.topic|:topic.<topic name>|sub", |
| "operationId": "subscribe to a topic", |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "name": "topic", |
| "in": "path", |
| "description": "topic name", |
| "required": true, |
| "type": "string" |
| }, |
| { |
| "name": "consumergroup", |
| "in": "path", |
| "description": "consumer group", |
| "required": true, |
| "type": "string" |
| }, |
| { |
| "name": "consumerid", |
| "in": "path", |
| "description": "consumer id", |
| "required": true, |
| "type": "string" |
| }, |
| { |
| "name": "limit", |
| "in": "query", |
| "description": "limit on the number of messages returned", |
| "type": "string" |
| }, |
| { |
| "name": "timeout", |
| "in": "query", |
| "description": "amount of time in ms server will open the connection with the Kafka while reading the messages", |
| "type": "string" |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "409": { |
| "description": "unable to read the messages from the topic" |
| }, |
| "429": { |
| "description": "Client is making too many requests. Decrease the number of requests to avoid empty response" |
| }, |
| "500": { |
| "description": "internal server error" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| }, |
| "/events/{topic}/": { |
| "post": { |
| "tags": [ |
| "Topic" |
| ], |
| "summary": "Post events to a topic", |
| "description": "post an event to a topic. Basic Auth header is required for subcribing to a topic. AAF permissions required for subscribing to a authenticated topic: org.onap.dmaap.mr.topic|:topic.<topic name>|pub", |
| "operationId": "post messages to a topic", |
| "consumes": [ |
| "application/json", |
| "text/plain" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "name": "topic", |
| "in": "path", |
| "description": "topic name", |
| "required": true, |
| "type": "string" |
| }, |
| { |
| "name": "partitionKey", |
| "in": "query", |
| "description": "topic partitionkey", |
| "type": "string" |
| }, |
| { |
| "in": "body", |
| "name": "body", |
| "description": "mesage/s to publish to a topic", |
| "required": true, |
| "schema": { |
| "type": "string" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "400": { |
| "description": "Invalid request" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "404": { |
| "description": "error while publishing to the topic" |
| }, |
| "500": { |
| "description": "internal server error" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| }, |
| "/mirrormakers/create": { |
| "post": { |
| "tags": [ |
| "MirrorMaker" |
| ], |
| "summary": "Create a Mirror Maker process and returns the all mirror maker processes", |
| "description": "AAF Permissions required: org.onap.dmaap.mr.mirrormaker|*|admin", |
| "operationId": "Create a Mirror Maker process", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "Create Mirror Maker", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/createMirrorMaker" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "400": { |
| "description": "invalid request" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "503": { |
| "description": "list mirror maker not available" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| }, |
| "/mirrormakers/update": { |
| "post": { |
| "tags": [ |
| "MirrorMaker" |
| ], |
| "summary": "Update a Mirror Maker process and returns the all mirror maker processes", |
| "description": "AAF Permissions required: org.onap.dmaap.mr.mirrormaker|*|admin", |
| "operationId": "Update a Mirror Maker process", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "Update Mirror Maker", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/updateMirrorMaker" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "400": { |
| "description": "invalid request" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "503": { |
| "description": "list mirror maker not available" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| }, |
| "/mirrormakers/listAll": { |
| "post": { |
| "tags": [ |
| "MirrorMaker" |
| ], |
| "summary": "List of mirror maker processes", |
| "description": "AAF Permissions required: org.onap.dmaap.mr.mirrormaker|*|admin", |
| "operationId": "List all Mirror Maker processes", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "List all Mirror Maker processes", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/listAllMirrorMaker" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "400": { |
| "description": "invalid request" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "503": { |
| "description": "list mirror maker not available" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| }, |
| "/mirrormakers/delete": { |
| "post": { |
| "tags": [ |
| "MirrorMaker" |
| ], |
| "summary": "Delete a mirror maker process and return the all mirror maker processes", |
| "description": "AAF Permissions required: org.onap.dmaap.mr.mirrormaker|*|admin", |
| "operationId": "Delete a Mirror Maker process", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "Delete a Mirror Maker process", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/deleteMirrorMaker" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "400": { |
| "description": "invalid request" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "503": { |
| "description": "list mirror maker not available" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| }, |
| "/mirrormakers/createwhitelist": { |
| "post": { |
| "tags": [ |
| "MirrorMaker Whitelist" |
| ], |
| "summary": "Add a new topic to a mirror maker whitelist and return all the mirror maker processes", |
| "description": "AAF Permissions required: rg.onap.dmaap.mr.mirrormaker|*|user , org.onap.dmaap.mr.topicFactory|:org.onap.dmaap.mr.topic:org.onap.dmaap.mr|create", |
| "operationId": "Create a whitelist", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "Add a topic to whitelist", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/createWhitelist" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "400": { |
| "description": "invalid request" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "503": { |
| "description": "list mirror maker not available" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| }, |
| "/mirrormakers/listallwhitelist": { |
| "post": { |
| "tags": [ |
| "MirrorMaker Whitelist" |
| ], |
| "summary": "List all whitelist", |
| "description": "AAF Permissions required: rg.onap.dmaap.mr.mirrormaker|*|user , org.onap.dmaap.mr.topicFactory|:org.onap.dmaap.mr.topic:org.onap.dmaap.mr|create", |
| "operationId": "List all whitelist", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "List all whitelist", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/listallwhitelist" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "400": { |
| "description": "invalid request" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "503": { |
| "description": "list mirror maker not available" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| }, |
| "/mirrormakers/deletewhitelist": { |
| "post": { |
| "tags": [ |
| "MirrorMaker Whitelist" |
| ], |
| "summary": "Delate a whitelist and returns the all lirror maker processes ", |
| "description": "AAF Permissions required: rg.onap.dmaap.mr.mirrormaker|*|user , org.onap.dmaap.mr.topicFactory|:org.onap.dmaap.mr.topic:org.onap.dmaap.mr|create", |
| "operationId": "Delete all whitelist", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "List all whitelist", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/listallwhitelist" |
| } |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation" |
| }, |
| "400": { |
| "description": "invalid request" |
| }, |
| "401": { |
| "description": "unauthorized" |
| }, |
| "403": { |
| "description": "forbidden" |
| }, |
| "503": { |
| "description": "list mirror maker not available" |
| } |
| }, |
| "security": [ |
| { |
| "basicAuth": [] |
| } |
| ] |
| } |
| } |
| }, |
| "securityDefinitions": { |
| "basicAuth": { |
| "type": "basic" |
| } |
| }, |
| "definitions": { |
| "createTopic": { |
| "type": "object", |
| "properties": { |
| "topicName": { |
| "type": "string", |
| "example": "org.onap.dmaap.mr.mrtesttopic" |
| }, |
| "topicDescription": { |
| "type": "string", |
| "example": "test topic" |
| }, |
| "partitionCount": { |
| "type": "integer", |
| "format": "int64", |
| "example": 3 |
| }, |
| "replicationCount": { |
| "type": "integer", |
| "format": "int64", |
| "example": 1 |
| }, |
| "transactionEnabled": { |
| "type": "string", |
| "example": "false" |
| } |
| } |
| }, |
| "createMirrorMaker": { |
| "type": "object", |
| "properties": { |
| "createMirrorMaker": { |
| "$ref": "#/definitions/createMirrorMaker.mirrorMaker" |
| } |
| } |
| }, |
| "createMirrorMaker.mirrorMaker": { |
| "type": "object", |
| "properties": { |
| "name": { |
| "type": "string", |
| "description": "Unique Name for the MirrorMaker. A-Z 1-0 only", |
| "example": "centraltoedge" |
| }, |
| "consumer": { |
| "type": "string", |
| "description": "Consumer hostname/IP Address", |
| "example": "10.12.6.98:30491" |
| }, |
| "producer": { |
| "type": "string", |
| "description": "Producer hostname/IP Address", |
| "example": "10.12.5.108:30491" |
| }, |
| "numStreams": { |
| "type": "string", |
| "description": "Number of consumer threads to start. (If not provided default is 1)", |
| "example": "3" |
| }, |
| "whitelist": { |
| "type": "string", |
| "description": "Topic names to be whitelisted. This can be provided later using createWhitelist API", |
| "example": "org.onap.dmaap.mr.mrtesttopic" |
| }, |
| "enablelogCheck": { |
| "type": "string", |
| "description": "Enable error log monitoring on the MirrorMaker thread. Default values is False.If not provided error log is not monitored.", |
| "example": "true" |
| } |
| }, |
| "required": [ |
| "name", |
| "consumer", |
| "producer" |
| ] |
| }, |
| "updateMirrorMaker": { |
| "type": "object", |
| "properties": { |
| "updateMirrorMaker": { |
| "$ref": "#/definitions/updateMirrorMaker.mirrorMaker" |
| } |
| } |
| }, |
| "updateMirrorMaker.mirrorMaker": { |
| "type": "object", |
| "properties": { |
| "name": { |
| "type": "string", |
| "description": "Existing Mirror Maker name", |
| "example": "centraltoedge" |
| }, |
| "consumer": { |
| "type": "string", |
| "description": "Consumer hostname/IP Address", |
| "example": "10.12.6.98:30491" |
| }, |
| "producer": { |
| "type": "string", |
| "description": "Producer hostname/IP Address", |
| "example": "10.12.5.108:30491" |
| }, |
| "numStreams": { |
| "type": "string", |
| "description": "Update number of consumer threads", |
| "example": "3" |
| }, |
| "enablelogCheck": { |
| "type": "string", |
| "description": "Enable/Disable error log monitoring on the MirrorMaker thread", |
| "example": "false" |
| } |
| }, |
| "required": [ |
| "name" |
| ] |
| }, |
| "listAllMirrorMaker": { |
| "type": "object", |
| "properties": { |
| "listAllMirrorMaker": { |
| "type": "object", |
| "items": { |
| "$ref": "#/definitions/listAllMirrorMaker.mirrorMaker" |
| } |
| } |
| } |
| }, |
| "listAllMirrorMaker.mirrorMaker": { |
| "type": "object" |
| }, |
| "deleteMirrorMaker": { |
| "type": "object", |
| "properties": { |
| "deleteMirrorMaker": { |
| "$ref": "#/definitions/deleteMirrorMaker.mirrorMaker" |
| } |
| } |
| }, |
| "deleteMirrorMaker.mirrorMaker": { |
| "type": "object", |
| "properties": { |
| "name": { |
| "type": "string", |
| "description": "Existing Mirror Maker name", |
| "example": "centraltoedge2" |
| } |
| }, |
| "required": [ |
| "name" |
| ] |
| }, |
| "createWhitelist": { |
| "type": "object", |
| "properties": { |
| "name": { |
| "type": "string", |
| "description": "Existing Mirror Maker name", |
| "example": "centraltoedge" |
| }, |
| "namespace": { |
| "type": "string", |
| "description": "", |
| "example": "org.onap.dmaap.mr" |
| }, |
| "whitelistTopicName": { |
| "type": "string", |
| "description": "Topic name to add to the whitelist", |
| "example": "org.onap.dmaap.mr.mrtesttopic2" |
| } |
| }, |
| "required": [ |
| "name", |
| "namespace", |
| "whitelistTopicName" |
| ] |
| }, |
| "listallwhitelist": { |
| "type": "object", |
| "properties": { |
| "name": { |
| "type": "string", |
| "description": "Existing Mirror Maker name", |
| "example": "centraltoedge" |
| }, |
| "namespace": { |
| "type": "string", |
| "description": "", |
| "example": "org.onap.dmaap.mr" |
| } |
| }, |
| "required": [ |
| "name", |
| "namespace" |
| ] |
| }, |
| "deleteeWhitelist": { |
| "type": "object", |
| "properties": { |
| "name": { |
| "type": "string", |
| "description": "Existing Mirror Maker name", |
| "example": "centraltoedge" |
| }, |
| "namespace": { |
| "type": "string", |
| "description": "", |
| "example": "org.onap.dmaap.mr" |
| }, |
| "whitelistTopicName": { |
| "type": "string", |
| "description": "Topic name to delete from the whitelist", |
| "example": "org.onap.dmaap.mr.mrtesttopic2" |
| } |
| }, |
| "required": [ |
| "name", |
| "namespace", |
| "whitelistTopicName" |
| ] |
| } |
| } |
| } |