{ "swagger": "2.0", "info": { "title": "Seismic Configuration", "description": "Seismic configuration connector provides set of actions required for adding or updating content properties, fetching teamsites and updating email opt-outs.", "contact": { "name": "Seismic", "email": "support@seismic.com", "url": "https://seismic.com" }, "license": { "name": "seismic" }, "version": "v2" }, "host": "api.seismic.com", "schemes": [ "https" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/integration/v2/contentProperties/{contentPropertyId}/values": { "get": { "tags": [ "Content Properties" ], "summary": "Content properties - Get values of a content property", "description": "Provides the list of content property values for a given content property.", "operationId": "GetContentPropertyValues", "produces": [ "application/json" ], "parameters": [ { "in": "path", "name": "contentPropertyId", "description": "Content Property Id", "required": true, "type": "string", "x-ms-summary": "Content Property Id" } ], "responses": { "200": { "description": "Success", "schema": { "type": "array", "items": { "$ref": "#/definitions/Seismic.ContentManager.DomainOfValues" } } } } }, "post": { "tags": [ "Content Properties" ], "summary": "Content properties - Add values to a content property", "description": "Add one or more content property values to an existing content property.", "operationId": "AddContentPropertyValues", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "in": "path", "name": "contentPropertyId", "description": "Content Property Id", "required": true, "type": "string", "x-ms-summary": "Content Property Id" }, { "in": "body", "name": "body", "description": "Body", "schema": { "type": "array", "items": { "type": "string", "title": "Content Property Value" } } } ], "responses": { "201": { "description": "Success", "schema": { "type": "array", "items": { "$ref": "#/definitions/Seismic.ContentManager.DomainOfValues" } } } } } }, "/integration/v2/contentProperties": { "get": { "tags": [ "Content Properties" ], "summary": "Content properties - Get all", "description": "Provides the list of content properties defined within the system.", "operationId": "GetContentProperties", "produces": [ "application/json" ], "parameters": [ { "in": "query", "name": "teamsiteId", "description": "Teamsite Id", "type": "string", "x-ms-summary": "Teamsite Id" }, { "in": "query", "name": "includeValues", "description": "Include Values", "type": "boolean", "default": true, "x-ms-summary": "Include Values?" } ], "responses": { "200": { "description": "Success", "schema": { "type": "array", "items": { "$ref": "#/definitions/Seismic.ContentProperties.ContentProperty" } } } } }, "post": { "tags": [ "Content Properties" ], "summary": "Content properties - Add a content property", "description": "Add a content property and associate it to an existing teamsite.", "operationId": "AddContentProperty", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "in": "body", "name": "body", "description": "Body", "schema": { "$ref": "#/definitions/Seismic.ContentManager.AddContentPropertyRequest" } } ], "responses": { "201": { "description": "Success", "schema": { "$ref": "#/definitions/Seismic.ContentManager.AddContentPropertyResponse" } } } } }, "/integration/v2/system/optouts": { "get": { "tags": [ "Privacy Management" ], "summary": "Email opt-outs - Get list", "description": "Get a list of registered opt-outs.", "operationId": "GetGdprEmails", "produces": [ "text/plain", "application/json", "text/json" ], "parameters": [ { "in": "query", "name": "offset", "description": "Default 0", "type": "integer", "format": "int32", "x-ms-summary": "(optional) Page Offset. Default is 0." }, { "in": "query", "name": "limit", "description": "Default 1000", "type": "integer", "format": "int32", "x-ms-summary": "(optional) Page Limit. Default is 1000." } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/Seismic.PrivacyManagement.GdprEmailSettingResponse" } } } }, "put": { "tags": [ "Privacy Management" ], "summary": "Email opt-outs - Add or update emails", "description": "This action allows one or more email addresses to be added or updated in the tracking opt-out list.", "operationId": "UpsertGdprEmails", "consumes": [ "application/json" ], "produces": [ "text/plain", "application/json", "text/json" ], "parameters": [ { "in": "body", "name": "body", "schema": { "type": "array", "items": { "$ref": "#/definitions/Seismic.PrivacyManagement.GdprEmailSettingUpsertRequest" } } } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/Seismic.PrivacyManagement.GdprPagedEmailSettingResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Seismic.PrivacyManagement.GdprPagedEmailSettingResponse" } } } } }, "/integration/v2/system/optouts/{email}": { "delete": { "tags": [ "Privacy Management" ], "summary": "Email opt-outs - Delete email", "description": "Deletes a single email address from the opt-out list", "operationId": "DeleteGdprEmail", "parameters": [ { "in": "path", "name": "email", "description": "Email", "required": true, "type": "string", "x-ms-summary": "Email Id" } ], "responses": { "204": { "description": "Success" } } } }, "/integration/v2/teamsites": { "get": { "tags": [ "Teamsites" ], "summary": "Teamsite - Get all teamsites", "description": "Provides the full list of teamsites that are available in the current tenant.", "operationId": "GetTeamsites", "produces": [ "application/json" ], "responses": { "200": { "description": "Success", "schema": { "type": "array", "items": { "$ref": "#/definitions/Seismic.Teamsites.TeamsiteResponse" } } } } } }, "/integration/v2/teamsites/{teamsiteId}": { "get": { "tags": [ "Teamsites" ], "summary": "Teamsite - Get teamsite information", "description": "Get the name of a given teamsite.", "operationId": "GetTeamsiteDetails", "produces": [ "application/json" ], "parameters": [ { "in": "path", "name": "teamsiteId", "description": "Teamsite Id", "required": true, "type": "string", "x-ms-summary": "Teamsite Id" } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/Seismic.Teamsites.TeamsiteResponse" } } } } }, "/integration/v2/users/teamsites": { "get": { "tags": [ "Users" ], "summary": "User - Get teamsites", "description": "Get the current user's assigned teamsites.", "operationId": "GetUserTeamsites", "produces": [ "application/json" ], "responses": { "200": { "description": "Success", "schema": { "type": "array", "items": { "$ref": "#/definitions/Seismic.Teamsites.TeamsiteResponse" } } } } } }, "/integration/v2/users/profiles": { "get": { "tags": [ "Users" ], "summary": "User - Get profiles", "description": "Get the list of content profiles that the current user has access to.", "operationId": "GetUserProfiles", "produces": [ "application/json" ], "parameters": [ { "in": "query", "name": "application", "type": "string", "x-ms-summary": "Application Name", "x-ms-visibility": "advanced", "description": "(Optional) Profiles for given application name, such as DocCenter, OutlookPlugin, etc." }, { "in": "query", "name": "isPredictiveOnly", "type": "boolean", "x-ms-summary": "Predictive Profiles Only?", "x-ms-visibility": "advanced", "description": "(Optional) Profiles applicable on predictive contents only. Default is false." } ], "responses": { "200": { "description": "Success", "schema": { "type": "array", "items": { "$ref": "#/definitions/Seismic.DocCenter.ContentProfileResponse" } } } } } }, "/webhooks/v1/eventTypes": { "get": { "responses": { "200": { "description": "Success", "schema": { "type": "object", "properties": { "value": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" } } } } } } } }, "summary": "Get webhooks event types", "operationId": "GetWebhooksEventTypes", "description": "Get webhooks event types", "parameters": [], "x-ms-visibility": "internal" } }, "/webhooks/v1/subscriptions": { "x-ms-notification-content": { "description": "Schema of the notification content", "schema": { "$ref": "#/definitions/NotificationContent" } }, "post": { "summary": "Create a webhook subscription", "description": "Create a webhook subscription. See https://developer.seismic.com/seismicsoftware/docs/webhooksoverview for details.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "properties": { "callbackUrl": { "type": "string", "description": "callbackUrl", "title": "callbackUrl", "x-ms-visibility": "internal", "x-ms-notification-url": true }, "eventTypes": { "type": "array", "items": { "type": "string", "title": "eventTypes", "x-ms-dynamic-values": { "operationId": "GetWebhooksEventTypes", "value-path": "name", "value-collection": "value", "value-title": "name" }, "description": "" }, "title": "eventTypes" }, "filter": { "type": "string", "description": "Example: $.data..[?(@.id == 'demo')] , JsonPath based filter expression, refer https://developer.seismic.com/seismicsoftware/docs/webhooksoverview#filtering-events for details.", "title": "filter" } }, "required": [ "callbackUrl", "eventTypes" ] } } ], "responses": { "201": { "description": "Webhook subscription successfully created", "schema": { "$ref": "#/definitions/CreateWebhookResponse" } }, "400": { "description": "Bad request. User input is invalid.", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal server error.", "schema": { "$ref": "#/definitions/Error" } } }, "operationId": "SubscribeToEvents", "x-ms-trigger": "single" } } }, "definitions": { "NotificationContent": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier for the event.", "format": "uuid" }, "version": { "type": "string", "description": "The version of the event, e.g., \"ContentManagerCreateFileV1\"." }, "occurredAt": { "type": "string", "description": "ISO 8601 timestamp when the event occurred in UTC.", "format": "date-time" }, "tenantId": { "type": "string", "description": "Unique identifier for the tenant.", "format": "uuid" }, "tenantName": { "type": "string", "description": "Name of the tenant." }, "data": { "type": "object", "additionalProperties": true, "description": "See event documentation for complete payload.", "properties": { "teamSiteId": { "type": "string" }, "fileId": { "type": "string" }, "fileName": { "type": "string" }, "format": { "type": "string" }, "userId": { "type": "string" }, "versionId": { "type": "string" }, "requestId": { "type": "string" }, "schemaId": { "type": "string" }, "batchId": { "type": "string" }, "batchInstanceId": { "type": "string" }, "projectId": { "type": "string" }, "taskId": { "type": "string" }, "programId": { "type": "string" }, "workflowId": { "type": "string" }, "activeVersionId": { "type": "string" }, "contentId": { "type": "string" }, "contentVersionId": { "type": "string" }, "contentName": { "type": "string" }, "contentParentId": { "type": "string" }, "destinationParentId": { "type": "string" }, "newContentId": { "type": "string" }, "newContentVersionId": { "type": "string" }, "folderId": { "type": "string" }, "folderName": { "type": "string" }, "folderParentId": { "type": "string" }, "profileVersionId": { "type": "string" }, "profileName": { "type": "string" }, "profileType": { "type": "string" }, "schemaName": { "type": "string" }, "status": { "type": "string" }, "schemaDescription": { "type": "string" }, "spaceId": { "type": "string" }, "creatorId": { "type": "string" }, "workflowName": { "type": "string" }, "workflowStepId": { "type": "string" }, "stepName": { "type": "string" } } }, "application": { "type": "string", "description": "The application where the event originated." }, "productArea": { "description": "The product area related to the event.", "type": "string" } }, "required": [ "id", "version", "occurredAt", "tenantId", "tenantName", "data", "application", "productArea" ] }, "Error": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" } }, "required": [ "code", "message" ] }, "CreateWebhookRequest": { "type": "object", "required": [ "callbackUrl", "eventTypes" ], "properties": { "callbackUrl": { "type": "string", "format": "uri", "description": "The URL to which the events will be sent.", "x-ms-notification-url": true, "x-ms-visibility": "internal" }, "eventTypes": { "type": "array", "items": { "type": "string" }, "description": "List of event types the webhook is interested in. See all event types at https://developer.seismic.com/seismicsoftware/docs/seismicwebhooks" }, "filter": { "type": "string", "description": "Only delivers the webhook if it matches with filter" } } }, "CreateWebhookResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the created webhook subscription." }, "callbackUrl": { "type": "string", "format": "uri", "description": "Confirmed URL to which events will be sent." }, "eventTypes": { "type": "array", "items": { "type": "string" }, "description": "Event type for which the webhook was created." }, "status": { "type": "string", "enum": [ "active", "inactive" ], "description": "Status of the webhook subscription." } }, "required": [ "id", "callbackUrl", "eventTypes", "status" ] }, "Seismic.ContentManager.AddContentPropertyRequest": { "type": "object", "properties": { "name": { "type": "string", "title": "Name", "description": "The name of the new content property." }, "type": { "type": "string", "description": "Supported types are string, integer, float, date, tag, multi-value and boolean.", "title": "Type", "enum": [ "string", "integer", "float", "date", "tag", "multi-value", "boolean" ] }, "domainOfValues": { "type": "array", "x-ms-summary": "Content Property Values", "items": { "type": "string", "title": "Content Property Value", "description": "(Optional) The list of values for this content property. Default is empty array." } }, "teamSites": { "type": "array", "x-ms-summary": "Teamsite Ids", "description": "List of applicable teamsites. At least 1 teamsite is required.", "items": { "$ref": "#/definitions/Seismic.ContentManager.ContentPropertyTeamSiteInfo" } } }, "required": [ "name", "type", "teamSites", "domainOfValues" ] }, "Seismic.ContentManager.AddContentPropertyResponse": { "type": "object", "properties": { "id": { "type": "string", "x-ms-summary": "Content Property Id" } } }, "Seismic.ContentManager.ContentPropertyTeamSiteInfo": { "type": "object", "properties": { "teamSiteId": { "type": "string", "title": "Id", "x-ms-summary": "Teamsite Id", "description": "Teamsite Id where this content property is applicable. At least 1 teamsite is required." }, "isRequired": { "type": "boolean", "title": "Is Required", "x-ms-summary": "Is A Required Property?", "enum": [ true, false ], "description": "(Optional) Boolean field to indicate whether the new property is a required property in this teamsite. Default is false." } }, "required": [ "teamSiteId" ] }, "Seismic.ContentManager.DomainOfValues": { "type": "object", "properties": { "id": { "type": "string", "x-ms-summary": "Content Property Value Id" }, "value": { "type": "string", "x-ms-summary": "Content Property Value" } } }, "Seismic.PrivacyManagement.GdprPagedEmailSettingResponse": { "type": "object", "properties": { "totalRequests": { "format": "int32", "type": "integer", "x-ms-summary": "Total Optouts Count" }, "totalSucceeded": { "format": "int32", "type": "integer", "x-ms-summary": "Succeeded Optouts Count" }, "errors": { "type": "array", "x-ms-summary": "Errors", "items": { "$ref": "#/definitions/Seismic.PrivacyManagement.GdprPagedEmailSettingResponseError" } } } }, "Seismic.PrivacyManagement.GdprPagedEmailSettingResponseError": { "type": "object", "properties": { "email": { "type": "string", "x-ms-summary": "Email Id" }, "error": { "type": "string", "x-ms-summary": "Error Message" } } }, "Seismic.PrivacyManagement.GdprEmailSettingResponse": { "type": "object", "properties": { "entries": { "type": "array", "items": { "$ref": "#/definitions/Seismic.PrivacyManagement.GdprEmailSettingResponse" } }, "totalCount": { "format": "int64", "type": "integer", "x-ms-summary": "Total Count" }, "pageCap": { "format": "int32", "type": "integer", "x-ms-summary": "Page Cap" }, "limit": { "format": "int32", "type": "integer", "x-ms-summary": "Page Limit" }, "offset": { "format": "int64", "type": "integer", "x-ms-summary": "Page Offset" }, "continuationToken": { "type": "string", "x-ms-summary": "Continuation Token" }, "nextPageLink": { "type": "string", "x-ms-summary": "Next Page Link" } } }, "Seismic.ContentProperties.ContentProperty": { "type": "object", "properties": { "id": { "type": "string", "x-ms-summary": "Content Property Id" }, "name": { "type": "string", "x-ms-summary": "Content Property Name" }, "type": { "type": "string", "x-ms-summary": "Content Property Type" }, "hasDomainOfValues": { "type": "boolean", "x-ms-summary": "Content Property Has Domain Values?" }, "domainOfValues": { "type": "array", "items": { "$ref": "#/definitions/Seismic.ContentManager.DomainOfValues" } }, "teamsites": { "type": "array", "items": { "$ref": "#/definitions/Seismic.ContentProperties.ContentPropertyTeamsite" } } } }, "Seismic.ContentProperties.ContentPropertyTeamsite": { "type": "object", "properties": { "teamsiteId": { "type": "string", "x-ms-summary": "Teamsite Id" }, "teamsiteName": { "type": "string", "x-ms-summary": "Teamsite Name" }, "isRequired": { "type": "boolean", "x-ms-summary": "Is A Required Teamsite?" } } }, "Seismic.DocCenter.Application": { "type": "object", "properties": { "id": { "type": "string", "x-ms-summary": "Application Id" }, "name": { "type": "string", "x-ms-summary": "Application Name" } } }, "Seismic.DocCenter.ContentProfileResponse": { "type": "object", "properties": { "id": { "type": "string", "x-ms-summary": "Content Profile Id" }, "versionId": { "type": "string", "x-ms-summary": "Content Profile Version Id" }, "name": { "type": "string", "x-ms-summary": "Content Profile Name" }, "type": { "type": "string", "x-ms-summary": "Content Profile Type" }, "modifiedAt": { "format": "date-time", "type": "string", "x-ms-summary": "Content Profile Last Modified Date" }, "coverImageId": { "type": "string", "x-ms-summary": "Content Profile Cover Image Id" }, "coverImageUrl": { "type": "string", "x-ms-summary": "Content Profile Cover Image Url" }, "isPredictiveOnly": { "type": "boolean", "x-ms-summary": "Is A Predctive Supported Content Profile?" }, "isPublished": { "type": "boolean", "x-ms-summary": "Is A Published Content Profile?" }, "isDefault": { "type": "boolean", "x-ms-summary": "Is A Default Content Profile?" }, "applications": { "type": "array", "x-ms-summary": "Applications", "items": { "$ref": "#/definitions/Seismic.DocCenter.Application" } }, "teamSiteId": { "type": "string", "x-ms-summary": "Teamsite Id" } } }, "Seismic.PrivacyManagement.GdprEmailSettingUpsertRequest": { "type": "object", "properties": { "email": { "type": "string", "title": "Email", "description": "Email id for which the opt-out needs to be configured." }, "emailOptOut": { "type": "boolean", "title": "Email Optout", "x-ms-summary": "Opt Out From Email Communications?", "enum": [ true, false ], "description": "Opt out from email communications." }, "trackingOptOut": { "type": "boolean", "title": "Tracking Optout", "x-ms-summary": "Opt Out From Livesend Tracking?", "enum": [ true, false ], "description": "Opt out from LiveSend tracking." }, "meetingsOptOut": { "type": "boolean", "title": "Meetings Optout", "x-ms-summary": "Opt Out From Meetings?", "enum": [ true, false ], "description": "Opt out from meeting recordings." } }, "required": [ "email" ] }, "Seismic.Teamsites.TeamsiteResponse": { "type": "object", "properties": { "id": { "type": "string", "x-ms-summary": "Teamsite Id" }, "name": { "type": "string", "x-ms-summary": "Teamsite Name" }, "isDefault": { "type": "boolean", "x-ms-summary": "Is Default Teamsite?" } } } }, "parameters": {}, "responses": {}, "securityDefinitions": { "oauth2-auth": { "type": "oauth2", "flow": "accessCode", "authorizationUrl": "https://auth.seismic.com/central/connect/authorize", "tokenUrl": "https://auth.seismic.com/central/connect/token", "scopes": { "seismic.webhook seismic.self.view seismic.self.manage seismic.user.view seismic.user.manage seismic.library.view seismic.library.manage seismic.configuration.view seismic.configuration.manage offline_access": "seismic.webhook seismic.self.view seismic.self.manage seismic.user.view seismic.user.manage seismic.library.view seismic.library.manage seismic.configuration.view seismic.configuration.manage offline_access" } } }, "security": [ { "oauth2-auth": [ "seismic.webhook seismic.self.view seismic.self.manage seismic.user.view seismic.user.manage seismic.library.view seismic.library.manage seismic.configuration.view seismic.configuration.manage offline_access" ] } ], "tags": [ { "name": "Teamsites" }, { "name": "Content Properties" }, { "name": "Privacy Management" }, { "name": "Users" } ], "x-ms-connector-metadata": [ { "propertyName": "Website", "propertyValue": "https://seismic.com/" }, { "propertyName": "Privacy policy", "propertyValue": "https://seismic.com/privacy-policy/" }, { "propertyName": "Categories", "propertyValue": "Marketing;Sales and CRM" } ] }