UNPKG

node-spark

Version:
1,331 lines 73.3 kB
{ "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