node-spark
Version:
Cisco Spark API for Node JS
1,331 lines • 73.3 kB
JSON
{
"swagger": "2.0",
"info": {
"title": "Spark API",
"version": "1.2.6",
"description": "Cisco Spark API version 1 Swagger Definition File.",
"termsOfService": "https://developer.ciscospark.com/tos.html"
},
"externalDocs": {
"url": "https://developer.ciscospark.com"
},
"host": "api.ciscospark.com",
"schemes": [
"https"
],
"basePath": "/v1",
"produces": [
"application/json"
],
"consumes": [
"application/json"
],
"securityDefinitions": {
"Token": {
"type": "apiKey",
"name": "Authorization",
"in": "header",
"description": "Swagger Authentication with Bearer Token requires Token to be entered as 'Bearer <token>'."
}
},
"security": [
{
"Token": []
}
],
"tags": [
{
"name": "people",
"description": "Query, Create, Update, and Delete Spark Users."
},
{
"name": "rooms",
"description": "Query, Create, Update, and Delete Spark Rooms."
},
{
"name": "memberships",
"description": "Query, Create, Update, and Delete Spark Room Memberships."
},
{
"name": "messages",
"description": "Query, Create, and Delete Spark Messages."
},
{
"name": "teams",
"description": "Query, Create, Update, and Delete Spark Teams."
},
{
"name": "teamMemberships",
"description": "Query, Create, Update, and Delete Spark Team Memberships."
},
{
"name": "webhooks",
"description": "Query, Create, Update, and Delete Spark Webhooks."
},
{
"name": "organizations",
"description": "Query Organizations."
},
{
"name": "licenses",
"description": "Query Licenses."
},
{
"name": "roles",
"description": "Query Roles."
},
{
"name": "contents",
"description": "Retrieve Files."
}
],
"paths": {
"/people/": {
"get": {
"operationId": "getPeople",
"summary": "Search people by email address or display name.",
"description": "Search people by email address or display name. Returns array of Person objects.",
"tags": [
"people"
],
"parameters": [
{
"name": "id",
"in": "query",
"description": "Person ID.",
"required": false,
"type": "string"
},
{
"name": "email",
"in": "query",
"description": "Email address.",
"required": false,
"type": "string",
"format": "email"
},
{
"name": "displayName",
"in": "query",
"description": "Person display name.",
"required": false,
"type": "string"
},
{
"$ref": "#/parameters/Max"
}
],
"responses": {
"200": {
"$ref": "#/responses/People"
}
}
},
"post": {
"operationId": "addPerson",
"summary": "Create a Person for a given organization.",
"description": "Create a Person for a given organization. Returns Person object. Only an admin can create a new user account.",
"tags": [
"people"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"emails",
"displayName"
],
"properties": {
"emails": {
"description": "Array of emails.",
"type": "array",
"items": {
"type": "string",
"format": "email"
}
},
"displayName": {
"description": "Person display name.",
"type": "string"
},
"firstName": {
"description": "Person first name.",
"type": "string"
},
"lastName": {
"description": "Person last name.",
"type": "string"
},
"avatar": {
"description": "Person avatar URL.",
"type": "string",
"format": "url"
},
"orgId": {
"description": "Organization ID of Person.",
"type": "string"
},
"roles": {
"description": "Array of Role IDs.",
"type": "array",
"items": {
"type": "string"
}
},
"licenses": {
"description": "Array of License IDs.",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Person"
}
}
}
},
"/people/{personId}": {
"get": {
"operationId": "getPerson",
"summary": "Shows details for a person.",
"description": "Shows details for a person by ID. Returns Person object.",
"tags": [
"people"
],
"parameters": [
{
"name": "personId",
"in": "path",
"description": "Person ID.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"$ref": "#/responses/Person"
}
}
},
"put": {
"operationId": "updatePerson",
"summary": "Update details for a person.",
"description": "Update details for a person by ID. Returns Person object. Only an admin can update person details.",
"tags": [
"people"
],
"parameters": [
{
"name": "personId",
"in": "path",
"description": "Person ID.",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"emails",
"displayName",
"orgId",
"roles",
"licenses"
],
"properties": {
"emails": {
"description": "Array of emails.",
"type": "array",
"items": {
"type": "string",
"format": "email"
}
},
"displayName": {
"description": "Person display name.",
"type": "string"
},
"firstName": {
"description": "Person first name.",
"type": "string"
},
"lastName": {
"description": "Person last name.",
"type": "string"
},
"avatar": {
"description": "URL of Person avatar.",
"type": "string",
"format": "url"
},
"orgId": {
"description": "Organization ID of Person.",
"type": "string"
},
"roles": {
"description": "Array of Role IDs of Person.",
"type": "array",
"items": {
"type": "string"
}
},
"licenses": {
"description": "Array of License IDs of Person.",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Person"
}
}
},
"delete": {
"operationId": "deletePerson",
"summary": "Delete a Person.",
"description": "Delete a Person by ID. Only an admin can remove a person.",
"tags": [
"people"
],
"parameters": [
{
"name": "personId",
"in": "path",
"description": "Person ID.",
"required": true,
"type": "string"
}
],
"responses": {
"204": {
"description": "Successful response."
}
}
}
},
"/people/me": {
"get": {
"operationId": "getMe",
"summary": "Get the authenticated user.",
"description": "Get the authenticated user. Returns a Person object.",
"tags": [
"people"
],
"responses": {
"200": {
"$ref": "#/responses/Person"
}
}
}
},
"/rooms/": {
"get": {
"operationId": "getRooms",
"summary": "Get Rooms of which authenticated user belongs.",
"description": "Get Rooms of which authenticated user belongs. Returns array of Room objects. Optionally filter by Team ID or Room type. Room type can either be 'group' or 'direct'.",
"tags": [
"rooms"
],
"parameters": [
{
"name": "teamId",
"in": "query",
"description": "Team ID.",
"required": false,
"type": "string"
},
{
"name": "type",
"in": "query",
"description": "Room type.",
"required": false,
"type": "string",
"pattern": "(group|direct)"
},
{
"$ref": "#/parameters/Max"
}
],
"responses": {
"200": {
"$ref": "#/responses/Rooms"
}
}
},
"post": {
"operationId": "createRoom",
"summary": "Create a Room.",
"description": "Create a room. Returns Room object. The authenticated user is automatically added as a member of the room. See the Memberships API to learn how to add more people to the room.",
"tags": [
"rooms"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"description": "Room title.",
"type": "string"
},
"teamId": {
"description": "Room Team ID.",
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Room"
}
}
}
},
"/rooms/{roomId}": {
"get": {
"operationId": "getRoom",
"summary": "Shows details for a specific Room.",
"description": "Shows details for a specific Room by ID. Returns Room object by ID Query.",
"tags": [
"rooms"
],
"parameters": [
{
"name": "roomId",
"in": "path",
"description": "Room ID.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"$ref": "#/responses/Room"
}
}
},
"put": {
"operationId": "updateRoom",
"summary": "Update a Room.",
"description": "Update a Room by ID. Returns Room object.",
"tags": [
"rooms"
],
"parameters": [
{
"name": "roomId",
"in": "path",
"description": "Room ID.",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"description": "Room title.",
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Room"
}
}
},
"delete": {
"operationId": "deleteRoom",
"summary": "Delete a Room.",
"description": "Delete a room, by ID.",
"tags": [
"rooms"
],
"parameters": [
{
"name": "roomId",
"in": "path",
"description": "Room ID.",
"required": true,
"type": "string"
}
],
"responses": {
"204": {
"description": "Successful response"
}
}
}
},
"/memberships/": {
"get": {
"operationId": "getMemberships",
"summary": "Get all room memberships.",
"description": "Get all room memberships. Returns array of Membership objects. By default, lists memberships for rooms to which the authenticated user belongs. Optionally can be targeted at a specific Room ID. Optionally can be filtered by either personId or personEmail.",
"tags": [
"memberships"
],
"parameters": [
{
"name": "roomId",
"in": "query",
"description": "Room ID.",
"required": false,
"type": "string"
},
{
"name": "personId",
"in": "query",
"description": "Person ID.",
"required": false,
"type": "string"
},
{
"name": "personEmail",
"in": "query",
"description": "Person email.",
"required": false,
"type": "string",
"format": "email"
},
{
"$ref": "#/parameters/Max"
}
],
"responses": {
"200": {
"$ref": "#/responses/Memberships"
}
}
},
"post": {
"operationId": "createMembership",
"summary": "Create a Room Membership.",
"description": "Create a Room Membership in a Room by ID. Specifcy the membership target by Person ID or Email. Returns Membership object.",
"tags": [
"memberships"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"roomId"
],
"properties": {
"roomId": {
"description": "Room ID.",
"type": "string"
},
"personId": {
"description": "Person ID.",
"type": "string"
},
"personEmail": {
"description": "Person email.",
"type": "string",
"format": "email"
},
"isModerator": {
"description": "Membership is a moderator.",
"type": "boolean"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Membership"
}
}
}
},
"/memberships/{membershipId}": {
"get": {
"operationId": "getMembership",
"summary": "Get details for a membership.",
"description": "Get details for a membership by ID. Returns Membership object.",
"tags": [
"memberships"
],
"parameters": [
{
"name": "membershipId",
"in": "path",
"description": "Membership ID.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"$ref": "#/responses/Membership"
}
}
},
"put": {
"operationId": "updateMembership",
"summary": "Update a Membership.",
"description": "Update a Membership by ID. Returns Membership object.",
"tags": [
"memberships"
],
"parameters": [
{
"name": "membershipId",
"in": "path",
"description": "Membership ID.",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"isModerator"
],
"properties": {
"isModerator": {
"description": "Membership is a moderator.",
"type": "boolean"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Membership"
}
}
},
"delete": {
"operationId": "deleteMembership",
"summary": "Delete a Membership.",
"description": "Delete a membership by ID.",
"tags": [
"memberships"
],
"parameters": [
{
"name": "membershipId",
"in": "path",
"description": "Membership ID.",
"required": true,
"type": "string"
}
],
"responses": {
"204": {
"description": "Successful response."
}
}
}
},
"/messages/": {
"get": {
"operationId": "getMessages",
"summary": "Get all messages in a room.",
"description": "Get all messages in a room by ID. Returns array of Message objects.",
"tags": [
"messages"
],
"parameters": [
{
"name": "roomId",
"in": "query",
"description": "Room ID.",
"required": true,
"type": "string"
},
{
"name": "mentionedPeople",
"in": "query",
"description": "Person ID.",
"required": false,
"type": "string"
},
{
"name": "before",
"in": "query",
"description": "Marker date/time.",
"required": false,
"type": "string",
"format": "date-time"
},
{
"name": "beforeMessage",
"in": "query",
"description": "Marker Message ID.",
"required": false,
"type": "string"
},
{
"$ref": "#/parameters/Max"
}
],
"responses": {
"200": {
"$ref": "#/responses/Messages"
}
}
},
"post": {
"operationId": "createMessage",
"summary": "Create a Message.",
"description": "Create a Message. Returns Message object. Optionally, specify the message as text or markdown and include an attachment.",
"tags": [
"messages"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"roomId": {
"description": "Room ID.",
"type": "string"
},
"toPersonId": {
"description": "Person ID.",
"type": "string"
},
"toPersonEmail": {
"description": "Person Email.",
"type": "string",
"format": "email"
},
"text": {
"description": "Message as plain text.",
"type": "string"
},
"markdown": {
"description": "Message as markdown.",
"type": "string"
},
"html": {
"description": "Message as html.",
"type": "string"
},
"files": {
"description": "File URL.",
"type": "string",
"format": "url"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Message"
}
}
}
},
"/messages/{messageId}": {
"get": {
"operationId": "getMessage",
"summary": "Get a Message.",
"description": "Get a Message by ID. Returns Message object.",
"tags": [
"messages"
],
"parameters": [
{
"name": "messageId",
"in": "path",
"description": "Message ID.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"$ref": "#/responses/Message"
}
}
},
"delete": {
"operationId": "deleteMessage",
"summary": "Delete a Message.",
"description": "Deletes a message by ID.",
"tags": [
"messages"
],
"parameters": [
{
"name": "messageId",
"in": "path",
"description": "Message ID.",
"required": true,
"type": "string"
}
],
"responses": {
"204": {
"description": "Successful response."
}
}
}
},
"/teams/": {
"get": {
"operationId": "getTeams",
"summary": "Get Teams.",
"description": "Get Teams to which the authenticated user belongs. Returns array of Team objects.",
"tags": [
"teams"
],
"parameters": [
{
"$ref": "#/parameters/Max"
}
],
"responses": {
"200": {
"$ref": "#/responses/Teams"
}
}
},
"post": {
"operationId": "createTeam",
"summary": "Create a Team.",
"description": "Create a Team. Returns Team object. The authenticated user is automatically added as a member of the team. See the Team Memberships API to learn how to add more people to the team.",
"tags": [
"teams"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"description": "Team name.",
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Team"
}
}
}
},
"/teams/{teamId}": {
"get": {
"operationId": "getTeam",
"summary": "Get Team.",
"description": "Get Team by ID. Returns Team object.",
"tags": [
"teams"
],
"parameters": [
{
"name": "teamId",
"in": "path",
"description": "Team ID.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"$ref": "#/responses/Team"
}
}
},
"put": {
"operationId": "updateTeam",
"summary": "Update a Team.",
"description": "Update a Team by ID. Returns Team object.",
"tags": [
"teams"
],
"parameters": [
{
"name": "teamId",
"in": "path",
"description": "Team ID.",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"description": "Team name.",
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Team"
}
}
},
"delete": {
"operationId": "deleteTeam",
"summary": "Delete a Team.",
"description": "Delete a team by ID.",
"tags": [
"teams"
],
"parameters": [
{
"name": "teamId",
"in": "path",
"description": "Team ID.",
"required": true,
"type": "string"
}
],
"responses": {
"204": {
"description": "Successful response."
}
}
}
},
"/team/memberships/": {
"get": {
"operationId": "getTeamMemberships",
"summary": "Get Team Memberships.",
"description": "Get Team Memberships by ID. Returns array of TeamMembership objects. If Team ID is not specified, lists memberships for teams to which the authenticated user belongs.",
"tags": [
"teamMemberships"
],
"parameters": [
{
"name": "teamId",
"in": "query",
"description": "Team ID.",
"required": true,
"type": "string"
},
{
"$ref": "#/parameters/Max"
}
],
"responses": {
"200": {
"$ref": "#/responses/TeamMemberships"
}
}
},
"post": {
"operationId": "createTeamMembership",
"summary": "Create a Team Membership. Returns TeamMembership object.",
"description": "Create a Team Membership by Person ID or email address. Returns TeamMembership object. Optionally make membership a moderator.",
"tags": [
"teamMemberships"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"teamId": {
"description": "Team ID.",
"type": "string"
},
"personId": {
"description": "Person ID.",
"type": "string"
},
"personEmail": {
"description": "Person Email.",
"type": "string",
"format": "email"
},
"isModerator": {
"description": "Team Membership is a moderator.",
"type": "boolean"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/TeamMembership"
}
}
}
},
"/team/memberships/{membershipId}": {
"get": {
"operationId": "getTeamMembership",
"summary": "Get Team Memberships.",
"description": "Get Team Memberships. Returns TeamMembership object.",
"tags": [
"teamMemberships"
],
"parameters": [
{
"name": "membershipId",
"in": "path",
"description": "Membership ID.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"$ref": "#/responses/TeamMembership"
}
}
},
"put": {
"operationId": "updateTeamMembership",
"summary": "Update a Team Membership.",
"description": "UUpdate a Team Membership by ID. Returns TeamMembership object.",
"tags": [
"teamMemberships"
],
"parameters": [
{
"name": "membershipId",
"in": "path",
"description": "Membership ID.",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"isModerator"
],
"properties": {
"isModerator": {
"description": "Team Membership is a moderator.",
"type": "boolean"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/TeamMembership"
}
}
},
"delete": {
"operationId": "deleteTeamMembership",
"summary": "Delete a Team Membership.",
"description": "Delete a Team Membership by ID.",
"tags": [
"teamMemberships"
],
"parameters": [
{
"name": "membershipId",
"in": "path",
"description": "Membership ID.",
"required": true,
"type": "string"
}
],
"responses": {
"204": {
"description": "Successful response."
}
}
}
},
"/webhooks/": {
"get": {
"operationId": "getWebhooks",
"summary": "Get Webhooks.",
"description": "Get Webhooks. Returns an array of Webhook objects.",
"tags": [
"webhooks"
],
"parameters": [
{
"$ref": "#/parameters/Max"
}
],
"responses": {
"200": {
"$ref": "#/responses/Webhooks"
}
}
},
"post": {
"operationId": "createWebhook",
"summary": "Create a Webhook.",
"description": "Create a webhook. Returns a Webhook object.",
"tags": [
"webhooks"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"name",
"targetUrl",
"resource",
"event"
],
"properties": {
"name": {
"description": "Webhook name.",
"type": "string"
},
"targetUrl": {
"description": "Webhook target URL.",
"type": "string",
"format": "url"
},
"resource": {
"description": "Webhook resource.",
"type": "string"
},
"event": {
"description": "Webhook event.",
"type": "string"
},
"filter": {
"description": "Webhook filter.",
"type": "string"
},
"secret": {
"description": "Webhook secret.",
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Webhook"
}
}
}
},
"/webhooks/{webhookId}": {
"get": {
"operationId": "getWebhook",
"summary": "Get Webhook.",
"description": "Get Webhook by ID. Returns a Webhook object.",
"tags": [
"webhooks"
],
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "Webhook ID.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"$ref": "#/responses/Webhook"
}
}
},
"put": {
"operationId": "updateWebhook",
"summary": "Update a Webhook.",
"description": "Update a webhook by ID. Returns a Webhook object.",
"tags": [
"webhooks"
],
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "Webhook ID.",
"required": true,
"type": "string"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"name",
"targetUrl"
],
"properties": {
"name": {
"description": "Webhook name.",
"type": "string"
},
"targetUrl": {
"description": "Webhook target URL.",
"type": "string",
"format": "url"
}
}
}
}
],
"responses": {
"200": {
"$ref": "#/responses/Webhook"
}
}
},
"delete": {
"operationId": "deleteWebhook",
"summary": "Delete a Webhook.",
"description": "Delete a Webhook by ID.",
"tags": [
"webhooks"
],
"parameters": [
{
"name": "webhookId",
"in": "path",
"description": "Webhook ID.",
"required": true,
"type": "string"
}
],
"responses": {
"204": {
"description": "Successful response."
}
}
}
},
"/organizations/": {
"get": {
"operationId": "getOrganizations",
"summary": "Get Organizations for authenticated User. Returns array of Organization objects.",
"description": "Get Organizations for authenticated User. Returns array of Organization objects.",
"tags": [
"organizations"
],
"parameters": [
{
"$ref": "#/parameters/Max"
}
],
"responses": {
"200": {
"$ref": "#/responses/Organizations"
}
}
}
},
"/organizations/{orgId}": {
"get": {
"operationId": "getOrganization",
"summary": "Get Organization.",
"description": "Get Organization by ID. Returns Organization object.",
"tags": [
"organizations"
],
"parameters": [
{
"name": "orgId",
"in": "path",
"description": "Organization ID.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"$ref": "#/responses/Organization"
}
}
}
},
"/licenses/": {
"get": {
"operationId": "getLicenses",
"summary": "Get Licenses.",
"description": "Get Licenses. Returns array of License objects.",
"tags": [
"licenses"
],
"paramete